Пример #1
0
 def testSignAndVerify(self):
     msg = b'1231232131'
     keyPair = CryptoUtil.genKeyPair()  
     privKey = CryptoUtil.getPrivateKey(keyPair)
     pubKey = CryptoUtil.getPublicKey(keyPair)
     sig = CryptoUtil.signMessage(privKey, msg)
     self.assertTrue(CryptoUtil.verifySignature(pubKey, msg, sig), 'correct signature not verified')
Пример #2
0
 def testBadSignature(self):
     msg = b'1231232131'
     keyPair = CryptoUtil.genKeyPair()  
     privKey = CryptoUtil.getPrivateKey(keyPair)
     sig = CryptoUtil.signMessage(privKey, msg)
     keyPair2 = CryptoUtil.genKeyPair()
     pubKey2 = CryptoUtil.getPublicKey(keyPair2)
     self.assertFalse(CryptoUtil.verifySignature(pubKey2, msg, sig), 'incorrect signature was verified as correct')       
Пример #3
0
 def testTransactionMultipleInsAndOuts(self):    
     expectedHash = b'\xfa\xc7t\x1f\xf0\xa3\xf5a\xdd\x9e\x0c\x96\x97\xd0\xdb\xa8L\xd9\x0cH\xca\xee\xd4g\x19 \xac\x84\xdd2\x11\xdb'
     self.assertEqual(tx2in2out.getHash(), expectedHash, 'incorrect hash')
     self.assertEqual(tx2in2out.numInputs(), 2, 'incorrect number of inputs')
     self.assertEqual(tx2in2out.numOutputs(), 2, 'incorrect number of outputs')
     self.assertEqual(tx2in2out.getInput(0).prevTxHash, genesis.hash, 'incorrect prevTxHash for input 0')
     self.assertEqual(tx2in2out.getInput(1).index, 1, 'incorrect index for input 1')
     self.assertEqual(tx2in2out.getInput(0).signature, sig0, 'incorrect signature for input 0')
     self.assertEqual(tx2in2out.getOutput(0).value, 10.0, 'incorrect value for output 0')
     self.assertEqual(tx2in2out.getOutput(1).address, scroogePubK, 'incorrect address for output 1')
     self.assertEqual(tx2in2out.getInputs()[1], tx2in2out.getInput(1), 'getInputs failure')
     self.assertEqual(tx2in2out.getOutputs()[0], tx2in2out.getOutput(0), 'getOutputs failure')
     self.assertIsNone(tx2in2out.getInput(tx2in2out.numInputs()), 'getInput failed to recognize out of bounds')
     self.assertIsNone(tx2in2out.getOutput(tx2in2out.numOutputs()), 'getOutput failed to recognize out of bounds')
     self.assertTrue(CryptoUtil.verifySignature(scroogePubK, tx2in2out.getRawDataToSign(0), tx2in2out.getInput(0).signature), \
                     'signature on input 0 does not verify')