/tlock-rs

Rust library for practical time-lock encryption using `drand` threshold network

Primary LanguageRustMIT LicenseMIT

tlock-rs: Practical Timelock Encryption/Decryption in Rust

This repo contains pure Rust implementation of drand/tlock scheme. It provides time-based encryption and decryption capabilities by relying on a drand threshold network and identity-based encryption (IBE). The IBE scheme implemented here is Boneh-Franklin.

Usage

The tlock system relies on an unchained drand network. Working endpoints to access it are, for now:

Lock file for given duration

cargo run -- lock -o test_lock.pem -d 30s test.txt

Lock file for drand round

cargo run -- lock -o test_lock.pem -r 1000 test.txt

Attempt unlocking file

cargo run -- unlock -o test_unlock.txt test_lock.pem

Error Too early will appear, if one tries to unlock a file before the specified round is reached.

Known issues

  • API currently supports 32 bytes of plaintext
  • Cross-library decryption hasn't been verified