summaryrefslogtreecommitdiffstats
path: root/chromium/crypto/ec_private_key_openssl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/crypto/ec_private_key_openssl.cc')
-rw-r--r--chromium/crypto/ec_private_key_openssl.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/chromium/crypto/ec_private_key_openssl.cc b/chromium/crypto/ec_private_key_openssl.cc
index ce921dde15f..8504ab50c35 100644
--- a/chromium/crypto/ec_private_key_openssl.cc
+++ b/chromium/crypto/ec_private_key_openssl.cc
@@ -132,6 +132,11 @@ ECPrivateKey* ECPrivateKey::CreateFromEncryptedPrivateKeyInfo(
PKCS8_decrypt(p8_encrypted.get(),
password.c_str(),
static_cast<int>(password.size())));
+ if (!p8_decrypted.get() && password.empty()) {
+ // Hack for reading keys generated by ec_private_key_nss. Passing NULL
+ // causes OpenSSL to use an empty password instead of "\0\0".
+ p8_decrypted.reset(PKCS8_decrypt(p8_encrypted.get(), NULL, 0));
+ }
if (!p8_decrypted.get())
return NULL;