8 releases
| 0.3.1 | Jan 29, 2020 |
|---|---|
| 0.3.0 | Sep 4, 2019 |
| 0.2.5 | Mar 7, 2019 |
#6 in #random-key
70 downloads per month
Used in 2 crates
19KB
360 lines
Ethereum keys management supporting keystores in formats used by geth (soon), parity and pyethereum.
Features
- random key pair generation
- key serialization/deserialization
- keystore password change
- signing and verification
Usage
[dependencies]
ethkey = "0.3"
Example
use ethkey::prelude::*;
fn main() {
let key = EthAccount::load_or_generate("/tmp/path/to/keystore", "passwd")
.expect("should load or generate new eth key");
println!("{:?}", key.address());
let message = [7_u8; 32];
// sign the message
let signature = key.sign(&message).unwrap();
// verify the signature
let result = key.verify(&signature, &message).unwrap();
println!("{}", if result {"verification ok"} else {"wrong signature"});
}
A "prelude" for users of the ethkey crate.
use ethkey::prelude::*;
The prelude may grow over time.
EthKey
Ethereum keys management supporting keystores in formats used by geth, parity and pyethereum.
Features
- random key pair generation
- key serialization/deserialization
- keystore password change
- signing and verification
Usage
Add this to your Cargo.toml:
[dependencies]
ethkey = "0.3"
Example
(Rust edition 2018)
use ethkey::prelude::*;
fn main() {
let key = EthAccount::load_or_generate("/tmp/path/to/keystore", "passwd")
.expect("should load or generate new eth key");
println!("{:?}", key.address());
let message = [7_u8; 32];
// sign the message
let signature = key.sign(&message).unwrap();
// verify the signature
let result = key.verify(&signature, &message).unwrap();
println!("{}", if result {"verification ok"} else {"wrong signature"});
}
Dependencies
~12–17MB
~405K SLoC