Index: crypto/signature_verifier_unittest.cc |
diff --git a/crypto/signature_verifier_unittest.cc b/crypto/signature_verifier_unittest.cc |
index f6c42e0fdc7f208fe4f1c4cd71f381482ca2bf0b..b521bd7bcd295f6b0d8b3f7ef4dc3ecdc81866f9 100644 |
--- a/crypto/signature_verifier_unittest.cc |
+++ b/crypto/signature_verifier_unittest.cc |
@@ -258,6 +258,26 @@ TEST(SignatureVerifierTest, BasicTest) { |
ok = verifier.VerifyFinal(); |
EXPECT_FALSE(ok); |
} |
+ |
+ // Test 5: import an invalid key. |
+ uint8_t bad_public_key_info[sizeof(public_key_info)]; |
+ memcpy(bad_public_key_info, public_key_info, sizeof(public_key_info)); |
+ bad_public_key_info[0] += 1; // Corrupt part of the SPKI syntax. |
+ ok = verifier.VerifyInit(signature_algorithm, |
+ sizeof(signature_algorithm), |
+ signature, sizeof(signature), |
+ bad_public_key_info, sizeof(bad_public_key_info)); |
+ EXPECT_FALSE(ok); |
+ |
+ // Test 6: import a key with extra data. |
+ uint8_t long_public_key_info[sizeof(public_key_info) + 5]; |
+ memset(long_public_key_info, 0, sizeof(long_public_key_info)); |
+ memcpy(long_public_key_info, public_key_info, sizeof(public_key_info)); |
+ ok = verifier.VerifyInit(signature_algorithm, |
+ sizeof(signature_algorithm), |
+ signature, sizeof(signature), |
+ long_public_key_info, sizeof(long_public_key_info)); |
+ EXPECT_FALSE(ok); |
} |
////////////////////////////////////////////////////////////////////// |