Ejemplo n.º 1
0
def encrypt_message(message, public_key, symetric_key):
    """
	Encrypts a message using a Advance Encryption Standard (AES) key
	used with the Counter with CBC-MAC (CCM) mode of operation
	"""
    if message != None:
        nonce = os.urandom(12)
        message = AESCCM(symetric_key).encrypt(nonce,
                                               message.encode("iso-8859-1"),
                                               None)
        nonce, *_ = encrypt(public_key, nonce)
        message = {
            'nonce': nonce.decode("iso-8859-1"),
            'message': message.decode("iso-8859-1")
        }

    return message
Ejemplo n.º 2
0
def decrypt_message(data, symetric_key, private_key):
    """
	Decrypts a message previously encrypted using the encrypt_message function
	Needs a private_key to do it
	"""
    if type(data) == str or type(data) == bytes:
        data = json.loads(data)
    typ = data['type']
    nonce = data['nonce'].encode("iso-8859-1")
    message = data['message'].encode("iso-8859-1")
    nonce, *_ = decrypt(private_key, nonce)
    message = AESCCM(symetric_key).decrypt(nonce, message, None)
    message = {
        'type': typ,
        'nonce': nonce.decode("iso-8859-1"),
        'message': message.decode("iso-8859-1")
    }
    return message