os/ossrv/ssl/libcrypto/inc/include/openssl/tls1.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/* ssl/tls1.h */
sl@0
     2
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
sl@0
     3
 * All rights reserved.
sl@0
     4
 *
sl@0
     5
 * This package is an SSL implementation written
sl@0
     6
 * by Eric Young (eay@cryptsoft.com).
sl@0
     7
 * The implementation was written so as to conform with Netscapes SSL.
sl@0
     8
 * 
sl@0
     9
 * This library is free for commercial and non-commercial use as long as
sl@0
    10
 * the following conditions are aheared to.  The following conditions
sl@0
    11
 * apply to all code found in this distribution, be it the RC4, RSA,
sl@0
    12
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
sl@0
    13
 * included with this distribution is covered by the same copyright terms
sl@0
    14
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
sl@0
    15
 * 
sl@0
    16
 * Copyright remains Eric Young's, and as such any Copyright notices in
sl@0
    17
 * the code are not to be removed.
sl@0
    18
 * If this package is used in a product, Eric Young should be given attribution
sl@0
    19
 * as the author of the parts of the library used.
sl@0
    20
 * This can be in the form of a textual message at program startup or
sl@0
    21
 * in documentation (online or textual) provided with the package.
sl@0
    22
 * 
sl@0
    23
 * Redistribution and use in source and binary forms, with or without
sl@0
    24
 * modification, are permitted provided that the following conditions
sl@0
    25
 * are met:
sl@0
    26
 * 1. Redistributions of source code must retain the copyright
sl@0
    27
 *    notice, this list of conditions and the following disclaimer.
sl@0
    28
 * 2. Redistributions in binary form must reproduce the above copyright
sl@0
    29
 *    notice, this list of conditions and the following disclaimer in the
sl@0
    30
 *    documentation and/or other materials provided with the distribution.
sl@0
    31
 * 3. All advertising materials mentioning features or use of this software
sl@0
    32
 *    must display the following acknowledgement:
sl@0
    33
 *    "This product includes cryptographic software written by
sl@0
    34
 *     Eric Young (eay@cryptsoft.com)"
sl@0
    35
 *    The word 'cryptographic' can be left out if the rouines from the library
sl@0
    36
 *    being used are not cryptographic related :-).
sl@0
    37
 * 4. If you include any Windows specific code (or a derivative thereof) from 
sl@0
    38
 *    the apps directory (application code) you must include an acknowledgement:
sl@0
    39
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
sl@0
    40
 * 
sl@0
    41
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
sl@0
    42
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
sl@0
    43
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
sl@0
    44
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
sl@0
    45
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
sl@0
    46
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
sl@0
    47
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
sl@0
    48
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
sl@0
    49
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
sl@0
    50
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
sl@0
    51
 * SUCH DAMAGE.
sl@0
    52
 * 
sl@0
    53
 * The licence and distribution terms for any publically available version or
sl@0
    54
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
sl@0
    55
 * copied and put under another distribution licence
sl@0
    56
 * [including the GNU Public Licence.]
sl@0
    57
 */
sl@0
    58
/* ====================================================================
sl@0
    59
 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
sl@0
    60
 *
sl@0
    61
 * Portions of the attached software ("Contribution") are developed by 
sl@0
    62
 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project.
sl@0
    63
 *
sl@0
    64
 * The Contribution is licensed pursuant to the OpenSSL open source
sl@0
    65
 * license provided above.
sl@0
    66
 *
sl@0
    67
 * ECC cipher suite support in OpenSSL originally written by
sl@0
    68
 * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories.
sl@0
    69
 *
sl@0
    70
 */
sl@0
    71
sl@0
    72
#ifndef HEADER_TLS1_H 
sl@0
    73
#define HEADER_TLS1_H 
sl@0
    74
sl@0
    75
#include <openssl/buffer.h>
sl@0
    76
sl@0
    77
#ifdef  __cplusplus
sl@0
    78
extern "C" {
sl@0
    79
#endif
sl@0
    80
sl@0
    81
#define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES	1
sl@0
    82
sl@0
    83
#define TLS1_VERSION			0x0301
sl@0
    84
#define TLS1_VERSION_MAJOR		0x03
sl@0
    85
#define TLS1_VERSION_MINOR		0x01
sl@0
    86
sl@0
    87
#define TLS1_AD_DECRYPTION_FAILED	21
sl@0
    88
#define TLS1_AD_RECORD_OVERFLOW		22
sl@0
    89
#define TLS1_AD_UNKNOWN_CA		48	/* fatal */
sl@0
    90
#define TLS1_AD_ACCESS_DENIED		49	/* fatal */
sl@0
    91
#define TLS1_AD_DECODE_ERROR		50	/* fatal */
sl@0
    92
#define TLS1_AD_DECRYPT_ERROR		51
sl@0
    93
#define TLS1_AD_EXPORT_RESTRICTION	60	/* fatal */
sl@0
    94
#define TLS1_AD_PROTOCOL_VERSION	70	/* fatal */
sl@0
    95
#define TLS1_AD_INSUFFICIENT_SECURITY	71	/* fatal */
sl@0
    96
#define TLS1_AD_INTERNAL_ERROR		80	/* fatal */
sl@0
    97
#define TLS1_AD_USER_CANCELLED		90
sl@0
    98
#define TLS1_AD_NO_RENEGOTIATION	100
sl@0
    99
/* codes 110-114 are from RFC3546 */
sl@0
   100
#define TLS1_AD_UNSUPPORTED_EXTENSION	110
sl@0
   101
#define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111
sl@0
   102
#define TLS1_AD_UNRECOGNIZED_NAME 	112
sl@0
   103
#define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113
sl@0
   104
#define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114
sl@0
   105
#define TLS1_AD_UNKNOWN_PSK_IDENTITY	115	/* fatal */
sl@0
   106
sl@0
   107
/* ExtensionType values from RFC 3546 */
sl@0
   108
#define TLSEXT_TYPE_server_name			0
sl@0
   109
#define TLSEXT_TYPE_max_fragment_length		1
sl@0
   110
#define TLSEXT_TYPE_client_certificate_url	2
sl@0
   111
#define TLSEXT_TYPE_trusted_ca_keys		3
sl@0
   112
#define TLSEXT_TYPE_truncated_hmac		4
sl@0
   113
#define TLSEXT_TYPE_status_request		5
sl@0
   114
#define TLSEXT_TYPE_elliptic_curves		10
sl@0
   115
#define TLSEXT_TYPE_ec_point_formats		11
sl@0
   116
#define TLSEXT_TYPE_session_ticket		35
sl@0
   117
sl@0
   118
/* NameType value from RFC 3546 */
sl@0
   119
#define TLSEXT_NAMETYPE_host_name 0
sl@0
   120
sl@0
   121
#ifndef OPENSSL_NO_TLSEXT
sl@0
   122
sl@0
   123
#define TLSEXT_MAXLEN_host_name 255
sl@0
   124
sl@0
   125
const char *SSL_get_servername(const SSL *s, const int type) ;
sl@0
   126
int SSL_get_servername_type(const SSL *s) ;
sl@0
   127
sl@0
   128
#define SSL_set_tlsext_host_name(s,name) \
sl@0
   129
SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name)
sl@0
   130
sl@0
   131
#define SSL_set_tlsext_debug_callback(ssl, cb) \
sl@0
   132
SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb)
sl@0
   133
sl@0
   134
#define SSL_set_tlsext_debug_arg(ssl, arg) \
sl@0
   135
SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg)
sl@0
   136
sl@0
   137
#define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \
sl@0
   138
SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb)
sl@0
   139
sl@0
   140
#define SSL_TLSEXT_ERR_OK 0    
sl@0
   141
#define SSL_TLSEXT_ERR_ALERT_WARNING 1  
sl@0
   142
#define SSL_TLSEXT_ERR_ALERT_FATAL 2 
sl@0
   143
#define SSL_TLSEXT_ERR_NOACK 3
sl@0
   144
sl@0
   145
#define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \
sl@0
   146
SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg)
sl@0
   147
sl@0
   148
#define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \
sl@0
   149
	SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLXEXT_TICKET_KEYS,(keylen),(keys))
sl@0
   150
#define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \
sl@0
   151
	SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLXEXT_TICKET_KEYS,(keylen),(keys))
sl@0
   152
#endif
sl@0
   153
sl@0
   154
/* Additional TLS ciphersuites from draft-ietf-tls-56-bit-ciphersuites-00.txt
sl@0
   155
 * (available if TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see
sl@0
   156
 * s3_lib.c).  We actually treat them like SSL 3.0 ciphers, which we probably
sl@0
   157
 * shouldn't. */
sl@0
   158
#define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5		0x03000060
sl@0
   159
#define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5	0x03000061
sl@0
   160
#define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA		0x03000062
sl@0
   161
#define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA	0x03000063
sl@0
   162
#define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA		0x03000064
sl@0
   163
#define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA	0x03000065
sl@0
   164
#define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA		0x03000066
sl@0
   165
sl@0
   166
/* AES ciphersuites from RFC3268 */
sl@0
   167
sl@0
   168
#define TLS1_CK_RSA_WITH_AES_128_SHA			0x0300002F
sl@0
   169
#define TLS1_CK_DH_DSS_WITH_AES_128_SHA			0x03000030
sl@0
   170
#define TLS1_CK_DH_RSA_WITH_AES_128_SHA			0x03000031
sl@0
   171
#define TLS1_CK_DHE_DSS_WITH_AES_128_SHA		0x03000032
sl@0
   172
#define TLS1_CK_DHE_RSA_WITH_AES_128_SHA		0x03000033
sl@0
   173
#define TLS1_CK_ADH_WITH_AES_128_SHA			0x03000034
sl@0
   174
sl@0
   175
#define TLS1_CK_RSA_WITH_AES_256_SHA			0x03000035
sl@0
   176
#define TLS1_CK_DH_DSS_WITH_AES_256_SHA			0x03000036
sl@0
   177
#define TLS1_CK_DH_RSA_WITH_AES_256_SHA			0x03000037
sl@0
   178
#define TLS1_CK_DHE_DSS_WITH_AES_256_SHA		0x03000038
sl@0
   179
#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA		0x03000039
sl@0
   180
#define TLS1_CK_ADH_WITH_AES_256_SHA			0x0300003A
sl@0
   181
sl@0
   182
/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001).
sl@0
   183
 * XXX NOTE: There is a bug in the draft, cipher numbers 4B, and 4C
sl@0
   184
 * are defined twice so we define ECDH_ECDSA_EXPORT cipher
sl@0
   185
 * suites to use 5B and 5C instead (this may change with future
sl@0
   186
 * updates to the IETF draft).
sl@0
   187
 */
sl@0
   188
/* draft-ietf-tls-ecc-03.txt (June 2003) gives a changed list of
sl@0
   189
 * ciphersuites, but does not define numbers for all of them
sl@0
   190
 * because of possible conflicts with other Internet Drafts;
sl@0
   191
 * most numbers are still subject to change. */
sl@0
   192
#define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA                0x03000047
sl@0
   193
#define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA             0x03000048
sl@0
   194
#define TLS1_CK_ECDH_ECDSA_WITH_DES_CBC_SHA             0x03000049
sl@0
   195
#define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA        0x0300004A
sl@0
   196
#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA         0x0300004B
sl@0
   197
#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA         0x0300004C
sl@0
   198
#define TLS1_CK_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA       0x0300005B
sl@0
   199
#define TLS1_CK_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA       0x0300005C
sl@0
   200
sl@0
   201
#define TLS1_CK_ECDH_RSA_WITH_NULL_SHA                  0x0300004D
sl@0
   202
#define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA               0x0300004E
sl@0
   203
#define TLS1_CK_ECDH_RSA_WITH_DES_CBC_SHA               0x0300004F
sl@0
   204
#define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA          0x03000050
sl@0
   205
#define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA           0x03000051
sl@0
   206
#define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA           0x03000052
sl@0
   207
#define TLS1_CK_ECDH_RSA_EXPORT_WITH_RC4_40_SHA         0x03000053
sl@0
   208
#define TLS1_CK_ECDH_RSA_EXPORT_WITH_RC4_56_SHA         0x03000054
sl@0
   209
sl@0
   210
#define TLS1_CK_ECDH_anon_WITH_NULL_SHA                 0x03000055
sl@0
   211
#define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA              0x03000056
sl@0
   212
#define TLS1_CK_ECDH_anon_WITH_DES_CBC_SHA              0x03000057
sl@0
   213
#define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA         0x03000058
sl@0
   214
#define TLS1_CK_ECDH_anon_EXPORT_WITH_DES_40_CBC_SHA    0x03000059
sl@0
   215
#define TLS1_CK_ECDH_anon_EXPORT_WITH_RC4_40_SHA        0x0300005A
sl@0
   216
sl@0
   217
/* XXX: ECC ciphersuites offering forward secrecy are not yet specified
sl@0
   218
 * in the ECC/TLS draft but our code allows them to be implemented
sl@0
   219
 * very easily. To add such a cipher suite, one needs to add two constant
sl@0
   220
 * definitions to this file and a new structure in s3_lib.c. We illustrate
sl@0
   221
 * the process for the made-up ciphers ECDHE-ECDSA-AES128-SHA and
sl@0
   222
 * ECDHE-RSA-AES128-SHA.
sl@0
   223
 */
sl@0
   224
#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA        0x03000077
sl@0
   225
#define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA          0x03000078
sl@0
   226
sl@0
   227
sl@0
   228
/* XXX
sl@0
   229
 * Inconsistency alert:
sl@0
   230
 * The OpenSSL names of ciphers with ephemeral DH here include the string
sl@0
   231
 * "DHE", while elsewhere it has always been "EDH".
sl@0
   232
 * (The alias for the list of all such ciphers also is "EDH".)
sl@0
   233
 * The specifications speak of "EDH"; maybe we should allow both forms
sl@0
   234
 * for everything. */
sl@0
   235
#define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5		"EXP1024-RC4-MD5"
sl@0
   236
#define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5	"EXP1024-RC2-CBC-MD5"
sl@0
   237
#define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA	"EXP1024-DES-CBC-SHA"
sl@0
   238
#define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA	"EXP1024-DHE-DSS-DES-CBC-SHA"
sl@0
   239
#define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA		"EXP1024-RC4-SHA"
sl@0
   240
#define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA	"EXP1024-DHE-DSS-RC4-SHA"
sl@0
   241
#define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA		"DHE-DSS-RC4-SHA"
sl@0
   242
sl@0
   243
/* AES ciphersuites from RFC3268 */
sl@0
   244
#define TLS1_TXT_RSA_WITH_AES_128_SHA			"AES128-SHA"
sl@0
   245
#define TLS1_TXT_DH_DSS_WITH_AES_128_SHA		"DH-DSS-AES128-SHA"
sl@0
   246
#define TLS1_TXT_DH_RSA_WITH_AES_128_SHA		"DH-RSA-AES128-SHA"
sl@0
   247
#define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA		"DHE-DSS-AES128-SHA"
sl@0
   248
#define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA		"DHE-RSA-AES128-SHA"
sl@0
   249
#define TLS1_TXT_ADH_WITH_AES_128_SHA			"ADH-AES128-SHA"
sl@0
   250
sl@0
   251
#define TLS1_TXT_RSA_WITH_AES_256_SHA			"AES256-SHA"
sl@0
   252
#define TLS1_TXT_DH_DSS_WITH_AES_256_SHA		"DH-DSS-AES256-SHA"
sl@0
   253
#define TLS1_TXT_DH_RSA_WITH_AES_256_SHA		"DH-RSA-AES256-SHA"
sl@0
   254
#define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA		"DHE-DSS-AES256-SHA"
sl@0
   255
#define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA		"DHE-RSA-AES256-SHA"
sl@0
   256
#define TLS1_TXT_ADH_WITH_AES_256_SHA			"ADH-AES256-SHA"
sl@0
   257
sl@0
   258
/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */
sl@0
   259
#define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA               "ECDH-ECDSA-NULL-SHA"
sl@0
   260
#define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA            "ECDH-ECDSA-RC4-SHA"
sl@0
   261
#define TLS1_TXT_ECDH_ECDSA_WITH_DES_CBC_SHA            "ECDH-ECDSA-DES-CBC-SHA"
sl@0
   262
#define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA       "ECDH-ECDSA-DES-CBC3-SHA"
sl@0
   263
#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA        "ECDH-ECDSA-AES128-SHA"
sl@0
   264
#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA        "ECDH-ECDSA-AES256-SHA"
sl@0
   265
#define TLS1_TXT_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA      "EXP-ECDH-ECDSA-RC4-40-SHA"
sl@0
   266
#define TLS1_TXT_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA      "EXP-ECDH-ECDSA-RC4-56-SHA"
sl@0
   267
sl@0
   268
#define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA                 "ECDH-RSA-NULL-SHA"
sl@0
   269
#define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA              "ECDH-RSA-RC4-SHA"
sl@0
   270
#define TLS1_TXT_ECDH_RSA_WITH_DES_CBC_SHA              "ECDH-RSA-DES-CBC-SHA"
sl@0
   271
#define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA         "ECDH-RSA-DES-CBC3-SHA"
sl@0
   272
#define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA          "ECDH-RSA-AES128-SHA"
sl@0
   273
#define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA          "ECDH-RSA-AES256-SHA"
sl@0
   274
#define TLS1_TXT_ECDH_RSA_EXPORT_WITH_RC4_40_SHA        "EXP-ECDH-RSA-RC4-40-SHA"
sl@0
   275
#define TLS1_TXT_ECDH_RSA_EXPORT_WITH_RC4_56_SHA        "EXP-ECDH-RSA-RC4-56-SHA"
sl@0
   276
sl@0
   277
#define TLS1_TXT_ECDH_anon_WITH_NULL_SHA                "AECDH-NULL-SHA"
sl@0
   278
#define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA             "AECDH-RC4-SHA"
sl@0
   279
#define TLS1_TXT_ECDH_anon_WITH_DES_CBC_SHA             "AECDH-DES-CBC-SHA"
sl@0
   280
#define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA        "AECDH-DES-CBC3-SHA"
sl@0
   281
#define TLS1_TXT_ECDH_anon_EXPORT_WITH_DES_40_CBC_SHA   "EXP-AECDH-DES-40-CBC-SHA"
sl@0
   282
#define TLS1_TXT_ECDH_anon_EXPORT_WITH_RC4_40_SHA       "EXP-AECDH-RC4-40-SHA"
sl@0
   283
sl@0
   284
/* XXX: Made-up ECC cipher suites offering forward secrecy. This is for 
sl@0
   285
 * illustration only. 
sl@0
   286
 */
sl@0
   287
#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA       "ECDHE-ECDSA-AES128-SHA"
sl@0
   288
#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA         "ECDHE-RSA-AES128-SHA"
sl@0
   289
sl@0
   290
sl@0
   291
#define TLS_CT_RSA_SIGN			1
sl@0
   292
#define TLS_CT_DSS_SIGN			2
sl@0
   293
#define TLS_CT_RSA_FIXED_DH		3
sl@0
   294
#define TLS_CT_DSS_FIXED_DH		4
sl@0
   295
#define TLS_CT_ECDSA_SIGN		5
sl@0
   296
#define TLS_CT_RSA_FIXED_ECDH		6
sl@0
   297
#define TLS_CT_ECDSA_FIXED_ECDH 	7
sl@0
   298
#define TLS_CT_NUMBER			7
sl@0
   299
sl@0
   300
#define TLS1_FINISH_MAC_LENGTH		12
sl@0
   301
sl@0
   302
#define TLS_MD_MAX_CONST_SIZE			20
sl@0
   303
#define TLS_MD_CLIENT_FINISH_CONST		"client finished"
sl@0
   304
#define TLS_MD_CLIENT_FINISH_CONST_SIZE		15
sl@0
   305
#define TLS_MD_SERVER_FINISH_CONST		"server finished"
sl@0
   306
#define TLS_MD_SERVER_FINISH_CONST_SIZE		15
sl@0
   307
#define TLS_MD_SERVER_WRITE_KEY_CONST		"server write key"
sl@0
   308
#define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE	16
sl@0
   309
#define TLS_MD_KEY_EXPANSION_CONST		"key expansion"
sl@0
   310
#define TLS_MD_KEY_EXPANSION_CONST_SIZE		13
sl@0
   311
#define TLS_MD_CLIENT_WRITE_KEY_CONST		"client write key"
sl@0
   312
#define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE	16
sl@0
   313
#define TLS_MD_SERVER_WRITE_KEY_CONST		"server write key"
sl@0
   314
#define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE	16
sl@0
   315
#define TLS_MD_IV_BLOCK_CONST			"IV block"
sl@0
   316
#define TLS_MD_IV_BLOCK_CONST_SIZE		8
sl@0
   317
#define TLS_MD_MASTER_SECRET_CONST		"master secret"
sl@0
   318
#define TLS_MD_MASTER_SECRET_CONST_SIZE		13
sl@0
   319
sl@0
   320
#ifdef CHARSET_EBCDIC
sl@0
   321
#undef TLS_MD_CLIENT_FINISH_CONST
sl@0
   322
#define TLS_MD_CLIENT_FINISH_CONST    "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64"  /*client finished*/
sl@0
   323
#undef TLS_MD_SERVER_FINISH_CONST
sl@0
   324
#define TLS_MD_SERVER_FINISH_CONST    "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64"  /*server finished*/
sl@0
   325
#undef TLS_MD_SERVER_WRITE_KEY_CONST
sl@0
   326
#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"  /*server write key*/
sl@0
   327
#undef TLS_MD_KEY_EXPANSION_CONST
sl@0
   328
#define TLS_MD_KEY_EXPANSION_CONST    "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e"  /*key expansion*/
sl@0
   329
#undef TLS_MD_CLIENT_WRITE_KEY_CONST
sl@0
   330
#define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"  /*client write key*/
sl@0
   331
#undef TLS_MD_SERVER_WRITE_KEY_CONST
sl@0
   332
#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"  /*server write key*/
sl@0
   333
#undef TLS_MD_IV_BLOCK_CONST
sl@0
   334
#define TLS_MD_IV_BLOCK_CONST         "\x49\x56\x20\x62\x6c\x6f\x63\x6b"  /*IV block*/
sl@0
   335
#undef TLS_MD_MASTER_SECRET_CONST
sl@0
   336
#define TLS_MD_MASTER_SECRET_CONST    "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74"  /*master secret*/
sl@0
   337
#endif
sl@0
   338
sl@0
   339
#ifdef  __cplusplus
sl@0
   340
}
sl@0
   341
#endif
sl@0
   342
#endif
sl@0
   343
sl@0
   344
sl@0
   345