summaryrefslogtreecommitdiffstats
path: root/net/third_party
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-13 02:53:22 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-13 02:53:22 +0000
commit35f05d23297b66e2098ae05f7f27d4832562bc48 (patch)
tree853ac3c035717356684c69fe268c41967ee0a0c9 /net/third_party
parent50264918ffe6571a692525f06d976d6005e6dd78 (diff)
downloadchromium_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.cpp31
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