def read_keys(keydir): f = open(os.path.join(keydir, 'key1.priv'), "r") b64sk = f.read() f.close() sk = base64.b64decode(b64sk) pk = ed25519.publickey(sk) return (sk, pk)
def get_crypto_signature(message, secret_key=None, keyfile=None): if keyfile: ioa = IoAdapterFileReader.use(keyfile) secret_key = ioa.file.read() ioa.close() secret_key = base64.b64decode(secret_key) public_key = ed25519.publickey(secret_key) signature = ed25519.signature(message, secret_key, public_key) b64signature = base64.b64encode(signature) return b64signature
def generate_keys(public_key_path, secret_key_path): """ Generates a public and a private key pair and stores them in respective files """ try: secret_key = os.urandom(64) #sr = random.SystemRandom() #secret_key = sr.getrandbits(512) except NotImplementedError: raise Exception("crypto.generate_keys: Running on a system without a safe random number generator,cannot create safe cryptographic keys on this system.") public_key = ed25519.publickey(secret_key) b64secret_key = base64.b64encode(secret_key) b64public_key = base64.b64encode(public_key) pubfile = IoAdapterFileWriter.use(public_key_path) pubfile.file.write(codecs.decode(b64public_key,'utf-8')) pubfile.close() secfile = IoAdapterFileWriter.use(secret_key_path) secfile.file.write(codecs.decode(b64secret_key,'utf-8')) secfile.close()