def test_normal_signing(self): # test the normal order of operations: Keypair will initialize secp256r1 Elliptic curve parameters message = binascii.hexlify(b'Hello World') key = KeyPair( bytes.fromhex( '8631cd2635c416ba5f043561e9d2ff40b79c3bb2eb245e176615298b8372d0a4' )) signature = Crypto.Sign( message, '8631cd2635c416ba5f043561e9d2ff40b79c3bb2eb245e176615298b8372d0a4') self.assertTrue( Crypto.VerifySignature(message, signature, key.PublicKey)) TestSigningWithoutCryptoInstance.sig1 = signature.hex()
def test_sign_before_KeyPair(self): # test signing prior to initializing secp256r1 Elliptic curve parameters with Keypair message = binascii.hexlify(b'Hello World') signature = Crypto.Sign( message, '8631cd2635c416ba5f043561e9d2ff40b79c3bb2eb245e176615298b8372d0a4') key = KeyPair( bytes.fromhex( '8631cd2635c416ba5f043561e9d2ff40b79c3bb2eb245e176615298b8372d0a4' )) self.assertTrue( Crypto.VerifySignature(message, signature, key.PublicKey)) TestSigningWithoutCryptoInstance.sig2 = signature.hex() # ensure the signatures are identical self.assertEqual(TestSigningWithoutCryptoInstance.sig1, TestSigningWithoutCryptoInstance.sig2)
def test_sign_and_verify_str(self): privkey = KeyPair.PrivateKeyFromWIF( "L44B5gGEpqEDRS9vVPz7QT35jcBG2r3CZwSwQ4fCewXAhAhqGVpP") keypair = KeyPair(privkey) hashdata = "74657374" keypair_signature = Crypto.Sign(hashdata, bytes(keypair.PrivateKey)) keypair_signature2 = Crypto.Default().Sign(hashdata, bytes(keypair.PrivateKey)) self.assertEqual(keypair_signature, keypair_signature2) # verify without unhexing verification_result = Crypto.VerifySignature("test", keypair_signature, keypair.PublicKey, unhex=False) verification_result2 = Crypto.Default().VerifySignature( "test", keypair_signature, keypair.PublicKey, unhex=False) self.assertEqual(verification_result, verification_result2) self.assertTrue(verification_result)