/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef __SEC_ERR_H_
#define __SEC_ERR_H_

#include "utilrename.h"

#define SEC_ERROR_BASE (-0x2000)
#define SEC_ERROR_LIMIT (SEC_ERROR_BASE + 1000)

#define IS_SEC_ERROR(code) \
    (((code) >= SEC_ERROR_BASE) && ((code) < SEC_ERROR_LIMIT))

#ifndef NO_SECURITY_ERROR_ENUM
typedef enum {
    SEC_ERROR_IO = SEC_ERROR_BASE + 0,
    SEC_ERROR_LIBRARY_FAILURE = SEC_ERROR_BASE + 1,
    SEC_ERROR_BAD_DATA = SEC_ERROR_BASE + 2,
    SEC_ERROR_OUTPUT_LEN = SEC_ERROR_BASE + 3,
    SEC_ERROR_INPUT_LEN = SEC_ERROR_BASE + 4,
    SEC_ERROR_INVALID_ARGS = SEC_ERROR_BASE + 5,
    SEC_ERROR_INVALID_ALGORITHM = SEC_ERROR_BASE + 6,
    SEC_ERROR_INVALID_AVA = SEC_ERROR_BASE + 7,
    SEC_ERROR_INVALID_TIME = SEC_ERROR_BASE + 8,
    SEC_ERROR_BAD_DER = SEC_ERROR_BASE + 9,
    SEC_ERROR_BAD_SIGNATURE = SEC_ERROR_BASE + 10,
    SEC_ERROR_EXPIRED_CERTIFICATE = SEC_ERROR_BASE + 11,
    SEC_ERROR_REVOKED_CERTIFICATE = SEC_ERROR_BASE + 12,
    SEC_ERROR_UNKNOWN_ISSUER = SEC_ERROR_BASE + 13,
    SEC_ERROR_BAD_KEY = SEC_ERROR_BASE + 14,
    SEC_ERROR_BAD_PASSWORD = SEC_ERROR_BASE + 15,
    SEC_ERROR_RETRY_PASSWORD = SEC_ERROR_BASE + 16,
    SEC_ERROR_NO_NODELOCK = SEC_ERROR_BASE + 17,
    SEC_ERROR_BAD_DATABASE = SEC_ERROR_BASE + 18,
    SEC_ERROR_NO_MEMORY = SEC_ERROR_BASE + 19,
    SEC_ERROR_UNTRUSTED_ISSUER = SEC_ERROR_BASE + 20,
    SEC_ERROR_UNTRUSTED_CERT = SEC_ERROR_BASE + 21,
    SEC_ERROR_DUPLICATE_CERT = (SEC_ERROR_BASE + 22),
    SEC_ERROR_DUPLICATE_CERT_NAME = (SEC_ERROR_BASE + 23),
    SEC_ERROR_ADDING_CERT = (SEC_ERROR_BASE + 24),
    SEC_ERROR_FILING_KEY = (SEC_ERROR_BASE + 25),
    SEC_ERROR_NO_KEY = (SEC_ERROR_BASE + 26),
    SEC_ERROR_CERT_VALID = (SEC_ERROR_BASE + 27),
    SEC_ERROR_CERT_NOT_VALID = (SEC_ERROR_BASE + 28),
    SEC_ERROR_CERT_NO_RESPONSE = (SEC_ERROR_BASE + 29),
    SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE = (SEC_ERROR_BASE + 30),
    SEC_ERROR_CRL_EXPIRED = (SEC_ERROR_BASE + 31),
    SEC_ERROR_CRL_BAD_SIGNATURE = (SEC_ERROR_BASE + 32),
    SEC_ERROR_CRL_INVALID = (SEC_ERROR_BASE + 33),
    SEC_ERROR_EXTENSION_VALUE_INVALID = (SEC_ERROR_BASE + 34),
    SEC_ERROR_EXTENSION_NOT_FOUND = (SEC_ERROR_BASE + 35),
    SEC_ERROR_CA_CERT_INVALID = (SEC_ERROR_BASE + 36),
    SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID = (SEC_ERROR_BASE + 37),
    SEC_ERROR_CERT_USAGES_INVALID = (SEC_ERROR_BASE + 38),
    SEC_INTERNAL_ONLY = (SEC_ERROR_BASE + 39),
    SEC_ERROR_INVALID_KEY = (SEC_ERROR_BASE + 40),
    SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION = (SEC_ERROR_BASE + 41),
    SEC_ERROR_OLD_CRL = (SEC_ERROR_BASE + 42),
    SEC_ERROR_NO_EMAIL_CERT = (SEC_ERROR_BASE + 43),
    SEC_ERROR_NO_RECIPIENT_CERTS_QUERY = (SEC_ERROR_BASE + 44),
    SEC_ERROR_NOT_A_RECIPIENT = (SEC_ERROR_BASE + 45),
    SEC_ERROR_PKCS7_KEYALG_MISMATCH = (SEC_ERROR_BASE + 46),
    SEC_ERROR_PKCS7_BAD_SIGNATURE = (SEC_ERROR_BASE + 47),
    SEC_ERROR_UNSUPPORTED_KEYALG = (SEC_ERROR_BASE + 48),
    SEC_ERROR_DECRYPTION_DISALLOWED = (SEC_ERROR_BASE + 49),
    /* Fortezza Alerts */
    XP_SEC_FORTEZZA_BAD_CARD = (SEC_ERROR_BASE + 50),
    XP_SEC_FORTEZZA_NO_CARD = (SEC_ERROR_BASE + 51),
    XP_SEC_FORTEZZA_NONE_SELECTED = (SEC_ERROR_BASE + 52),
    XP_SEC_FORTEZZA_MORE_INFO = (SEC_ERROR_BASE + 53),
    XP_SEC_FORTEZZA_PERSON_NOT_FOUND = (SEC_ERROR_BASE + 54),
    XP_SEC_FORTEZZA_NO_MORE_INFO = (SEC_ERROR_BASE + 55),
    XP_SEC_FORTEZZA_BAD_PIN = (SEC_ERROR_BASE + 56),
    XP_SEC_FORTEZZA_PERSON_ERROR = (SEC_ERROR_BASE + 57),
    SEC_ERROR_NO_KRL = (SEC_ERROR_BASE + 58),
    SEC_ERROR_KRL_EXPIRED = (SEC_ERROR_BASE + 59),
    SEC_ERROR_KRL_BAD_SIGNATURE = (SEC_ERROR_BASE + 60),
    SEC_ERROR_REVOKED_KEY = (SEC_ERROR_BASE + 61),
    SEC_ERROR_KRL_INVALID = (SEC_ERROR_BASE + 62),
    SEC_ERROR_NEED_RANDOM = (SEC_ERROR_BASE + 63),
    SEC_ERROR_NO_MODULE = (SEC_ERROR_BASE + 64),
    SEC_ERROR_NO_TOKEN = (SEC_ERROR_BASE + 65),
    SEC_ERROR_READ_ONLY = (SEC_ERROR_BASE + 66),
    SEC_ERROR_NO_SLOT_SELECTED = (SEC_ERROR_BASE + 67),
    SEC_ERROR_CERT_NICKNAME_COLLISION = (SEC_ERROR_BASE + 68),
    SEC_ERROR_KEY_NICKNAME_COLLISION = (SEC_ERROR_BASE + 69),
    SEC_ERROR_SAFE_NOT_CREATED = (SEC_ERROR_BASE + 70),
    SEC_ERROR_BAGGAGE_NOT_CREATED = (SEC_ERROR_BASE + 71),
    XP_JAVA_REMOVE_PRINCIPAL_ERROR = (SEC_ERROR_BASE + 72),
    XP_JAVA_DELETE_PRIVILEGE_ERROR = (SEC_ERROR_BASE + 73),
    XP_JAVA_CERT_NOT_EXISTS_ERROR = (SEC_ERROR_BASE + 74),
    SEC_ERROR_BAD_EXPORT_ALGORITHM = (SEC_ERROR_BASE + 75),
    SEC_ERROR_EXPORTING_CERTIFICATES = (SEC_ERROR_BASE + 76),
    SEC_ERROR_IMPORTING_CERTIFICATES = (SEC_ERROR_BASE + 77),
    SEC_ERROR_PKCS12_DECODING_PFX = (SEC_ERROR_BASE + 78),
    SEC_ERROR_PKCS12_INVALID_MAC = (SEC_ERROR_BASE + 79),
    SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM = (SEC_ERROR_BASE + 80),
    SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE = (SEC_ERROR_BASE + 81),
    SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE = (SEC_ERROR_BASE + 82),
    SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM = (SEC_ERROR_BASE + 83),
    SEC_ERROR_PKCS12_UNSUPPORTED_VERSION = (SEC_ERROR_BASE + 84),
    SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT = (SEC_ERROR_BASE + 85),
    SEC_ERROR_PKCS12_CERT_COLLISION = (SEC_ERROR_BASE + 86),
    SEC_ERROR_USER_CANCELLED = (SEC_ERROR_BASE + 87),
    SEC_ERROR_PKCS12_DUPLICATE_DATA = (SEC_ERROR_BASE + 88),
    SEC_ERROR_MESSAGE_SEND_ABORTED = (SEC_ERROR_BASE + 89),
    SEC_ERROR_INADEQUATE_KEY_USAGE = (SEC_ERROR_BASE + 90),
    SEC_ERROR_INADEQUATE_CERT_TYPE = (SEC_ERROR_BASE + 91),
    SEC_ERROR_CERT_ADDR_MISMATCH = (SEC_ERROR_BASE + 92),
    SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY = (SEC_ERROR_BASE + 93),
    SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN = (SEC_ERROR_BASE + 94),
    SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME = (SEC_ERROR_BASE + 95),
    SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY = (SEC_ERROR_BASE + 96),
    SEC_ERROR_PKCS12_UNABLE_TO_WRITE = (SEC_ERROR_BASE + 97),
    SEC_ERROR_PKCS12_UNABLE_TO_READ = (SEC_ERROR_BASE + 98),
    SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED = (SEC_ERROR_BASE + 99),
    SEC_ERROR_KEYGEN_FAIL = (SEC_ERROR_BASE + 100),
    SEC_ERROR_INVALID_PASSWORD = (SEC_ERROR_BASE + 101),
    SEC_ERROR_RETRY_OLD_PASSWORD = (SEC_ERROR_BASE + 102),
    SEC_ERROR_BAD_NICKNAME = (SEC_ERROR_BASE + 103),
    SEC_ERROR_NOT_FORTEZZA_ISSUER = (SEC_ERROR_BASE + 104),
    SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY = (SEC_ERROR_BASE + 105),
    SEC_ERROR_JS_INVALID_MODULE_NAME = (SEC_ERROR_BASE + 106),
    SEC_ERROR_JS_INVALID_DLL = (SEC_ERROR_BASE + 107),
    SEC_ERROR_JS_ADD_MOD_FAILURE = (SEC_ERROR_BASE + 108),
    SEC_ERROR_JS_DEL_MOD_FAILURE = (SEC_ERROR_BASE + 109),
    SEC_ERROR_OLD_KRL = (SEC_ERROR_BASE + 110),
    SEC_ERROR_CKL_CONFLICT = (SEC_ERROR_BASE + 111),
    SEC_ERROR_CERT_NOT_IN_NAME_SPACE = (SEC_ERROR_BASE + 112),
    SEC_ERROR_KRL_NOT_YET_VALID = (SEC_ERROR_BASE + 113),
    SEC_ERROR_CRL_NOT_YET_VALID = (SEC_ERROR_BASE + 114),
    SEC_ERROR_UNKNOWN_CERT = (SEC_ERROR_BASE + 115),
    SEC_ERROR_UNKNOWN_SIGNER = (SEC_ERROR_BASE + 116),
    SEC_ERROR_CERT_BAD_ACCESS_LOCATION = (SEC_ERROR_BASE + 117),
    SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE = (SEC_ERROR_BASE + 118),
    SEC_ERROR_OCSP_BAD_HTTP_RESPONSE = (SEC_ERROR_BASE + 119),
    SEC_ERROR_OCSP_MALFORMED_REQUEST = (SEC_ERROR_BASE + 120),
    SEC_ERROR_OCSP_SERVER_ERROR = (SEC_ERROR_BASE + 121),
    SEC_ERROR_OCSP_TRY_SERVER_LATER = (SEC_ERROR_BASE + 122),
    SEC_ERROR_OCSP_REQUEST_NEEDS_SIG = (SEC_ERROR_BASE + 123),
    SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST = (SEC_ERROR_BASE + 124),
    SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS = (SEC_ERROR_BASE + 125),
    SEC_ERROR_OCSP_UNKNOWN_CERT = (SEC_ERROR_BASE + 126),
    SEC_ERROR_OCSP_NOT_ENABLED = (SEC_ERROR_BASE + 127),
    SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER = (SEC_ERROR_BASE + 128),
    SEC_ERROR_OCSP_MALFORMED_RESPONSE = (SEC_ERROR_BASE + 129),
    SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE = (SEC_ERROR_BASE + 130),
    SEC_ERROR_OCSP_FUTURE_RESPONSE = (SEC_ERROR_BASE + 131),
    SEC_ERROR_OCSP_OLD_RESPONSE = (SEC_ERROR_BASE + 132),
    /* smime stuff */
    SEC_ERROR_DIGEST_NOT_FOUND = (SEC_ERROR_BASE + 133),
    SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE = (SEC_ERROR_BASE + 134),
    SEC_ERROR_MODULE_STUCK = (SEC_ERROR_BASE + 135),
    SEC_ERROR_BAD_TEMPLATE = (SEC_ERROR_BASE + 136),
    SEC_ERROR_CRL_NOT_FOUND = (SEC_ERROR_BASE + 137),
    SEC_ERROR_REUSED_ISSUER_AND_SERIAL = (SEC_ERROR_BASE + 138),
    SEC_ERROR_BUSY = (SEC_ERROR_BASE + 139),
    SEC_ERROR_EXTRA_INPUT = (SEC_ERROR_BASE + 140),
    /* error codes used by elliptic curve code */
    SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE = (SEC_ERROR_BASE + 141),
    SEC_ERROR_UNSUPPORTED_EC_POINT_FORM = (SEC_ERROR_BASE + 142),
    SEC_ERROR_UNRECOGNIZED_OID = (SEC_ERROR_BASE + 143),
    SEC_ERROR_OCSP_INVALID_SIGNING_CERT = (SEC_ERROR_BASE + 144),
    /* new revocation errors */
    SEC_ERROR_REVOKED_CERTIFICATE_CRL = (SEC_ERROR_BASE + 145),
    SEC_ERROR_REVOKED_CERTIFICATE_OCSP = (SEC_ERROR_BASE + 146),
    SEC_ERROR_CRL_INVALID_VERSION = (SEC_ERROR_BASE + 147),
    SEC_ERROR_CRL_V1_CRITICAL_EXTENSION = (SEC_ERROR_BASE + 148),
    SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION = (SEC_ERROR_BASE + 149),
    SEC_ERROR_UNKNOWN_OBJECT_TYPE = (SEC_ERROR_BASE + 150),
    SEC_ERROR_INCOMPATIBLE_PKCS11 = (SEC_ERROR_BASE + 151),
    SEC_ERROR_NO_EVENT = (SEC_ERROR_BASE + 152),
    SEC_ERROR_CRL_ALREADY_EXISTS = (SEC_ERROR_BASE + 153),
    SEC_ERROR_NOT_INITIALIZED = (SEC_ERROR_BASE + 154),
    SEC_ERROR_TOKEN_NOT_LOGGED_IN = (SEC_ERROR_BASE + 155),
    SEC_ERROR_OCSP_RESPONDER_CERT_INVALID = (SEC_ERROR_BASE + 156),
    SEC_ERROR_OCSP_BAD_SIGNATURE = (SEC_ERROR_BASE + 157),

    SEC_ERROR_OUT_OF_SEARCH_LIMITS = (SEC_ERROR_BASE + 158),
    SEC_ERROR_INVALID_POLICY_MAPPING = (SEC_ERROR_BASE + 159),
    SEC_ERROR_POLICY_VALIDATION_FAILED = (SEC_ERROR_BASE + 160),
    /* No longer used.  Unknown AIA location types are now silently ignored. */
    SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE = (SEC_ERROR_BASE + 161),
    SEC_ERROR_BAD_HTTP_RESPONSE = (SEC_ERROR_BASE + 162),
    SEC_ERROR_BAD_LDAP_RESPONSE = (SEC_ERROR_BASE + 163),
    SEC_ERROR_FAILED_TO_ENCODE_DATA = (SEC_ERROR_BASE + 164),
    SEC_ERROR_BAD_INFO_ACCESS_LOCATION = (SEC_ERROR_BASE + 165),

    SEC_ERROR_LIBPKIX_INTERNAL = (SEC_ERROR_BASE + 166),

    SEC_ERROR_PKCS11_GENERAL_ERROR = (SEC_ERROR_BASE + 167),
    SEC_ERROR_PKCS11_FUNCTION_FAILED = (SEC_ERROR_BASE + 168),
    SEC_ERROR_PKCS11_DEVICE_ERROR = (SEC_ERROR_BASE + 169),

    SEC_ERROR_BAD_INFO_ACCESS_METHOD = (SEC_ERROR_BASE + 170),
    SEC_ERROR_CRL_IMPORT_FAILED = (SEC_ERROR_BASE + 171),

    SEC_ERROR_EXPIRED_PASSWORD = (SEC_ERROR_BASE + 172),
    SEC_ERROR_LOCKED_PASSWORD = (SEC_ERROR_BASE + 173),

    SEC_ERROR_UNKNOWN_PKCS11_ERROR = (SEC_ERROR_BASE + 174),

    SEC_ERROR_BAD_CRL_DP_URL = (SEC_ERROR_BASE + 175),

    SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED = (SEC_ERROR_BASE + 176),

    SEC_ERROR_LEGACY_DATABASE = (SEC_ERROR_BASE + 177),

    SEC_ERROR_APPLICATION_CALLBACK_ERROR = (SEC_ERROR_BASE + 178),

    SEC_ERROR_INVALID_STATE = (SEC_ERROR_BASE + 179),

    SEC_ERROR_POLICY_LOCKED = (SEC_ERROR_BASE + 180),
    SEC_ERROR_SIGNATURE_ALGORITHM_DISABLED = (SEC_ERROR_BASE + 181),

    /* Add new error codes above here. */
    SEC_ERROR_END_OF_LIST
} SECErrorCodes;
#endif /* NO_SECURITY_ERROR_ENUM */

#endif /* __SEC_ERR_H_ */
