From 8b14cb917b17a661e8e250dfa07a0ea2ce4d14ca Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 3 Aug 2023 15:18:58 -0400 Subject: [PATCH] More tests, it passes them. --- src/x25519.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/x25519.rs b/src/x25519.rs index f5850a4..f9a0bf2 100644 --- a/src/x25519.rs +++ b/src/x25519.rs @@ -535,4 +535,32 @@ mod tests { .eq(&secret.public)); assert!(x25519::IdentitySecret::from_bytes(secret.to_bytes().as_slice()).unwrap().eq(&secret)); } + + #[test] + fn known_good() { + const KNOWN_GOOD: [&str; 4] = [ + "491287db97:0:00f7254a5e88878cc92e41d5be9533b3d52774a22a937ce4a2d2ff24915be138b3d6494264f5f208ccef162f27a3a7879472b141f3167975f4d0fc17b94d765f:4dfc009c3ee6103147f302fb71f1a3b11add9dd7c6ae4651976cffd8d1b2bf6bd11d0d50bcc5713524184323c29ffd4cd3009897b06b4c0f743a5e541de5479c", + "2fd3e47197:0:b42f063109e84fc39d01fd14b923739b64193a403ff88281590f35a13a42c966ebb5f0b8044d140a39982bc951e7841de931442b2bb63a06801e565a4770b65b:0e844a9ccda42451ccef921527826e6dcb917f8f8dc95fc030624c1d40fc9b18e163d7a98c36ae27a45e00afeb043fa58f41c2f9ac64bd817ed6b49ff965ddc2", + "f732a2db3a:0:6652843b5b0cc886be24b49f250b32b9d3057952cb801d818f492af7ef78f47fc32dc46fe7c3d3180c4bc5fce92635d7c07af3978ea10904f9bc219dfe154d0f:a2e24b9c6c537f37aae3f6c3caa117dec196ec58e48a8bb5be51c063e41ce645264d7c68e8c888ed1acc2f1a08586c9755625e264a0617e503334cc784afddcf", + "bfa6e78018:0:04d6e19a1b5c9bad615b453e7ce30988949aff7dbaa9e4cf4afb315d1d5aca0642a67c79e4f16c55c1306109a44c203e6e04dc3229f4bc37098b2ce14fd2f8be:77b068d3bc02d7bbb25d9051faef46fa66745d121b619a1d789d93984dac27571a3be106d7bead9ca7b6eeec2c6e56a35b680b101e750136aa13da9147a2edad", + ]; + for s in KNOWN_GOOD { + let secret = x25519::IdentitySecret::from_str(s).unwrap(); + let sig = secret.sign(b"asdf"); + assert!(secret.public.verify_signature(b"asdf", &sig)); + } + } + + #[test] + fn known_bad() { + const KNOWN_BAD: [&str; 4] = [ + "491287db97:0:00f7254f5e88878cc92e41d5be9533b3d52774a22a937ce4a2d2ff24915be138b3d6494264f5f208ccef162f27a3a7879472b141f3167975f4d0fc17b94d765f:4dfc009c3ee6103147f302fb71f1a3b11add9dd7c6ae4651976cffd8d1b2bf6bd11d0d50bcc5713524184323c29ffd4cd3009897b06b4c0f743a5e541de5479c", + "2fd3e57197:0:b42f063109e84fc39d01fd14b923739b64193a403ff88281590f35a13a42c966ebb5f0b8044d140a39982bc951e7841de931442b2bb63a06801e565a4770b65b:0e844a9ccda42451ccef921527826e6dcb917f8f8dc95fc030624c1d40fc9b18e163d7a98c36ae27a45e00afeb043fa58f41c2f9ac64bd817ed6b49ff965ddc2", + "f732a2db3a:1:6652843b5b0cc886be24b49f250b32b9d3057952cb801d818f492af7ef78f47fc32dc46fe7c3d3180c4bc5fce92635d7c07af3978ea10904f9bc219dfe154d0f:a2e24b9c6c537f37aae3f6c3caa117dec196ec58e48a8bb5be51c063e41ce645264d7c68e8c888ed1acc2f1a08586c9755625e264a0617e503334cc784afddcf", + "0fa6e78018:0:04d6e19a1b5c9bad615b353e7ce30988949aff7dbaa9e4cf4afb315d1d5aca0642a67c79e4f16c55c1306109a44c203e6e04dc3229f4bc37098b2ce14fd2f8be:77b068d3bc02d7bbb25d9051faef46fa66745d121b619a1d789d93984dac27571a3be106d7bead9ca7b6eeec2c6e56a35b680b101e750136aa13da9147a2edad", + ]; + for s in KNOWN_BAD { + assert!(x25519::IdentitySecret::from_str(s).is_err()); + } + } }