2023-09-28 02:30:56 +00:00
|
|
|
use crate::Client;
|
2024-02-12 06:28:04 +00:00
|
|
|
use keyforkd::test_util::{run_test, Infallible};
|
2023-09-26 00:40:37 +00:00
|
|
|
use keyfork_derive_util::{request::*, DerivationPath};
|
|
|
|
use keyfork_slip10_test_data::test_data;
|
2023-09-12 03:41:55 +00:00
|
|
|
use std::{os::unix::net::UnixStream, str::FromStr};
|
|
|
|
|
|
|
|
#[test]
|
2024-02-12 06:28:04 +00:00
|
|
|
fn secp256k1_test_suite() {
|
2023-09-26 00:40:37 +00:00
|
|
|
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());
|
2023-09-26 00:40:37 +00:00
|
|
|
}
|
2024-02-12 06:28:04 +00:00
|
|
|
Infallible::Ok(())
|
|
|
|
}).unwrap();
|
2023-09-26 00:40:37 +00:00
|
|
|
}
|
2023-09-12 03:41:55 +00:00
|
|
|
}
|
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());
|
2023-09-26 00:40:37 +00:00
|
|
|
}
|
2024-02-12 06:28:04 +00:00
|
|
|
Infallible::Ok(())
|
|
|
|
}).unwrap();
|
2023-09-12 06:36:05 +00:00
|
|
|
}
|
|
|
|
}
|