From 5641651c85dc533b0a89ad1ef5ba91a9f9a21577 Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Thu, 1 Mar 2018 13:59:07 -0600 Subject: [PATCH] added functions to verify and sign with ed25519 --- onionr/onionrcrypto.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/onionr/onionrcrypto.py b/onionr/onionrcrypto.py index 6b282341..22a542b8 100644 --- a/onionr/onionrcrypto.py +++ b/onionr/onionrcrypto.py @@ -40,6 +40,26 @@ class OnionrCrypto: keyfile.write(self.pubKey + ',' + self.privKey) return + def edVerify(self, data, key): + '''Verify signed data (combined in nacl) to an ed25519 key''' + key = nacl.signing.VerifyKey(key=key, encoder=nacl.encoding.Base32Encoder) + retData = '' + if encodeResult: + retData = key.verify(data.encode(), encoder=nacl.encoding.Base64Encoder) # .encode() is not the same as nacl.encoding + else: + retData = key.verify(data.encode()) + return retData + + def edSign(self, data, key, encodeResult=False): + '''Ed25519 sign data''' + key = nacl.signing.SigningKey(seed=key, encoder=nacl.encoding.Base32Encoder) + retData = '' + if encodeResult: + retData = key.sign(data.encode(), encoder=nacl.encoding.Base64Encoder) # .encode() is not the same as nacl.encoding + else: + retData = key.sign(data.encode()) + return retData + def pubKeyEncrypt(self, data, peer): '''Encrypt to a peers public key (Curve25519, taken from Ed25519 pubkey)''' return