2 * Enumeration of all SSL-specific error codes.
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* $Id: sslerr.h,v 1.25 2012/07/13 00:51:57 wtc%google.com Exp $ */
12 #define SSL_ERROR_BASE (-0x3000)
13 #define SSL_ERROR_LIMIT (SSL_ERROR_BASE + 1000)
15 #define IS_SSL_ERROR(code) \
16 (((code) >= SSL_ERROR_BASE) && ((code) < SSL_ERROR_LIMIT))
18 #ifndef NO_SECURITY_ERROR_ENUM
20 SSL_ERROR_EXPORT_ONLY_SERVER
= (SSL_ERROR_BASE
+ 0),
21 SSL_ERROR_US_ONLY_SERVER
= (SSL_ERROR_BASE
+ 1),
22 SSL_ERROR_NO_CYPHER_OVERLAP
= (SSL_ERROR_BASE
+ 2),
24 * Received an alert reporting what we did wrong. (more alerts below)
26 SSL_ERROR_NO_CERTIFICATE
/*_ALERT */ = (SSL_ERROR_BASE
+ 3),
27 SSL_ERROR_BAD_CERTIFICATE
= (SSL_ERROR_BASE
+ 4),
28 SSL_ERROR_UNUSED_5
= (SSL_ERROR_BASE
+ 5),
29 /* error 5 is obsolete */
30 SSL_ERROR_BAD_CLIENT
= (SSL_ERROR_BASE
+ 6),
31 SSL_ERROR_BAD_SERVER
= (SSL_ERROR_BASE
+ 7),
32 SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE
= (SSL_ERROR_BASE
+ 8),
33 SSL_ERROR_UNSUPPORTED_VERSION
= (SSL_ERROR_BASE
+ 9),
34 SSL_ERROR_UNUSED_10
= (SSL_ERROR_BASE
+ 10),
35 /* error 10 is obsolete */
36 SSL_ERROR_WRONG_CERTIFICATE
= (SSL_ERROR_BASE
+ 11),
37 SSL_ERROR_BAD_CERT_DOMAIN
= (SSL_ERROR_BASE
+ 12),
38 SSL_ERROR_POST_WARNING
= (SSL_ERROR_BASE
+ 13),
39 SSL_ERROR_SSL2_DISABLED
= (SSL_ERROR_BASE
+ 14),
40 SSL_ERROR_BAD_MAC_READ
= (SSL_ERROR_BASE
+ 15),
42 * Received an alert reporting what we did wrong.
43 * (two more alerts above, and many more below)
45 SSL_ERROR_BAD_MAC_ALERT
= (SSL_ERROR_BASE
+ 16),
46 SSL_ERROR_BAD_CERT_ALERT
= (SSL_ERROR_BASE
+ 17),
47 SSL_ERROR_REVOKED_CERT_ALERT
= (SSL_ERROR_BASE
+ 18),
48 SSL_ERROR_EXPIRED_CERT_ALERT
= (SSL_ERROR_BASE
+ 19),
50 SSL_ERROR_SSL_DISABLED
= (SSL_ERROR_BASE
+ 20),
51 SSL_ERROR_FORTEZZA_PQG
= (SSL_ERROR_BASE
+ 21),
52 SSL_ERROR_UNKNOWN_CIPHER_SUITE
= (SSL_ERROR_BASE
+ 22),
53 SSL_ERROR_NO_CIPHERS_SUPPORTED
= (SSL_ERROR_BASE
+ 23),
54 SSL_ERROR_BAD_BLOCK_PADDING
= (SSL_ERROR_BASE
+ 24),
55 SSL_ERROR_RX_RECORD_TOO_LONG
= (SSL_ERROR_BASE
+ 25),
56 SSL_ERROR_TX_RECORD_TOO_LONG
= (SSL_ERROR_BASE
+ 26),
58 * Received a malformed (too long or short) SSL handshake.
60 SSL_ERROR_RX_MALFORMED_HELLO_REQUEST
= (SSL_ERROR_BASE
+ 27),
61 SSL_ERROR_RX_MALFORMED_CLIENT_HELLO
= (SSL_ERROR_BASE
+ 28),
62 SSL_ERROR_RX_MALFORMED_SERVER_HELLO
= (SSL_ERROR_BASE
+ 29),
63 SSL_ERROR_RX_MALFORMED_CERTIFICATE
= (SSL_ERROR_BASE
+ 30),
64 SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH
= (SSL_ERROR_BASE
+ 31),
65 SSL_ERROR_RX_MALFORMED_CERT_REQUEST
= (SSL_ERROR_BASE
+ 32),
66 SSL_ERROR_RX_MALFORMED_HELLO_DONE
= (SSL_ERROR_BASE
+ 33),
67 SSL_ERROR_RX_MALFORMED_CERT_VERIFY
= (SSL_ERROR_BASE
+ 34),
68 SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH
= (SSL_ERROR_BASE
+ 35),
69 SSL_ERROR_RX_MALFORMED_FINISHED
= (SSL_ERROR_BASE
+ 36),
71 * Received a malformed (too long or short) SSL record.
73 SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER
= (SSL_ERROR_BASE
+ 37),
74 SSL_ERROR_RX_MALFORMED_ALERT
= (SSL_ERROR_BASE
+ 38),
75 SSL_ERROR_RX_MALFORMED_HANDSHAKE
= (SSL_ERROR_BASE
+ 39),
76 SSL_ERROR_RX_MALFORMED_APPLICATION_DATA
= (SSL_ERROR_BASE
+ 40),
78 * Received an SSL handshake that was inappropriate for the state we're in.
79 * E.g. Server received message from server, or wrong state in state machine.
81 SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST
= (SSL_ERROR_BASE
+ 41),
82 SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO
= (SSL_ERROR_BASE
+ 42),
83 SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO
= (SSL_ERROR_BASE
+ 43),
84 SSL_ERROR_RX_UNEXPECTED_CERTIFICATE
= (SSL_ERROR_BASE
+ 44),
85 SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH
= (SSL_ERROR_BASE
+ 45),
86 SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST
= (SSL_ERROR_BASE
+ 46),
87 SSL_ERROR_RX_UNEXPECTED_HELLO_DONE
= (SSL_ERROR_BASE
+ 47),
88 SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY
= (SSL_ERROR_BASE
+ 48),
89 SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH
= (SSL_ERROR_BASE
+ 49),
90 SSL_ERROR_RX_UNEXPECTED_FINISHED
= (SSL_ERROR_BASE
+ 50),
92 * Received an SSL record that was inappropriate for the state we're in.
94 SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER
= (SSL_ERROR_BASE
+ 51),
95 SSL_ERROR_RX_UNEXPECTED_ALERT
= (SSL_ERROR_BASE
+ 52),
96 SSL_ERROR_RX_UNEXPECTED_HANDSHAKE
= (SSL_ERROR_BASE
+ 53),
97 SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA
= (SSL_ERROR_BASE
+ 54),
99 * Received record/message with unknown discriminant.
101 SSL_ERROR_RX_UNKNOWN_RECORD_TYPE
= (SSL_ERROR_BASE
+ 55),
102 SSL_ERROR_RX_UNKNOWN_HANDSHAKE
= (SSL_ERROR_BASE
+ 56),
103 SSL_ERROR_RX_UNKNOWN_ALERT
= (SSL_ERROR_BASE
+ 57),
105 * Received an alert reporting what we did wrong. (more alerts above)
107 SSL_ERROR_CLOSE_NOTIFY_ALERT
= (SSL_ERROR_BASE
+ 58),
108 SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT
= (SSL_ERROR_BASE
+ 59),
109 SSL_ERROR_DECOMPRESSION_FAILURE_ALERT
= (SSL_ERROR_BASE
+ 60),
110 SSL_ERROR_HANDSHAKE_FAILURE_ALERT
= (SSL_ERROR_BASE
+ 61),
111 SSL_ERROR_ILLEGAL_PARAMETER_ALERT
= (SSL_ERROR_BASE
+ 62),
112 SSL_ERROR_UNSUPPORTED_CERT_ALERT
= (SSL_ERROR_BASE
+ 63),
113 SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT
= (SSL_ERROR_BASE
+ 64),
115 SSL_ERROR_GENERATE_RANDOM_FAILURE
= (SSL_ERROR_BASE
+ 65),
116 SSL_ERROR_SIGN_HASHES_FAILURE
= (SSL_ERROR_BASE
+ 66),
117 SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE
= (SSL_ERROR_BASE
+ 67),
118 SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE
= (SSL_ERROR_BASE
+ 68),
119 SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE
= (SSL_ERROR_BASE
+ 69),
121 SSL_ERROR_ENCRYPTION_FAILURE
= (SSL_ERROR_BASE
+ 70),
122 SSL_ERROR_DECRYPTION_FAILURE
= (SSL_ERROR_BASE
+ 71), /* don't use */
123 SSL_ERROR_SOCKET_WRITE_FAILURE
= (SSL_ERROR_BASE
+ 72),
125 SSL_ERROR_MD5_DIGEST_FAILURE
= (SSL_ERROR_BASE
+ 73),
126 SSL_ERROR_SHA_DIGEST_FAILURE
= (SSL_ERROR_BASE
+ 74),
127 SSL_ERROR_MAC_COMPUTATION_FAILURE
= (SSL_ERROR_BASE
+ 75),
128 SSL_ERROR_SYM_KEY_CONTEXT_FAILURE
= (SSL_ERROR_BASE
+ 76),
129 SSL_ERROR_SYM_KEY_UNWRAP_FAILURE
= (SSL_ERROR_BASE
+ 77),
130 SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED
= (SSL_ERROR_BASE
+ 78),
131 SSL_ERROR_IV_PARAM_FAILURE
= (SSL_ERROR_BASE
+ 79),
132 SSL_ERROR_INIT_CIPHER_SUITE_FAILURE
= (SSL_ERROR_BASE
+ 80),
133 SSL_ERROR_SESSION_KEY_GEN_FAILURE
= (SSL_ERROR_BASE
+ 81),
134 SSL_ERROR_NO_SERVER_KEY_FOR_ALG
= (SSL_ERROR_BASE
+ 82),
135 SSL_ERROR_TOKEN_INSERTION_REMOVAL
= (SSL_ERROR_BASE
+ 83),
136 SSL_ERROR_TOKEN_SLOT_NOT_FOUND
= (SSL_ERROR_BASE
+ 84),
137 SSL_ERROR_NO_COMPRESSION_OVERLAP
= (SSL_ERROR_BASE
+ 85),
138 SSL_ERROR_HANDSHAKE_NOT_COMPLETED
= (SSL_ERROR_BASE
+ 86),
139 SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE
= (SSL_ERROR_BASE
+ 87),
140 SSL_ERROR_CERT_KEA_MISMATCH
= (SSL_ERROR_BASE
+ 88),
141 /* SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA became obsolete in NSS 3.14. */
142 SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA
= (SSL_ERROR_BASE
+ 89),
143 SSL_ERROR_SESSION_NOT_FOUND
= (SSL_ERROR_BASE
+ 90),
145 SSL_ERROR_DECRYPTION_FAILED_ALERT
= (SSL_ERROR_BASE
+ 91),
146 SSL_ERROR_RECORD_OVERFLOW_ALERT
= (SSL_ERROR_BASE
+ 92),
147 SSL_ERROR_UNKNOWN_CA_ALERT
= (SSL_ERROR_BASE
+ 93),
148 SSL_ERROR_ACCESS_DENIED_ALERT
= (SSL_ERROR_BASE
+ 94),
149 SSL_ERROR_DECODE_ERROR_ALERT
= (SSL_ERROR_BASE
+ 95),
150 SSL_ERROR_DECRYPT_ERROR_ALERT
= (SSL_ERROR_BASE
+ 96),
151 SSL_ERROR_EXPORT_RESTRICTION_ALERT
= (SSL_ERROR_BASE
+ 97),
152 SSL_ERROR_PROTOCOL_VERSION_ALERT
= (SSL_ERROR_BASE
+ 98),
153 SSL_ERROR_INSUFFICIENT_SECURITY_ALERT
= (SSL_ERROR_BASE
+ 99),
154 SSL_ERROR_INTERNAL_ERROR_ALERT
= (SSL_ERROR_BASE
+ 100),
155 SSL_ERROR_USER_CANCELED_ALERT
= (SSL_ERROR_BASE
+ 101),
156 SSL_ERROR_NO_RENEGOTIATION_ALERT
= (SSL_ERROR_BASE
+ 102),
158 SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED
= (SSL_ERROR_BASE
+ 103),
160 SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT
= (SSL_ERROR_BASE
+ 104),
161 SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT
= (SSL_ERROR_BASE
+ 105),
162 SSL_ERROR_UNRECOGNIZED_NAME_ALERT
= (SSL_ERROR_BASE
+ 106),
163 SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT
= (SSL_ERROR_BASE
+ 107),
164 SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT
= (SSL_ERROR_BASE
+ 108),
166 SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET
= (SSL_ERROR_BASE
+ 109),
167 SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET
= (SSL_ERROR_BASE
+ 110),
169 SSL_ERROR_DECOMPRESSION_FAILURE
= (SSL_ERROR_BASE
+ 111),
170 SSL_ERROR_RENEGOTIATION_NOT_ALLOWED
= (SSL_ERROR_BASE
+ 112),
171 SSL_ERROR_UNSAFE_NEGOTIATION
= (SSL_ERROR_BASE
+ 113),
173 SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD
= (SSL_ERROR_BASE
+ 114),
175 SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY
= (SSL_ERROR_BASE
+ 115),
177 SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID
= (SSL_ERROR_BASE
+ 116),
179 SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2
= (SSL_ERROR_BASE
+ 117),
180 SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SERVERS
= (SSL_ERROR_BASE
+ 118),
181 SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_CLIENTS
= (SSL_ERROR_BASE
+ 119),
183 SSL_ERROR_INVALID_VERSION_RANGE
= (SSL_ERROR_BASE
+ 120),
184 SSL_ERROR_CIPHER_DISALLOWED_FOR_VERSION
= (SSL_ERROR_BASE
+ 121),
186 SSL_ERROR_RX_MALFORMED_HELLO_VERIFY_REQUEST
= (SSL_ERROR_BASE
+ 122),
187 SSL_ERROR_RX_UNEXPECTED_HELLO_VERIFY_REQUEST
= (SSL_ERROR_BASE
+ 123),
189 SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION
= (SSL_ERROR_BASE
+ 124),
191 SSL_ERROR_RX_UNEXPECTED_CERT_STATUS
= (SSL_ERROR_BASE
+ 125),
193 SSL_ERROR_BAD_CHANNEL_ID_DATA
= (SSL_ERROR_BASE
+ 126),
194 SSL_ERROR_INVALID_CHANNEL_ID_KEY
= (SSL_ERROR_BASE
+ 127),
195 SSL_ERROR_GET_CHANNEL_ID_FAILED
= (SSL_ERROR_BASE
+ 128),
197 SSL_ERROR_END_OF_LIST
/* let the c compiler determine the value of this. */
199 #endif /* NO_SECURITY_ERROR_ENUM */
201 #endif /* __SSL_ERR_H_ */