radicle-heartwood-lfs/crates/radicle-crypto/src/test/arbitrary.rs

24 lines
633 B
Rust

use qcheck::Arbitrary;
use crate::{test::signer::MockSigner, KeyPair, PublicKey, SecretKey, Seed};
impl Arbitrary for MockSigner {
fn arbitrary(g: &mut qcheck::Gen) -> Self {
let bytes: [u8; 32] = Arbitrary::arbitrary(g);
let seed = Seed::new(bytes);
let sk = KeyPair::from_seed(seed).sk;
MockSigner::from(SecretKey::from(sk))
}
}
impl Arbitrary for PublicKey {
fn arbitrary(g: &mut qcheck::Gen) -> Self {
let bytes: [u8; 32] = Arbitrary::arbitrary(g);
let seed = Seed::new(bytes);
let keypair = KeyPair::from_seed(seed);
PublicKey(keypair.pk)
}
}