A BLS12-381 child key derivation library written in Rust. Implements EIP-2333 and EIP-2334.
Fork of rust-bls-derivation using bls12_381_plus
instead of curv-kzen
, plus cleanup and documentation.
If you want to use Delegatable Anonymous Credentials the verification key (VK
) becomes as long as the credential entries. Since a VK
is simply several BLS12-381 public keys (PK
s) we can use a derivation algorithm such as EIP-2333 in order to derive the long VK
from a single root PK
given any length.
bash
cargo install blastkids
See documentation on docs.rs.
See tests in lib.rs
for example usage.
```rust use blastkids::{Manager, Seed, derive}; use blastkids::{G1, G2};
// make a new manager for a G2 public key
let seed = Seed::new([42u8; 32]);
let manager: Manager
// With a Manager you can create as many account sas you need let accountnumber = 1u32; let account = manager.account(accountnumber);
let length = 8u8; // Specify how many Child Public Keys you need (in this case, 8). Can be up to 255.
// Anyone can use an Account Public Key and a length
to derive a child account
let child_account: Vec
// When you want to use the child account secret keys,
// you call sized
on the account
let child = account.sized(length);
// This child public keys are the same as the ones derived above asserteq!(child.pk, childaccount); ```
bash
cargo test
password
+ salt
: seed-keeper-coreseed
: delanocredscurv-kzen
library which breaks with rust-nightly and appears somewhat unmaintained)Contributions are welcome! Please open an issue if you have any feature ideas or find any bugs. I also accept pull requests with open arms. Please: