Index: net/android/keystore_unittest.cc |
diff --git a/net/android/keystore_unittest.cc b/net/android/keystore_unittest.cc |
index 58e3da796a51c6f9a59e42a581c5311a19d886b9..f6a130011e12b572876de37344796dff6f4426cf 100644 |
--- a/net/android/keystore_unittest.cc |
+++ b/net/android/keystore_unittest.cc |
@@ -62,9 +62,8 @@ typedef crypto::ScopedOpenSSL<DSA, DSA_free> ScopedDSA; |
typedef crypto::ScopedOpenSSL<EC_KEY, EC_KEY_free> ScopedEC_KEY; |
typedef crypto::ScopedOpenSSL<BIGNUM, BN_free> ScopedBIGNUM; |
-typedef crypto::ScopedOpenSSL< |
- PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free> |
- ScopedPKCS8_PRIV_KEY_INFO; |
+typedef crypto::ScopedOpenSSL<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free> |
+ ScopedPKCS8_PRIV_KEY_INFO; |
typedef base::android::ScopedJavaLocalRef<jobject> ScopedJava; |
@@ -125,8 +124,8 @@ EVP_PKEY* ImportPrivateKeyFile(const char* filename) { |
// Assume it is PEM_encoded. Load it as an EVP_PKEY. |
EVP_PKEY* pkey = PEM_read_PrivateKey(handle.get(), NULL, NULL, NULL); |
if (!pkey) { |
- LOG(ERROR) << "Could not load public key file: " << filename |
- << ", " << GetOpenSSLErrorString(); |
+ LOG(ERROR) << "Could not load public key file: " << filename << ", " |
+ << GetOpenSSLErrorString(); |
return NULL; |
} |
return pkey; |
@@ -136,8 +135,7 @@ EVP_PKEY* ImportPrivateKeyFile(const char* filename) { |
// |pkey| is the EVP_PKEY handle for the private key. |
// |pkcs8| will receive the PKCS#8 bytes. |
// Returns true on success, false otherwise. |
-bool GetPrivateKeyPkcs8Bytes(const ScopedEVP_PKEY& pkey, |
- std::string* pkcs8) { |
+bool GetPrivateKeyPkcs8Bytes(const ScopedEVP_PKEY& pkey, std::string* pkcs8) { |
// Convert to PKCS#8 object. |
ScopedPKCS8_PRIV_KEY_INFO p8_info(EVP_PKEY2PKCS8(pkey.get())); |
if (!p8_info.get()) { |
@@ -153,8 +151,7 @@ bool GetPrivateKeyPkcs8Bytes(const ScopedEVP_PKEY& pkey, |
return true; |
} |
-bool ImportPrivateKeyFileAsPkcs8(const char* filename, |
- std::string* pkcs8) { |
+bool ImportPrivateKeyFileAsPkcs8(const char* filename, std::string* pkcs8) { |
ScopedEVP_PKEY pkey(ImportPrivateKeyFile(filename)); |
if (!pkey.get()) |
return false; |
@@ -173,8 +170,8 @@ EVP_PKEY* ImportPublicKeyFile(const char* filename) { |
} |
EVP_PKEY* pkey = PEM_read_PUBKEY(handle.get(), NULL, NULL, NULL); |
if (!pkey) { |
- LOG(ERROR) << "Could not load public key file: " << filename |
- << ", " << GetOpenSSLErrorString(); |
+ LOG(ERROR) << "Could not load public key file: " << filename << ", " |
+ << GetOpenSSLErrorString(); |
return NULL; |
} |
return pkey; |
@@ -190,9 +187,8 @@ ScopedJava GetPKCS8PrivateKeyJava(PrivateKeyType key_type, |
reinterpret_cast<const uint8*>(pkcs8_key.data()), |
pkcs8_key.size())); |
- ScopedJava key( |
- Java_AndroidKeyStoreTestUtil_createPrivateKeyFromPKCS8( |
- env, key_type, bytes.obj())); |
+ ScopedJava key(Java_AndroidKeyStoreTestUtil_createPrivateKeyFromPKCS8( |
+ env, key_type, bytes.obj())); |
return key; |
} |
@@ -237,8 +233,7 @@ bool VerifyTestDSASignature(const base::StringPiece& message, |
ScopedDSA pub_key(EVP_PKEY_get1_DSA(pkey.get())); |
if (!pub_key.get()) { |
- LOG(ERROR) << "Could not get DSA public key: " |
- << GetOpenSSLErrorString(); |
+ LOG(ERROR) << "Could not get DSA public key: " << GetOpenSSLErrorString(); |
return false; |
} |
@@ -249,8 +244,7 @@ bool VerifyTestDSASignature(const base::StringPiece& message, |
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()); |
+ int ret = DSA_verify(0, digest, digest_len, sigbuf, siglen, pub_key.get()); |
if (ret != 1) { |
LOG(ERROR) << "DSA_verify() failed: " << GetOpenSSLErrorString(); |
return false; |
@@ -284,8 +278,7 @@ bool VerifyTestECDSASignature(const base::StringPiece& message, |
return false; |
ScopedEC_KEY pub_key(EVP_PKEY_get1_EC_KEY(pkey.get())); |
if (!pub_key.get()) { |
- LOG(ERROR) << "Could not get ECDSA public key: " |
- << GetOpenSSLErrorString(); |
+ LOG(ERROR) << "Could not get ECDSA public key: " << GetOpenSSLErrorString(); |
return false; |
} |
@@ -296,8 +289,7 @@ bool VerifyTestECDSASignature(const base::StringPiece& message, |
reinterpret_cast<const unsigned char*>(signature.data()); |
int siglen = static_cast<int>(signature.size()); |
- int ret = ECDSA_verify( |
- 0, digest, digest_len, sigbuf, siglen, pub_key.get()); |
+ int ret = ECDSA_verify(0, digest, digest_len, sigbuf, siglen, pub_key.get()); |
if (ret != 1) { |
LOG(ERROR) << "ECDSA_verify() failed: " << GetOpenSSLErrorString(); |
return false; |
@@ -321,8 +313,7 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
size_t max_signature_size; |
int key_type = EVP_PKEY_id(openssl_key); |
switch (key_type) { |
- case EVP_PKEY_RSA: |
- { |
+ case EVP_PKEY_RSA: { |
ScopedRSA rsa(EVP_PKEY_get1_RSA(openssl_key)); |
if (!rsa.get()) { |
LOG(ERROR) << "Could not get RSA from EVP_PKEY: " |
@@ -331,11 +322,10 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
} |
// With RSA, the signature will always be RSA_size() bytes. |
max_signature_size = static_cast<size_t>(RSA_size(rsa.get())); |
- unsigned char* p = OpenSSLWriteInto(&signature, |
- max_signature_size); |
+ unsigned char* p = OpenSSLWriteInto(&signature, max_signature_size); |
unsigned int p_len = 0; |
- int ret = RSA_sign( |
- NID_md5_sha1, digest, digest_len, p, &p_len, rsa.get()); |
+ int ret = |
+ RSA_sign(NID_md5_sha1, digest, digest_len, p, &p_len, rsa.get()); |
if (ret != 1) { |
LOG(ERROR) << "RSA_sign() failed: " << GetOpenSSLErrorString(); |
return false; |
@@ -343,8 +333,7 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
signature_size = static_cast<size_t>(p_len); |
break; |
} |
- case EVP_PKEY_DSA: |
- { |
+ case EVP_PKEY_DSA: { |
ScopedDSA dsa(EVP_PKEY_get1_DSA(openssl_key)); |
if (!dsa.get()) { |
LOG(ERROR) << "Could not get DSA from EVP_PKEY: " |
@@ -353,8 +342,7 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
} |
// 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 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()); |
@@ -365,8 +353,7 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
signature_size = static_cast<size_t>(p_len); |
break; |
} |
- case EVP_PKEY_EC: |
- { |
+ case EVP_PKEY_EC: { |
ScopedEC_KEY ecdsa(EVP_PKEY_get1_EC_KEY(openssl_key)); |
if (!ecdsa.get()) { |
LOG(ERROR) << "Could not get EC_KEY from EVP_PKEY: " |
@@ -375,12 +362,10 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
} |
// Note, the actual signature can be smaller than ECDSA_size() |
max_signature_size = ECDSA_size(ecdsa.get()); |
- unsigned char* p = OpenSSLWriteInto(&signature, |
- max_signature_size); |
+ unsigned char* p = OpenSSLWriteInto(&signature, max_signature_size); |
unsigned int p_len = 0; |
// Note: first parameter is ignored by function. |
- int ret = ECDSA_sign( |
- 0, digest, digest_len, p, &p_len, ecdsa.get()); |
+ int ret = ECDSA_sign(0, digest, digest_len, p, &p_len, ecdsa.get()); |
if (ret != 1) { |
LOG(ERROR) << "ECDSA_sign() fialed: " << GetOpenSSLErrorString(); |
return false; |
@@ -399,7 +384,7 @@ bool SignWithOpenSSL(const base::StringPiece& message, |
} |
if (signature_size > max_signature_size) { |
LOG(ERROR) << "Signature size mismatch, actual " << signature_size |
- << ", expected <= " << max_signature_size; |
+ << ", expected <= " << max_signature_size; |
return false; |
} |
signature.resize(signature_size); |
@@ -421,21 +406,19 @@ bool CompareSignatureWithOpenSSL(const base::StringPiece& message, |
SignWithOpenSSL(message, openssl_key, &openssl_signature); |
if (signature.size() != openssl_signature.size()) { |
- LOG(ERROR) << "Signature size mismatch, actual " |
- << signature.size() << ", expected " |
- << openssl_signature.size(); |
+ LOG(ERROR) << "Signature size mismatch, actual " << signature.size() |
+ << ", expected " << openssl_signature.size(); |
return false; |
} |
for (size_t n = 0; n < signature.size(); ++n) { |
if (openssl_signature[n] != signature[n]) { |
- LOG(ERROR) << "Signature byte mismatch at index " << n |
- << "actual " << signature[n] << ", expected " |
- << openssl_signature[n]; |
- LOG(ERROR) << "Actual signature : " |
- << base::HexEncode(signature.data(), signature.size()); |
- LOG(ERROR) << "Expected signature: " |
- << base::HexEncode(openssl_signature.data(), |
- openssl_signature.size()); |
+ LOG(ERROR) << "Signature byte mismatch at index " << n << "actual " |
+ << signature[n] << ", expected " << openssl_signature[n]; |
+ LOG(ERROR) << "Actual signature : " << base::HexEncode(signature.data(), |
+ signature.size()); |
+ LOG(ERROR) << "Expected signature: " << base::HexEncode( |
+ openssl_signature.data(), |
+ openssl_signature.size()); |
return false; |
} |
} |
@@ -456,13 +439,10 @@ void DoKeySigning(jobject android_key, |
// First, get the platform signature. |
std::vector<uint8> android_signature; |
ASSERT_TRUE( |
- RawSignDigestWithPrivateKey(android_key, |
- message, |
- &android_signature)); |
+ RawSignDigestWithPrivateKey(android_key, message, &android_signature)); |
- result->assign( |
- reinterpret_cast<const char*>(&android_signature[0]), |
- android_signature.size()); |
+ result->assign(reinterpret_cast<const char*>(&android_signature[0]), |
+ android_signature.size()); |
} |
// Sign a message with our OpenSSL EVP_PKEY wrapper around platform |
@@ -482,14 +462,13 @@ void DoKeySigningWithWrapper(EVP_PKEY* wrapper_key, |
SignWithOpenSSL(message, wrapper_key, &wrapper_signature); |
ASSERT_NE(0U, wrapper_signature.size()); |
- result->assign( |
- reinterpret_cast<const char*>(&wrapper_signature[0]), |
- wrapper_signature.size()); |
+ result->assign(reinterpret_cast<const char*>(&wrapper_signature[0]), |
+ wrapper_signature.size()); |
} |
} // namespace |
-TEST(AndroidKeyStore,GetRSAKeyModulus) { |
+TEST(AndroidKeyStore, GetRSAKeyModulus) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
InitEnv(); |
@@ -502,8 +481,8 @@ TEST(AndroidKeyStore,GetRSAKeyModulus) { |
ASSERT_TRUE(GetPrivateKeyPkcs8Bytes(pkey, &pkcs8_data)); |
// Create platform PrivateKey object from it. |
- ScopedJava key_java = GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_RSA, |
- pkcs8_data); |
+ ScopedJava key_java = |
+ GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_RSA, pkcs8_data); |
ASSERT_FALSE(key_java.is_null()); |
// Retrieve the corresponding modulus through JNI |
@@ -512,10 +491,9 @@ TEST(AndroidKeyStore,GetRSAKeyModulus) { |
// Create an OpenSSL BIGNUM from it. |
ScopedBIGNUM bn( |
- BN_bin2bn( |
- reinterpret_cast<const unsigned char*>(&modulus_java[0]), |
- static_cast<int>(modulus_java.size()), |
- NULL)); |
+ BN_bin2bn(reinterpret_cast<const unsigned char*>(&modulus_java[0]), |
+ static_cast<int>(modulus_java.size()), |
+ NULL)); |
ASSERT_TRUE(bn.get()); |
// Compare it to the one in the RSA key, they must be identical. |
@@ -525,7 +503,7 @@ TEST(AndroidKeyStore,GetRSAKeyModulus) { |
ASSERT_EQ(0, BN_cmp(bn.get(), rsa.get()->n)); |
} |
-TEST(AndroidKeyStore,GetDSAKeyParamQ) { |
+TEST(AndroidKeyStore, GetDSAKeyParamQ) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
InitEnv(); |
@@ -538,8 +516,8 @@ TEST(AndroidKeyStore,GetDSAKeyParamQ) { |
ASSERT_TRUE(GetPrivateKeyPkcs8Bytes(pkey, &pkcs8_data)); |
// Create platform PrivateKey object from it. |
- ScopedJava key_java = GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_DSA, |
- pkcs8_data); |
+ ScopedJava key_java = |
+ GetPKCS8PrivateKeyJava(PRIVATE_KEY_TYPE_DSA, pkcs8_data); |
ASSERT_FALSE(key_java.is_null()); |
// Retrieve the corresponding Q parameter through JNI |
@@ -547,11 +525,9 @@ TEST(AndroidKeyStore,GetDSAKeyParamQ) { |
ASSERT_TRUE(GetDSAKeyParamQ(key_java.obj(), &q_java)); |
// Create an OpenSSL BIGNUM from it. |
- ScopedBIGNUM bn( |
- BN_bin2bn( |
- reinterpret_cast<const unsigned char*>(&q_java[0]), |
- static_cast<int>(q_java.size()), |
- NULL)); |
+ 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. |
@@ -561,16 +537,15 @@ TEST(AndroidKeyStore,GetDSAKeyParamQ) { |
ASSERT_EQ(0, BN_cmp(bn.get(), dsa.get()->q)); |
} |
-TEST(AndroidKeyStore,GetPrivateKeyTypeRSA) { |
+TEST(AndroidKeyStore, GetPrivateKeyTypeRSA) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
ScopedJava rsa_key = GetRSATestKeyJava(); |
ASSERT_FALSE(rsa_key.is_null()); |
- EXPECT_EQ(PRIVATE_KEY_TYPE_RSA, |
- GetPrivateKeyType(rsa_key.obj())); |
+ EXPECT_EQ(PRIVATE_KEY_TYPE_RSA, GetPrivateKeyType(rsa_key.obj())); |
} |
-TEST(AndroidKeyStore,SignWithPrivateKeyRSA) { |
+TEST(AndroidKeyStore, SignWithPrivateKeyRSA) { |
ScopedJava rsa_key = GetRSATestKeyJava(); |
ASSERT_FALSE(rsa_key.is_null()); |
@@ -592,7 +567,7 @@ TEST(AndroidKeyStore,SignWithPrivateKeyRSA) { |
// All good. |
} |
-TEST(AndroidKeyStore,SignWithWrapperKeyRSA) { |
+TEST(AndroidKeyStore, SignWithWrapperKeyRSA) { |
crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); |
ScopedJava rsa_key = GetRSATestKeyJava(); |
@@ -605,8 +580,7 @@ TEST(AndroidKeyStore,SignWithWrapperKeyRSA) { |
ASSERT_TRUE(openssl_key.get()); |
// Check that RSA_size() works properly on the wrapper key. |
- EXPECT_EQ(EVP_PKEY_size(openssl_key.get()), |
- EVP_PKEY_size(wrapper_key.get())); |
+ EXPECT_EQ(EVP_PKEY_size(openssl_key.get()), EVP_PKEY_size(wrapper_key.get())); |
// Message size must be 36 for RSA_sign(NID_md5_sha1,...) to return |
// without an error. |
@@ -614,24 +588,21 @@ TEST(AndroidKeyStore,SignWithWrapperKeyRSA) { |
ASSERT_EQ(36U, message.size()); |
std::string signature; |
- DoKeySigningWithWrapper(wrapper_key.get(), |
- openssl_key.get(), |
- message, |
- &signature); |
+ DoKeySigningWithWrapper( |
+ wrapper_key.get(), openssl_key.get(), message, &signature); |
ASSERT_TRUE( |
CompareSignatureWithOpenSSL(message, signature, openssl_key.get())); |
} |
-TEST(AndroidKeyStore,GetPrivateKeyTypeDSA) { |
+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())); |
+ EXPECT_EQ(PRIVATE_KEY_TYPE_DSA, GetPrivateKeyType(dsa_key.obj())); |
} |
-TEST(AndroidKeyStore,SignWithPrivateKeyDSA) { |
+TEST(AndroidKeyStore, SignWithPrivateKeyDSA) { |
ScopedJava dsa_key = GetDSATestKeyJava(); |
ASSERT_FALSE(dsa_key.is_null()); |
@@ -646,42 +617,37 @@ TEST(AndroidKeyStore,SignWithPrivateKeyDSA) { |
ASSERT_TRUE(VerifyTestDSASignature(message, signature)); |
} |
-TEST(AndroidKeyStore,SignWithWrapperKeyDSA) { |
+TEST(AndroidKeyStore, SignWithWrapperKeyDSA) { |
crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); |
ScopedJava dsa_key = GetDSATestKeyJava(); |
ASSERT_FALSE(dsa_key.is_null()); |
- ScopedEVP_PKEY wrapper_key( |
- GetOpenSSLPrivateKeyWrapper(dsa_key.obj())); |
+ ScopedEVP_PKEY wrapper_key(GetOpenSSLPrivateKeyWrapper(dsa_key.obj())); |
ASSERT_TRUE(wrapper_key.get()); |
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())); |
+ 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); |
+ DoKeySigningWithWrapper( |
+ wrapper_key.get(), openssl_key.get(), message, &signature); |
ASSERT_TRUE(VerifyTestDSASignature(message, signature)); |
} |
-TEST(AndroidKeyStore,GetPrivateKeyTypeECDSA) { |
+TEST(AndroidKeyStore, GetPrivateKeyTypeECDSA) { |
crypto::OpenSSLErrStackTracer err_trace(FROM_HERE); |
ScopedJava ecdsa_key = GetECDSATestKeyJava(); |
ASSERT_FALSE(ecdsa_key.is_null()); |
- EXPECT_EQ(PRIVATE_KEY_TYPE_ECDSA, |
- GetPrivateKeyType(ecdsa_key.obj())); |
+ EXPECT_EQ(PRIVATE_KEY_TYPE_ECDSA, GetPrivateKeyType(ecdsa_key.obj())); |
} |
-TEST(AndroidKeyStore,SignWithPrivateKeyECDSA) { |
+TEST(AndroidKeyStore, SignWithPrivateKeyECDSA) { |
ScopedJava ecdsa_key = GetECDSATestKeyJava(); |
ASSERT_FALSE(ecdsa_key.is_null()); |
@@ -700,23 +666,19 @@ TEST(AndroidKeyStore, SignWithWrapperKeyECDSA) { |
ScopedJava ecdsa_key = GetECDSATestKeyJava(); |
ASSERT_FALSE(ecdsa_key.is_null()); |
- ScopedEVP_PKEY wrapper_key( |
- GetOpenSSLPrivateKeyWrapper(ecdsa_key.obj())); |
+ ScopedEVP_PKEY wrapper_key(GetOpenSSLPrivateKeyWrapper(ecdsa_key.obj())); |
ASSERT_TRUE(wrapper_key.get()); |
ScopedEVP_PKEY openssl_key(ImportPrivateKeyFile(kTestEcdsaKeyFile)); |
ASSERT_TRUE(openssl_key.get()); |
// Check that ECDSA size works correctly on the wrapper. |
- EXPECT_EQ(EVP_PKEY_size(openssl_key.get()), |
- EVP_PKEY_size(wrapper_key.get())); |
+ EXPECT_EQ(EVP_PKEY_size(openssl_key.get()), EVP_PKEY_size(wrapper_key.get())); |
std::string message = kTestEcdsaHash; |
std::string signature; |
- DoKeySigningWithWrapper(wrapper_key.get(), |
- openssl_key.get(), |
- message, |
- &signature); |
+ DoKeySigningWithWrapper( |
+ wrapper_key.get(), openssl_key.get(), message, &signature); |
ASSERT_TRUE(VerifyTestECDSASignature(message, signature)); |
} |