2 * Copyright (c) 2001 by Sun Microsystems, Inc.
6 #pragma ident "%Z%%M% %I% %E% SMI"
9 * The contents of this file are subject to the Netscape Public
10 * License Version 1.1 (the "License"); you may not use this file
11 * except in compliance with the License. You may obtain a copy of
12 * the License at http://www.mozilla.org/NPL/
14 * Software distributed under the License is distributed on an "AS
15 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
16 * implied. See the License for the specific language governing
17 * rights and limitations under the License.
19 * The Original Code is Mozilla Communicator client code, released
22 * The Initial Developer of the Original Code is Netscape
23 * Communications Corporation. Portions created by Netscape are
24 * Copyright (C) 1998-1999 Netscape Communications Corporation. All
30 * sslerrstrs.h - map SSL errors to strings (used by errormap.c)
35 ****************************************************************************
36 * The code below this point was provided by Nelson Bolyard <nelsonb> of the
37 * Netscape Certificate Server team on 27-March-1998.
38 * Taken from the file ns/security/cmd/lib/SSLerrs.h on NSS_1_BRANCH.
39 * Last updated from there: 24-July-1998 by Mark Smith <mcs>
41 * All of the Directory Server specific changes are enclosed inside
42 * #ifdef NS_DIRECTORY.
43 ****************************************************************************
46 /* SSL-specific security error codes */
47 /* caller must include "sslerr.h" */
49 ER3(SSL_ERROR_EXPORT_ONLY_SERVER
, SSL_ERROR_BASE
+ 0,
51 "Unable to communicate securely. Peer does not support high-grade encryption."))
53 ER3(SSL_ERROR_US_ONLY_SERVER
, SSL_ERROR_BASE
+ 1,
55 "Unable to communicate securely. Peer requires high-grade encryption which is not supported."))
57 ER3(SSL_ERROR_NO_CYPHER_OVERLAP
, SSL_ERROR_BASE
+ 2,
59 "Cannot communicate securely with peer: no common encryption algorithm(s)."))
61 ER3(SSL_ERROR_NO_CERTIFICATE
, SSL_ERROR_BASE
+ 3,
63 "Unable to find the certificate or key necessary for authentication."))
65 ER3(SSL_ERROR_BAD_CERTIFICATE
, SSL_ERROR_BASE
+ 4,
67 "Unable to communicate securely with peer: peers's certificate was rejected."))
69 /* unused (SSL_ERROR_BASE + 5),*/
71 ER3(SSL_ERROR_BAD_CLIENT
, SSL_ERROR_BASE
+ 6,
73 "The server has encountered bad data from the client."))
75 ER3(SSL_ERROR_BAD_SERVER
, SSL_ERROR_BASE
+ 7,
77 "The client has encountered bad data from the server."))
79 ER3(SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE
, SSL_ERROR_BASE
+ 8,
81 "Unsupported certificate type."))
83 ER3(SSL_ERROR_UNSUPPORTED_VERSION
, SSL_ERROR_BASE
+ 9,
85 "Peer using unsupported version of security protocol."))
87 /* unused (SSL_ERROR_BASE + 10),*/
89 ER3(SSL_ERROR_WRONG_CERTIFICATE
, SSL_ERROR_BASE
+ 11,
91 "Client authentication failed: private key in key database does not match public key in certificate database."))
93 ER3(SSL_ERROR_BAD_CERT_DOMAIN
, SSL_ERROR_BASE
+ 12,
95 "Unable to communicate securely with peer: requested domain name does not match the server's certificate."))
97 /* SSL_ERROR_POST_WARNING (SSL_ERROR_BASE + 13),
101 ER3(SSL_ERROR_SSL2_DISABLED
, (SSL_ERROR_BASE
+ 14),
102 dgettext(TEXT_DOMAIN
,
103 "Peer only supports SSL version 2, which is locally disabled."))
106 ER3(SSL_ERROR_BAD_MAC_READ
, (SSL_ERROR_BASE
+ 15),
107 dgettext(TEXT_DOMAIN
,
108 "SSL received a record with an incorrect Message Authentication Code."))
110 ER3(SSL_ERROR_BAD_MAC_ALERT
, (SSL_ERROR_BASE
+ 16),
111 dgettext(TEXT_DOMAIN
,
112 "SSL peer reports incorrect Message Authentication Code."))
114 ER3(SSL_ERROR_BAD_CERT_ALERT
, (SSL_ERROR_BASE
+ 17),
115 dgettext(TEXT_DOMAIN
,
116 "SSL peer cannot verify your certificate."))
118 ER3(SSL_ERROR_REVOKED_CERT_ALERT
, (SSL_ERROR_BASE
+ 18),
119 dgettext(TEXT_DOMAIN
,
120 "SSL peer rejected your certificate as revoked."))
122 ER3(SSL_ERROR_EXPIRED_CERT_ALERT
, (SSL_ERROR_BASE
+ 19),
123 dgettext(TEXT_DOMAIN
,
124 "SSL peer rejected your certificate as expired."))
126 ER3(SSL_ERROR_SSL_DISABLED
, (SSL_ERROR_BASE
+ 20),
127 dgettext(TEXT_DOMAIN
,
128 "Cannot connect: SSL is disabled."))
130 ER3(SSL_ERROR_FORTEZZA_PQG
, (SSL_ERROR_BASE
+ 21),
131 dgettext(TEXT_DOMAIN
,
132 "Cannot connect: SSL peer is in another FORTEZZA domain."))
134 ER3(SSL_ERROR_UNKNOWN_CIPHER_SUITE
, (SSL_ERROR_BASE
+ 22),
135 dgettext(TEXT_DOMAIN
,
136 "An unknown SSL cipher suite has been requested."))
138 ER3(SSL_ERROR_NO_CIPHERS_SUPPORTED
, (SSL_ERROR_BASE
+ 23),
139 dgettext(TEXT_DOMAIN
,
140 "No cipher suites are present and enabled in this program."))
142 ER3(SSL_ERROR_BAD_BLOCK_PADDING
, (SSL_ERROR_BASE
+ 24),
143 dgettext(TEXT_DOMAIN
,
144 "SSL received a record with bad block padding."))
146 ER3(SSL_ERROR_RX_RECORD_TOO_LONG
, (SSL_ERROR_BASE
+ 25),
147 dgettext(TEXT_DOMAIN
,
148 "SSL received a record that exceeded the maximum permissible length."))
150 ER3(SSL_ERROR_TX_RECORD_TOO_LONG
, (SSL_ERROR_BASE
+ 26),
151 dgettext(TEXT_DOMAIN
,
152 "SSL attempted to send a record that exceeded the maximum permissible length."))
155 * Received a malformed (too long or short or invalid content) SSL handshake.
157 ER3(SSL_ERROR_RX_MALFORMED_HELLO_REQUEST
, (SSL_ERROR_BASE
+ 27),
158 dgettext(TEXT_DOMAIN
,
159 "SSL received a malformed Hello Request handshake message."))
161 ER3(SSL_ERROR_RX_MALFORMED_CLIENT_HELLO
, (SSL_ERROR_BASE
+ 28),
162 dgettext(TEXT_DOMAIN
,
163 "SSL received a malformed Client Hello handshake message."))
165 ER3(SSL_ERROR_RX_MALFORMED_SERVER_HELLO
, (SSL_ERROR_BASE
+ 29),
166 dgettext(TEXT_DOMAIN
,
167 "SSL received a malformed Server Hello handshake message."))
169 ER3(SSL_ERROR_RX_MALFORMED_CERTIFICATE
, (SSL_ERROR_BASE
+ 30),
170 dgettext(TEXT_DOMAIN
,
171 "SSL received a malformed Certificate handshake message."))
173 ER3(SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH
, (SSL_ERROR_BASE
+ 31),
174 dgettext(TEXT_DOMAIN
,
175 "SSL received a malformed Server Key Exchange handshake message."))
177 ER3(SSL_ERROR_RX_MALFORMED_CERT_REQUEST
, (SSL_ERROR_BASE
+ 32),
178 dgettext(TEXT_DOMAIN
,
179 "SSL received a malformed Certificate Request handshake message."))
181 ER3(SSL_ERROR_RX_MALFORMED_HELLO_DONE
, (SSL_ERROR_BASE
+ 33),
182 dgettext(TEXT_DOMAIN
,
183 "SSL received a malformed Server Hello Done handshake message."))
185 ER3(SSL_ERROR_RX_MALFORMED_CERT_VERIFY
, (SSL_ERROR_BASE
+ 34),
186 dgettext(TEXT_DOMAIN
,
187 "SSL received a malformed Certificate Verify handshake message."))
189 ER3(SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH
, (SSL_ERROR_BASE
+ 35),
190 dgettext(TEXT_DOMAIN
,
191 "SSL received a malformed Client Key Exchange handshake message."))
193 ER3(SSL_ERROR_RX_MALFORMED_FINISHED
, (SSL_ERROR_BASE
+ 36),
194 dgettext(TEXT_DOMAIN
,
195 "SSL received a malformed Finished handshake message."))
198 * Received a malformed (too long or short) SSL record.
200 ER3(SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER
, (SSL_ERROR_BASE
+ 37),
201 dgettext(TEXT_DOMAIN
,
202 "SSL received a malformed Change Cipher Spec record."))
204 ER3(SSL_ERROR_RX_MALFORMED_ALERT
, (SSL_ERROR_BASE
+ 38),
205 dgettext(TEXT_DOMAIN
,
206 "SSL received a malformed Alert record."))
208 ER3(SSL_ERROR_RX_MALFORMED_HANDSHAKE
, (SSL_ERROR_BASE
+ 39),
209 dgettext(TEXT_DOMAIN
,
210 "SSL received a malformed Handshake record."))
212 ER3(SSL_ERROR_RX_MALFORMED_APPLICATION_DATA
, (SSL_ERROR_BASE
+ 40),
213 dgettext(TEXT_DOMAIN
,
214 "SSL received a malformed Application Data record."))
217 * Received an SSL handshake that was inappropriate for the state we're in.
218 * E.g. Server received message from server, or wrong state in state machine.
220 ER3(SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST
, (SSL_ERROR_BASE
+ 41),
221 dgettext(TEXT_DOMAIN
,
222 "SSL received an unexpected Hello Request handshake message."))
224 ER3(SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO
, (SSL_ERROR_BASE
+ 42),
225 dgettext(TEXT_DOMAIN
,
226 "SSL received an unexpected Client Hello handshake message."))
228 ER3(SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO
, (SSL_ERROR_BASE
+ 43),
229 dgettext(TEXT_DOMAIN
,
230 "SSL received an unexpected Server Hello handshake message."))
232 ER3(SSL_ERROR_RX_UNEXPECTED_CERTIFICATE
, (SSL_ERROR_BASE
+ 44),
233 dgettext(TEXT_DOMAIN
,
234 "SSL received an unexpected Certificate handshake message."))
236 ER3(SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH
, (SSL_ERROR_BASE
+ 45),
237 dgettext(TEXT_DOMAIN
,
238 "SSL received an unexpected Server Key Exchange handshake message."))
240 ER3(SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST
, (SSL_ERROR_BASE
+ 46),
241 dgettext(TEXT_DOMAIN
,
242 "SSL received an unexpected Certificate Request handshake message."))
244 ER3(SSL_ERROR_RX_UNEXPECTED_HELLO_DONE
, (SSL_ERROR_BASE
+ 47),
245 dgettext(TEXT_DOMAIN
,
246 "SSL received an unexpected Server Hello Done handshake message."))
248 ER3(SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY
, (SSL_ERROR_BASE
+ 48),
249 dgettext(TEXT_DOMAIN
,
250 "SSL received an unexpected Certificate Verify handshake message."))
252 ER3(SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH
, (SSL_ERROR_BASE
+ 49),
253 dgettext(TEXT_DOMAIN
,
254 "SSL received an unexpected Cllient Key Exchange handshake message."))
256 ER3(SSL_ERROR_RX_UNEXPECTED_FINISHED
, (SSL_ERROR_BASE
+ 50),
257 dgettext(TEXT_DOMAIN
,
258 "SSL received an unexpected Finished handshake message."))
261 * Received an SSL record that was inappropriate for the state we're in.
263 ER3(SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER
, (SSL_ERROR_BASE
+ 51),
264 dgettext(TEXT_DOMAIN
,
265 "SSL received an unexpected Change Cipher Spec record."))
267 ER3(SSL_ERROR_RX_UNEXPECTED_ALERT
, (SSL_ERROR_BASE
+ 52),
268 dgettext(TEXT_DOMAIN
,
269 "SSL received an unexpected Alert record."))
271 ER3(SSL_ERROR_RX_UNEXPECTED_HANDSHAKE
, (SSL_ERROR_BASE
+ 53),
272 dgettext(TEXT_DOMAIN
,
273 "SSL received an unexpected Handshake record."))
275 ER3(SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA
, (SSL_ERROR_BASE
+ 54),
276 dgettext(TEXT_DOMAIN
,
277 "SSL received an unexpected Application Data record."))
280 * Received record/message with unknown discriminant.
282 ER3(SSL_ERROR_RX_UNKNOWN_RECORD_TYPE
, (SSL_ERROR_BASE
+ 55),
283 dgettext(TEXT_DOMAIN
,
284 "SSL received a record with an unknown content type."))
286 ER3(SSL_ERROR_RX_UNKNOWN_HANDSHAKE
, (SSL_ERROR_BASE
+ 56),
287 dgettext(TEXT_DOMAIN
,
288 "SSL received a handshake message with an unknown message type."))
290 ER3(SSL_ERROR_RX_UNKNOWN_ALERT
, (SSL_ERROR_BASE
+ 57),
291 dgettext(TEXT_DOMAIN
,
292 "SSL received an alert record with an unknown alert description."))
295 * Received an alert reporting what we did wrong. (more alerts above)
297 ER3(SSL_ERROR_CLOSE_NOTIFY_ALERT
, (SSL_ERROR_BASE
+ 58),
298 dgettext(TEXT_DOMAIN
,
299 "SSL peer has closed this connection."))
301 ER3(SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT
, (SSL_ERROR_BASE
+ 59),
302 dgettext(TEXT_DOMAIN
,
303 "SSL peer was not expecting a handshake message it received."))
305 ER3(SSL_ERROR_DECOMPRESSION_FAILURE_ALERT
, (SSL_ERROR_BASE
+ 60),
306 dgettext(TEXT_DOMAIN
,
307 "SSL peer was unable to succesfully decompress an SSL record it received."))
309 ER3(SSL_ERROR_HANDSHAKE_FAILURE_ALERT
, (SSL_ERROR_BASE
+ 61),
310 dgettext(TEXT_DOMAIN
,
311 "SSL peer was unable to negotiate an acceptable set of security parameters."))
313 ER3(SSL_ERROR_ILLEGAL_PARAMETER_ALERT
, (SSL_ERROR_BASE
+ 62),
314 dgettext(TEXT_DOMAIN
,
315 "SSL peer rejected a handshake message for unacceptable content."))
317 ER3(SSL_ERROR_UNSUPPORTED_CERT_ALERT
, (SSL_ERROR_BASE
+ 63),
318 dgettext(TEXT_DOMAIN
,
319 "SSL peer does not support certificates of the type it received."))
321 ER3(SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT
, (SSL_ERROR_BASE
+ 64),
322 dgettext(TEXT_DOMAIN
,
323 "SSL peer had some unspecified issue with the certificate it received."))
325 ER3(SSL_ERROR_GENERATE_RANDOM_FAILURE
, (SSL_ERROR_BASE
+ 65),
326 dgettext(TEXT_DOMAIN
,
327 "SSL experienced a failure of its random number generator."))
329 ER3(SSL_ERROR_SIGN_HASHES_FAILURE
, (SSL_ERROR_BASE
+ 66),
330 dgettext(TEXT_DOMAIN
,
331 "Unable to digitally sign data required to verify your certificate."))
333 ER3(SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE
, (SSL_ERROR_BASE
+ 67),
334 dgettext(TEXT_DOMAIN
,
335 "SSL was unable to extract the public key from the peer's certificate."))
337 ER3(SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE
, (SSL_ERROR_BASE
+ 68),
338 dgettext(TEXT_DOMAIN
,
339 "Unspecified failure while processing SSL Server Key Exchange handshake."))
341 ER3(SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE
, (SSL_ERROR_BASE
+ 69),
342 dgettext(TEXT_DOMAIN
,
343 "Unspecified failure while processing SSL Client Key Exchange handshake."))
345 ER3(SSL_ERROR_ENCRYPTION_FAILURE
, (SSL_ERROR_BASE
+ 70),
346 dgettext(TEXT_DOMAIN
,
347 "Bulk data encryption algorithm failed in selected cipher suite."))
349 ER3(SSL_ERROR_DECRYPTION_FAILURE
, (SSL_ERROR_BASE
+ 71),
350 dgettext(TEXT_DOMAIN
,
351 "Bulk data decryption algorithm failed in selected cipher suite."))
353 ER3(SSL_ERROR_SOCKET_WRITE_FAILURE
, (SSL_ERROR_BASE
+ 72),
354 dgettext(TEXT_DOMAIN
,
355 "Attempt to write encrypted data to underlying socket failed."))
357 ER3(SSL_ERROR_MD5_DIGEST_FAILURE
, (SSL_ERROR_BASE
+ 73),
358 dgettext(TEXT_DOMAIN
,
359 "MD5 digest function failed."))
361 ER3(SSL_ERROR_SHA_DIGEST_FAILURE
, (SSL_ERROR_BASE
+ 74),
362 dgettext(TEXT_DOMAIN
,
363 "SHA-1 digest function failed."))
365 ER3(SSL_ERROR_MAC_COMPUTATION_FAILURE
, (SSL_ERROR_BASE
+ 75),
366 dgettext(TEXT_DOMAIN
,
367 "MAC computation failed."))
369 ER3(SSL_ERROR_SYM_KEY_CONTEXT_FAILURE
, (SSL_ERROR_BASE
+ 76),
370 dgettext(TEXT_DOMAIN
,
371 "Failure to create Symmetric Key context."))
373 ER3(SSL_ERROR_SYM_KEY_UNWRAP_FAILURE
, (SSL_ERROR_BASE
+ 77),
374 dgettext(TEXT_DOMAIN
,
375 "Failure to unwrap the Symmetric key in Client Key Exchange message."))
377 ER3(SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED
, (SSL_ERROR_BASE
+ 78),
378 dgettext(TEXT_DOMAIN
,
379 "SSL Server attempted to use domestic-grade public key with export cipher suite."))
381 ER3(SSL_ERROR_IV_PARAM_FAILURE
, (SSL_ERROR_BASE
+ 79),
382 dgettext(TEXT_DOMAIN
,
383 "PKCS11 code failed to translate an IV into a param."))
385 ER3(SSL_ERROR_INIT_CIPHER_SUITE_FAILURE
, (SSL_ERROR_BASE
+ 80),
386 dgettext(TEXT_DOMAIN
,
387 "Failed to initialize the selected cipher suite."))
389 ER3(SSL_ERROR_SESSION_KEY_GEN_FAILURE
, (SSL_ERROR_BASE
+ 81),
390 dgettext(TEXT_DOMAIN
,
391 "Client failed to generate session keys for SSL session."))
393 ER3(SSL_ERROR_NO_SERVER_KEY_FOR_ALG
, (SSL_ERROR_BASE
+ 82),
394 dgettext(TEXT_DOMAIN
,
395 "Server has no key for the attempted key exchange algorithm."))
397 ER3(SSL_ERROR_TOKEN_INSERTION_REMOVAL
, (SSL_ERROR_BASE
+ 83),
398 dgettext(TEXT_DOMAIN
,
399 "PKCS#11 token was inserted or removed while operation was in progress."))
401 ER3(SSL_ERROR_TOKEN_SLOT_NOT_FOUND
, (SSL_ERROR_BASE
+ 84),
402 dgettext(TEXT_DOMAIN
,
403 "No PKCS#11 token could be found to do a required operation."))
405 ER3(SSL_ERROR_NO_COMPRESSION_OVERLAP
, (SSL_ERROR_BASE
+ 85),
406 dgettext(TEXT_DOMAIN
,
407 "Cannot communicate securely with peer: no common compression algorithm(s)."))
409 ER3(SSL_ERROR_HANDSHAKE_NOT_COMPLETED
, (SSL_ERROR_BASE
+ 86),
410 dgettext(TEXT_DOMAIN
,
411 "Cannot initiate another SSL handshake until current handshake is complete."))
413 ER3(SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE
, (SSL_ERROR_BASE
+ 87),
414 dgettext(TEXT_DOMAIN
,
415 "Received incorrect handshakes hash values from peer."))
417 ER3(SSL_ERROR_CERT_KEA_MISMATCH
, (SSL_ERROR_BASE
+ 88),
418 dgettext(TEXT_DOMAIN
,
419 "The certificate provided cannot be used with the selected key exchange algorithm."))