Implementation of proxy re-encryption scheme for symmetric key cryptography defined in 10.1109/IWBIS.2017.8275110
To see the available commands and options, run:
./proxy_reencryption -help
To create new key use openssl rand -out <FILE> 48
./proxy_reencryption encrypt \
--keys-path "./example/keys.key" \
--counter 10 \
--plaintext-path "./example/plaintext" \
--iv-output-path "./example/iv" \
--ciphertext-output-path "./example/ciphertext"
./proxy_reencryption generate-key \
--keys-path "./example/keys.key" \
--plaintext-path "./example/plaintext" \
--reencryption-keys-output-path "./example/reencrypt_keys.key" \
--decryption-keys-output-path "./example/decrypt_keys.key"
./proxy_reencryption reencrypt \
--keys-path "./example/reencrypt_keys.key" \
--ciphertext-input-path "./example/ciphertext" \
--iv-input-path "./example/iv" \
--reencrypted-output-path "./example/reencrypted"
./proxy_reencryption decrypt \
--keys-path "./example/decrypt_keys.key" \
--counter 10 \
--iv-input-path "./example/iv" \
--ciphertext-input-path "./example/reencrypted" \
--plaintext-output-path "./example/new_plaintext"
cargo bench --- benchmark_pre
cargo bench --- benchmark_aes
The documentation of proxy re-encryption library can be found here