feat: add ring - eddsa
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
use ring::{
|
||||
signature::{ KeyPair, Ed25519KeyPair, UnparsedPublicKey, ED25519 },
|
||||
hmac, rand, error::Unspecified,
|
||||
digest,
|
||||
};
|
||||
|
||||
const SEED_LEN: usize = 32;
|
||||
|
||||
fn main() -> Result<(), Unspecified> {
|
||||
{
|
||||
println!("{} HHmac {}", "-".repeat(10), "-".repeat(10));
|
||||
@@ -21,6 +24,17 @@ fn main() -> Result<(), Unspecified> {
|
||||
let sha256 = digest::digest(&digest::SHA256, b"hello, world");
|
||||
println!("{:?}", sha256);
|
||||
}
|
||||
{
|
||||
println!("{} EdDSA {}", "-".repeat(10), "-".repeat(10));
|
||||
let rng = rand::SystemRandom::new();
|
||||
let seed: [u8; SEED_LEN] = rand::generate(&rng)?.expose();
|
||||
let key_pair = Ed25519KeyPair::from_seed_unchecked(&seed)?;
|
||||
let sig = key_pair.sign(&"hello world".as_bytes());
|
||||
println!("{}", hex::encode(sig.as_ref()));
|
||||
let public_key = key_pair.public_key().as_ref();
|
||||
let verify_result = UnparsedPublicKey::new(&ED25519, &public_key).verify(&"hello world".as_bytes(), sig.as_ref());
|
||||
println!("verify: {}", verify_result.is_ok());
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user