Index: net/android/keystore_unittest.cc |
diff --git a/net/android/keystore_unittest.cc b/net/android/keystore_unittest.cc |
index 076693f850f97fccdad41630ea508d42cef11072..4fe38abba3876f468324a3c80432bfe30e075939 100644 |
--- a/net/android/keystore_unittest.cc |
+++ b/net/android/keystore_unittest.cc |
@@ -205,54 +205,6 @@ ScopedJava GetRSATestKeyJava() { |
return GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_RSA, key); |
} |
-const char kTestDsaKeyFile[] = "android-test-key-dsa.pem"; |
-const char kTestDsaPublicKeyFile[] = "android-test-key-dsa-public.pem"; |
- |
-// The DSA test hash must be 20 bytes exactly. |
-const char kTestDsaHash[] = "0123456789ABCDEFGHIJ"; |
- |
-// Retrieve a JNI local ref for our test DSA key. |
-ScopedJava GetDSATestKeyJava() { |
- std::string key; |
- if (!ImportPrivateKeyFileAsPkcs8(kTestDsaKeyFile, &key)) |
- return ScopedJava(); |
- return GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_DSA, key); |
-} |
- |
-// Call this function to verify that one message signed with our |
-// test DSA private key is correct. Since DSA signing introduces |
-// random elements in the signature, it is not possible to compare |
-// signature bits directly. However, one can use the public key |
-// to do the check. |
-bool VerifyTestDSASignature(const base::StringPiece& message, |
- const base::StringPiece& signature) { |
- crypto::ScopedEVP_PKEY pkey(ImportPublicKeyFile(kTestDsaPublicKeyFile)); |
- if (!pkey.get()) |
- return false; |
- |
- crypto::ScopedDSA pub_key(EVP_PKEY_get1_DSA(pkey.get())); |
- if (!pub_key.get()) { |
- LOG(ERROR) << "Could not get DSA public key: " |
- << GetOpenSSLErrorString(); |
- return false; |
- } |
- |
- const unsigned char* digest = |
- reinterpret_cast<const unsigned char*>(message.data()); |
- int digest_len = static_cast<int>(message.size()); |
- const unsigned char* sigbuf = |
- reinterpret_cast<const unsigned char*>(signature.data()); |
- int siglen = static_cast<int>(signature.size()); |
- |
- int ret = DSA_verify( |
- 0, digest, digest_len, sigbuf, siglen, pub_key.get()); |
- if (ret != 1) { |
- LOG(ERROR) << "DSA_verify() failed: " << GetOpenSSLErrorString(); |
- return false; |
- } |
- return true; |
-} |
- |
const char kTestEcdsaKeyFile[] = "android-test-key-ecdsa.pem"; |
const char kTestEcdsaPublicKeyFile[] = "android-test-key-ecdsa-public.pem"; |
@@ -268,7 +220,7 @@ ScopedJava GetECDSATestKeyJava() { |
} |
// Call this function to verify that one message signed with our |
-// test DSA private key is correct. Since DSA signing introduces |
+// test ECDSA private key is correct. Since ECDSA signing introduces |
// random elements in the signature, it is not possible to compare |
// signature bits directly. However, one can use the public key |
// to do the check. |
@@ -338,28 +290,6 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
signature_size = static_cast<size_t>(p_len); |
break; |
} |
- case EVP_PKEY_DSA: |
- { |
- crypto::ScopedDSA dsa(EVP_PKEY_get1_DSA(openssl_key)); |
- if (!dsa.get()) { |
- LOG(ERROR) << "Could not get DSA from EVP_PKEY: " |
- << GetOpenSSLErrorString(); |
- return false; |
- } |
- // Note, the actual signature can be smaller than DSA_size() |
- max_signature_size = static_cast<size_t>(DSA_size(dsa.get())); |
- unsigned char* p = OpenSSLWriteInto(&signature, |
- max_signature_size); |
- unsigned int p_len = 0; |
- // Note: first parameter is ignored by function. |
- int ret = DSA_sign(0, digest, digest_len, p, &p_len, dsa.get()); |
- if (ret != 1) { |
- LOG(ERROR) << "DSA_sign() failed: " << GetOpenSSLErrorString(); |
- return false; |
- } |
- signature_size = static_cast<size_t>(p_len); |
- break; |
- } |
case EVP_PKEY_EC: |
{ |
crypto::ScopedEC_KEY ecdsa(EVP_PKEY_get1_EC_KEY(openssl_key)); |
@@ -519,41 +449,6 @@ TEST(AndroidKeyStore,GetRSAKeyModulus) { |
ASSERT_EQ(0, BN_cmp(bn.get(), rsa.get()->n)); |
} |
-TEST(AndroidKeyStore,GetDSAKeyParamQ) { |
- crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
- InitEnv(); |
- |
- // Load the test DSA key. |
- crypto::ScopedEVP_PKEY pkey(ImportPrivateKeyFile(kTestDsaKeyFile)); |
- ASSERT_TRUE(pkey.get()); |
- |
- // Convert it to encoded PKCS#8 bytes. |
- std::string pkcs8_data; |
- ASSERT_TRUE(GetPrivateKeyPkcs8Bytes(pkey, &pkcs8_data)); |
- |
- // Create platform PrivateKey object from it. |
- ScopedJava key_java = GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_DSA, |
- pkcs8_data); |
- ASSERT_FALSE(key_java.is_null()); |
- |
- // Retrieve the corresponding Q parameter through JNI |
- std::vector<uint8> q_java; |
- ASSERT_TRUE(GetDSAKeyParamQ(key_java.obj(), &q_java)); |
- |
- // Create an OpenSSL BIGNUM from it. |
- crypto::ScopedBIGNUM bn( |
- BN_bin2bn(reinterpret_cast<const unsigned char*>(&q_java[0]), |
- static_cast<int>(q_java.size()), |
- NULL)); |
- ASSERT_TRUE(bn.get()); |
- |
- // Compare it to the one in the RSA key, they must be identical. |
- crypto::ScopedDSA dsa(EVP_PKEY_get1_DSA(pkey.get())); |
- ASSERT_TRUE(dsa.get()) << GetOpenSSLErrorString(); |
- |
- ASSERT_EQ(0, BN_cmp(bn.get(), dsa.get()->q)); |
-} |
- |
TEST(AndroidKeyStore,GetPrivateKeyTypeRSA) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
@@ -616,56 +511,6 @@ TEST(AndroidKeyStore,SignWithWrapperKeyRSA) { |
CompareSignatureWithOpenSSL(message, signature, openssl_key.get())); |
} |
-TEST(AndroidKeyStore,GetPrivateKeyTypeDSA) { |
- crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
- |
- ScopedJava dsa_key = GetDSATestKeyJava(); |
- ASSERT_FALSE(dsa_key.is_null()); |
- EXPECT_EQ(PRIVATE_KEY_TYPE_DSA, |
- GetPrivateKeyType(dsa_key.obj())); |
-} |
- |
-TEST(AndroidKeyStore,SignWithPrivateKeyDSA) { |
- ScopedJava dsa_key = GetDSATestKeyJava(); |
- ASSERT_FALSE(dsa_key.is_null()); |
- |
- crypto::ScopedEVP_PKEY openssl_key(ImportPrivateKeyFile(kTestDsaKeyFile)); |
- ASSERT_TRUE(openssl_key.get()); |
- |
- std::string message = kTestDsaHash; |
- ASSERT_EQ(20U, message.size()); |
- |
- std::string signature; |
- DoKeySigning(dsa_key.obj(), openssl_key.get(), message, &signature); |
- ASSERT_TRUE(VerifyTestDSASignature(message, signature)); |
-} |
- |
-TEST(AndroidKeyStore,SignWithWrapperKeyDSA) { |
- crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); |
- |
- ScopedJava dsa_key = GetDSATestKeyJava(); |
- ASSERT_FALSE(dsa_key.is_null()); |
- |
- crypto::ScopedEVP_PKEY wrapper_key( |
- GetOpenSSLPrivateKeyWrapper(dsa_key.obj())); |
- ASSERT_TRUE(wrapper_key.get()); |
- |
- crypto::ScopedEVP_PKEY openssl_key(ImportPrivateKeyFile(kTestDsaKeyFile)); |
- ASSERT_TRUE(openssl_key.get()); |
- |
- // Check that DSA_size() works correctly on the wrapper. |
- EXPECT_EQ(EVP_PKEY_size(openssl_key.get()), |
- EVP_PKEY_size(wrapper_key.get())); |
- |
- std::string message = kTestDsaHash; |
- std::string signature; |
- DoKeySigningWithWrapper(wrapper_key.get(), |
- openssl_key.get(), |
- message, |
- &signature); |
- ASSERT_TRUE(VerifyTestDSASignature(message, signature)); |
-} |
- |
TEST(AndroidKeyStore,GetPrivateKeyTypeECDSA) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |