nsINSSErrorsService.idl 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2. *
  3. * This Source Code Form is subject to the terms of the Mozilla Public
  4. * License, v. 2.0. If a copy of the MPL was not distributed with this
  5. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  6. #include "nsISupports.idl"
  7. [scriptable, uuid(12f60021-e14b-4020-99d1-ed2c795be66a)]
  8. interface nsINSSErrorsService : nsISupports
  9. {
  10. /**
  11. * @param aNSPRCode An error code obtained using PR_GetError()
  12. * @return True if it is error code defined by the NSS library
  13. */
  14. boolean isNSSErrorCode(in int32_t aNSPRCode);
  15. /**
  16. * Function will fail if aNSPRCode is not an NSS error code.
  17. * @param aNSPRCode An error code obtained using PR_GetError()
  18. * @return The result of the conversion, an XPCOM error code
  19. */
  20. nsresult getXPCOMFromNSSError(in int32_t aNSPRCode);
  21. /**
  22. * Function will fail if aXPCOMErrorCode is not an NSS error code.
  23. * @param aXPCOMErrorCode An error code obtained using getXPCOMFromNSSError
  24. * return A localized human readable error explanation.
  25. */
  26. AString getErrorMessage(in nsresult aXPCOMErrorCode);
  27. /**
  28. * Function will fail if aXPCOMErrorCode is not an NSS error code.
  29. * @param aXPCOMErrorCode An error code obtained using getXPCOMFromNSSError
  30. * return the error class of the code, either ERROR_CLASS_BAD_CERT
  31. * or ERROR_CLASS_SSL_PROTOCOL
  32. */
  33. uint32_t getErrorClass(in nsresult aXPCOMErrorCode);
  34. const unsigned long ERROR_CLASS_SSL_PROTOCOL = 1;
  35. const unsigned long ERROR_CLASS_BAD_CERT = 2;
  36. /**
  37. * The following values define the range of NSPR error codes used by NSS.
  38. * NSS remains the authorative source for these numbers, as a result,
  39. * the values might change in the future.
  40. * The security module will perform a runtime check and assertion
  41. * to ensure the values are in synch with NSS.
  42. */
  43. const long NSS_SEC_ERROR_BASE = -(0x2000);
  44. const long NSS_SEC_ERROR_LIMIT = (NSS_SEC_ERROR_BASE + 1000);
  45. const long NSS_SSL_ERROR_BASE = -(0x3000);
  46. const long NSS_SSL_ERROR_LIMIT = (NSS_SSL_ERROR_BASE + 1000);
  47. /**
  48. * The error codes within each module must fit in 16 bits. We want these
  49. * errors to fit in the same module as the NSS errors but not overlap with
  50. * any of them. Converting an NSS SEC, NSS SSL, or mozilla::pkix error to
  51. * an NS error involves negating the value of the error and then
  52. * synthesizing an error in the NS_ERROR_MODULE_SECURITY module. Hence,
  53. * mozilla::pkix errors will start at a negative value that both doesn't
  54. * overlap with the current value ranges for NSS errors and that will fit
  55. * in 16 bits when negated.
  56. *
  57. * Keep these in sync with pkixnss.h.
  58. */
  59. const long MOZILLA_PKIX_ERROR_BASE = -(0x4000);
  60. const long MOZILLA_PKIX_ERROR_LIMIT = (MOZILLA_PKIX_ERROR_BASE + 1000);
  61. };