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