blob: 77860aab09d92230af88208449f3977455c692ef [file] [log] [blame]
# signature Python example
from pprint import pprint
import oqs
#######################################################################
# signature example
#######################################################################
sigs = oqs.get_enabled_sig_mechanisms()
print('Enabled signature mechanisms:')
pprint(sigs)
message = "This is the message to sign".encode()
# create signer and verifier with default signature mechanisms
sigalg = "DEFAULT"
with oqs.Signature(sigalg) as signer:
with oqs.Signature(sigalg) as verifier:
print("\nSignature details:")
pprint(signer.details)
# signer generates its keypair
signer_public_key = signer.generate_keypair()
# optionally, the secret key can be obtained by calling export_secret_key()
# and the signer can later be re-instantiated with the key pair:
# secret_key = signer.export_secret_key()
# store key pair, wait... (session resumption):
# signer = oqs.Signature(sigalg, secret_key)
# signer signs the message
signature = signer.sign(message)
# verifier verifies the signature
is_valid = verifier.verify(message, signature, signer_public_key)
print("\nValid signature?", is_valid)