xref: /netbsd-src/crypto/external/bsd/openssl.old/dist/include/openssl/ssl3.h (revision 4724848cf0da353df257f730694b7882798e5daf)
1*4724848cSchristos /*
2*4724848cSchristos  * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
3*4724848cSchristos  * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
4*4724848cSchristos  *
5*4724848cSchristos  * Licensed under the OpenSSL license (the "License").  You may not use
6*4724848cSchristos  * this file except in compliance with the License.  You can obtain a copy
7*4724848cSchristos  * in the file LICENSE in the source distribution or at
8*4724848cSchristos  * https://www.openssl.org/source/license.html
9*4724848cSchristos  */
10*4724848cSchristos 
11*4724848cSchristos #ifndef HEADER_SSL3_H
12*4724848cSchristos # define HEADER_SSL3_H
13*4724848cSchristos 
14*4724848cSchristos # include <openssl/comp.h>
15*4724848cSchristos # include <openssl/buffer.h>
16*4724848cSchristos # include <openssl/evp.h>
17*4724848cSchristos # include <openssl/ssl.h>
18*4724848cSchristos 
19*4724848cSchristos #ifdef  __cplusplus
20*4724848cSchristos extern "C" {
21*4724848cSchristos #endif
22*4724848cSchristos 
23*4724848cSchristos /*
24*4724848cSchristos  * Signalling cipher suite value from RFC 5746
25*4724848cSchristos  * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV)
26*4724848cSchristos  */
27*4724848cSchristos # define SSL3_CK_SCSV                            0x030000FF
28*4724848cSchristos 
29*4724848cSchristos /*
30*4724848cSchristos  * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00
31*4724848cSchristos  * (TLS_FALLBACK_SCSV)
32*4724848cSchristos  */
33*4724848cSchristos # define SSL3_CK_FALLBACK_SCSV                   0x03005600
34*4724848cSchristos 
35*4724848cSchristos # define SSL3_CK_RSA_NULL_MD5                    0x03000001
36*4724848cSchristos # define SSL3_CK_RSA_NULL_SHA                    0x03000002
37*4724848cSchristos # define SSL3_CK_RSA_RC4_40_MD5                  0x03000003
38*4724848cSchristos # define SSL3_CK_RSA_RC4_128_MD5                 0x03000004
39*4724848cSchristos # define SSL3_CK_RSA_RC4_128_SHA                 0x03000005
40*4724848cSchristos # define SSL3_CK_RSA_RC2_40_MD5                  0x03000006
41*4724848cSchristos # define SSL3_CK_RSA_IDEA_128_SHA                0x03000007
42*4724848cSchristos # define SSL3_CK_RSA_DES_40_CBC_SHA              0x03000008
43*4724848cSchristos # define SSL3_CK_RSA_DES_64_CBC_SHA              0x03000009
44*4724848cSchristos # define SSL3_CK_RSA_DES_192_CBC3_SHA            0x0300000A
45*4724848cSchristos 
46*4724848cSchristos # define SSL3_CK_DH_DSS_DES_40_CBC_SHA           0x0300000B
47*4724848cSchristos # define SSL3_CK_DH_DSS_DES_64_CBC_SHA           0x0300000C
48*4724848cSchristos # define SSL3_CK_DH_DSS_DES_192_CBC3_SHA         0x0300000D
49*4724848cSchristos # define SSL3_CK_DH_RSA_DES_40_CBC_SHA           0x0300000E
50*4724848cSchristos # define SSL3_CK_DH_RSA_DES_64_CBC_SHA           0x0300000F
51*4724848cSchristos # define SSL3_CK_DH_RSA_DES_192_CBC3_SHA         0x03000010
52*4724848cSchristos 
53*4724848cSchristos # define SSL3_CK_DHE_DSS_DES_40_CBC_SHA          0x03000011
54*4724848cSchristos # define SSL3_CK_EDH_DSS_DES_40_CBC_SHA          SSL3_CK_DHE_DSS_DES_40_CBC_SHA
55*4724848cSchristos # define SSL3_CK_DHE_DSS_DES_64_CBC_SHA          0x03000012
56*4724848cSchristos # define SSL3_CK_EDH_DSS_DES_64_CBC_SHA          SSL3_CK_DHE_DSS_DES_64_CBC_SHA
57*4724848cSchristos # define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA        0x03000013
58*4724848cSchristos # define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA        SSL3_CK_DHE_DSS_DES_192_CBC3_SHA
59*4724848cSchristos # define SSL3_CK_DHE_RSA_DES_40_CBC_SHA          0x03000014
60*4724848cSchristos # define SSL3_CK_EDH_RSA_DES_40_CBC_SHA          SSL3_CK_DHE_RSA_DES_40_CBC_SHA
61*4724848cSchristos # define SSL3_CK_DHE_RSA_DES_64_CBC_SHA          0x03000015
62*4724848cSchristos # define SSL3_CK_EDH_RSA_DES_64_CBC_SHA          SSL3_CK_DHE_RSA_DES_64_CBC_SHA
63*4724848cSchristos # define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA        0x03000016
64*4724848cSchristos # define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA        SSL3_CK_DHE_RSA_DES_192_CBC3_SHA
65*4724848cSchristos 
66*4724848cSchristos # define SSL3_CK_ADH_RC4_40_MD5                  0x03000017
67*4724848cSchristos # define SSL3_CK_ADH_RC4_128_MD5                 0x03000018
68*4724848cSchristos # define SSL3_CK_ADH_DES_40_CBC_SHA              0x03000019
69*4724848cSchristos # define SSL3_CK_ADH_DES_64_CBC_SHA              0x0300001A
70*4724848cSchristos # define SSL3_CK_ADH_DES_192_CBC_SHA             0x0300001B
71*4724848cSchristos 
72*4724848cSchristos /* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */
73*4724848cSchristos # define SSL3_RFC_RSA_NULL_MD5                   "TLS_RSA_WITH_NULL_MD5"
74*4724848cSchristos # define SSL3_RFC_RSA_NULL_SHA                   "TLS_RSA_WITH_NULL_SHA"
75*4724848cSchristos # define SSL3_RFC_RSA_DES_192_CBC3_SHA           "TLS_RSA_WITH_3DES_EDE_CBC_SHA"
76*4724848cSchristos # define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA       "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
77*4724848cSchristos # define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA       "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"
78*4724848cSchristos # define SSL3_RFC_ADH_DES_192_CBC_SHA            "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA"
79*4724848cSchristos # define SSL3_RFC_RSA_IDEA_128_SHA               "TLS_RSA_WITH_IDEA_CBC_SHA"
80*4724848cSchristos # define SSL3_RFC_RSA_RC4_128_MD5                "TLS_RSA_WITH_RC4_128_MD5"
81*4724848cSchristos # define SSL3_RFC_RSA_RC4_128_SHA                "TLS_RSA_WITH_RC4_128_SHA"
82*4724848cSchristos # define SSL3_RFC_ADH_RC4_128_MD5                "TLS_DH_anon_WITH_RC4_128_MD5"
83*4724848cSchristos 
84*4724848cSchristos # define SSL3_TXT_RSA_NULL_MD5                   "NULL-MD5"
85*4724848cSchristos # define SSL3_TXT_RSA_NULL_SHA                   "NULL-SHA"
86*4724848cSchristos # define SSL3_TXT_RSA_RC4_40_MD5                 "EXP-RC4-MD5"
87*4724848cSchristos # define SSL3_TXT_RSA_RC4_128_MD5                "RC4-MD5"
88*4724848cSchristos # define SSL3_TXT_RSA_RC4_128_SHA                "RC4-SHA"
89*4724848cSchristos # define SSL3_TXT_RSA_RC2_40_MD5                 "EXP-RC2-CBC-MD5"
90*4724848cSchristos # define SSL3_TXT_RSA_IDEA_128_SHA               "IDEA-CBC-SHA"
91*4724848cSchristos # define SSL3_TXT_RSA_DES_40_CBC_SHA             "EXP-DES-CBC-SHA"
92*4724848cSchristos # define SSL3_TXT_RSA_DES_64_CBC_SHA             "DES-CBC-SHA"
93*4724848cSchristos # define SSL3_TXT_RSA_DES_192_CBC3_SHA           "DES-CBC3-SHA"
94*4724848cSchristos 
95*4724848cSchristos # define SSL3_TXT_DH_DSS_DES_40_CBC_SHA          "EXP-DH-DSS-DES-CBC-SHA"
96*4724848cSchristos # define SSL3_TXT_DH_DSS_DES_64_CBC_SHA          "DH-DSS-DES-CBC-SHA"
97*4724848cSchristos # define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA        "DH-DSS-DES-CBC3-SHA"
98*4724848cSchristos # define SSL3_TXT_DH_RSA_DES_40_CBC_SHA          "EXP-DH-RSA-DES-CBC-SHA"
99*4724848cSchristos # define SSL3_TXT_DH_RSA_DES_64_CBC_SHA          "DH-RSA-DES-CBC-SHA"
100*4724848cSchristos # define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA        "DH-RSA-DES-CBC3-SHA"
101*4724848cSchristos 
102*4724848cSchristos # define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA         "EXP-DHE-DSS-DES-CBC-SHA"
103*4724848cSchristos # define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA         "DHE-DSS-DES-CBC-SHA"
104*4724848cSchristos # define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA       "DHE-DSS-DES-CBC3-SHA"
105*4724848cSchristos # define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA         "EXP-DHE-RSA-DES-CBC-SHA"
106*4724848cSchristos # define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA         "DHE-RSA-DES-CBC-SHA"
107*4724848cSchristos # define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA       "DHE-RSA-DES-CBC3-SHA"
108*4724848cSchristos 
109*4724848cSchristos /*
110*4724848cSchristos  * This next block of six "EDH" labels is for backward compatibility with
111*4724848cSchristos  * older versions of OpenSSL.  New code should use the six "DHE" labels above
112*4724848cSchristos  * instead:
113*4724848cSchristos  */
114*4724848cSchristos # define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA         "EXP-EDH-DSS-DES-CBC-SHA"
115*4724848cSchristos # define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA         "EDH-DSS-DES-CBC-SHA"
116*4724848cSchristos # define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA       "EDH-DSS-DES-CBC3-SHA"
117*4724848cSchristos # define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA         "EXP-EDH-RSA-DES-CBC-SHA"
118*4724848cSchristos # define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA         "EDH-RSA-DES-CBC-SHA"
119*4724848cSchristos # define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA       "EDH-RSA-DES-CBC3-SHA"
120*4724848cSchristos 
121*4724848cSchristos # define SSL3_TXT_ADH_RC4_40_MD5                 "EXP-ADH-RC4-MD5"
122*4724848cSchristos # define SSL3_TXT_ADH_RC4_128_MD5                "ADH-RC4-MD5"
123*4724848cSchristos # define SSL3_TXT_ADH_DES_40_CBC_SHA             "EXP-ADH-DES-CBC-SHA"
124*4724848cSchristos # define SSL3_TXT_ADH_DES_64_CBC_SHA             "ADH-DES-CBC-SHA"
125*4724848cSchristos # define SSL3_TXT_ADH_DES_192_CBC_SHA            "ADH-DES-CBC3-SHA"
126*4724848cSchristos 
127*4724848cSchristos # define SSL3_SSL_SESSION_ID_LENGTH              32
128*4724848cSchristos # define SSL3_MAX_SSL_SESSION_ID_LENGTH          32
129*4724848cSchristos 
130*4724848cSchristos # define SSL3_MASTER_SECRET_SIZE                 48
131*4724848cSchristos # define SSL3_RANDOM_SIZE                        32
132*4724848cSchristos # define SSL3_SESSION_ID_SIZE                    32
133*4724848cSchristos # define SSL3_RT_HEADER_LENGTH                   5
134*4724848cSchristos 
135*4724848cSchristos # define SSL3_HM_HEADER_LENGTH                  4
136*4724848cSchristos 
137*4724848cSchristos # ifndef SSL3_ALIGN_PAYLOAD
138*4724848cSchristos  /*
139*4724848cSchristos   * Some will argue that this increases memory footprint, but it's not
140*4724848cSchristos   * actually true. Point is that malloc has to return at least 64-bit aligned
141*4724848cSchristos   * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case.
142*4724848cSchristos   * Suggested pre-gaping simply moves these wasted bytes from the end of
143*4724848cSchristos   * allocated region to its front, but makes data payload aligned, which
144*4724848cSchristos   * improves performance:-)
145*4724848cSchristos   */
146*4724848cSchristos #  define SSL3_ALIGN_PAYLOAD                     8
147*4724848cSchristos # else
148*4724848cSchristos #  if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0
149*4724848cSchristos #   error "insane SSL3_ALIGN_PAYLOAD"
150*4724848cSchristos #   undef SSL3_ALIGN_PAYLOAD
151*4724848cSchristos #  endif
152*4724848cSchristos # endif
153*4724848cSchristos 
154*4724848cSchristos /*
155*4724848cSchristos  * This is the maximum MAC (digest) size used by the SSL library. Currently
156*4724848cSchristos  * maximum of 20 is used by SHA1, but we reserve for future extension for
157*4724848cSchristos  * 512-bit hashes.
158*4724848cSchristos  */
159*4724848cSchristos 
160*4724848cSchristos # define SSL3_RT_MAX_MD_SIZE                     64
161*4724848cSchristos 
162*4724848cSchristos /*
163*4724848cSchristos  * Maximum block size used in all ciphersuites. Currently 16 for AES.
164*4724848cSchristos  */
165*4724848cSchristos 
166*4724848cSchristos # define SSL_RT_MAX_CIPHER_BLOCK_SIZE            16
167*4724848cSchristos 
168*4724848cSchristos # define SSL3_RT_MAX_EXTRA                       (16384)
169*4724848cSchristos 
170*4724848cSchristos /* Maximum plaintext length: defined by SSL/TLS standards */
171*4724848cSchristos # define SSL3_RT_MAX_PLAIN_LENGTH                16384
172*4724848cSchristos /* Maximum compression overhead: defined by SSL/TLS standards */
173*4724848cSchristos # define SSL3_RT_MAX_COMPRESSED_OVERHEAD         1024
174*4724848cSchristos 
175*4724848cSchristos /*
176*4724848cSchristos  * The standards give a maximum encryption overhead of 1024 bytes. In
177*4724848cSchristos  * practice the value is lower than this. The overhead is the maximum number
178*4724848cSchristos  * of padding bytes (256) plus the mac size.
179*4724848cSchristos  */
180*4724848cSchristos # define SSL3_RT_MAX_ENCRYPTED_OVERHEAD        (256 + SSL3_RT_MAX_MD_SIZE)
181*4724848cSchristos # define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD  256
182*4724848cSchristos 
183*4724848cSchristos /*
184*4724848cSchristos  * OpenSSL currently only uses a padding length of at most one block so the
185*4724848cSchristos  * send overhead is smaller.
186*4724848cSchristos  */
187*4724848cSchristos 
188*4724848cSchristos # define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \
189*4724848cSchristos                         (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE)
190*4724848cSchristos 
191*4724848cSchristos /* If compression isn't used don't include the compression overhead */
192*4724848cSchristos 
193*4724848cSchristos # ifdef OPENSSL_NO_COMP
194*4724848cSchristos #  define SSL3_RT_MAX_COMPRESSED_LENGTH           SSL3_RT_MAX_PLAIN_LENGTH
195*4724848cSchristos # else
196*4724848cSchristos #  define SSL3_RT_MAX_COMPRESSED_LENGTH   \
197*4724848cSchristos             (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD)
198*4724848cSchristos # endif
199*4724848cSchristos # define SSL3_RT_MAX_ENCRYPTED_LENGTH    \
200*4724848cSchristos             (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH)
201*4724848cSchristos # define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \
202*4724848cSchristos             (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD)
203*4724848cSchristos # define SSL3_RT_MAX_PACKET_SIZE         \
204*4724848cSchristos             (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH)
205*4724848cSchristos 
206*4724848cSchristos # define SSL3_MD_CLIENT_FINISHED_CONST   "\x43\x4C\x4E\x54"
207*4724848cSchristos # define SSL3_MD_SERVER_FINISHED_CONST   "\x53\x52\x56\x52"
208*4724848cSchristos 
209*4724848cSchristos # define SSL3_VERSION                    0x0300
210*4724848cSchristos # define SSL3_VERSION_MAJOR              0x03
211*4724848cSchristos # define SSL3_VERSION_MINOR              0x00
212*4724848cSchristos 
213*4724848cSchristos # define SSL3_RT_CHANGE_CIPHER_SPEC      20
214*4724848cSchristos # define SSL3_RT_ALERT                   21
215*4724848cSchristos # define SSL3_RT_HANDSHAKE               22
216*4724848cSchristos # define SSL3_RT_APPLICATION_DATA        23
217*4724848cSchristos # define DTLS1_RT_HEARTBEAT              24
218*4724848cSchristos 
219*4724848cSchristos /* Pseudo content types to indicate additional parameters */
220*4724848cSchristos # define TLS1_RT_CRYPTO                  0x1000
221*4724848cSchristos # define TLS1_RT_CRYPTO_PREMASTER        (TLS1_RT_CRYPTO | 0x1)
222*4724848cSchristos # define TLS1_RT_CRYPTO_CLIENT_RANDOM    (TLS1_RT_CRYPTO | 0x2)
223*4724848cSchristos # define TLS1_RT_CRYPTO_SERVER_RANDOM    (TLS1_RT_CRYPTO | 0x3)
224*4724848cSchristos # define TLS1_RT_CRYPTO_MASTER           (TLS1_RT_CRYPTO | 0x4)
225*4724848cSchristos 
226*4724848cSchristos # define TLS1_RT_CRYPTO_READ             0x0000
227*4724848cSchristos # define TLS1_RT_CRYPTO_WRITE            0x0100
228*4724848cSchristos # define TLS1_RT_CRYPTO_MAC              (TLS1_RT_CRYPTO | 0x5)
229*4724848cSchristos # define TLS1_RT_CRYPTO_KEY              (TLS1_RT_CRYPTO | 0x6)
230*4724848cSchristos # define TLS1_RT_CRYPTO_IV               (TLS1_RT_CRYPTO | 0x7)
231*4724848cSchristos # define TLS1_RT_CRYPTO_FIXED_IV         (TLS1_RT_CRYPTO | 0x8)
232*4724848cSchristos 
233*4724848cSchristos /* Pseudo content types for SSL/TLS header info */
234*4724848cSchristos # define SSL3_RT_HEADER                  0x100
235*4724848cSchristos # define SSL3_RT_INNER_CONTENT_TYPE      0x101
236*4724848cSchristos 
237*4724848cSchristos # define SSL3_AL_WARNING                 1
238*4724848cSchristos # define SSL3_AL_FATAL                   2
239*4724848cSchristos 
240*4724848cSchristos # define SSL3_AD_CLOSE_NOTIFY             0
241*4724848cSchristos # define SSL3_AD_UNEXPECTED_MESSAGE      10/* fatal */
242*4724848cSchristos # define SSL3_AD_BAD_RECORD_MAC          20/* fatal */
243*4724848cSchristos # define SSL3_AD_DECOMPRESSION_FAILURE   30/* fatal */
244*4724848cSchristos # define SSL3_AD_HANDSHAKE_FAILURE       40/* fatal */
245*4724848cSchristos # define SSL3_AD_NO_CERTIFICATE          41
246*4724848cSchristos # define SSL3_AD_BAD_CERTIFICATE         42
247*4724848cSchristos # define SSL3_AD_UNSUPPORTED_CERTIFICATE 43
248*4724848cSchristos # define SSL3_AD_CERTIFICATE_REVOKED     44
249*4724848cSchristos # define SSL3_AD_CERTIFICATE_EXPIRED     45
250*4724848cSchristos # define SSL3_AD_CERTIFICATE_UNKNOWN     46
251*4724848cSchristos # define SSL3_AD_ILLEGAL_PARAMETER       47/* fatal */
252*4724848cSchristos 
253*4724848cSchristos # define TLS1_HB_REQUEST         1
254*4724848cSchristos # define TLS1_HB_RESPONSE        2
255*4724848cSchristos 
256*4724848cSchristos 
257*4724848cSchristos # define SSL3_CT_RSA_SIGN                        1
258*4724848cSchristos # define SSL3_CT_DSS_SIGN                        2
259*4724848cSchristos # define SSL3_CT_RSA_FIXED_DH                    3
260*4724848cSchristos # define SSL3_CT_DSS_FIXED_DH                    4
261*4724848cSchristos # define SSL3_CT_RSA_EPHEMERAL_DH                5
262*4724848cSchristos # define SSL3_CT_DSS_EPHEMERAL_DH                6
263*4724848cSchristos # define SSL3_CT_FORTEZZA_DMS                    20
264*4724848cSchristos /*
265*4724848cSchristos  * SSL3_CT_NUMBER is used to size arrays and it must be large enough to
266*4724848cSchristos  * contain all of the cert types defined for *either* SSLv3 and TLSv1.
267*4724848cSchristos  */
268*4724848cSchristos # define SSL3_CT_NUMBER                  10
269*4724848cSchristos 
270*4724848cSchristos # if defined(TLS_CT_NUMBER)
271*4724848cSchristos #  if TLS_CT_NUMBER != SSL3_CT_NUMBER
272*4724848cSchristos #    error "SSL/TLS CT_NUMBER values do not match"
273*4724848cSchristos #  endif
274*4724848cSchristos # endif
275*4724848cSchristos 
276*4724848cSchristos /* No longer used as of OpenSSL 1.1.1 */
277*4724848cSchristos # define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS       0x0001
278*4724848cSchristos 
279*4724848cSchristos /* Removed from OpenSSL 1.1.0 */
280*4724848cSchristos # define TLS1_FLAGS_TLS_PADDING_BUG              0x0
281*4724848cSchristos 
282*4724848cSchristos # define TLS1_FLAGS_SKIP_CERT_VERIFY             0x0010
283*4724848cSchristos 
284*4724848cSchristos /* Set if we encrypt then mac instead of usual mac then encrypt */
285*4724848cSchristos # define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ        0x0100
286*4724848cSchristos # define TLS1_FLAGS_ENCRYPT_THEN_MAC             TLS1_FLAGS_ENCRYPT_THEN_MAC_READ
287*4724848cSchristos 
288*4724848cSchristos /* Set if extended master secret extension received from peer */
289*4724848cSchristos # define TLS1_FLAGS_RECEIVED_EXTMS               0x0200
290*4724848cSchristos 
291*4724848cSchristos # define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE       0x0400
292*4724848cSchristos 
293*4724848cSchristos # define TLS1_FLAGS_STATELESS                    0x0800
294*4724848cSchristos 
295*4724848cSchristos /* Set if extended master secret extension required on renegotiation */
296*4724848cSchristos # define TLS1_FLAGS_REQUIRED_EXTMS               0x1000
297*4724848cSchristos 
298*4724848cSchristos # define SSL3_MT_HELLO_REQUEST                   0
299*4724848cSchristos # define SSL3_MT_CLIENT_HELLO                    1
300*4724848cSchristos # define SSL3_MT_SERVER_HELLO                    2
301*4724848cSchristos # define SSL3_MT_NEWSESSION_TICKET               4
302*4724848cSchristos # define SSL3_MT_END_OF_EARLY_DATA               5
303*4724848cSchristos # define SSL3_MT_ENCRYPTED_EXTENSIONS            8
304*4724848cSchristos # define SSL3_MT_CERTIFICATE                     11
305*4724848cSchristos # define SSL3_MT_SERVER_KEY_EXCHANGE             12
306*4724848cSchristos # define SSL3_MT_CERTIFICATE_REQUEST             13
307*4724848cSchristos # define SSL3_MT_SERVER_DONE                     14
308*4724848cSchristos # define SSL3_MT_CERTIFICATE_VERIFY              15
309*4724848cSchristos # define SSL3_MT_CLIENT_KEY_EXCHANGE             16
310*4724848cSchristos # define SSL3_MT_FINISHED                        20
311*4724848cSchristos # define SSL3_MT_CERTIFICATE_URL                 21
312*4724848cSchristos # define SSL3_MT_CERTIFICATE_STATUS              22
313*4724848cSchristos # define SSL3_MT_SUPPLEMENTAL_DATA               23
314*4724848cSchristos # define SSL3_MT_KEY_UPDATE                      24
315*4724848cSchristos # ifndef OPENSSL_NO_NEXTPROTONEG
316*4724848cSchristos #  define SSL3_MT_NEXT_PROTO                     67
317*4724848cSchristos # endif
318*4724848cSchristos # define SSL3_MT_MESSAGE_HASH                    254
319*4724848cSchristos # define DTLS1_MT_HELLO_VERIFY_REQUEST           3
320*4724848cSchristos 
321*4724848cSchristos /* Dummy message type for handling CCS like a normal handshake message */
322*4724848cSchristos # define SSL3_MT_CHANGE_CIPHER_SPEC              0x0101
323*4724848cSchristos 
324*4724848cSchristos # define SSL3_MT_CCS                             1
325*4724848cSchristos 
326*4724848cSchristos /* These are used when changing over to a new cipher */
327*4724848cSchristos # define SSL3_CC_READ            0x001
328*4724848cSchristos # define SSL3_CC_WRITE           0x002
329*4724848cSchristos # define SSL3_CC_CLIENT          0x010
330*4724848cSchristos # define SSL3_CC_SERVER          0x020
331*4724848cSchristos # define SSL3_CC_EARLY           0x040
332*4724848cSchristos # define SSL3_CC_HANDSHAKE       0x080
333*4724848cSchristos # define SSL3_CC_APPLICATION     0x100
334*4724848cSchristos # define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE)
335*4724848cSchristos # define SSL3_CHANGE_CIPHER_SERVER_READ  (SSL3_CC_SERVER|SSL3_CC_READ)
336*4724848cSchristos # define SSL3_CHANGE_CIPHER_CLIENT_READ  (SSL3_CC_CLIENT|SSL3_CC_READ)
337*4724848cSchristos # define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE)
338*4724848cSchristos 
339*4724848cSchristos #ifdef  __cplusplus
340*4724848cSchristos }
341*4724848cSchristos #endif
342*4724848cSchristos #endif
343