示例#1
0
def test():
    from PrivateKey import PrivateKey
    """Test cases """
    from Crypto.PublicKey import RSA
    key = RSA.generate(2048)
    pbk = PublicKey(key)
    print("Public key generated = ", pbk)
    testdict = dict()
    testdict[pbk] = "Alice"
    print("testdic mapping pbk to Alice =", testdict)

    key = RSA.generate(2048)
    pbk = PublicKey(key.publickey())
    print("Public key generated = ", pbk)
    msg = Message()
    msg.addInteger(13)
    key = RSA.generate(2048)
    msg.addPublicKey(key.publickey())
    print("Message = ", msg)
    keyForSigning = RSA.generate(2048)
    privateKeyForSigning = PrivateKey(keyForSigning)
    publicKeyForSigning = PublicKey(keyForSigning.publickey())
    print("Public Key for Signing=", publicKeyForSigning)
    publicKeyFromPrivateKeyForSigning = privateKeyForSigning.toPublicKey()
    print("Private Key from Public Key", publicKeyFromPrivateKeyForSigning)

    print("Two keys are equal (should return True) = ",
          publicKeyForSigning == publicKeyFromPrivateKeyForSigning)
    signature = privateKeyForSigning.sign(msg)
    print("Signature (should return true) =", signature)
    print("Verify Signature=",
          publicKeyForSigning.checkSignature(msg, signature))
def test():
    """Test cases """
    prk = generatePrivateKey()
    print("Private key generated = ", prk)
    msg = Message()
    msg.addInteger(13)
    msg.addPublicKey(RSA.generate(2048).publickey())
    print("Message = ", msg)
    keyForSigning = RSA.generate(2048)
    privateKeyForSigning = PrivateKey(keyForSigning)
    signature = privateKeyForSigning.sign(msg)
    print("Signature=", signature)
    def getMessageToSign(self,txOutputList):
        """Create the message to be signed, when the input is the current 
           TxInputUnsigned for a given outputlist

           In Bitcoin the sender signs his input and all outputs
           so other inputs of the transaction are not included in the 
           message to sign
        """
        
        message = Message()
        message.addPublicKey(self.getSender().publickey());
        message.addInteger(self.getAmount());
        for txOutput in txOutputList.toList():
            message.addPublicKey(txOutput.getRecipient().publickey())
            message.addInteger(txOutput.getAmount())
        return message