Chromium Code Reviews| 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 |