diff options
author | Michiel Visser <opensource@webmichiel.nl> | 2022-03-18 10:48:30 +0100 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2022-03-20 00:51:50 +0330 |
commit | 596391a4ee01163be3f29236c658c0aa7e52b6f9 (patch) | |
tree | c0b264adf1d107e917ba1956b85504ea2a8047bf /Tests | |
parent | 66d99c83d93252d0bebe51d80d0da8967d18f542 (diff) | |
download | serenity-596391a4ee01163be3f29236c658c0aa7e52b6f9.zip |
LibCrypto: Add DH exchange for SECP256r1 to TestCurves
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/LibCrypto/TestCurves.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Tests/LibCrypto/TestCurves.cpp b/Tests/LibCrypto/TestCurves.cpp index 8aa007aa71..b03499582a 100644 --- a/Tests/LibCrypto/TestCurves.cpp +++ b/Tests/LibCrypto/TestCurves.cpp @@ -176,6 +176,14 @@ TEST_CASE(test_secp256r1) 0xBA, 0x7D, 0xAD, 0xE6, 0x3C, 0xE9, 0x82, 0x29, 0x9E, 0x04, 0xB7, 0x9D, 0x22, 0x78, 0x73, 0xD1, }; + u8 shared_secret_data[65] { + 0x04, + 0x7c, 0xf2, 0x7b, 0x18, 0x8d, 0x03, 0x4f, 0x7e, 0x8a, 0x52, 0x38, 0x03, 0x04, 0xb5, 0x1a, 0xc3, + 0xc0, 0x89, 0x69, 0xe2, 0x77, 0xf2, 0x1b, 0x35, 0xa6, 0x0b, 0x48, 0xfc, 0x47, 0x66, 0x99, 0x78, + 0x07, 0x77, 0x55, 0x10, 0xdb, 0x8e, 0xd0, 0x40, 0x29, 0x3d, 0x9a, 0xc6, 0x9f, 0x74, 0x30, 0xdb, + 0xba, 0x7d, 0xad, 0xe6, 0x3c, 0xe9, 0x82, 0x29, 0x9e, 0x04, 0xb7, 0x9d, 0x22, 0x78, 0x73, 0xd1, + }; + u8 private_key_data[32] { 0x01, 0xff, 0xf8, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xff, 0x80, 0x1f, 0xff, 0xc0, 0xf8, 0x1f, 0x01, 0xff, 0xf8, 0x00, 0x1f, 0xc0, 0x05, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0xff, 0xff, 0xfc, @@ -194,6 +202,7 @@ TEST_CASE(test_secp256r1) ReadonlyBytes alice_public_key { alice_public_key_data, 65 }; ReadonlyBytes bob_private_key { bob_private_key_data, 32 }; ReadonlyBytes bob_public_key { bob_public_key_data, 65 }; + ReadonlyBytes shared_secret { shared_secret_data, 65 }; Crypto::Curves::SECP256r1 curve; @@ -203,6 +212,14 @@ TEST_CASE(test_secp256r1) auto generated_bob_public = MUST(curve.generate_public_key(bob_private_key)); EXPECT_EQ(bob_public_key, generated_bob_public); + auto shared_alice = MUST(curve.compute_coordinate(alice_private_key, bob_public_key)); + EXPECT_EQ(shared_alice, shared_secret); + + auto shared_bob = MUST(curve.compute_coordinate(bob_private_key, alice_public_key)); + EXPECT_EQ(shared_bob, shared_secret); + + EXPECT_EQ(shared_alice, shared_bob); + auto generated_public = MUST(curve.generate_public_key({ private_key_data, 32 })); ReadonlyBytes expected_public_key { expected_public_key_data, 65 }; EXPECT_EQ(expected_public_key, generated_public); |