зеркало из https://github.com/mozilla/pjs.git
159 строки
6.0 KiB
C
159 строки
6.0 KiB
C
/*
|
|
* Various and sundry protocol constants. DON'T CHANGE THESE. These values
|
|
* are mostly defined by the SSL2, SSL3, or TLS protocol specifications.
|
|
* Cipher kinds and ciphersuites are part of the public API.
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is the Netscape security libraries.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1994-2000 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the
|
|
* terms of the GNU General Public License Version 2 or later (the
|
|
* "GPL"), in which case the provisions of the GPL are applicable
|
|
* instead of those above. If you wish to allow use of your
|
|
* version of this file only under the terms of the GPL and not to
|
|
* allow others to use your version of this file under the MPL,
|
|
* indicate your decision by deleting the provisions above and
|
|
* replace them with the notice and other provisions required by
|
|
* the GPL. If you do not delete the provisions above, a recipient
|
|
* may use your version of this file under either the MPL or the
|
|
* GPL.
|
|
*
|
|
* $Id: sslproto.h,v 1.1 2000-03-31 19:35:27 relyea%netscape.com Exp $
|
|
*/
|
|
|
|
#ifndef __sslproto_h_
|
|
#define __sslproto_h_
|
|
|
|
#define SSL_LIBRARY_VERSION_2 0x0002
|
|
#define SSL_LIBRARY_VERSION_2_1 0x0201
|
|
#define SSL_LIBRARY_VERSION_3_0 0x0300
|
|
#define SSL_LIBRARY_VERSION_3_1_TLS 0x0301
|
|
|
|
/* Header lengths of some of the messages */
|
|
#define SSL_HL_ERROR_HBYTES 3
|
|
#define SSL_HL_CLIENT_HELLO_HBYTES 9
|
|
#define SSL_HL_CLIENT_MASTER_KEY_HBYTES 10
|
|
#define SSL_HL_CLIENT_FINISHED_HBYTES 1
|
|
#define SSL_HL_SERVER_HELLO_HBYTES 11
|
|
#define SSL_HL_SERVER_VERIFY_HBYTES 1
|
|
#define SSL_HL_SERVER_FINISHED_HBYTES 1
|
|
#define SSL_HL_REQUEST_CERTIFICATE_HBYTES 2
|
|
#define SSL_HL_CLIENT_CERTIFICATE_HBYTES 6
|
|
|
|
/* Security handshake protocol codes */
|
|
#define SSL_MT_ERROR 0
|
|
#define SSL_MT_CLIENT_HELLO 1
|
|
#define SSL_MT_CLIENT_MASTER_KEY 2
|
|
#define SSL_MT_CLIENT_FINISHED 3
|
|
#define SSL_MT_SERVER_HELLO 4
|
|
#define SSL_MT_SERVER_VERIFY 5
|
|
#define SSL_MT_SERVER_FINISHED 6
|
|
#define SSL_MT_REQUEST_CERTIFICATE 7
|
|
#define SSL_MT_CLIENT_CERTIFICATE 8
|
|
|
|
/* Certificate types */
|
|
#define SSL_CT_X509_CERTIFICATE 0x01
|
|
#if 0 /* XXX Not implemented yet */
|
|
#define SSL_PKCS6_CERTIFICATE 0x02
|
|
#endif
|
|
#define SSL_AT_MD5_WITH_RSA_ENCRYPTION 0x01
|
|
|
|
/* Error codes */
|
|
#define SSL_PE_NO_CYPHERS 0x0001
|
|
#define SSL_PE_NO_CERTIFICATE 0x0002
|
|
#define SSL_PE_BAD_CERTIFICATE 0x0004
|
|
#define SSL_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006
|
|
|
|
/* Cypher kinds (not the spec version!) */
|
|
#define SSL_CK_RC4_128_WITH_MD5 0x01
|
|
#define SSL_CK_RC4_128_EXPORT40_WITH_MD5 0x02
|
|
#define SSL_CK_RC2_128_CBC_WITH_MD5 0x03
|
|
#define SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x04
|
|
#define SSL_CK_IDEA_128_CBC_WITH_MD5 0x05
|
|
#define SSL_CK_DES_64_CBC_WITH_MD5 0x06
|
|
#define SSL_CK_DES_192_EDE3_CBC_WITH_MD5 0x07
|
|
|
|
/* Cipher enables. These are used only for SSL_EnableCipher
|
|
* These values define the SSL2 suites, and do not colide with the
|
|
* SSL3 Cipher suites defined below.
|
|
*/
|
|
#define SSL_EN_RC4_128_WITH_MD5 0xFF01
|
|
#define SSL_EN_RC4_128_EXPORT40_WITH_MD5 0xFF02
|
|
#define SSL_EN_RC2_128_CBC_WITH_MD5 0xFF03
|
|
#define SSL_EN_RC2_128_CBC_EXPORT40_WITH_MD5 0xFF04
|
|
#define SSL_EN_IDEA_128_CBC_WITH_MD5 0xFF05
|
|
#define SSL_EN_DES_64_CBC_WITH_MD5 0xFF06
|
|
#define SSL_EN_DES_192_EDE3_CBC_WITH_MD5 0xFF07
|
|
|
|
/* SSL v3 Cipher Suites */
|
|
#define SSL_NULL_WITH_NULL_NULL 0x0000
|
|
|
|
#define SSL_RSA_WITH_NULL_MD5 0x0001
|
|
#define SSL_RSA_WITH_NULL_SHA 0x0002
|
|
#define SSL_RSA_EXPORT_WITH_RC4_40_MD5 0x0003
|
|
#define SSL_RSA_WITH_RC4_128_MD5 0x0004
|
|
#define SSL_RSA_WITH_RC4_128_SHA 0x0005
|
|
#define SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0x0006
|
|
#define SSL_RSA_WITH_IDEA_CBC_SHA 0x0007
|
|
#define SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008
|
|
#define SSL_RSA_WITH_DES_CBC_SHA 0x0009
|
|
#define SSL_RSA_WITH_3DES_EDE_CBC_SHA 0x000a
|
|
|
|
#define SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000b
|
|
#define SSL_DH_DSS_WITH_DES_CBC_SHA 0x000c
|
|
#define SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000d
|
|
#define SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000e
|
|
#define SSL_DH_RSA_WITH_DES_CBC_SHA 0x000f
|
|
#define SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010
|
|
|
|
#define SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011
|
|
#define SSL_DHE_DSS_WITH_DES_CBC_SHA 0x0012
|
|
#define SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013
|
|
#define SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014
|
|
#define SSL_DHE_RSA_WITH_DES_CBC_SHA 0x0015
|
|
#define SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016
|
|
|
|
#define SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5 0x0017
|
|
#define SSL_DH_ANON_WITH_RC4_128_MD5 0x0018
|
|
#define SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA 0x0019
|
|
#define SSL_DH_ANON_WITH_DES_CBC_SHA 0x001a
|
|
#define SSL_DH_ANON_WITH_3DES_EDE_CBC_SHA 0x001b
|
|
|
|
#define SSL_FORTEZZA_DMS_WITH_NULL_SHA 0x001c
|
|
#define SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA 0x001d
|
|
#define SSL_FORTEZZA_DMS_WITH_RC4_128_SHA 0x001e
|
|
|
|
/* New TLS cipher suites backported to SSL3. */
|
|
#define TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x0062
|
|
#define TLS_RSA_EXPORT1024_WITH_RC4_56_SHA 0x0064
|
|
|
|
#define TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x0063
|
|
#define TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x0065
|
|
#define TLS_DHE_DSS_WITH_RC4_128_SHA 0x0066
|
|
|
|
/* Netscape "experimental" cipher suites. */
|
|
#define SSL_RSA_OLDFIPS_WITH_3DES_EDE_CBC_SHA 0xffe0
|
|
#define SSL_RSA_OLDFIPS_WITH_DES_CBC_SHA 0xffe1
|
|
|
|
/* New non-experimental openly spec'ed versions of those cipher suites. */
|
|
#define SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA 0xfeff
|
|
#define SSL_RSA_FIPS_WITH_DES_CBC_SHA 0xfefe
|
|
|
|
#endif /* __sslproto_h_ */
|