nrf52840dk_test_kernel/test/
ecdsa_p256_test.rs1use capsules_core::test::capsule_test::{CapsuleTest, CapsuleTestClient};
12use core::ptr::addr_of_mut;
13use ecdsa_sw::p256_signer::EcdsaP256SignatureSigner;
14use ecdsa_sw::test::p256::TestEcdsaP256Sign;
15use kernel::static_init;
16
17pub static mut HHASH: [u8; 32] = [
20    0xB9, 0x4D, 0x27, 0xB9, 0x93, 0x4D, 0x3E, 0x08, 0xA5, 0x2E, 0x52, 0xD7, 0xDA, 0x7D, 0xAB, 0xFA,
21    0xC4, 0x84, 0xEF, 0xE3, 0x7A, 0x53, 0x80, 0xEE, 0x90, 0x88, 0xF7, 0xAC, 0xE2, 0xEF, 0xCD, 0xE9,
22];
23
24pub static mut SKEY: [u8; 32] = [
36    0x65, 0x34, 0xCC, 0x25, 0xC7, 0x2E, 0xAC, 0x43, 0x9A, 0xB1, 0xC7, 0x01, 0x61, 0x10, 0x3F, 0x9C,
37    0xCD, 0x7D, 0x64, 0x50, 0xAC, 0x08, 0x88, 0xA4, 0x7F, 0x58, 0xC3, 0x11, 0xE5, 0xAB, 0x2B, 0x26,
38];
39
40pub static mut HSIG: [u8; 64] = [0; 64];
42
43pub static mut CSIG: [u8; 64] = [
47    0x9E, 0xB8, 0x19, 0x40, 0xD4, 0xA9, 0xE5, 0x5E, 0x84, 0x08, 0xDB, 0xE8, 0xCB, 0x5A, 0x1F, 0x3C,
48    0x01, 0x18, 0x1C, 0xD1, 0x92, 0xEC, 0xCE, 0x1E, 0x4B, 0x80, 0x22, 0x94, 0xB1, 0xFB, 0x67, 0x31,
49    0xFE, 0xEF, 0xDD, 0x23, 0x08, 0x76, 0x41, 0x0B, 0x03, 0x9E, 0x2A, 0x62, 0xCA, 0xA8, 0x32, 0x03,
50    0x4A, 0x63, 0x2C, 0x91, 0xC8, 0xDE, 0xDE, 0x70, 0x5E, 0x67, 0xBA, 0x3A, 0xBE, 0xE1, 0xFE, 0x96,
51];
52
53pub unsafe fn run_ecdsa_p256(client: &'static dyn CapsuleTestClient) {
54    let t = static_init_test_ecdsa_p256(client);
55    t.run();
56}
57
58unsafe fn static_init_test_ecdsa_p256(
59    client: &'static dyn CapsuleTestClient,
60) -> &'static TestEcdsaP256Sign {
61    let ecdsa = static_init!(
62        EcdsaP256SignatureSigner<'static>,
63        EcdsaP256SignatureSigner::new(&mut *addr_of_mut!(SKEY)),
64    );
65    kernel::deferred_call::DeferredCallClient::register(ecdsa);
66
67    let test = static_init!(
68        TestEcdsaP256Sign,
69        TestEcdsaP256Sign::new(
70            ecdsa,
71            &mut *addr_of_mut!(HHASH),
72            &mut *addr_of_mut!(HSIG),
73            &mut *addr_of_mut!(CSIG)
74        )
75    );
76
77    test.set_client(client);
78
79    test
80}