diff options
author | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-13 02:53:22 +0000 |
---|---|---|
committer | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-13 02:53:22 +0000 |
commit | 35f05d23297b66e2098ae05f7f27d4832562bc48 (patch) | |
tree | 853ac3c035717356684c69fe268c41967ee0a0c9 /net/third_party | |
parent | 50264918ffe6571a692525f06d976d6005e6dd78 (diff) | |
download | chromium_src-35f05d23297b66e2098ae05f7f27d4832562bc48.zip chromium_src-35f05d23297b66e2098ae05f7f27d4832562bc48.tar.gz chromium_src-35f05d23297b66e2098ae05f7f27d4832562bc48.tar.bz2 |
Linux Cert manager: improve PKCS #12 import error messages.
BUG=76275
TEST=try to import a corrupt or unsupported PKCS #12 file.
Review URL: http://codereview.chromium.org/7338011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92306 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/third_party')
-rw-r--r-- | net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp b/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp index e314660..d659900 100644 --- a/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp +++ b/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp @@ -228,13 +228,30 @@ finish: // We should use that error code instead of inventing a new one // for every error possible. if (srv != SECSuccess) { - if (SEC_ERROR_BAD_PASSWORD == PORT_GetError()) { - import_result = net::ERR_PKCS12_IMPORT_BAD_PASSWORD; - } - else - { - LOG(ERROR) << "PKCS#12 import failed with error " << PORT_GetError(); - import_result = net::ERR_PKCS12_IMPORT_FAILED; + int error = PORT_GetError(); + LOG(ERROR) << "PKCS#12 import failed with error " << error; + switch (error) { + case SEC_ERROR_BAD_PASSWORD: + case SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT: + import_result = net::ERR_PKCS12_IMPORT_BAD_PASSWORD; + break; + case SEC_ERROR_PKCS12_INVALID_MAC: + import_result = net::ERR_PKCS12_IMPORT_INVALID_MAC; + break; + case SEC_ERROR_BAD_DER: + case SEC_ERROR_PKCS12_DECODING_PFX: + case SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE: + import_result = net::ERR_PKCS12_IMPORT_INVALID_FILE; + break; + case SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM: + case SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE: + case SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM: + case SEC_ERROR_PKCS12_UNSUPPORTED_VERSION: + import_result = net::ERR_PKCS12_IMPORT_UNSUPPORTED; + break; + default: + import_result = net::ERR_PKCS12_IMPORT_FAILED; + break; } } // Finish the decoder |