Index: net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp |
diff --git a/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp b/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp |
index e3146609f2d3613b2908ed533b17f12fbf44dde6..3d0142cae9f35d992d058f41aadd7561d8211f4b 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 port_error = PORT_GetError(); |
wtc
2011/07/12 20:22:38
Please name this variable just 'error', or 'nss_er
mattm
2011/07/12 22:56:36
Done.
|
+ LOG(ERROR) << "PKCS#12 import failed with error " << port_error; |
+ switch (port_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; |
+ 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 |