pub fn encrypt<W: Write, R: Read>(
dst: W,
src: R,
public_key_bytes: &[u8],
round_number: u64,
) -> Result<()>Expand description
Encrypt 16 bytes using tlock encryption scheme.
tlock relies on BLS, content is encrypted against BLS public key. Public key group is assessed based on the public key size.
Example using an empty 16-byte message, fastnet public key, at round 1000
// curl -sS https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493/info | jq -r '.public_key'
let pk_bytes = hex::decode("a0b862a7527fee3a731bcb59280ab6abd62d5c0b6ea03dc4ddf6612fdfc9d01f01c31542541771903475eb1ec6615f8d0df0b8b6dce385811d6dcf8cbefb8759e5e616a3dfd054c928940766d9a5b9db91e3b697e5d70a975181e007f87fca5e").unwrap();
let round = 1000;
let src = vec![0u8; 16];
let mut encrypted = vec![];
tlock::encrypt(&mut encrypted, src.as_slice(), &pk_bytes, round);