def test_encrypt_block(): content = crypto.long_pad(random_content(1000)) rsa_priv = crypto.generate_rsa_key() priv2 = crypto.generate_rsa_key() receiver_pubkey = crypto.serialize_pubkey(priv2.public_key()) response = loader.encrypt_block(content, rsa_priv, receiver_pubkey) assert loader.full_decrypt_block(response, priv2) == content
def test_assemble_block_tree(): contents = random_content(10**6) rsa_priv = crypto.generate_rsa_key() priv2 = crypto.generate_rsa_key() receiver_pubkey = crypto.serialize_pubkey(priv2.public_key()) blocks = loader.assemble_block_tree(contents, rsa_priv, receiver_pubkey) derived_contents = loader.tree_decrypt(blocks[-1], priv2, cached_blocks=blocks) assert derived_contents == contents
def test_full_encrypt(): priv1 = crypto.generate_rsa_key() priv2 = crypto.generate_rsa_key() target_pubkey = crypto.serialize_pubkey(priv2.public_key()) message = "Santa is not real." aes_ciphertext, encry_aes_key, hmac, hmac_signature, iv, metadata = \ crypto.encrypt(message, priv1, target_pubkey) aes_key = crypto.rsa_decrypt(encry_aes_key, priv2) assert crypto.aes_decrypt(aes_ciphertext, aes_key, iv) == message assert message == \ crypto.decrypt( aes_ciphertext, encry_aes_key, hmac, hmac_signature, priv2, iv, metadata )
def createRsaKeys(pubFilename, privateFilename): if not os.path.exists(pubFilename) or not os.path.exists(privateFilename): print('Creating new RSA keys.') pubKey, privKey = crypto.generate_rsa_key() crypto.write_key_to_file(pubKey, pubFilename) crypto.write_key_to_file(privKey, privateFilename) pubKey = crypto.read_rsa_key_from_file(pubFilename) privKey = crypto.read_rsa_key_from_file(privateFilename) return pubKey, privKey
def __init__(self, server): self.server = server self._priv_key = crypto.generate_rsa_key() self.uid = self.server.register( binascii.hexlify( crypto.get_pubkey_bytes( self._priv_key.public_key() ) ) ) self._all_messages = defaultdict(list)
def test_rsa_encrypt_and_decrypt(): priv = crypto.generate_rsa_key(complexity=512) message = "Attack at Calais" ciphertext = crypto.rsa_encrypt(message, priv.public_key()) assert crypto.rsa_decrypt(ciphertext, priv) == message
def test_sign(): priv = crypto.generate_rsa_key(complexity=512) message = "Secret wish list" sig = crypto.sign(message, priv) assert crypto.verify_signature(sig, message, priv.public_key())