Example #1
0
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
Example #2
0
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
Example #3
0
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
            )
Example #4
0
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
Example #5
0
 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)
Example #6
0
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
Example #7
0
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())