pub fn decrypt<W: Write, R: Read>(
dst: W,
src: R,
signature: &[u8],
) -> Result<(), TLockError>Expand description
Decrypt 16 bytes using tlock encryption scheme.
tlock relies on BLS, content private key is a BLS signature. Signature group is assessed based on the public key size.
Example using an 16-byte message, fastnet public key, and round 1000
// curl -sS https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493/public/1000 | jq -r '.signature'
let signature = hex::decode("b09eacd45767c4d58306b98901ad0d6086e2663766f3a4ec71d00cf26f0f49eaf248abc7151c60cf419c4e8b37e80412").unwrap();
// This message is the encryption of an empty 16 byte message, using fastnet public key, at round 1000
let encrypted = hex::decode("9787b5ed1c3e36e84ce19064e975be835b81c0788d5aa2a49ab7edc98b2917f1d61ac21f196bdc693ed556194fb33da104ffafa3c036dbcfb55eb953aaf2d446871aad7a1266f531caac1d654247a2d8ee93b975a7a19f0286f44d3c646d76338f334f4450bddbb2db52daae55d9e20ec26503ea7855b165f713b4ea96e60376").unwrap();
let decrypted = vec![];
tlock::decrypt(decrypted, encrypted.as_slice(), &signature).unwrap();