keyfork/crates/daemon/keyforkd-client/src/tests.rs

66 lines
2.3 KiB
Rust
Raw Normal View History

use crate::Client;
2024-02-12 06:28:04 +00:00
use keyforkd::test_util::{run_test, Infallible};
use keyfork_derive_util::{request::*, DerivationPath};
use keyfork_slip10_test_data::test_data;
use std::{os::unix::net::UnixStream, str::FromStr};
#[test]
2024-02-12 06:28:04 +00:00
fn secp256k1_test_suite() {
let tests = test_data()
.unwrap()
.remove(&"secp256k1".to_string())
.unwrap();
2024-02-12 06:28:04 +00:00
for seed_test in tests {
let seed = seed_test.seed;
run_test(&seed, move |socket_path| {
for test in seed_test.tests {
let socket = UnixStream::connect(&socket_path).unwrap();
let mut client = Client::new(socket);
let chain = DerivationPath::from_str(test.chain).unwrap();
if chain.len() < 2 {
continue;
}
let req = DerivationRequest::new(
DerivationAlgorithm::Secp256k1,
&DerivationPath::from_str(test.chain).unwrap(),
);
let response =
DerivationResponse::try_from(client.request(&req.into()).unwrap()).unwrap();
assert_eq!(&response.data, test.private_key.as_slice());
}
2024-02-12 06:28:04 +00:00
Infallible::Ok(())
}).unwrap();
}
}
2023-09-12 06:36:05 +00:00
#[test]
2024-02-12 06:28:04 +00:00
fn ed25519_test_suite() {
let tests = test_data()
.unwrap()
.remove(&"ed25519".to_string())
.unwrap();
2023-09-12 06:36:05 +00:00
2024-02-12 06:28:04 +00:00
for seed_test in tests {
let seed = seed_test.seed;
run_test(&seed, move |socket_path| {
for test in seed_test.tests {
let socket = UnixStream::connect(&socket_path).unwrap();
let mut client = Client::new(socket);
let chain = DerivationPath::from_str(test.chain).unwrap();
if chain.len() < 2 {
continue;
}
let req = DerivationRequest::new(
DerivationAlgorithm::Ed25519,
&DerivationPath::from_str(test.chain).unwrap(),
);
let response =
DerivationResponse::try_from(client.request(&req.into()).unwrap()).unwrap();
assert_eq!(&response.data, test.private_key.as_slice());
}
2024-02-12 06:28:04 +00:00
Infallible::Ok(())
}).unwrap();
2023-09-12 06:36:05 +00:00
}
}