diff options
Diffstat (limited to 'chromium/crypto/ec_private_key_openssl.cc')
-rw-r--r-- | chromium/crypto/ec_private_key_openssl.cc | 5 |
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; |