PageRenderTime 224ms CodeModel.GetById 120ms app.highlight 14ms RepoModel.GetById 87ms app.codeStats 0ms

/gecko_api/include/sslerr.h

http://firefox-mac-pdf.googlecode.com/
C++ Header | 202 lines | 121 code | 14 blank | 67 comment | 1 complexity | 69ae84809e023ce90d3df4499b934d84 MD5 | raw file
  1/*
  2 * Enumeration of all SSL-specific error codes.
  3 *
  4 * ***** BEGIN LICENSE BLOCK *****
  5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  6 *
  7 * The contents of this file are subject to the Mozilla Public License Version
  8 * 1.1 (the "License"); you may not use this file except in compliance with
  9 * the License. You may obtain a copy of the License at
 10 * http://www.mozilla.org/MPL/
 11 *
 12 * Software distributed under the License is distributed on an "AS IS" basis,
 13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 14 * for the specific language governing rights and limitations under the
 15 * License.
 16 *
 17 * The Original Code is the Netscape security libraries.
 18 *
 19 * The Initial Developer of the Original Code is
 20 * Netscape Communications Corporation.
 21 * Portions created by the Initial Developer are Copyright (C) 1994-2000
 22 * the Initial Developer. All Rights Reserved.
 23 *
 24 * Contributor(s):
 25 *
 26 * Alternatively, the contents of this file may be used under the terms of
 27 * either the GNU General Public License Version 2 or later (the "GPL"), or
 28 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 29 * in which case the provisions of the GPL or the LGPL are applicable instead
 30 * of those above. If you wish to allow use of your version of this file only
 31 * under the terms of either the GPL or the LGPL, and not to allow others to
 32 * use your version of this file under the terms of the MPL, indicate your
 33 * decision by deleting the provisions above and replace them with the notice
 34 * and other provisions required by the GPL or the LGPL. If you do not delete
 35 * the provisions above, a recipient may use your version of this file under
 36 * the terms of any one of the MPL, the GPL or the LGPL.
 37 *
 38 * ***** END LICENSE BLOCK ***** */
 39/* $Id: sslerr.h,v 1.6 2008/03/06 20:16:22 wtc%google.com Exp $ */
 40#ifndef __SSL_ERR_H_
 41#define __SSL_ERR_H_
 42
 43
 44#define SSL_ERROR_BASE				(-0x3000)
 45#define SSL_ERROR_LIMIT				(SSL_ERROR_BASE + 1000)
 46
 47#define IS_SSL_ERROR(code) \
 48    (((code) >= SSL_ERROR_BASE) && ((code) < SSL_ERROR_LIMIT))
 49
 50#ifndef NO_SECURITY_ERROR_ENUM
 51typedef enum {
 52SSL_ERROR_EXPORT_ONLY_SERVER 		= (SSL_ERROR_BASE +  0),
 53SSL_ERROR_US_ONLY_SERVER 		= (SSL_ERROR_BASE +  1),
 54SSL_ERROR_NO_CYPHER_OVERLAP 		= (SSL_ERROR_BASE +  2),
 55/* 
 56 * Received an alert reporting what we did wrong.  (more alerts below)
 57 */
 58SSL_ERROR_NO_CERTIFICATE /*_ALERT */	= (SSL_ERROR_BASE +  3),
 59SSL_ERROR_BAD_CERTIFICATE            	= (SSL_ERROR_BASE +  4),
 60					/* error 5 is obsolete */
 61SSL_ERROR_BAD_CLIENT 			= (SSL_ERROR_BASE +  6),
 62SSL_ERROR_BAD_SERVER 			= (SSL_ERROR_BASE +  7),
 63SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE	= (SSL_ERROR_BASE +  8),
 64SSL_ERROR_UNSUPPORTED_VERSION 		= (SSL_ERROR_BASE +  9),
 65					/* error 10 is obsolete */
 66SSL_ERROR_WRONG_CERTIFICATE		= (SSL_ERROR_BASE + 11),
 67SSL_ERROR_BAD_CERT_DOMAIN 		= (SSL_ERROR_BASE + 12),
 68SSL_ERROR_POST_WARNING 			= (SSL_ERROR_BASE + 13),
 69SSL_ERROR_SSL2_DISABLED 		= (SSL_ERROR_BASE + 14),
 70SSL_ERROR_BAD_MAC_READ 			= (SSL_ERROR_BASE + 15),
 71/* 
 72 * Received an alert reporting what we did wrong.
 73 * (two more alerts above, and many more below)
 74 */
 75SSL_ERROR_BAD_MAC_ALERT 		= (SSL_ERROR_BASE + 16),
 76SSL_ERROR_BAD_CERT_ALERT                = (SSL_ERROR_BASE + 17),
 77SSL_ERROR_REVOKED_CERT_ALERT 		= (SSL_ERROR_BASE + 18),
 78SSL_ERROR_EXPIRED_CERT_ALERT 		= (SSL_ERROR_BASE + 19),
 79
 80SSL_ERROR_SSL_DISABLED 			= (SSL_ERROR_BASE + 20),
 81SSL_ERROR_FORTEZZA_PQG 			= (SSL_ERROR_BASE + 21),
 82SSL_ERROR_UNKNOWN_CIPHER_SUITE		= (SSL_ERROR_BASE + 22),
 83SSL_ERROR_NO_CIPHERS_SUPPORTED		= (SSL_ERROR_BASE + 23),
 84SSL_ERROR_BAD_BLOCK_PADDING		= (SSL_ERROR_BASE + 24),
 85SSL_ERROR_RX_RECORD_TOO_LONG		= (SSL_ERROR_BASE + 25),
 86SSL_ERROR_TX_RECORD_TOO_LONG		= (SSL_ERROR_BASE + 26),
 87/* 
 88 * Received a malformed (too long or short) SSL handshake.
 89 */
 90SSL_ERROR_RX_MALFORMED_HELLO_REQUEST	= (SSL_ERROR_BASE + 27),
 91SSL_ERROR_RX_MALFORMED_CLIENT_HELLO	= (SSL_ERROR_BASE + 28),
 92SSL_ERROR_RX_MALFORMED_SERVER_HELLO	= (SSL_ERROR_BASE + 29),
 93SSL_ERROR_RX_MALFORMED_CERTIFICATE	= (SSL_ERROR_BASE + 30),
 94SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH	= (SSL_ERROR_BASE + 31),
 95SSL_ERROR_RX_MALFORMED_CERT_REQUEST	= (SSL_ERROR_BASE + 32),
 96SSL_ERROR_RX_MALFORMED_HELLO_DONE	= (SSL_ERROR_BASE + 33),
 97SSL_ERROR_RX_MALFORMED_CERT_VERIFY	= (SSL_ERROR_BASE + 34),
 98SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH	= (SSL_ERROR_BASE + 35),
 99SSL_ERROR_RX_MALFORMED_FINISHED 	= (SSL_ERROR_BASE + 36),
100/* 
101 * Received a malformed (too long or short) SSL record.
102 */
103SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER 	= (SSL_ERROR_BASE + 37),
104SSL_ERROR_RX_MALFORMED_ALERT	 	= (SSL_ERROR_BASE + 38),
105SSL_ERROR_RX_MALFORMED_HANDSHAKE 	= (SSL_ERROR_BASE + 39),
106SSL_ERROR_RX_MALFORMED_APPLICATION_DATA	= (SSL_ERROR_BASE + 40),
107/*
108 * Received an SSL handshake that was inappropriate for the state we're in.
109 * E.g. Server received message from server, or wrong state in state machine.
110 */
111SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST	= (SSL_ERROR_BASE + 41),
112SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO	= (SSL_ERROR_BASE + 42),
113SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO	= (SSL_ERROR_BASE + 43),
114SSL_ERROR_RX_UNEXPECTED_CERTIFICATE	= (SSL_ERROR_BASE + 44),
115SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH	= (SSL_ERROR_BASE + 45),
116SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST	= (SSL_ERROR_BASE + 46),
117SSL_ERROR_RX_UNEXPECTED_HELLO_DONE	= (SSL_ERROR_BASE + 47),
118SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY	= (SSL_ERROR_BASE + 48),
119SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH	= (SSL_ERROR_BASE + 49),
120SSL_ERROR_RX_UNEXPECTED_FINISHED 	= (SSL_ERROR_BASE + 50),
121/*
122 * Received an SSL record that was inappropriate for the state we're in.
123 */
124SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER 	= (SSL_ERROR_BASE + 51),
125SSL_ERROR_RX_UNEXPECTED_ALERT	 	= (SSL_ERROR_BASE + 52),
126SSL_ERROR_RX_UNEXPECTED_HANDSHAKE 	= (SSL_ERROR_BASE + 53),
127SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA= (SSL_ERROR_BASE + 54),
128/*
129 * Received record/message with unknown discriminant.
130 */
131SSL_ERROR_RX_UNKNOWN_RECORD_TYPE	= (SSL_ERROR_BASE + 55),
132SSL_ERROR_RX_UNKNOWN_HANDSHAKE 		= (SSL_ERROR_BASE + 56),
133SSL_ERROR_RX_UNKNOWN_ALERT 		= (SSL_ERROR_BASE + 57),
134/* 
135 * Received an alert reporting what we did wrong.  (more alerts above)
136 */
137SSL_ERROR_CLOSE_NOTIFY_ALERT 		= (SSL_ERROR_BASE + 58),
138SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT 	= (SSL_ERROR_BASE + 59),
139SSL_ERROR_DECOMPRESSION_FAILURE_ALERT 	= (SSL_ERROR_BASE + 60),
140SSL_ERROR_HANDSHAKE_FAILURE_ALERT 	= (SSL_ERROR_BASE + 61),
141SSL_ERROR_ILLEGAL_PARAMETER_ALERT 	= (SSL_ERROR_BASE + 62),
142SSL_ERROR_UNSUPPORTED_CERT_ALERT 	= (SSL_ERROR_BASE + 63),
143SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT 	= (SSL_ERROR_BASE + 64),
144
145SSL_ERROR_GENERATE_RANDOM_FAILURE	= (SSL_ERROR_BASE + 65),
146SSL_ERROR_SIGN_HASHES_FAILURE		= (SSL_ERROR_BASE + 66),
147SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE	= (SSL_ERROR_BASE + 67),
148SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE	= (SSL_ERROR_BASE + 68),
149SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE	= (SSL_ERROR_BASE + 69),
150
151SSL_ERROR_ENCRYPTION_FAILURE		= (SSL_ERROR_BASE + 70),
152SSL_ERROR_DECRYPTION_FAILURE		= (SSL_ERROR_BASE + 71),
153SSL_ERROR_SOCKET_WRITE_FAILURE		= (SSL_ERROR_BASE + 72),
154
155SSL_ERROR_MD5_DIGEST_FAILURE		= (SSL_ERROR_BASE + 73),
156SSL_ERROR_SHA_DIGEST_FAILURE		= (SSL_ERROR_BASE + 74),
157SSL_ERROR_MAC_COMPUTATION_FAILURE	= (SSL_ERROR_BASE + 75),
158SSL_ERROR_SYM_KEY_CONTEXT_FAILURE	= (SSL_ERROR_BASE + 76),
159SSL_ERROR_SYM_KEY_UNWRAP_FAILURE	= (SSL_ERROR_BASE + 77),
160SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED	= (SSL_ERROR_BASE + 78),
161SSL_ERROR_IV_PARAM_FAILURE		= (SSL_ERROR_BASE + 79),
162SSL_ERROR_INIT_CIPHER_SUITE_FAILURE	= (SSL_ERROR_BASE + 80),
163SSL_ERROR_SESSION_KEY_GEN_FAILURE	= (SSL_ERROR_BASE + 81),
164SSL_ERROR_NO_SERVER_KEY_FOR_ALG		= (SSL_ERROR_BASE + 82),
165SSL_ERROR_TOKEN_INSERTION_REMOVAL	= (SSL_ERROR_BASE + 83),
166SSL_ERROR_TOKEN_SLOT_NOT_FOUND		= (SSL_ERROR_BASE + 84),
167SSL_ERROR_NO_COMPRESSION_OVERLAP	= (SSL_ERROR_BASE + 85),
168SSL_ERROR_HANDSHAKE_NOT_COMPLETED	= (SSL_ERROR_BASE + 86),
169SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE	= (SSL_ERROR_BASE + 87),
170SSL_ERROR_CERT_KEA_MISMATCH		= (SSL_ERROR_BASE + 88),
171SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA	= (SSL_ERROR_BASE + 89),
172SSL_ERROR_SESSION_NOT_FOUND		= (SSL_ERROR_BASE + 90),
173
174SSL_ERROR_DECRYPTION_FAILED_ALERT	= (SSL_ERROR_BASE + 91),
175SSL_ERROR_RECORD_OVERFLOW_ALERT		= (SSL_ERROR_BASE + 92),
176SSL_ERROR_UNKNOWN_CA_ALERT		= (SSL_ERROR_BASE + 93),
177SSL_ERROR_ACCESS_DENIED_ALERT		= (SSL_ERROR_BASE + 94),
178SSL_ERROR_DECODE_ERROR_ALERT		= (SSL_ERROR_BASE + 95),
179SSL_ERROR_DECRYPT_ERROR_ALERT		= (SSL_ERROR_BASE + 96),
180SSL_ERROR_EXPORT_RESTRICTION_ALERT	= (SSL_ERROR_BASE + 97),
181SSL_ERROR_PROTOCOL_VERSION_ALERT	= (SSL_ERROR_BASE + 98),
182SSL_ERROR_INSUFFICIENT_SECURITY_ALERT	= (SSL_ERROR_BASE + 99),
183SSL_ERROR_INTERNAL_ERROR_ALERT		= (SSL_ERROR_BASE + 100),
184SSL_ERROR_USER_CANCELED_ALERT		= (SSL_ERROR_BASE + 101),
185SSL_ERROR_NO_RENEGOTIATION_ALERT	= (SSL_ERROR_BASE + 102),
186
187SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED	= (SSL_ERROR_BASE + 103),
188
189SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT		= (SSL_ERROR_BASE + 104),
190SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT	= (SSL_ERROR_BASE + 105),
191SSL_ERROR_UNRECOGNIZED_NAME_ALERT		= (SSL_ERROR_BASE + 106),
192SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT	= (SSL_ERROR_BASE + 107),
193SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT		= (SSL_ERROR_BASE + 108),
194
195SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET = (SSL_ERROR_BASE + 109),
196SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET  = (SSL_ERROR_BASE + 110),
197
198SSL_ERROR_END_OF_LIST	/* let the c compiler determine the value of this. */
199} SSLErrorCodes;
200#endif /* NO_SECURITY_ERROR_ENUM */
201
202#endif /* __SSL_ERR_H_ */