Retrieve public randomness, and encrypt your files to the future. dee provides a drand client, and support for timelock encryption.
| Environment | CLI Command |
|:------------|:------------|
| Cargo (Rust 1.67+) | cargo install dee --git https://github.com/thibmeu/drand-rs
|
On Linux, Windows, or macOS, you can use the pre-built binaries.
You can use the --help
option to get more details about the commands and their options.
bash
dee [OPTIONS] <COMMAND>
Add fastnet remote beacon, and shows details about it.
bash
dee remote add fastnet https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493
fastnet
bash
dee remote show --long fastnet
URL : https://drand.cloudflare.com/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493
Public Key: a0b862a7527fee3a731bcb59280ab6abd62d5c0b6ea03dc4ddf6612fdfc9d01f01c31542541771903475eb1ec6615f8d0df0b8b6dce385811d6dcf8cbefb8759e5e616a3dfd054c928940766d9a5b9db91e3b697e5d70a975181e007f87fca5e
Period : 3s
Genesis : 2023-03-01 15:40:00 UTC
Chain Hash: dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493
Group Hash: a81e9d63f614ccdb144b8ff79fbd4d5a2d22055c0bfe4ee9a8092003dab1c6c0
Scheme ID : bls-unchained-on-g1
Beacon ID : fastnet
Retrieve round 1000 from fastnet.
bash
dee rand -u fastnet --long 1000
Round : 1000
Relative : 100:09:43 ago
Absolute : 2023-03-01 16:29:57
Randomness: aa319fc2547e1bdd306633ff63d34e50be76a157477b066906f4d7d63d4e4964
Signature : b09eacd45767c4d58306b98901ad0d6086e2663766f3a4ec71d00cf26f0f49eaf248abc7151c60cf419c4e8b37e80412
Encrypt Hello dee!
string to 30 seconds in the future, using fastnet publickey. If you wait 30 seconds before decrypting, the message is decrypted using the new fastnet signature.
echo "Hello dee!" | dee crypt -u fastnet -r 30s > data.dee
dee crypt --decrypt data.dee
Hello dee!
| ID | Remote | Timelock encryption |
| :--------------------|:------------------------------------------------------------------------------------------------|:--------------------|
| fastnet-cloudflare
| https://drand.cloudflare.com/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493
| Yes |
| fastnet-pl
| https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493
| Yes |
| mainnet-cloudflare
| https://drand.cloudflare.com
| No |
| mainnet-pl
| https://api.drand.sh
| No |
dee
does not come with a default remote beacon. You should decide whichever suit your needs.
More beacons origin are available on drand website.
This software has not been audited. Please use at your sole discretion. With this in mind, dee security relies on the following: * tlock: Practical Timelock Encryption from Threshold BLS by Nicolas Gailly, Kelsey Melissaris, and Yolan Romailler, and its implementation in thibmeu/tlock-rs, * Identity-Based Encryption by Dan Boneh, and Matthew Franklin, and its implementation in thibmeu/tlock-rs, * The League of Entropy to remain honest, * age encryption protocol, and its implementation in str4d/rage,
dee
configuration file is available at the following
| OS | Path |
|:--------|:---------------------------------------------------------------|
| Linux | /home/alice/.config/dee/default.toml
|
| Windows | C:\Users\Alice\AppData\Roaming\dee\config\default.toml
|
| macOS | /Users/Alice/Library/Application Support/rs.dee/default.toml
|
drand API specification is at drand.love/docs/specification. drand is based on Scalable Bias-Resistant Distributed Randomness by Ewa Syta, Philipp Jovanovic, Eleftherios Kokoris Kogias, Nicolas Gailly, Linus Gasser, Ismail Khoffi, Michael J. Fischer, and Bryan Ford. The reference interroperable Go implementation is available at drand/drand.
timelock encryption was published in tlock: Practical Timelock Encryption from Threshold BLS by Nicolas Gailly, Kelsey Melissaris, and Yolan Romailler. The reference interroperable Go implementation is available at drand/tlock.
dee focuses on building a cli. It relies on Rust libraries to use drand or perform timelock encryption.
If you're looking to implement your own Rust application on top of drand and/or timelock encryption, you can use the following: * drandcore: drand client, * tlock: raw tlock implementation, allowing messages up to 16 bytes, * tlockage: hybrid encryption, age phassphrase is encrypted using tlock,
This project is under the MIT license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be MIT licensed as above, without any additional terms or conditions.