In [2]:
import ed25519
signing_key, verifying_key = ed25519.create_keypair()
open("my-secret-key","wb").write(signing_key.to_bytes())
vkey_hex = verifying_key.to_ascii(encoding="hex")
print ("the public key is", vkey_hex)
In [4]:
keydata = open("my-secret-key","rb").read()
signing_key = ed25519.SigningKey(keydata)
In [5]:
import os, hashlib
master = os.urandom(87)
seed = hashlib.sha256(master).digest()
signing_key = ed25519.SigningKey(seed)
In [7]:
sig = signing_key.sign(b"hello world", encoding="base64")
print("sig is:", sig)
In [17]:
vkey_hex = b"1246b84985e1ab5f83f4ec2bdf271114666fd3d9e24d12981a3c861b9ed523c6"
verifying_key = ed25519.VerifyingKey(vkey_hex, encoding="hex")
def check_sig(sig, msg, verifying_key):
try:
verifying_key.verify(sig, msg, encoding="base64")
print("signature is good")
except ed25519.BadSignatureError:
print("signature is bad!")
check_sig(sig, b"hello world", verifying_key)
In [21]:
check_sig(sig, b"hello world", signing_key.get_verifying_key())
In [ ]: