21 lines
618 B
Python
21 lines
618 B
Python
from typing import TYPE_CHECKING
|
|
|
|
import result
|
|
import nacl.signing
|
|
import nacl.exceptions
|
|
|
|
if TYPE_CHECKING:
|
|
from identity import Identity
|
|
|
|
|
|
def create_signature_by_identity(
|
|
identity: 'Identity', message: bytes) -> result.Result[nacl.signing.SignedMessage]:
|
|
return result.as_result(nacl.exceptions.CryptoError)(identity.private_key.sign)(message)
|
|
|
|
|
|
def verify_signature_by_identity(
|
|
identity: 'Identity',
|
|
message: bytes, signature: bytes) -> result.Result[str]:
|
|
return result.as_result(nacl.exceptions.CryptoError)(nacl.signing.verify)(
|
|
identity.key, message, signature)
|