示例#1
0
    def verify_signature(self):
        if not self.signature:
            return False

        message = self.sender + self.recipient + str(self.value)
        sender_public_key = import_key(self.sender)
        return verify(message.encode(), self.signature, sender_public_key)
示例#2
0
def verify_msg(data, keyfile):
	try:
		print data
		msg = base64.b64decode(data)
		print msg
	except TypeError as inst:
		print str(inst)
		print "Not a Base64 encoded data."
		return data

	try:
		with open(keyfile, 'rb') as pf:
			pub = rsa.PublicKey.load_pkcs1(pf.read(), "PEM")
		msg_len = int(msg[0:4])
		cipher = array('B', msg[4:msg_len+4])
		org_len = int(msg[msg_len+4:msg_len+8])
		sig = msg[msg_len+8:]
		moo = slowaes.AESModeOfOperation()
		raw = moo.decrypt(cipher, org_len, 2, _aes_key, moo.aes.keySize["SIZE_128"], _iv)
		print("Raw %s %r.", raw, sig)
		master = rsa.verify(raw, sig, pub)
		if master:
			return raw
	except IOError:
		print "We do not have a public key."
		return data
	except ValueError:
		print "Invalid data"
		return data
	return data
示例#3
0
文件: cmd.py 项目: sfluo/Mr.Bot
def verify_msg(data, keyfile):
    try:
        print data
        msg = base64.b64decode(data)
        print msg
    except TypeError as inst:
        print str(inst)
        print "Not a Base64 encoded data."
        return data

    try:
        with open(keyfile, "rb") as pf:
            pub = rsa.PublicKey.load_pkcs1(pf.read(), "PEM")
        msg_len = int(msg[0:4])
        cipher = array("B", msg[4 : msg_len + 4])
        org_len = int(msg[msg_len + 4 : msg_len + 8])
        sig = msg[msg_len + 8 :]
        moo = slowaes.AESModeOfOperation()
        raw = moo.decrypt(cipher, org_len, 2, _aes_key, moo.aes.keySize["SIZE_128"], _iv)
        print ("Raw %s %r.", raw, sig)
        master = rsa.verify(raw, sig, pub)
        if master:
            return raw
    except IOError:
        print "We do not have a public key."
        return data
    except ValueError:
        print "Invalid data"
        return data
    return data
示例#4
0
    def verify_signature(self):
        if self.sender == '':
            return True
        if not self.signature:
            return False

        message = self.sender + self.recipient + str(self.value)
        encoded = base64.b64decode(self.sender.encode('utf8'))
        sender_public_formated = PEM.encode(encoded, 'RSA PUBLIC KEY')
        sender_public_key = import_key(sender_public_formated)
        return verify(message.encode(), self.signature, sender_public_key)
示例#5
0
def decode_and_verify(data, public_key):
    data = base64.standard_b64decode(data)

    signature, data = data[:64], data[64:]

    return data, rsa.verify(data, signature, public_key)