| 12345678910111213141516171819202122232425262728293031 |
- from codecs import encode
- import rsa
- from create_keys import get_keys, get_private_key, get_symmetric_key
- from cryptography.fernet import Fernet
- from cryptography.hazmat.backends import default_backend
- from cryptography.hazmat.primitives import hashes, serialization
- from cryptography.hazmat.primitives.asymmetric import padding
- def encrypt_data(contract, block_string):
- symmetric_key = get_symmetric_key(contract)
- pubkey = get_keys(contract)
- chiper = Fernet(symmetric_key)
- data = str(chiper.encrypt(block_string))[2:-1]
- encrypted_key = str(rsa.encrypt(symmetric_key,pubkey))[2:-1]
- # encrypted_key = rsa.encrypt(symmetric_key,pubkey)
- print('ENCRYPTED KEY: ', type(encrypted_key), encrypted_key)
- return data, encrypted_key
- def decrypt_data(name, t):
- private_key = get_private_key(name)
- en_key = encode(t.encrypted_key.encode().decode('unicode_escape'),"raw_unicode_escape")
- key = rsa.decrypt(en_key, private_key)
- cipher = Fernet(key)
- decrypted_data = cipher.decrypt(bytes(t.data, 'utf-8'))
- # print(decrypted_data)
- return decrypted_data.decode('utf8').replace("'", '"')
|