1e71b7053SJung-uk Kim /*
25ac766abSJung-uk Kim * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
3e71b7053SJung-uk Kim * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
41f13597dSJung-uk Kim * Copyright 2005 Nokia. All rights reserved.
51f13597dSJung-uk Kim *
6b077aed3SPierre Pronchery * Licensed under the Apache License 2.0 (the "License"). You may not use
7e71b7053SJung-uk Kim * this file except in compliance with the License. You can obtain a copy
8e71b7053SJung-uk Kim * in the file LICENSE in the source distribution or at
9e71b7053SJung-uk Kim * https://www.openssl.org/source/license.html
101f13597dSJung-uk Kim */
1174664626SKris Kennaway
1274664626SKris Kennaway #include <stdio.h>
1374664626SKris Kennaway #include <openssl/objects.h>
14e71b7053SJung-uk Kim #include "internal/nelem.h"
1517f01e99SJung-uk Kim #include "ssl_local.h"
165c87c606SMark Murray #include <openssl/md5.h>
173b4e3dcbSSimon L. B. Nielsen #include <openssl/dh.h>
18e71b7053SJung-uk Kim #include <openssl/rand.h>
19b077aed3SPierre Pronchery #include <openssl/trace.h>
20b077aed3SPierre Pronchery #include <openssl/x509v3.h>
21b077aed3SPierre Pronchery #include <openssl/core_names.h>
22e71b7053SJung-uk Kim #include "internal/cryptlib.h"
23e71b7053SJung-uk Kim
24e71b7053SJung-uk Kim #define TLS13_NUM_CIPHERS OSSL_NELEM(tls13_ciphers)
25e71b7053SJung-uk Kim #define SSL3_NUM_CIPHERS OSSL_NELEM(ssl3_ciphers)
26e71b7053SJung-uk Kim #define SSL3_NUM_SCSVS OSSL_NELEM(ssl3_scsvs)
27e71b7053SJung-uk Kim
28e71b7053SJung-uk Kim /* TLSv1.3 downgrade protection sentinel values */
29e71b7053SJung-uk Kim const unsigned char tls11downgrade[] = {
30e71b7053SJung-uk Kim 0x44, 0x4f, 0x57, 0x4e, 0x47, 0x52, 0x44, 0x00
31e71b7053SJung-uk Kim };
32e71b7053SJung-uk Kim const unsigned char tls12downgrade[] = {
33e71b7053SJung-uk Kim 0x44, 0x4f, 0x57, 0x4e, 0x47, 0x52, 0x44, 0x01
34e71b7053SJung-uk Kim };
35e71b7053SJung-uk Kim
36e71b7053SJung-uk Kim /* The list of available TLSv1.3 ciphers */
37e71b7053SJung-uk Kim static SSL_CIPHER tls13_ciphers[] = {
38e71b7053SJung-uk Kim {
39e71b7053SJung-uk Kim 1,
40e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_GCM_SHA256,
41e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_GCM_SHA256,
42e71b7053SJung-uk Kim TLS1_3_CK_AES_128_GCM_SHA256,
43e71b7053SJung-uk Kim SSL_kANY,
44e71b7053SJung-uk Kim SSL_aANY,
45e71b7053SJung-uk Kim SSL_AES128GCM,
46e71b7053SJung-uk Kim SSL_AEAD,
47e71b7053SJung-uk Kim TLS1_3_VERSION, TLS1_3_VERSION,
48e71b7053SJung-uk Kim 0, 0,
49e71b7053SJung-uk Kim SSL_HIGH,
50e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256,
51e71b7053SJung-uk Kim 128,
52e71b7053SJung-uk Kim 128,
53e71b7053SJung-uk Kim }, {
54e71b7053SJung-uk Kim 1,
55e71b7053SJung-uk Kim TLS1_3_RFC_AES_256_GCM_SHA384,
56e71b7053SJung-uk Kim TLS1_3_RFC_AES_256_GCM_SHA384,
57e71b7053SJung-uk Kim TLS1_3_CK_AES_256_GCM_SHA384,
58e71b7053SJung-uk Kim SSL_kANY,
59e71b7053SJung-uk Kim SSL_aANY,
60e71b7053SJung-uk Kim SSL_AES256GCM,
61e71b7053SJung-uk Kim SSL_AEAD,
62e71b7053SJung-uk Kim TLS1_3_VERSION, TLS1_3_VERSION,
63e71b7053SJung-uk Kim 0, 0,
64e71b7053SJung-uk Kim SSL_HIGH,
65e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384,
66e71b7053SJung-uk Kim 256,
67e71b7053SJung-uk Kim 256,
68e71b7053SJung-uk Kim },
69e71b7053SJung-uk Kim {
70e71b7053SJung-uk Kim 1,
71e71b7053SJung-uk Kim TLS1_3_RFC_CHACHA20_POLY1305_SHA256,
72e71b7053SJung-uk Kim TLS1_3_RFC_CHACHA20_POLY1305_SHA256,
73e71b7053SJung-uk Kim TLS1_3_CK_CHACHA20_POLY1305_SHA256,
74e71b7053SJung-uk Kim SSL_kANY,
75e71b7053SJung-uk Kim SSL_aANY,
76e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
77e71b7053SJung-uk Kim SSL_AEAD,
78e71b7053SJung-uk Kim TLS1_3_VERSION, TLS1_3_VERSION,
79e71b7053SJung-uk Kim 0, 0,
80e71b7053SJung-uk Kim SSL_HIGH,
81e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256,
82e71b7053SJung-uk Kim 256,
83e71b7053SJung-uk Kim 256,
84e71b7053SJung-uk Kim },
85e71b7053SJung-uk Kim {
86e71b7053SJung-uk Kim 1,
87e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_CCM_SHA256,
88e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_CCM_SHA256,
89e71b7053SJung-uk Kim TLS1_3_CK_AES_128_CCM_SHA256,
90e71b7053SJung-uk Kim SSL_kANY,
91e71b7053SJung-uk Kim SSL_aANY,
92e71b7053SJung-uk Kim SSL_AES128CCM,
93e71b7053SJung-uk Kim SSL_AEAD,
94e71b7053SJung-uk Kim TLS1_3_VERSION, TLS1_3_VERSION,
95e71b7053SJung-uk Kim 0, 0,
96e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
97e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256,
98e71b7053SJung-uk Kim 128,
99e71b7053SJung-uk Kim 128,
100e71b7053SJung-uk Kim }, {
101e71b7053SJung-uk Kim 1,
102e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_CCM_8_SHA256,
103e71b7053SJung-uk Kim TLS1_3_RFC_AES_128_CCM_8_SHA256,
104e71b7053SJung-uk Kim TLS1_3_CK_AES_128_CCM_8_SHA256,
105e71b7053SJung-uk Kim SSL_kANY,
106e71b7053SJung-uk Kim SSL_aANY,
107e71b7053SJung-uk Kim SSL_AES128CCM8,
108e71b7053SJung-uk Kim SSL_AEAD,
109e71b7053SJung-uk Kim TLS1_3_VERSION, TLS1_3_VERSION,
110e71b7053SJung-uk Kim 0, 0,
111e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
112e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256,
113e71b7053SJung-uk Kim 128,
114e71b7053SJung-uk Kim 128,
115e71b7053SJung-uk Kim }
116e71b7053SJung-uk Kim };
11774664626SKris Kennaway
118e71b7053SJung-uk Kim /*
119e71b7053SJung-uk Kim * The list of available ciphers, mostly organized into the following
120e71b7053SJung-uk Kim * groups:
121e71b7053SJung-uk Kim * Always there
122e71b7053SJung-uk Kim * EC
123e71b7053SJung-uk Kim * PSK
124e71b7053SJung-uk Kim * SRP (within that: RSA EC PSK)
125e71b7053SJung-uk Kim * Cipher families: Chacha/poly, Camellia, Gost, IDEA, SEED
126e71b7053SJung-uk Kim * Weak ciphers
127e71b7053SJung-uk Kim */
128e71b7053SJung-uk Kim static SSL_CIPHER ssl3_ciphers[] = {
12974664626SKris Kennaway {
13074664626SKris Kennaway 1,
13174664626SKris Kennaway SSL3_TXT_RSA_NULL_MD5,
132e71b7053SJung-uk Kim SSL3_RFC_RSA_NULL_MD5,
13374664626SKris Kennaway SSL3_CK_RSA_NULL_MD5,
1341f13597dSJung-uk Kim SSL_kRSA,
1351f13597dSJung-uk Kim SSL_aRSA,
1361f13597dSJung-uk Kim SSL_eNULL,
1371f13597dSJung-uk Kim SSL_MD5,
138e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
139e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
140e71b7053SJung-uk Kim SSL_STRONG_NONE,
1411f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
142f579bf8eSKris Kennaway 0,
143f579bf8eSKris Kennaway 0,
14474664626SKris Kennaway },
14574664626SKris Kennaway {
14674664626SKris Kennaway 1,
14774664626SKris Kennaway SSL3_TXT_RSA_NULL_SHA,
148e71b7053SJung-uk Kim SSL3_RFC_RSA_NULL_SHA,
14974664626SKris Kennaway SSL3_CK_RSA_NULL_SHA,
1501f13597dSJung-uk Kim SSL_kRSA,
1511f13597dSJung-uk Kim SSL_aRSA,
1521f13597dSJung-uk Kim SSL_eNULL,
1531f13597dSJung-uk Kim SSL_SHA1,
154e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
155e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
156e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1571f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
158f579bf8eSKris Kennaway 0,
159f579bf8eSKris Kennaway 0,
16074664626SKris Kennaway },
1614c6a0400SJung-uk Kim #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
16274664626SKris Kennaway {
16374664626SKris Kennaway 1,
16474664626SKris Kennaway SSL3_TXT_RSA_DES_192_CBC3_SHA,
165e71b7053SJung-uk Kim SSL3_RFC_RSA_DES_192_CBC3_SHA,
16674664626SKris Kennaway SSL3_CK_RSA_DES_192_CBC3_SHA,
1671f13597dSJung-uk Kim SSL_kRSA,
1681f13597dSJung-uk Kim SSL_aRSA,
1691f13597dSJung-uk Kim SSL_3DES,
1701f13597dSJung-uk Kim SSL_SHA1,
171e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
172e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
173e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1741f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
175a93cbc2bSJung-uk Kim 112,
176f579bf8eSKris Kennaway 168,
17774664626SKris Kennaway },
17874664626SKris Kennaway {
1797bded2dbSJung-uk Kim 1,
180e71b7053SJung-uk Kim SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA,
181e71b7053SJung-uk Kim SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA,
182e71b7053SJung-uk Kim SSL3_CK_DHE_DSS_DES_192_CBC3_SHA,
183e71b7053SJung-uk Kim SSL_kDHE,
1841f13597dSJung-uk Kim SSL_aDSS,
1851f13597dSJung-uk Kim SSL_3DES,
1861f13597dSJung-uk Kim SSL_SHA1,
187e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
188e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
189e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1901f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
191a93cbc2bSJung-uk Kim 112,
192f579bf8eSKris Kennaway 168,
19374664626SKris Kennaway },
19474664626SKris Kennaway {
19574664626SKris Kennaway 1,
196e71b7053SJung-uk Kim SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA,
197e71b7053SJung-uk Kim SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA,
198e71b7053SJung-uk Kim SSL3_CK_DHE_RSA_DES_192_CBC3_SHA,
199e71b7053SJung-uk Kim SSL_kDHE,
2001f13597dSJung-uk Kim SSL_aRSA,
2011f13597dSJung-uk Kim SSL_3DES,
2021f13597dSJung-uk Kim SSL_SHA1,
203e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
204e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
205e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
2061f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
207a93cbc2bSJung-uk Kim 112,
2083b4e3dcbSSimon L. B. Nielsen 168,
2093b4e3dcbSSimon L. B. Nielsen },
2103b4e3dcbSSimon L. B. Nielsen {
2113b4e3dcbSSimon L. B. Nielsen 1,
2123b4e3dcbSSimon L. B. Nielsen SSL3_TXT_ADH_DES_192_CBC_SHA,
213e71b7053SJung-uk Kim SSL3_RFC_ADH_DES_192_CBC_SHA,
2143b4e3dcbSSimon L. B. Nielsen SSL3_CK_ADH_DES_192_CBC_SHA,
215e71b7053SJung-uk Kim SSL_kDHE,
2161f13597dSJung-uk Kim SSL_aNULL,
2171f13597dSJung-uk Kim SSL_3DES,
2181f13597dSJung-uk Kim SSL_SHA1,
219e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
220e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
221e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
2221f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
223a93cbc2bSJung-uk Kim 112,
224f579bf8eSKris Kennaway 168,
22574664626SKris Kennaway },
2265c87c606SMark Murray #endif
2273b4e3dcbSSimon L. B. Nielsen {
2283b4e3dcbSSimon L. B. Nielsen 1,
2293b4e3dcbSSimon L. B. Nielsen TLS1_TXT_RSA_WITH_AES_128_SHA,
230e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_128_SHA,
2313b4e3dcbSSimon L. B. Nielsen TLS1_CK_RSA_WITH_AES_128_SHA,
2321f13597dSJung-uk Kim SSL_kRSA,
2331f13597dSJung-uk Kim SSL_aRSA,
2341f13597dSJung-uk Kim SSL_AES128,
2351f13597dSJung-uk Kim SSL_SHA1,
236e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
237e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
238e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
2391f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2403b4e3dcbSSimon L. B. Nielsen 128,
2413b4e3dcbSSimon L. B. Nielsen 128,
2423b4e3dcbSSimon L. B. Nielsen },
2433b4e3dcbSSimon L. B. Nielsen {
2443b4e3dcbSSimon L. B. Nielsen 1,
2453b4e3dcbSSimon L. B. Nielsen TLS1_TXT_DHE_DSS_WITH_AES_128_SHA,
246e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_128_SHA,
2473b4e3dcbSSimon L. B. Nielsen TLS1_CK_DHE_DSS_WITH_AES_128_SHA,
248e71b7053SJung-uk Kim SSL_kDHE,
2491f13597dSJung-uk Kim SSL_aDSS,
2501f13597dSJung-uk Kim SSL_AES128,
2511f13597dSJung-uk Kim SSL_SHA1,
252e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
253e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
254e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
2551f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2563b4e3dcbSSimon L. B. Nielsen 128,
2573b4e3dcbSSimon L. B. Nielsen 128,
2583b4e3dcbSSimon L. B. Nielsen },
2593b4e3dcbSSimon L. B. Nielsen {
2603b4e3dcbSSimon L. B. Nielsen 1,
2613b4e3dcbSSimon L. B. Nielsen TLS1_TXT_DHE_RSA_WITH_AES_128_SHA,
262e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_128_SHA,
2633b4e3dcbSSimon L. B. Nielsen TLS1_CK_DHE_RSA_WITH_AES_128_SHA,
264e71b7053SJung-uk Kim SSL_kDHE,
2651f13597dSJung-uk Kim SSL_aRSA,
2661f13597dSJung-uk Kim SSL_AES128,
2671f13597dSJung-uk Kim SSL_SHA1,
268e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
269e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
270e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
2711f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2723b4e3dcbSSimon L. B. Nielsen 128,
2733b4e3dcbSSimon L. B. Nielsen 128,
2743b4e3dcbSSimon L. B. Nielsen },
2753b4e3dcbSSimon L. B. Nielsen {
2763b4e3dcbSSimon L. B. Nielsen 1,
2773b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ADH_WITH_AES_128_SHA,
278e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_128_SHA,
2793b4e3dcbSSimon L. B. Nielsen TLS1_CK_ADH_WITH_AES_128_SHA,
280e71b7053SJung-uk Kim SSL_kDHE,
2811f13597dSJung-uk Kim SSL_aNULL,
2821f13597dSJung-uk Kim SSL_AES128,
2831f13597dSJung-uk Kim SSL_SHA1,
284e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
285e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
286e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
2871f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2883b4e3dcbSSimon L. B. Nielsen 128,
2893b4e3dcbSSimon L. B. Nielsen 128,
2903b4e3dcbSSimon L. B. Nielsen },
2913b4e3dcbSSimon L. B. Nielsen {
2923b4e3dcbSSimon L. B. Nielsen 1,
2933b4e3dcbSSimon L. B. Nielsen TLS1_TXT_RSA_WITH_AES_256_SHA,
294e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_256_SHA,
2953b4e3dcbSSimon L. B. Nielsen TLS1_CK_RSA_WITH_AES_256_SHA,
2961f13597dSJung-uk Kim SSL_kRSA,
2971f13597dSJung-uk Kim SSL_aRSA,
2981f13597dSJung-uk Kim SSL_AES256,
2991f13597dSJung-uk Kim SSL_SHA1,
300e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
301e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
302e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
3031f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3043b4e3dcbSSimon L. B. Nielsen 256,
3053b4e3dcbSSimon L. B. Nielsen 256,
3063b4e3dcbSSimon L. B. Nielsen },
3073b4e3dcbSSimon L. B. Nielsen {
3083b4e3dcbSSimon L. B. Nielsen 1,
3093b4e3dcbSSimon L. B. Nielsen TLS1_TXT_DHE_DSS_WITH_AES_256_SHA,
310e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_256_SHA,
3113b4e3dcbSSimon L. B. Nielsen TLS1_CK_DHE_DSS_WITH_AES_256_SHA,
312e71b7053SJung-uk Kim SSL_kDHE,
3131f13597dSJung-uk Kim SSL_aDSS,
3141f13597dSJung-uk Kim SSL_AES256,
3151f13597dSJung-uk Kim SSL_SHA1,
316e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
317e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
318e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
3191f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3203b4e3dcbSSimon L. B. Nielsen 256,
3213b4e3dcbSSimon L. B. Nielsen 256,
3223b4e3dcbSSimon L. B. Nielsen },
3233b4e3dcbSSimon L. B. Nielsen {
3243b4e3dcbSSimon L. B. Nielsen 1,
3253b4e3dcbSSimon L. B. Nielsen TLS1_TXT_DHE_RSA_WITH_AES_256_SHA,
326e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_256_SHA,
3273b4e3dcbSSimon L. B. Nielsen TLS1_CK_DHE_RSA_WITH_AES_256_SHA,
328e71b7053SJung-uk Kim SSL_kDHE,
3291f13597dSJung-uk Kim SSL_aRSA,
3301f13597dSJung-uk Kim SSL_AES256,
3311f13597dSJung-uk Kim SSL_SHA1,
332e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
333e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
334e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
3351f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3363b4e3dcbSSimon L. B. Nielsen 256,
3373b4e3dcbSSimon L. B. Nielsen 256,
3383b4e3dcbSSimon L. B. Nielsen },
3393b4e3dcbSSimon L. B. Nielsen {
3403b4e3dcbSSimon L. B. Nielsen 1,
3413b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ADH_WITH_AES_256_SHA,
342e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_256_SHA,
3433b4e3dcbSSimon L. B. Nielsen TLS1_CK_ADH_WITH_AES_256_SHA,
344e71b7053SJung-uk Kim SSL_kDHE,
3451f13597dSJung-uk Kim SSL_aNULL,
3461f13597dSJung-uk Kim SSL_AES256,
3471f13597dSJung-uk Kim SSL_SHA1,
348e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
349e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
350e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
3511f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3521f13597dSJung-uk Kim 256,
3531f13597dSJung-uk Kim 256,
3541f13597dSJung-uk Kim },
3551f13597dSJung-uk Kim {
3561f13597dSJung-uk Kim 1,
3571f13597dSJung-uk Kim TLS1_TXT_RSA_WITH_NULL_SHA256,
358e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_NULL_SHA256,
3591f13597dSJung-uk Kim TLS1_CK_RSA_WITH_NULL_SHA256,
3601f13597dSJung-uk Kim SSL_kRSA,
3611f13597dSJung-uk Kim SSL_aRSA,
3621f13597dSJung-uk Kim SSL_eNULL,
3631f13597dSJung-uk Kim SSL_SHA256,
364e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
365e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
366e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
3671f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3683b4e3dcbSSimon L. B. Nielsen 0,
3691f13597dSJung-uk Kim 0,
3701f13597dSJung-uk Kim },
3711f13597dSJung-uk Kim {
3721f13597dSJung-uk Kim 1,
3731f13597dSJung-uk Kim TLS1_TXT_RSA_WITH_AES_128_SHA256,
374e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_128_SHA256,
3751f13597dSJung-uk Kim TLS1_CK_RSA_WITH_AES_128_SHA256,
3761f13597dSJung-uk Kim SSL_kRSA,
3771f13597dSJung-uk Kim SSL_aRSA,
3781f13597dSJung-uk Kim SSL_AES128,
3791f13597dSJung-uk Kim SSL_SHA256,
380e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
381e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
382e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
3831f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
3841f13597dSJung-uk Kim 128,
3851f13597dSJung-uk Kim 128,
3861f13597dSJung-uk Kim },
3871f13597dSJung-uk Kim {
3881f13597dSJung-uk Kim 1,
3891f13597dSJung-uk Kim TLS1_TXT_RSA_WITH_AES_256_SHA256,
390e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_256_SHA256,
3911f13597dSJung-uk Kim TLS1_CK_RSA_WITH_AES_256_SHA256,
3921f13597dSJung-uk Kim SSL_kRSA,
3931f13597dSJung-uk Kim SSL_aRSA,
3941f13597dSJung-uk Kim SSL_AES256,
3951f13597dSJung-uk Kim SSL_SHA256,
396e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
397e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
398e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
3991f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4003b4e3dcbSSimon L. B. Nielsen 256,
4013b4e3dcbSSimon L. B. Nielsen 256,
4021f13597dSJung-uk Kim },
4031f13597dSJung-uk Kim {
4041f13597dSJung-uk Kim 1,
4051f13597dSJung-uk Kim TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256,
406e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256,
4071f13597dSJung-uk Kim TLS1_CK_DHE_DSS_WITH_AES_128_SHA256,
408e71b7053SJung-uk Kim SSL_kDHE,
4091f13597dSJung-uk Kim SSL_aDSS,
4101f13597dSJung-uk Kim SSL_AES128,
4111f13597dSJung-uk Kim SSL_SHA256,
412e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
413e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
414e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
4151f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4161f13597dSJung-uk Kim 128,
4171f13597dSJung-uk Kim 128,
4183b4e3dcbSSimon L. B. Nielsen },
4191f13597dSJung-uk Kim {
4201f13597dSJung-uk Kim 1,
4211f13597dSJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256,
422e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256,
4231f13597dSJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_128_SHA256,
424e71b7053SJung-uk Kim SSL_kDHE,
4251f13597dSJung-uk Kim SSL_aRSA,
4261f13597dSJung-uk Kim SSL_AES128,
4271f13597dSJung-uk Kim SSL_SHA256,
428e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
429e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
430e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
4311f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4321f13597dSJung-uk Kim 128,
4331f13597dSJung-uk Kim 128,
4341f13597dSJung-uk Kim },
4351f13597dSJung-uk Kim {
4361f13597dSJung-uk Kim 1,
4371f13597dSJung-uk Kim TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256,
438e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256,
4391f13597dSJung-uk Kim TLS1_CK_DHE_DSS_WITH_AES_256_SHA256,
440e71b7053SJung-uk Kim SSL_kDHE,
4411f13597dSJung-uk Kim SSL_aDSS,
4421f13597dSJung-uk Kim SSL_AES256,
4431f13597dSJung-uk Kim SSL_SHA256,
444e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
445e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
446e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
4471f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4481f13597dSJung-uk Kim 256,
4491f13597dSJung-uk Kim 256,
4501f13597dSJung-uk Kim },
4511f13597dSJung-uk Kim {
4521f13597dSJung-uk Kim 1,
4531f13597dSJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256,
454e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256,
4551f13597dSJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_256_SHA256,
456e71b7053SJung-uk Kim SSL_kDHE,
4571f13597dSJung-uk Kim SSL_aRSA,
4581f13597dSJung-uk Kim SSL_AES256,
4591f13597dSJung-uk Kim SSL_SHA256,
460e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
461e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
462e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
4631f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4641f13597dSJung-uk Kim 256,
4651f13597dSJung-uk Kim 256,
4661f13597dSJung-uk Kim },
4671f13597dSJung-uk Kim {
4681f13597dSJung-uk Kim 1,
4691f13597dSJung-uk Kim TLS1_TXT_ADH_WITH_AES_128_SHA256,
470e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_128_SHA256,
4711f13597dSJung-uk Kim TLS1_CK_ADH_WITH_AES_128_SHA256,
472e71b7053SJung-uk Kim SSL_kDHE,
4731f13597dSJung-uk Kim SSL_aNULL,
4741f13597dSJung-uk Kim SSL_AES128,
4751f13597dSJung-uk Kim SSL_SHA256,
476e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
477e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
478e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
4791f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4801f13597dSJung-uk Kim 128,
4811f13597dSJung-uk Kim 128,
4821f13597dSJung-uk Kim },
4831f13597dSJung-uk Kim {
4841f13597dSJung-uk Kim 1,
4851f13597dSJung-uk Kim TLS1_TXT_ADH_WITH_AES_256_SHA256,
486e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_256_SHA256,
4871f13597dSJung-uk Kim TLS1_CK_ADH_WITH_AES_256_SHA256,
488e71b7053SJung-uk Kim SSL_kDHE,
4891f13597dSJung-uk Kim SSL_aNULL,
4901f13597dSJung-uk Kim SSL_AES256,
4911f13597dSJung-uk Kim SSL_SHA256,
492e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
493e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
494e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
4951f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
4961f13597dSJung-uk Kim 256,
4971f13597dSJung-uk Kim 256,
4981f13597dSJung-uk Kim },
4991f13597dSJung-uk Kim {
5001f13597dSJung-uk Kim 1,
5011f13597dSJung-uk Kim TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256,
502e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256,
5031f13597dSJung-uk Kim TLS1_CK_RSA_WITH_AES_128_GCM_SHA256,
5041f13597dSJung-uk Kim SSL_kRSA,
5051f13597dSJung-uk Kim SSL_aRSA,
5061f13597dSJung-uk Kim SSL_AES128GCM,
5071f13597dSJung-uk Kim SSL_AEAD,
508e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
509e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
510e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
5111f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
5121f13597dSJung-uk Kim 128,
5131f13597dSJung-uk Kim 128,
5141f13597dSJung-uk Kim },
5151f13597dSJung-uk Kim {
5161f13597dSJung-uk Kim 1,
5171f13597dSJung-uk Kim TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384,
518e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384,
5191f13597dSJung-uk Kim TLS1_CK_RSA_WITH_AES_256_GCM_SHA384,
5201f13597dSJung-uk Kim SSL_kRSA,
5211f13597dSJung-uk Kim SSL_aRSA,
5221f13597dSJung-uk Kim SSL_AES256GCM,
5231f13597dSJung-uk Kim SSL_AEAD,
524e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
525e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
526e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
5271f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
5281f13597dSJung-uk Kim 256,
5291f13597dSJung-uk Kim 256,
5301f13597dSJung-uk Kim },
5311f13597dSJung-uk Kim {
5321f13597dSJung-uk Kim 1,
5331f13597dSJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256,
534e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256,
5351f13597dSJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256,
536e71b7053SJung-uk Kim SSL_kDHE,
5371f13597dSJung-uk Kim SSL_aRSA,
5381f13597dSJung-uk Kim SSL_AES128GCM,
5391f13597dSJung-uk Kim SSL_AEAD,
540e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
541e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
542e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
5431f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
5441f13597dSJung-uk Kim 128,
5451f13597dSJung-uk Kim 128,
5461f13597dSJung-uk Kim },
5471f13597dSJung-uk Kim {
5481f13597dSJung-uk Kim 1,
5491f13597dSJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384,
550e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384,
5511f13597dSJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384,
552e71b7053SJung-uk Kim SSL_kDHE,
5531f13597dSJung-uk Kim SSL_aRSA,
5541f13597dSJung-uk Kim SSL_AES256GCM,
5551f13597dSJung-uk Kim SSL_AEAD,
556e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
557e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
558e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
5591f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
5601f13597dSJung-uk Kim 256,
5611f13597dSJung-uk Kim 256,
5621f13597dSJung-uk Kim },
5631f13597dSJung-uk Kim {
5641f13597dSJung-uk Kim 1,
5651f13597dSJung-uk Kim TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256,
566e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256,
5671f13597dSJung-uk Kim TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256,
568e71b7053SJung-uk Kim SSL_kDHE,
5691f13597dSJung-uk Kim SSL_aDSS,
5701f13597dSJung-uk Kim SSL_AES128GCM,
5711f13597dSJung-uk Kim SSL_AEAD,
572e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
573e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
574e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
5751f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
5761f13597dSJung-uk Kim 128,
5771f13597dSJung-uk Kim 128,
5781f13597dSJung-uk Kim },
5791f13597dSJung-uk Kim {
5801f13597dSJung-uk Kim 1,
5811f13597dSJung-uk Kim TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384,
582e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384,
5831f13597dSJung-uk Kim TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384,
584e71b7053SJung-uk Kim SSL_kDHE,
5851f13597dSJung-uk Kim SSL_aDSS,
5861f13597dSJung-uk Kim SSL_AES256GCM,
5871f13597dSJung-uk Kim SSL_AEAD,
588e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
589e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
590e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
5911f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
5921f13597dSJung-uk Kim 256,
5931f13597dSJung-uk Kim 256,
5941f13597dSJung-uk Kim },
5951f13597dSJung-uk Kim {
5961f13597dSJung-uk Kim 1,
5971f13597dSJung-uk Kim TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256,
598e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256,
5991f13597dSJung-uk Kim TLS1_CK_ADH_WITH_AES_128_GCM_SHA256,
600e71b7053SJung-uk Kim SSL_kDHE,
6011f13597dSJung-uk Kim SSL_aNULL,
6021f13597dSJung-uk Kim SSL_AES128GCM,
6031f13597dSJung-uk Kim SSL_AEAD,
604e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
605e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
606e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
6071f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
6081f13597dSJung-uk Kim 128,
6091f13597dSJung-uk Kim 128,
6101f13597dSJung-uk Kim },
6111f13597dSJung-uk Kim {
6121f13597dSJung-uk Kim 1,
6131f13597dSJung-uk Kim TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384,
614e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384,
6151f13597dSJung-uk Kim TLS1_CK_ADH_WITH_AES_256_GCM_SHA384,
616e71b7053SJung-uk Kim SSL_kDHE,
6171f13597dSJung-uk Kim SSL_aNULL,
6181f13597dSJung-uk Kim SSL_AES256GCM,
6191f13597dSJung-uk Kim SSL_AEAD,
620e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
621e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
622e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
6231f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
6241f13597dSJung-uk Kim 256,
6251f13597dSJung-uk Kim 256,
6261f13597dSJung-uk Kim },
6277bded2dbSJung-uk Kim {
6287bded2dbSJung-uk Kim 1,
629e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_AES_128_CCM,
630e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_128_CCM,
631e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_AES_128_CCM,
632e71b7053SJung-uk Kim SSL_kRSA,
633e71b7053SJung-uk Kim SSL_aRSA,
634e71b7053SJung-uk Kim SSL_AES128CCM,
635e71b7053SJung-uk Kim SSL_AEAD,
636e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
637e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
638e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
639e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
6405c87c606SMark Murray 128,
6415c87c606SMark Murray 128,
6425c87c606SMark Murray },
6435c87c606SMark Murray {
6445c87c606SMark Murray 1,
645e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_AES_256_CCM,
646e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_256_CCM,
647e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_AES_256_CCM,
648e71b7053SJung-uk Kim SSL_kRSA,
649e71b7053SJung-uk Kim SSL_aRSA,
650e71b7053SJung-uk Kim SSL_AES256CCM,
651e71b7053SJung-uk Kim SSL_AEAD,
652e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
653e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
654e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
655e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
6565c87c606SMark Murray 256,
6575c87c606SMark Murray 256,
6585c87c606SMark Murray },
659e71b7053SJung-uk Kim {
660e71b7053SJung-uk Kim 1,
661e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_128_CCM,
662e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_128_CCM,
663e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_128_CCM,
664e71b7053SJung-uk Kim SSL_kDHE,
665e71b7053SJung-uk Kim SSL_aRSA,
666e71b7053SJung-uk Kim SSL_AES128CCM,
667e71b7053SJung-uk Kim SSL_AEAD,
668e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
669e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
670e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
671e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
672e71b7053SJung-uk Kim 128,
673e71b7053SJung-uk Kim 128,
674e71b7053SJung-uk Kim },
675e71b7053SJung-uk Kim {
676e71b7053SJung-uk Kim 1,
677e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_256_CCM,
678e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_256_CCM,
679e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_256_CCM,
680e71b7053SJung-uk Kim SSL_kDHE,
681e71b7053SJung-uk Kim SSL_aRSA,
682e71b7053SJung-uk Kim SSL_AES256CCM,
683e71b7053SJung-uk Kim SSL_AEAD,
684e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
685e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
686e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
687e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
688e71b7053SJung-uk Kim 256,
689e71b7053SJung-uk Kim 256,
690e71b7053SJung-uk Kim },
691e71b7053SJung-uk Kim {
692e71b7053SJung-uk Kim 1,
693e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_AES_128_CCM_8,
694e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_128_CCM_8,
695e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_AES_128_CCM_8,
696e71b7053SJung-uk Kim SSL_kRSA,
697e71b7053SJung-uk Kim SSL_aRSA,
698e71b7053SJung-uk Kim SSL_AES128CCM8,
699e71b7053SJung-uk Kim SSL_AEAD,
700e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
701e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
702e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
703e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
704e71b7053SJung-uk Kim 128,
705e71b7053SJung-uk Kim 128,
706e71b7053SJung-uk Kim },
707e71b7053SJung-uk Kim {
708e71b7053SJung-uk Kim 1,
709e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_AES_256_CCM_8,
710e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_AES_256_CCM_8,
711e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_AES_256_CCM_8,
712e71b7053SJung-uk Kim SSL_kRSA,
713e71b7053SJung-uk Kim SSL_aRSA,
714e71b7053SJung-uk Kim SSL_AES256CCM8,
715e71b7053SJung-uk Kim SSL_AEAD,
716e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
717e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
718e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
719e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
720e71b7053SJung-uk Kim 256,
721e71b7053SJung-uk Kim 256,
722e71b7053SJung-uk Kim },
723e71b7053SJung-uk Kim {
724e71b7053SJung-uk Kim 1,
725e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8,
726e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8,
727e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8,
728e71b7053SJung-uk Kim SSL_kDHE,
729e71b7053SJung-uk Kim SSL_aRSA,
730e71b7053SJung-uk Kim SSL_AES128CCM8,
731e71b7053SJung-uk Kim SSL_AEAD,
732e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
733e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
734e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
735e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
736e71b7053SJung-uk Kim 128,
737e71b7053SJung-uk Kim 128,
738e71b7053SJung-uk Kim },
739e71b7053SJung-uk Kim {
740e71b7053SJung-uk Kim 1,
741e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8,
742e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8,
743e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8,
744e71b7053SJung-uk Kim SSL_kDHE,
745e71b7053SJung-uk Kim SSL_aRSA,
746e71b7053SJung-uk Kim SSL_AES256CCM8,
747e71b7053SJung-uk Kim SSL_AEAD,
748e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
749e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
750e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
751e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
752e71b7053SJung-uk Kim 256,
753e71b7053SJung-uk Kim 256,
754e71b7053SJung-uk Kim },
755e71b7053SJung-uk Kim {
756e71b7053SJung-uk Kim 1,
757e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_128_CCM,
758e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_128_CCM,
759e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_128_CCM,
760e71b7053SJung-uk Kim SSL_kPSK,
761e71b7053SJung-uk Kim SSL_aPSK,
762e71b7053SJung-uk Kim SSL_AES128CCM,
763e71b7053SJung-uk Kim SSL_AEAD,
764e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
765e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
766e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
767e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
768e71b7053SJung-uk Kim 128,
769e71b7053SJung-uk Kim 128,
770e71b7053SJung-uk Kim },
771e71b7053SJung-uk Kim {
772e71b7053SJung-uk Kim 1,
773e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_256_CCM,
774e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_256_CCM,
775e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_256_CCM,
776e71b7053SJung-uk Kim SSL_kPSK,
777e71b7053SJung-uk Kim SSL_aPSK,
778e71b7053SJung-uk Kim SSL_AES256CCM,
779e71b7053SJung-uk Kim SSL_AEAD,
780e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
781e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
782e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
783e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
784e71b7053SJung-uk Kim 256,
785e71b7053SJung-uk Kim 256,
786e71b7053SJung-uk Kim },
787e71b7053SJung-uk Kim {
788e71b7053SJung-uk Kim 1,
789e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_128_CCM,
790e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_128_CCM,
791e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_128_CCM,
792e71b7053SJung-uk Kim SSL_kDHEPSK,
793e71b7053SJung-uk Kim SSL_aPSK,
794e71b7053SJung-uk Kim SSL_AES128CCM,
795e71b7053SJung-uk Kim SSL_AEAD,
796e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
797e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
798e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
799e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
800e71b7053SJung-uk Kim 128,
801e71b7053SJung-uk Kim 128,
802e71b7053SJung-uk Kim },
803e71b7053SJung-uk Kim {
804e71b7053SJung-uk Kim 1,
805e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_256_CCM,
806e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_256_CCM,
807e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_256_CCM,
808e71b7053SJung-uk Kim SSL_kDHEPSK,
809e71b7053SJung-uk Kim SSL_aPSK,
810e71b7053SJung-uk Kim SSL_AES256CCM,
811e71b7053SJung-uk Kim SSL_AEAD,
812e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
813e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
814e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
815e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
816e71b7053SJung-uk Kim 256,
817e71b7053SJung-uk Kim 256,
818e71b7053SJung-uk Kim },
819e71b7053SJung-uk Kim {
820e71b7053SJung-uk Kim 1,
821e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_128_CCM_8,
822e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_128_CCM_8,
823e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_128_CCM_8,
824e71b7053SJung-uk Kim SSL_kPSK,
825e71b7053SJung-uk Kim SSL_aPSK,
826e71b7053SJung-uk Kim SSL_AES128CCM8,
827e71b7053SJung-uk Kim SSL_AEAD,
828e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
829e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
830e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
831e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
832e71b7053SJung-uk Kim 128,
833e71b7053SJung-uk Kim 128,
834e71b7053SJung-uk Kim },
835e71b7053SJung-uk Kim {
836e71b7053SJung-uk Kim 1,
837e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_256_CCM_8,
838e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_256_CCM_8,
839e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_256_CCM_8,
840e71b7053SJung-uk Kim SSL_kPSK,
841e71b7053SJung-uk Kim SSL_aPSK,
842e71b7053SJung-uk Kim SSL_AES256CCM8,
843e71b7053SJung-uk Kim SSL_AEAD,
844e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
845e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
846e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
847e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
848e71b7053SJung-uk Kim 256,
849e71b7053SJung-uk Kim 256,
850e71b7053SJung-uk Kim },
851e71b7053SJung-uk Kim {
852e71b7053SJung-uk Kim 1,
853e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8,
854e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8,
855e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8,
856e71b7053SJung-uk Kim SSL_kDHEPSK,
857e71b7053SJung-uk Kim SSL_aPSK,
858e71b7053SJung-uk Kim SSL_AES128CCM8,
859e71b7053SJung-uk Kim SSL_AEAD,
860e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
861e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
862e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
863e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
864e71b7053SJung-uk Kim 128,
865e71b7053SJung-uk Kim 128,
866e71b7053SJung-uk Kim },
867e71b7053SJung-uk Kim {
868e71b7053SJung-uk Kim 1,
869e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8,
870e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8,
871e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8,
872e71b7053SJung-uk Kim SSL_kDHEPSK,
873e71b7053SJung-uk Kim SSL_aPSK,
874e71b7053SJung-uk Kim SSL_AES256CCM8,
875e71b7053SJung-uk Kim SSL_AEAD,
876e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
877e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
878e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
879e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
880e71b7053SJung-uk Kim 256,
881e71b7053SJung-uk Kim 256,
882e71b7053SJung-uk Kim },
883e71b7053SJung-uk Kim {
884e71b7053SJung-uk Kim 1,
885e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM,
886e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM,
887e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM,
888e71b7053SJung-uk Kim SSL_kECDHE,
889e71b7053SJung-uk Kim SSL_aECDSA,
890e71b7053SJung-uk Kim SSL_AES128CCM,
891e71b7053SJung-uk Kim SSL_AEAD,
892e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
893e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
894e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
895e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
896e71b7053SJung-uk Kim 128,
897e71b7053SJung-uk Kim 128,
898e71b7053SJung-uk Kim },
899e71b7053SJung-uk Kim {
900e71b7053SJung-uk Kim 1,
901e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM,
902e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM,
903e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM,
904e71b7053SJung-uk Kim SSL_kECDHE,
905e71b7053SJung-uk Kim SSL_aECDSA,
906e71b7053SJung-uk Kim SSL_AES256CCM,
907e71b7053SJung-uk Kim SSL_AEAD,
908e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
909e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
910e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
911e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
912e71b7053SJung-uk Kim 256,
913e71b7053SJung-uk Kim 256,
914e71b7053SJung-uk Kim },
915e71b7053SJung-uk Kim {
916e71b7053SJung-uk Kim 1,
917e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8,
918e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8,
919e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8,
920e71b7053SJung-uk Kim SSL_kECDHE,
921e71b7053SJung-uk Kim SSL_aECDSA,
922e71b7053SJung-uk Kim SSL_AES128CCM8,
923e71b7053SJung-uk Kim SSL_AEAD,
924e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
925e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
926e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
927e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
928e71b7053SJung-uk Kim 128,
929e71b7053SJung-uk Kim 128,
930e71b7053SJung-uk Kim },
931e71b7053SJung-uk Kim {
932e71b7053SJung-uk Kim 1,
933e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8,
934e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8,
935e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8,
936e71b7053SJung-uk Kim SSL_kECDHE,
937e71b7053SJung-uk Kim SSL_aECDSA,
938e71b7053SJung-uk Kim SSL_AES256CCM8,
939e71b7053SJung-uk Kim SSL_AEAD,
940e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
941e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
942e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
943e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
944e71b7053SJung-uk Kim 256,
945e71b7053SJung-uk Kim 256,
946e71b7053SJung-uk Kim },
9475c87c606SMark Murray {
9485c87c606SMark Murray 1,
9493b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA,
950e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA,
9513b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA,
952e71b7053SJung-uk Kim SSL_kECDHE,
9531f13597dSJung-uk Kim SSL_aECDSA,
9541f13597dSJung-uk Kim SSL_eNULL,
9551f13597dSJung-uk Kim SSL_SHA1,
956e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
957e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
958e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
9591f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
9603b4e3dcbSSimon L. B. Nielsen 0,
9613b4e3dcbSSimon L. B. Nielsen 0,
9623b4e3dcbSSimon L. B. Nielsen },
963e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
9643b4e3dcbSSimon L. B. Nielsen {
9653b4e3dcbSSimon L. B. Nielsen 1,
9663b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA,
967e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA,
9683b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA,
969e71b7053SJung-uk Kim SSL_kECDHE,
9701f13597dSJung-uk Kim SSL_aECDSA,
9711f13597dSJung-uk Kim SSL_3DES,
9721f13597dSJung-uk Kim SSL_SHA1,
973e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
974e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
975e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
9761f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
977a93cbc2bSJung-uk Kim 112,
9783b4e3dcbSSimon L. B. Nielsen 168,
9793b4e3dcbSSimon L. B. Nielsen },
980e71b7053SJung-uk Kim # endif
9813b4e3dcbSSimon L. B. Nielsen {
9823b4e3dcbSSimon L. B. Nielsen 1,
9833b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
984e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
9853b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
986e71b7053SJung-uk Kim SSL_kECDHE,
9871f13597dSJung-uk Kim SSL_aECDSA,
9881f13597dSJung-uk Kim SSL_AES128,
9891f13597dSJung-uk Kim SSL_SHA1,
990e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
991e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
992e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
9931f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
9943b4e3dcbSSimon L. B. Nielsen 128,
9953b4e3dcbSSimon L. B. Nielsen 128,
9963b4e3dcbSSimon L. B. Nielsen },
9973b4e3dcbSSimon L. B. Nielsen {
9983b4e3dcbSSimon L. B. Nielsen 1,
9993b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
1000e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
10013b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
1002e71b7053SJung-uk Kim SSL_kECDHE,
10031f13597dSJung-uk Kim SSL_aECDSA,
10041f13597dSJung-uk Kim SSL_AES256,
10051f13597dSJung-uk Kim SSL_SHA1,
1006e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1007e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1008e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
10091f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
10105c87c606SMark Murray 256,
10115c87c606SMark Murray 256,
10125c87c606SMark Murray },
10133b4e3dcbSSimon L. B. Nielsen {
10143b4e3dcbSSimon L. B. Nielsen 1,
10153b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA,
1016e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA,
10173b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_RSA_WITH_NULL_SHA,
1018e71b7053SJung-uk Kim SSL_kECDHE,
10191f13597dSJung-uk Kim SSL_aRSA,
10201f13597dSJung-uk Kim SSL_eNULL,
10211f13597dSJung-uk Kim SSL_SHA1,
1022e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1023e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1024e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
10251f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
10263b4e3dcbSSimon L. B. Nielsen 0,
10273b4e3dcbSSimon L. B. Nielsen 0,
10283b4e3dcbSSimon L. B. Nielsen },
1029e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
10303b4e3dcbSSimon L. B. Nielsen {
10313b4e3dcbSSimon L. B. Nielsen 1,
10323b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA,
1033e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA,
10343b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA,
1035e71b7053SJung-uk Kim SSL_kECDHE,
10361f13597dSJung-uk Kim SSL_aRSA,
10371f13597dSJung-uk Kim SSL_3DES,
10381f13597dSJung-uk Kim SSL_SHA1,
1039e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1040e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1041e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
10421f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1043a93cbc2bSJung-uk Kim 112,
10443b4e3dcbSSimon L. B. Nielsen 168,
10453b4e3dcbSSimon L. B. Nielsen },
1046e71b7053SJung-uk Kim # endif
10473b4e3dcbSSimon L. B. Nielsen {
10483b4e3dcbSSimon L. B. Nielsen 1,
10493b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA,
1050e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA,
10513b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA,
1052e71b7053SJung-uk Kim SSL_kECDHE,
10531f13597dSJung-uk Kim SSL_aRSA,
10541f13597dSJung-uk Kim SSL_AES128,
10551f13597dSJung-uk Kim SSL_SHA1,
1056e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1057e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1058e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
10591f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
10603b4e3dcbSSimon L. B. Nielsen 128,
10613b4e3dcbSSimon L. B. Nielsen 128,
10623b4e3dcbSSimon L. B. Nielsen },
10633b4e3dcbSSimon L. B. Nielsen {
10643b4e3dcbSSimon L. B. Nielsen 1,
10653b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA,
1066e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA,
10673b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA,
1068e71b7053SJung-uk Kim SSL_kECDHE,
10691f13597dSJung-uk Kim SSL_aRSA,
10701f13597dSJung-uk Kim SSL_AES256,
10711f13597dSJung-uk Kim SSL_SHA1,
1072e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1073e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1074e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
10751f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
10763b4e3dcbSSimon L. B. Nielsen 256,
10773b4e3dcbSSimon L. B. Nielsen 256,
10783b4e3dcbSSimon L. B. Nielsen },
10793b4e3dcbSSimon L. B. Nielsen {
10803b4e3dcbSSimon L. B. Nielsen 1,
10813b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDH_anon_WITH_NULL_SHA,
1082e71b7053SJung-uk Kim TLS1_RFC_ECDH_anon_WITH_NULL_SHA,
10833b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDH_anon_WITH_NULL_SHA,
1084e71b7053SJung-uk Kim SSL_kECDHE,
10851f13597dSJung-uk Kim SSL_aNULL,
10861f13597dSJung-uk Kim SSL_eNULL,
10871f13597dSJung-uk Kim SSL_SHA1,
1088e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1089e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1090e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
10911f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
10923b4e3dcbSSimon L. B. Nielsen 0,
10933b4e3dcbSSimon L. B. Nielsen 0,
10943b4e3dcbSSimon L. B. Nielsen },
1095e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
10963b4e3dcbSSimon L. B. Nielsen {
10973b4e3dcbSSimon L. B. Nielsen 1,
10983b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA,
1099e71b7053SJung-uk Kim TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA,
11003b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA,
1101e71b7053SJung-uk Kim SSL_kECDHE,
11021f13597dSJung-uk Kim SSL_aNULL,
11031f13597dSJung-uk Kim SSL_3DES,
11041f13597dSJung-uk Kim SSL_SHA1,
1105e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1106e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1107e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
11081f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1109a93cbc2bSJung-uk Kim 112,
11103b4e3dcbSSimon L. B. Nielsen 168,
11113b4e3dcbSSimon L. B. Nielsen },
1112e71b7053SJung-uk Kim # endif
11133b4e3dcbSSimon L. B. Nielsen {
11143b4e3dcbSSimon L. B. Nielsen 1,
11153b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA,
1116e71b7053SJung-uk Kim TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA,
11173b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA,
1118e71b7053SJung-uk Kim SSL_kECDHE,
11191f13597dSJung-uk Kim SSL_aNULL,
11201f13597dSJung-uk Kim SSL_AES128,
11211f13597dSJung-uk Kim SSL_SHA1,
1122e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1123e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1124e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
11251f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
11263b4e3dcbSSimon L. B. Nielsen 128,
11273b4e3dcbSSimon L. B. Nielsen 128,
11283b4e3dcbSSimon L. B. Nielsen },
11293b4e3dcbSSimon L. B. Nielsen {
11303b4e3dcbSSimon L. B. Nielsen 1,
11313b4e3dcbSSimon L. B. Nielsen TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA,
1132e71b7053SJung-uk Kim TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA,
11333b4e3dcbSSimon L. B. Nielsen TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA,
1134e71b7053SJung-uk Kim SSL_kECDHE,
11351f13597dSJung-uk Kim SSL_aNULL,
11361f13597dSJung-uk Kim SSL_AES256,
11371f13597dSJung-uk Kim SSL_SHA1,
1138e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1139e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1140e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH | SSL_FIPS,
11411f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
11423b4e3dcbSSimon L. B. Nielsen 256,
11433b4e3dcbSSimon L. B. Nielsen 256,
11443b4e3dcbSSimon L. B. Nielsen },
1145e71b7053SJung-uk Kim {
1146e71b7053SJung-uk Kim 1,
1147e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256,
1148e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256,
1149e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256,
1150e71b7053SJung-uk Kim SSL_kECDHE,
1151e71b7053SJung-uk Kim SSL_aECDSA,
1152e71b7053SJung-uk Kim SSL_AES128,
1153e71b7053SJung-uk Kim SSL_SHA256,
1154e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1155e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1156e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1157e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1158e71b7053SJung-uk Kim 128,
1159e71b7053SJung-uk Kim 128,
1160e71b7053SJung-uk Kim },
1161e71b7053SJung-uk Kim {
1162e71b7053SJung-uk Kim 1,
1163e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384,
1164e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384,
1165e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384,
1166e71b7053SJung-uk Kim SSL_kECDHE,
1167e71b7053SJung-uk Kim SSL_aECDSA,
1168e71b7053SJung-uk Kim SSL_AES256,
1169e71b7053SJung-uk Kim SSL_SHA384,
1170e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1171e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1172e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1173e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1174e71b7053SJung-uk Kim 256,
1175e71b7053SJung-uk Kim 256,
1176e71b7053SJung-uk Kim },
1177e71b7053SJung-uk Kim {
1178e71b7053SJung-uk Kim 1,
1179e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256,
1180e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256,
1181e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256,
1182e71b7053SJung-uk Kim SSL_kECDHE,
1183e71b7053SJung-uk Kim SSL_aRSA,
1184e71b7053SJung-uk Kim SSL_AES128,
1185e71b7053SJung-uk Kim SSL_SHA256,
1186e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1187e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1188e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1189e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1190e71b7053SJung-uk Kim 128,
1191e71b7053SJung-uk Kim 128,
1192e71b7053SJung-uk Kim },
1193e71b7053SJung-uk Kim {
1194e71b7053SJung-uk Kim 1,
1195e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384,
1196e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384,
1197e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384,
1198e71b7053SJung-uk Kim SSL_kECDHE,
1199e71b7053SJung-uk Kim SSL_aRSA,
1200e71b7053SJung-uk Kim SSL_AES256,
1201e71b7053SJung-uk Kim SSL_SHA384,
1202e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1203e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1204e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1205e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1206e71b7053SJung-uk Kim 256,
1207e71b7053SJung-uk Kim 256,
1208e71b7053SJung-uk Kim },
1209e71b7053SJung-uk Kim {
1210e71b7053SJung-uk Kim 1,
1211e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
1212e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
1213e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
1214e71b7053SJung-uk Kim SSL_kECDHE,
1215e71b7053SJung-uk Kim SSL_aECDSA,
1216e71b7053SJung-uk Kim SSL_AES128GCM,
1217e71b7053SJung-uk Kim SSL_AEAD,
1218e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1219e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1220e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1221e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1222e71b7053SJung-uk Kim 128,
1223e71b7053SJung-uk Kim 128,
1224e71b7053SJung-uk Kim },
1225e71b7053SJung-uk Kim {
1226e71b7053SJung-uk Kim 1,
1227e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
1228e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
1229e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
1230e71b7053SJung-uk Kim SSL_kECDHE,
1231e71b7053SJung-uk Kim SSL_aECDSA,
1232e71b7053SJung-uk Kim SSL_AES256GCM,
1233e71b7053SJung-uk Kim SSL_AEAD,
1234e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1235e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1236e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1237e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1238e71b7053SJung-uk Kim 256,
1239e71b7053SJung-uk Kim 256,
1240e71b7053SJung-uk Kim },
1241e71b7053SJung-uk Kim {
1242e71b7053SJung-uk Kim 1,
1243e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
1244e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
1245e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
1246e71b7053SJung-uk Kim SSL_kECDHE,
1247e71b7053SJung-uk Kim SSL_aRSA,
1248e71b7053SJung-uk Kim SSL_AES128GCM,
1249e71b7053SJung-uk Kim SSL_AEAD,
1250e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1251e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1252e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1253e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1254e71b7053SJung-uk Kim 128,
1255e71b7053SJung-uk Kim 128,
1256e71b7053SJung-uk Kim },
1257e71b7053SJung-uk Kim {
1258e71b7053SJung-uk Kim 1,
1259e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
1260e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
1261e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
1262e71b7053SJung-uk Kim SSL_kECDHE,
1263e71b7053SJung-uk Kim SSL_aRSA,
1264e71b7053SJung-uk Kim SSL_AES256GCM,
1265e71b7053SJung-uk Kim SSL_AEAD,
1266e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1267e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1268e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1269e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1270e71b7053SJung-uk Kim 256,
1271e71b7053SJung-uk Kim 256,
1272e71b7053SJung-uk Kim },
1273e71b7053SJung-uk Kim {
1274e71b7053SJung-uk Kim 1,
1275e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_NULL_SHA,
1276e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_NULL_SHA,
1277e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_NULL_SHA,
1278e71b7053SJung-uk Kim SSL_kPSK,
1279e71b7053SJung-uk Kim SSL_aPSK,
1280e71b7053SJung-uk Kim SSL_eNULL,
1281e71b7053SJung-uk Kim SSL_SHA1,
1282e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1283e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1284e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1285e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1286e71b7053SJung-uk Kim 0,
1287e71b7053SJung-uk Kim 0,
1288e71b7053SJung-uk Kim },
1289e71b7053SJung-uk Kim {
1290e71b7053SJung-uk Kim 1,
1291e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_NULL_SHA,
1292e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_NULL_SHA,
1293e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_NULL_SHA,
1294e71b7053SJung-uk Kim SSL_kDHEPSK,
1295e71b7053SJung-uk Kim SSL_aPSK,
1296e71b7053SJung-uk Kim SSL_eNULL,
1297e71b7053SJung-uk Kim SSL_SHA1,
1298e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1299e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1300e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1301e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1302e71b7053SJung-uk Kim 0,
1303e71b7053SJung-uk Kim 0,
1304e71b7053SJung-uk Kim },
1305e71b7053SJung-uk Kim {
1306e71b7053SJung-uk Kim 1,
1307e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_NULL_SHA,
1308e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_NULL_SHA,
1309e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_NULL_SHA,
1310e71b7053SJung-uk Kim SSL_kRSAPSK,
1311e71b7053SJung-uk Kim SSL_aRSA,
1312e71b7053SJung-uk Kim SSL_eNULL,
1313e71b7053SJung-uk Kim SSL_SHA1,
1314e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1315e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1316e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1317e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1318e71b7053SJung-uk Kim 0,
1319e71b7053SJung-uk Kim 0,
1320e71b7053SJung-uk Kim },
1321e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
1322e71b7053SJung-uk Kim {
1323e71b7053SJung-uk Kim 1,
1324e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA,
1325e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA,
1326e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA,
1327e71b7053SJung-uk Kim SSL_kPSK,
1328e71b7053SJung-uk Kim SSL_aPSK,
1329e71b7053SJung-uk Kim SSL_3DES,
1330e71b7053SJung-uk Kim SSL_SHA1,
1331e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1332e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1333e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1334e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1335e71b7053SJung-uk Kim 112,
1336e71b7053SJung-uk Kim 168,
1337e71b7053SJung-uk Kim },
1338e71b7053SJung-uk Kim # endif
1339e71b7053SJung-uk Kim {
1340e71b7053SJung-uk Kim 1,
1341e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_128_CBC_SHA,
1342e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_128_CBC_SHA,
1343e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_128_CBC_SHA,
1344e71b7053SJung-uk Kim SSL_kPSK,
1345e71b7053SJung-uk Kim SSL_aPSK,
1346e71b7053SJung-uk Kim SSL_AES128,
1347e71b7053SJung-uk Kim SSL_SHA1,
1348e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1349e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1350e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1351e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1352e71b7053SJung-uk Kim 128,
1353e71b7053SJung-uk Kim 128,
1354e71b7053SJung-uk Kim },
1355e71b7053SJung-uk Kim {
1356e71b7053SJung-uk Kim 1,
1357e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_256_CBC_SHA,
1358e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_256_CBC_SHA,
1359e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_256_CBC_SHA,
1360e71b7053SJung-uk Kim SSL_kPSK,
1361e71b7053SJung-uk Kim SSL_aPSK,
1362e71b7053SJung-uk Kim SSL_AES256,
1363e71b7053SJung-uk Kim SSL_SHA1,
1364e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1365e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1366e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1367e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1368e71b7053SJung-uk Kim 256,
1369e71b7053SJung-uk Kim 256,
1370e71b7053SJung-uk Kim },
1371e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
1372e71b7053SJung-uk Kim {
1373e71b7053SJung-uk Kim 1,
1374e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
1375e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
1376e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
1377e71b7053SJung-uk Kim SSL_kDHEPSK,
1378e71b7053SJung-uk Kim SSL_aPSK,
1379e71b7053SJung-uk Kim SSL_3DES,
1380e71b7053SJung-uk Kim SSL_SHA1,
1381e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1382e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1383e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1384e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1385e71b7053SJung-uk Kim 112,
1386e71b7053SJung-uk Kim 168,
1387e71b7053SJung-uk Kim },
1388e71b7053SJung-uk Kim # endif
1389e71b7053SJung-uk Kim {
1390e71b7053SJung-uk Kim 1,
1391e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA,
1392e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA,
1393e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA,
1394e71b7053SJung-uk Kim SSL_kDHEPSK,
1395e71b7053SJung-uk Kim SSL_aPSK,
1396e71b7053SJung-uk Kim SSL_AES128,
1397e71b7053SJung-uk Kim SSL_SHA1,
1398e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1399e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1400e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1401e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1402e71b7053SJung-uk Kim 128,
1403e71b7053SJung-uk Kim 128,
1404e71b7053SJung-uk Kim },
1405e71b7053SJung-uk Kim {
1406e71b7053SJung-uk Kim 1,
1407e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA,
1408e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA,
1409e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA,
1410e71b7053SJung-uk Kim SSL_kDHEPSK,
1411e71b7053SJung-uk Kim SSL_aPSK,
1412e71b7053SJung-uk Kim SSL_AES256,
1413e71b7053SJung-uk Kim SSL_SHA1,
1414e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1415e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1416e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1417e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1418e71b7053SJung-uk Kim 256,
1419e71b7053SJung-uk Kim 256,
1420e71b7053SJung-uk Kim },
1421e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
1422e71b7053SJung-uk Kim {
1423e71b7053SJung-uk Kim 1,
1424e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
1425e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
1426e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
1427e71b7053SJung-uk Kim SSL_kRSAPSK,
1428e71b7053SJung-uk Kim SSL_aRSA,
1429e71b7053SJung-uk Kim SSL_3DES,
1430e71b7053SJung-uk Kim SSL_SHA1,
1431e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1432e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1433e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1434e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1435e71b7053SJung-uk Kim 112,
1436e71b7053SJung-uk Kim 168,
1437e71b7053SJung-uk Kim },
1438e71b7053SJung-uk Kim # endif
1439e71b7053SJung-uk Kim {
1440e71b7053SJung-uk Kim 1,
1441e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA,
1442e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA,
1443e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA,
1444e71b7053SJung-uk Kim SSL_kRSAPSK,
1445e71b7053SJung-uk Kim SSL_aRSA,
1446e71b7053SJung-uk Kim SSL_AES128,
1447e71b7053SJung-uk Kim SSL_SHA1,
1448e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1449e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1450e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1451e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1452e71b7053SJung-uk Kim 128,
1453e71b7053SJung-uk Kim 128,
1454e71b7053SJung-uk Kim },
1455e71b7053SJung-uk Kim {
1456e71b7053SJung-uk Kim 1,
1457e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA,
1458e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA,
1459e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA,
1460e71b7053SJung-uk Kim SSL_kRSAPSK,
1461e71b7053SJung-uk Kim SSL_aRSA,
1462e71b7053SJung-uk Kim SSL_AES256,
1463e71b7053SJung-uk Kim SSL_SHA1,
1464e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1465e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1466e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1467e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1468e71b7053SJung-uk Kim 256,
1469e71b7053SJung-uk Kim 256,
1470e71b7053SJung-uk Kim },
1471e71b7053SJung-uk Kim {
1472e71b7053SJung-uk Kim 1,
1473e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256,
1474e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256,
1475e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_128_GCM_SHA256,
1476e71b7053SJung-uk Kim SSL_kPSK,
1477e71b7053SJung-uk Kim SSL_aPSK,
1478e71b7053SJung-uk Kim SSL_AES128GCM,
1479e71b7053SJung-uk Kim SSL_AEAD,
1480e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1481e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1482e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1483e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1484e71b7053SJung-uk Kim 128,
1485e71b7053SJung-uk Kim 128,
1486e71b7053SJung-uk Kim },
1487e71b7053SJung-uk Kim {
1488e71b7053SJung-uk Kim 1,
1489e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384,
1490e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384,
1491e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_256_GCM_SHA384,
1492e71b7053SJung-uk Kim SSL_kPSK,
1493e71b7053SJung-uk Kim SSL_aPSK,
1494e71b7053SJung-uk Kim SSL_AES256GCM,
1495e71b7053SJung-uk Kim SSL_AEAD,
1496e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1497e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1498e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1499e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1500e71b7053SJung-uk Kim 256,
1501e71b7053SJung-uk Kim 256,
1502e71b7053SJung-uk Kim },
1503e71b7053SJung-uk Kim {
1504e71b7053SJung-uk Kim 1,
1505e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256,
1506e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256,
1507e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256,
1508e71b7053SJung-uk Kim SSL_kDHEPSK,
1509e71b7053SJung-uk Kim SSL_aPSK,
1510e71b7053SJung-uk Kim SSL_AES128GCM,
1511e71b7053SJung-uk Kim SSL_AEAD,
1512e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1513e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1514e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1515e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1516e71b7053SJung-uk Kim 128,
1517e71b7053SJung-uk Kim 128,
1518e71b7053SJung-uk Kim },
1519e71b7053SJung-uk Kim {
1520e71b7053SJung-uk Kim 1,
1521e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384,
1522e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384,
1523e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384,
1524e71b7053SJung-uk Kim SSL_kDHEPSK,
1525e71b7053SJung-uk Kim SSL_aPSK,
1526e71b7053SJung-uk Kim SSL_AES256GCM,
1527e71b7053SJung-uk Kim SSL_AEAD,
1528e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1529e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1530e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1531e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1532e71b7053SJung-uk Kim 256,
1533e71b7053SJung-uk Kim 256,
1534e71b7053SJung-uk Kim },
1535e71b7053SJung-uk Kim {
1536e71b7053SJung-uk Kim 1,
1537e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256,
1538e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256,
1539e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256,
1540e71b7053SJung-uk Kim SSL_kRSAPSK,
1541e71b7053SJung-uk Kim SSL_aRSA,
1542e71b7053SJung-uk Kim SSL_AES128GCM,
1543e71b7053SJung-uk Kim SSL_AEAD,
1544e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1545e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1546e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1547e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
1548e71b7053SJung-uk Kim 128,
1549e71b7053SJung-uk Kim 128,
1550e71b7053SJung-uk Kim },
1551e71b7053SJung-uk Kim {
1552e71b7053SJung-uk Kim 1,
1553e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384,
1554e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384,
1555e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384,
1556e71b7053SJung-uk Kim SSL_kRSAPSK,
1557e71b7053SJung-uk Kim SSL_aRSA,
1558e71b7053SJung-uk Kim SSL_AES256GCM,
1559e71b7053SJung-uk Kim SSL_AEAD,
1560e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
1561e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
1562e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1563e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1564e71b7053SJung-uk Kim 256,
1565e71b7053SJung-uk Kim 256,
1566e71b7053SJung-uk Kim },
1567e71b7053SJung-uk Kim {
1568e71b7053SJung-uk Kim 1,
1569e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256,
1570e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256,
1571e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_128_CBC_SHA256,
1572e71b7053SJung-uk Kim SSL_kPSK,
1573e71b7053SJung-uk Kim SSL_aPSK,
1574e71b7053SJung-uk Kim SSL_AES128,
1575e71b7053SJung-uk Kim SSL_SHA256,
1576e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1577e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1578e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1579e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1580e71b7053SJung-uk Kim 128,
1581e71b7053SJung-uk Kim 128,
1582e71b7053SJung-uk Kim },
1583e71b7053SJung-uk Kim {
1584e71b7053SJung-uk Kim 1,
1585e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384,
1586e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384,
1587e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_AES_256_CBC_SHA384,
1588e71b7053SJung-uk Kim SSL_kPSK,
1589e71b7053SJung-uk Kim SSL_aPSK,
1590e71b7053SJung-uk Kim SSL_AES256,
1591e71b7053SJung-uk Kim SSL_SHA384,
1592e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1593e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1594e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1595e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1596e71b7053SJung-uk Kim 256,
1597e71b7053SJung-uk Kim 256,
1598e71b7053SJung-uk Kim },
1599e71b7053SJung-uk Kim {
1600e71b7053SJung-uk Kim 1,
1601e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_NULL_SHA256,
1602e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_NULL_SHA256,
1603e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_NULL_SHA256,
1604e71b7053SJung-uk Kim SSL_kPSK,
1605e71b7053SJung-uk Kim SSL_aPSK,
1606e71b7053SJung-uk Kim SSL_eNULL,
1607e71b7053SJung-uk Kim SSL_SHA256,
1608e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1609e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1610e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1611e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1612e71b7053SJung-uk Kim 0,
1613e71b7053SJung-uk Kim 0,
1614e71b7053SJung-uk Kim },
1615e71b7053SJung-uk Kim {
1616e71b7053SJung-uk Kim 1,
1617e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_NULL_SHA384,
1618e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_NULL_SHA384,
1619e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_NULL_SHA384,
1620e71b7053SJung-uk Kim SSL_kPSK,
1621e71b7053SJung-uk Kim SSL_aPSK,
1622e71b7053SJung-uk Kim SSL_eNULL,
1623e71b7053SJung-uk Kim SSL_SHA384,
1624e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1625e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1626e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1627e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1628e71b7053SJung-uk Kim 0,
1629e71b7053SJung-uk Kim 0,
1630e71b7053SJung-uk Kim },
1631e71b7053SJung-uk Kim {
1632e71b7053SJung-uk Kim 1,
1633e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256,
1634e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256,
1635e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256,
1636e71b7053SJung-uk Kim SSL_kDHEPSK,
1637e71b7053SJung-uk Kim SSL_aPSK,
1638e71b7053SJung-uk Kim SSL_AES128,
1639e71b7053SJung-uk Kim SSL_SHA256,
1640e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1641e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1642e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1643e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1644e71b7053SJung-uk Kim 128,
1645e71b7053SJung-uk Kim 128,
1646e71b7053SJung-uk Kim },
1647e71b7053SJung-uk Kim {
1648e71b7053SJung-uk Kim 1,
1649e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384,
1650e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384,
1651e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384,
1652e71b7053SJung-uk Kim SSL_kDHEPSK,
1653e71b7053SJung-uk Kim SSL_aPSK,
1654e71b7053SJung-uk Kim SSL_AES256,
1655e71b7053SJung-uk Kim SSL_SHA384,
1656e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1657e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1658e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1659e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1660e71b7053SJung-uk Kim 256,
1661e71b7053SJung-uk Kim 256,
1662e71b7053SJung-uk Kim },
1663e71b7053SJung-uk Kim {
1664e71b7053SJung-uk Kim 1,
1665e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_NULL_SHA256,
1666e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_NULL_SHA256,
1667e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_NULL_SHA256,
1668e71b7053SJung-uk Kim SSL_kDHEPSK,
1669e71b7053SJung-uk Kim SSL_aPSK,
1670e71b7053SJung-uk Kim SSL_eNULL,
1671e71b7053SJung-uk Kim SSL_SHA256,
1672e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1673e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1674e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1675e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1676e71b7053SJung-uk Kim 0,
1677e71b7053SJung-uk Kim 0,
1678e71b7053SJung-uk Kim },
1679e71b7053SJung-uk Kim {
1680e71b7053SJung-uk Kim 1,
1681e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_NULL_SHA384,
1682e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_NULL_SHA384,
1683e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_NULL_SHA384,
1684e71b7053SJung-uk Kim SSL_kDHEPSK,
1685e71b7053SJung-uk Kim SSL_aPSK,
1686e71b7053SJung-uk Kim SSL_eNULL,
1687e71b7053SJung-uk Kim SSL_SHA384,
1688e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1689e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1690e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1691e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1692e71b7053SJung-uk Kim 0,
1693e71b7053SJung-uk Kim 0,
1694e71b7053SJung-uk Kim },
1695e71b7053SJung-uk Kim {
1696e71b7053SJung-uk Kim 1,
1697e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256,
1698e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256,
1699e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256,
1700e71b7053SJung-uk Kim SSL_kRSAPSK,
1701e71b7053SJung-uk Kim SSL_aRSA,
1702e71b7053SJung-uk Kim SSL_AES128,
1703e71b7053SJung-uk Kim SSL_SHA256,
1704e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1705e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1706e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1707e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1708e71b7053SJung-uk Kim 128,
1709e71b7053SJung-uk Kim 128,
1710e71b7053SJung-uk Kim },
1711e71b7053SJung-uk Kim {
1712e71b7053SJung-uk Kim 1,
1713e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384,
1714e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384,
1715e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384,
1716e71b7053SJung-uk Kim SSL_kRSAPSK,
1717e71b7053SJung-uk Kim SSL_aRSA,
1718e71b7053SJung-uk Kim SSL_AES256,
1719e71b7053SJung-uk Kim SSL_SHA384,
1720e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1721e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1722e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1723e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1724e71b7053SJung-uk Kim 256,
1725e71b7053SJung-uk Kim 256,
1726e71b7053SJung-uk Kim },
1727e71b7053SJung-uk Kim {
1728e71b7053SJung-uk Kim 1,
1729e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_NULL_SHA256,
1730e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_NULL_SHA256,
1731e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_NULL_SHA256,
1732e71b7053SJung-uk Kim SSL_kRSAPSK,
1733e71b7053SJung-uk Kim SSL_aRSA,
1734e71b7053SJung-uk Kim SSL_eNULL,
1735e71b7053SJung-uk Kim SSL_SHA256,
1736e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1737e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1738e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1739e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1740e71b7053SJung-uk Kim 0,
1741e71b7053SJung-uk Kim 0,
1742e71b7053SJung-uk Kim },
1743e71b7053SJung-uk Kim {
1744e71b7053SJung-uk Kim 1,
1745e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_NULL_SHA384,
1746e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_NULL_SHA384,
1747e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_NULL_SHA384,
1748e71b7053SJung-uk Kim SSL_kRSAPSK,
1749e71b7053SJung-uk Kim SSL_aRSA,
1750e71b7053SJung-uk Kim SSL_eNULL,
1751e71b7053SJung-uk Kim SSL_SHA384,
1752e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1753e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1754e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1755e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1756e71b7053SJung-uk Kim 0,
1757e71b7053SJung-uk Kim 0,
1758e71b7053SJung-uk Kim },
1759e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
1760e71b7053SJung-uk Kim {
1761e71b7053SJung-uk Kim 1,
1762e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
1763e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
1764e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
1765e71b7053SJung-uk Kim SSL_kECDHEPSK,
1766e71b7053SJung-uk Kim SSL_aPSK,
1767e71b7053SJung-uk Kim SSL_3DES,
1768e71b7053SJung-uk Kim SSL_SHA1,
1769e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1770e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1771e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM | SSL_FIPS,
1772e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1773e71b7053SJung-uk Kim 112,
1774e71b7053SJung-uk Kim 168,
1775e71b7053SJung-uk Kim },
1776e71b7053SJung-uk Kim # endif
1777e71b7053SJung-uk Kim {
1778e71b7053SJung-uk Kim 1,
1779e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA,
1780e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA,
1781e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA,
1782e71b7053SJung-uk Kim SSL_kECDHEPSK,
1783e71b7053SJung-uk Kim SSL_aPSK,
1784e71b7053SJung-uk Kim SSL_AES128,
1785e71b7053SJung-uk Kim SSL_SHA1,
1786e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1787e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1788e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1789e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1790e71b7053SJung-uk Kim 128,
1791e71b7053SJung-uk Kim 128,
1792e71b7053SJung-uk Kim },
1793e71b7053SJung-uk Kim {
1794e71b7053SJung-uk Kim 1,
1795e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA,
1796e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA,
1797e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA,
1798e71b7053SJung-uk Kim SSL_kECDHEPSK,
1799e71b7053SJung-uk Kim SSL_aPSK,
1800e71b7053SJung-uk Kim SSL_AES256,
1801e71b7053SJung-uk Kim SSL_SHA1,
1802e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1803e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1804e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1805e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1806e71b7053SJung-uk Kim 256,
1807e71b7053SJung-uk Kim 256,
1808e71b7053SJung-uk Kim },
1809e71b7053SJung-uk Kim {
1810e71b7053SJung-uk Kim 1,
1811e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
1812e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
1813e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
1814e71b7053SJung-uk Kim SSL_kECDHEPSK,
1815e71b7053SJung-uk Kim SSL_aPSK,
1816e71b7053SJung-uk Kim SSL_AES128,
1817e71b7053SJung-uk Kim SSL_SHA256,
1818e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1819e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1820e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1821e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1822e71b7053SJung-uk Kim 128,
1823e71b7053SJung-uk Kim 128,
1824e71b7053SJung-uk Kim },
1825e71b7053SJung-uk Kim {
1826e71b7053SJung-uk Kim 1,
1827e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
1828e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
1829e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
1830e71b7053SJung-uk Kim SSL_kECDHEPSK,
1831e71b7053SJung-uk Kim SSL_aPSK,
1832e71b7053SJung-uk Kim SSL_AES256,
1833e71b7053SJung-uk Kim SSL_SHA384,
1834e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1835e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1836e71b7053SJung-uk Kim SSL_HIGH | SSL_FIPS,
1837e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1838e71b7053SJung-uk Kim 256,
1839e71b7053SJung-uk Kim 256,
1840e71b7053SJung-uk Kim },
1841e71b7053SJung-uk Kim {
1842e71b7053SJung-uk Kim 1,
1843e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA,
1844e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA,
1845e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_NULL_SHA,
1846e71b7053SJung-uk Kim SSL_kECDHEPSK,
1847e71b7053SJung-uk Kim SSL_aPSK,
1848e71b7053SJung-uk Kim SSL_eNULL,
1849e71b7053SJung-uk Kim SSL_SHA1,
1850e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1851e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1852e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1853e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1854e71b7053SJung-uk Kim 0,
1855e71b7053SJung-uk Kim 0,
1856e71b7053SJung-uk Kim },
1857e71b7053SJung-uk Kim {
1858e71b7053SJung-uk Kim 1,
1859e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256,
1860e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256,
1861e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256,
1862e71b7053SJung-uk Kim SSL_kECDHEPSK,
1863e71b7053SJung-uk Kim SSL_aPSK,
1864e71b7053SJung-uk Kim SSL_eNULL,
1865e71b7053SJung-uk Kim SSL_SHA256,
1866e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1867e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1868e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1869e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1870e71b7053SJung-uk Kim 0,
1871e71b7053SJung-uk Kim 0,
1872e71b7053SJung-uk Kim },
1873e71b7053SJung-uk Kim {
1874e71b7053SJung-uk Kim 1,
1875e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384,
1876e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384,
1877e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384,
1878e71b7053SJung-uk Kim SSL_kECDHEPSK,
1879e71b7053SJung-uk Kim SSL_aPSK,
1880e71b7053SJung-uk Kim SSL_eNULL,
1881e71b7053SJung-uk Kim SSL_SHA384,
1882e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
1883e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1884e71b7053SJung-uk Kim SSL_STRONG_NONE | SSL_FIPS,
1885e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
1886e71b7053SJung-uk Kim 0,
1887e71b7053SJung-uk Kim 0,
1888e71b7053SJung-uk Kim },
18893b4e3dcbSSimon L. B. Nielsen
1890e71b7053SJung-uk Kim # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
18911f13597dSJung-uk Kim {
18921f13597dSJung-uk Kim 1,
18931f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
1894e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
18951f13597dSJung-uk Kim TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
18961f13597dSJung-uk Kim SSL_kSRP,
1897a93cbc2bSJung-uk Kim SSL_aSRP,
18981f13597dSJung-uk Kim SSL_3DES,
18991f13597dSJung-uk Kim SSL_SHA1,
1900e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1901e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1902e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
19031f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1904a93cbc2bSJung-uk Kim 112,
19051f13597dSJung-uk Kim 168,
19061f13597dSJung-uk Kim },
19071f13597dSJung-uk Kim {
19081f13597dSJung-uk Kim 1,
19091f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
1910e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
19111f13597dSJung-uk Kim TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
19121f13597dSJung-uk Kim SSL_kSRP,
19131f13597dSJung-uk Kim SSL_aRSA,
19141f13597dSJung-uk Kim SSL_3DES,
19151f13597dSJung-uk Kim SSL_SHA1,
1916e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1917e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1918e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
19191f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1920a93cbc2bSJung-uk Kim 112,
19211f13597dSJung-uk Kim 168,
19221f13597dSJung-uk Kim },
19231f13597dSJung-uk Kim {
19241f13597dSJung-uk Kim 1,
19251f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
1926e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
19271f13597dSJung-uk Kim TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
19281f13597dSJung-uk Kim SSL_kSRP,
19291f13597dSJung-uk Kim SSL_aDSS,
19301f13597dSJung-uk Kim SSL_3DES,
19311f13597dSJung-uk Kim SSL_SHA1,
1932e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1933e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1934e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
19351f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
1936a93cbc2bSJung-uk Kim 112,
19371f13597dSJung-uk Kim 168,
19381f13597dSJung-uk Kim },
1939e71b7053SJung-uk Kim # endif
19401f13597dSJung-uk Kim {
19411f13597dSJung-uk Kim 1,
19421f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA,
1943e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA,
19441f13597dSJung-uk Kim TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA,
19451f13597dSJung-uk Kim SSL_kSRP,
1946a93cbc2bSJung-uk Kim SSL_aSRP,
19471f13597dSJung-uk Kim SSL_AES128,
19481f13597dSJung-uk Kim SSL_SHA1,
1949e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1950e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1951e71b7053SJung-uk Kim SSL_HIGH,
19521f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
19531f13597dSJung-uk Kim 128,
19541f13597dSJung-uk Kim 128,
19551f13597dSJung-uk Kim },
19561f13597dSJung-uk Kim {
19571f13597dSJung-uk Kim 1,
19581f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
1959e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
19601f13597dSJung-uk Kim TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
19611f13597dSJung-uk Kim SSL_kSRP,
19621f13597dSJung-uk Kim SSL_aRSA,
19631f13597dSJung-uk Kim SSL_AES128,
19641f13597dSJung-uk Kim SSL_SHA1,
1965e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1966e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1967e71b7053SJung-uk Kim SSL_HIGH,
19681f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
19691f13597dSJung-uk Kim 128,
19701f13597dSJung-uk Kim 128,
19711f13597dSJung-uk Kim },
19721f13597dSJung-uk Kim {
19731f13597dSJung-uk Kim 1,
19741f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
1975e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
19761f13597dSJung-uk Kim TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
19771f13597dSJung-uk Kim SSL_kSRP,
19781f13597dSJung-uk Kim SSL_aDSS,
19791f13597dSJung-uk Kim SSL_AES128,
19801f13597dSJung-uk Kim SSL_SHA1,
1981e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1982e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1983e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
19841f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
19851f13597dSJung-uk Kim 128,
19861f13597dSJung-uk Kim 128,
19871f13597dSJung-uk Kim },
19881f13597dSJung-uk Kim {
19891f13597dSJung-uk Kim 1,
19901f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA,
1991e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA,
19921f13597dSJung-uk Kim TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA,
19931f13597dSJung-uk Kim SSL_kSRP,
1994a93cbc2bSJung-uk Kim SSL_aSRP,
19951f13597dSJung-uk Kim SSL_AES256,
19961f13597dSJung-uk Kim SSL_SHA1,
1997e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
1998e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
1999e71b7053SJung-uk Kim SSL_HIGH,
20001f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
20011f13597dSJung-uk Kim 256,
20021f13597dSJung-uk Kim 256,
20031f13597dSJung-uk Kim },
20041f13597dSJung-uk Kim {
20051f13597dSJung-uk Kim 1,
20061f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
2007e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
20081f13597dSJung-uk Kim TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
20091f13597dSJung-uk Kim SSL_kSRP,
20101f13597dSJung-uk Kim SSL_aRSA,
20111f13597dSJung-uk Kim SSL_AES256,
20121f13597dSJung-uk Kim SSL_SHA1,
2013e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2014e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2015e71b7053SJung-uk Kim SSL_HIGH,
20161f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
20171f13597dSJung-uk Kim 256,
20181f13597dSJung-uk Kim 256,
20191f13597dSJung-uk Kim },
20201f13597dSJung-uk Kim {
20211f13597dSJung-uk Kim 1,
20221f13597dSJung-uk Kim TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
2023e71b7053SJung-uk Kim TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
20241f13597dSJung-uk Kim TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
20251f13597dSJung-uk Kim SSL_kSRP,
20261f13597dSJung-uk Kim SSL_aDSS,
20271f13597dSJung-uk Kim SSL_AES256,
20281f13597dSJung-uk Kim SSL_SHA1,
2029e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2030e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2031e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
20321f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
20331f13597dSJung-uk Kim 256,
20341f13597dSJung-uk Kim 256,
20351f13597dSJung-uk Kim },
20361f13597dSJung-uk Kim
20371f13597dSJung-uk Kim {
20381f13597dSJung-uk Kim 1,
2039e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305,
2040e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305,
2041e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305,
2042e71b7053SJung-uk Kim SSL_kDHE,
20431f13597dSJung-uk Kim SSL_aRSA,
2044e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
2045e71b7053SJung-uk Kim SSL_AEAD,
2046e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2047e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2048e71b7053SJung-uk Kim SSL_HIGH,
20491f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2050e71b7053SJung-uk Kim 256,
2051e71b7053SJung-uk Kim 256,
20521f13597dSJung-uk Kim },
20531f13597dSJung-uk Kim {
20541f13597dSJung-uk Kim 1,
2055e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305,
2056e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305,
2057e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305,
2058e71b7053SJung-uk Kim SSL_kECDHE,
20591f13597dSJung-uk Kim SSL_aRSA,
2060e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
2061e71b7053SJung-uk Kim SSL_AEAD,
2062e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2063e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2064e71b7053SJung-uk Kim SSL_HIGH,
20651f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
20661f13597dSJung-uk Kim 256,
20671f13597dSJung-uk Kim 256,
20681f13597dSJung-uk Kim },
20691f13597dSJung-uk Kim {
20701f13597dSJung-uk Kim 1,
2071e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
2072e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
2073e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
2074e71b7053SJung-uk Kim SSL_kECDHE,
20751f13597dSJung-uk Kim SSL_aECDSA,
2076e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
20771f13597dSJung-uk Kim SSL_AEAD,
2078e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2079e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2080e71b7053SJung-uk Kim SSL_HIGH,
20811f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
20821f13597dSJung-uk Kim 256,
20831f13597dSJung-uk Kim 256,
20841f13597dSJung-uk Kim },
20851f13597dSJung-uk Kim {
20861f13597dSJung-uk Kim 1,
2087e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_CHACHA20_POLY1305,
2088e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_CHACHA20_POLY1305,
2089e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_CHACHA20_POLY1305,
2090e71b7053SJung-uk Kim SSL_kPSK,
2091e71b7053SJung-uk Kim SSL_aPSK,
2092e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
20931f13597dSJung-uk Kim SSL_AEAD,
2094e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2095e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2096e71b7053SJung-uk Kim SSL_HIGH,
20971f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2098e71b7053SJung-uk Kim 256,
2099e71b7053SJung-uk Kim 256,
21001f13597dSJung-uk Kim },
21011f13597dSJung-uk Kim {
21021f13597dSJung-uk Kim 1,
2103e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305,
2104e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305,
2105e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305,
2106e71b7053SJung-uk Kim SSL_kECDHEPSK,
2107e71b7053SJung-uk Kim SSL_aPSK,
2108e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
21091f13597dSJung-uk Kim SSL_AEAD,
2110e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2111e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2112e71b7053SJung-uk Kim SSL_HIGH,
2113e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
21141f13597dSJung-uk Kim 256,
21151f13597dSJung-uk Kim 256,
21161f13597dSJung-uk Kim },
21171f13597dSJung-uk Kim {
21181f13597dSJung-uk Kim 1,
2119e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305,
2120e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305,
2121e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305,
2122e71b7053SJung-uk Kim SSL_kDHEPSK,
2123e71b7053SJung-uk Kim SSL_aPSK,
2124e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
2125e71b7053SJung-uk Kim SSL_AEAD,
2126e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2127e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2128e71b7053SJung-uk Kim SSL_HIGH,
2129e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2130e71b7053SJung-uk Kim 256,
2131e71b7053SJung-uk Kim 256,
2132e71b7053SJung-uk Kim },
2133e71b7053SJung-uk Kim {
2134e71b7053SJung-uk Kim 1,
2135e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305,
2136e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305,
2137e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305,
2138e71b7053SJung-uk Kim SSL_kRSAPSK,
21391f13597dSJung-uk Kim SSL_aRSA,
2140e71b7053SJung-uk Kim SSL_CHACHA20POLY1305,
21411f13597dSJung-uk Kim SSL_AEAD,
2142e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2143e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2144e71b7053SJung-uk Kim SSL_HIGH,
21451f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
21461f13597dSJung-uk Kim 256,
21471f13597dSJung-uk Kim 256,
21481f13597dSJung-uk Kim },
21491f13597dSJung-uk Kim
21501f13597dSJung-uk Kim {
21511f13597dSJung-uk Kim 1,
2152e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2153e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2154e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256,
21551f13597dSJung-uk Kim SSL_kRSA,
21561f13597dSJung-uk Kim SSL_aRSA,
2157e71b7053SJung-uk Kim SSL_CAMELLIA128,
2158e71b7053SJung-uk Kim SSL_SHA256,
2159e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2160e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2161e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2162e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2163e71b7053SJung-uk Kim 128,
2164e71b7053SJung-uk Kim 128,
2165e71b7053SJung-uk Kim },
2166e71b7053SJung-uk Kim {
2167e71b7053SJung-uk Kim 1,
2168e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
2169e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
2170e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
21715ac766abSJung-uk Kim SSL_kDHE,
2172e71b7053SJung-uk Kim SSL_aDSS,
2173e71b7053SJung-uk Kim SSL_CAMELLIA128,
2174e71b7053SJung-uk Kim SSL_SHA256,
2175e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2176e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2177e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2178e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2179e71b7053SJung-uk Kim 128,
2180e71b7053SJung-uk Kim 128,
2181e71b7053SJung-uk Kim },
2182e71b7053SJung-uk Kim {
2183e71b7053SJung-uk Kim 1,
2184e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2185e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2186e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
21875ac766abSJung-uk Kim SSL_kDHE,
2188e71b7053SJung-uk Kim SSL_aRSA,
2189e71b7053SJung-uk Kim SSL_CAMELLIA128,
2190e71b7053SJung-uk Kim SSL_SHA256,
2191e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2192e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2193e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2194e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2195e71b7053SJung-uk Kim 128,
2196e71b7053SJung-uk Kim 128,
2197e71b7053SJung-uk Kim },
2198e71b7053SJung-uk Kim {
2199e71b7053SJung-uk Kim 1,
2200e71b7053SJung-uk Kim TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256,
2201e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256,
2202e71b7053SJung-uk Kim TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256,
22035ac766abSJung-uk Kim SSL_kDHE,
2204e71b7053SJung-uk Kim SSL_aNULL,
2205e71b7053SJung-uk Kim SSL_CAMELLIA128,
2206e71b7053SJung-uk Kim SSL_SHA256,
2207e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2208e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2209e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2210e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2211e71b7053SJung-uk Kim 128,
2212e71b7053SJung-uk Kim 128,
2213e71b7053SJung-uk Kim },
2214e71b7053SJung-uk Kim {
2215e71b7053SJung-uk Kim 1,
2216e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256,
2217e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256,
2218e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256,
2219e71b7053SJung-uk Kim SSL_kRSA,
2220e71b7053SJung-uk Kim SSL_aRSA,
2221e71b7053SJung-uk Kim SSL_CAMELLIA256,
2222e71b7053SJung-uk Kim SSL_SHA256,
2223e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2224e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2225e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2226e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2227e71b7053SJung-uk Kim 256,
2228e71b7053SJung-uk Kim 256,
2229e71b7053SJung-uk Kim },
2230e71b7053SJung-uk Kim {
2231e71b7053SJung-uk Kim 1,
2232e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
2233e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
2234e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
22355ac766abSJung-uk Kim SSL_kDHE,
2236e71b7053SJung-uk Kim SSL_aDSS,
2237e71b7053SJung-uk Kim SSL_CAMELLIA256,
2238e71b7053SJung-uk Kim SSL_SHA256,
2239e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2240e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2241e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2242e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2243e71b7053SJung-uk Kim 256,
2244e71b7053SJung-uk Kim 256,
2245e71b7053SJung-uk Kim },
2246e71b7053SJung-uk Kim {
2247e71b7053SJung-uk Kim 1,
2248e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
2249e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
2250e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
22515ac766abSJung-uk Kim SSL_kDHE,
2252e71b7053SJung-uk Kim SSL_aRSA,
2253e71b7053SJung-uk Kim SSL_CAMELLIA256,
2254e71b7053SJung-uk Kim SSL_SHA256,
2255e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2256e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2257e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2258e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2259e71b7053SJung-uk Kim 256,
2260e71b7053SJung-uk Kim 256,
2261e71b7053SJung-uk Kim },
2262e71b7053SJung-uk Kim {
2263e71b7053SJung-uk Kim 1,
2264e71b7053SJung-uk Kim TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256,
2265e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256,
2266e71b7053SJung-uk Kim TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256,
22675ac766abSJung-uk Kim SSL_kDHE,
2268e71b7053SJung-uk Kim SSL_aNULL,
2269e71b7053SJung-uk Kim SSL_CAMELLIA256,
2270e71b7053SJung-uk Kim SSL_SHA256,
2271e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2272e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2273e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2274e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2275e71b7053SJung-uk Kim 256,
2276e71b7053SJung-uk Kim 256,
2277e71b7053SJung-uk Kim },
2278e71b7053SJung-uk Kim {
2279e71b7053SJung-uk Kim 1,
2280e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA,
2281e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA,
2282e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA,
2283e71b7053SJung-uk Kim SSL_kRSA,
2284e71b7053SJung-uk Kim SSL_aRSA,
2285e71b7053SJung-uk Kim SSL_CAMELLIA256,
2286e71b7053SJung-uk Kim SSL_SHA1,
2287e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2288e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2289e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
22901f13597dSJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
22911f13597dSJung-uk Kim 256,
22921f13597dSJung-uk Kim 256,
22931f13597dSJung-uk Kim },
22941f13597dSJung-uk Kim {
22951f13597dSJung-uk Kim 1,
2296e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
2297e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
2298e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
2299e71b7053SJung-uk Kim SSL_kDHE,
2300e71b7053SJung-uk Kim SSL_aDSS,
2301e71b7053SJung-uk Kim SSL_CAMELLIA256,
2302e71b7053SJung-uk Kim SSL_SHA1,
2303e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2304e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2305e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2306e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2307e71b7053SJung-uk Kim 256,
2308e71b7053SJung-uk Kim 256,
2309e71b7053SJung-uk Kim },
2310e71b7053SJung-uk Kim {
2311e71b7053SJung-uk Kim 1,
2312e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
2313e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
2314e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
2315e71b7053SJung-uk Kim SSL_kDHE,
2316e71b7053SJung-uk Kim SSL_aRSA,
2317e71b7053SJung-uk Kim SSL_CAMELLIA256,
2318e71b7053SJung-uk Kim SSL_SHA1,
2319e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2320e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2321e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2322e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2323e71b7053SJung-uk Kim 256,
2324e71b7053SJung-uk Kim 256,
2325e71b7053SJung-uk Kim },
2326e71b7053SJung-uk Kim {
2327e71b7053SJung-uk Kim 1,
2328e71b7053SJung-uk Kim TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA,
2329e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA,
2330e71b7053SJung-uk Kim TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA,
2331e71b7053SJung-uk Kim SSL_kDHE,
2332e71b7053SJung-uk Kim SSL_aNULL,
2333e71b7053SJung-uk Kim SSL_CAMELLIA256,
2334e71b7053SJung-uk Kim SSL_SHA1,
2335e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2336e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2337e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2338e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2339e71b7053SJung-uk Kim 256,
2340e71b7053SJung-uk Kim 256,
2341e71b7053SJung-uk Kim },
2342e71b7053SJung-uk Kim {
2343e71b7053SJung-uk Kim 1,
2344e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA,
2345e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA,
2346e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA,
23471f13597dSJung-uk Kim SSL_kRSA,
23481f13597dSJung-uk Kim SSL_aRSA,
2349e71b7053SJung-uk Kim SSL_CAMELLIA128,
2350e71b7053SJung-uk Kim SSL_SHA1,
2351e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2352e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2353e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2354e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2355e71b7053SJung-uk Kim 128,
2356e71b7053SJung-uk Kim 128,
2357e71b7053SJung-uk Kim },
2358e71b7053SJung-uk Kim {
2359e71b7053SJung-uk Kim 1,
2360e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
2361e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
2362e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
2363e71b7053SJung-uk Kim SSL_kDHE,
2364e71b7053SJung-uk Kim SSL_aDSS,
2365e71b7053SJung-uk Kim SSL_CAMELLIA128,
2366e71b7053SJung-uk Kim SSL_SHA1,
2367e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2368e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2369e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2370e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2371e71b7053SJung-uk Kim 128,
2372e71b7053SJung-uk Kim 128,
2373e71b7053SJung-uk Kim },
2374e71b7053SJung-uk Kim {
2375e71b7053SJung-uk Kim 1,
2376e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
2377e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
2378e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
2379e71b7053SJung-uk Kim SSL_kDHE,
2380e71b7053SJung-uk Kim SSL_aRSA,
2381e71b7053SJung-uk Kim SSL_CAMELLIA128,
2382e71b7053SJung-uk Kim SSL_SHA1,
2383e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2384e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2385e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2386e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2387e71b7053SJung-uk Kim 128,
2388e71b7053SJung-uk Kim 128,
2389e71b7053SJung-uk Kim },
2390e71b7053SJung-uk Kim {
2391e71b7053SJung-uk Kim 1,
2392e71b7053SJung-uk Kim TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA,
2393e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA,
2394e71b7053SJung-uk Kim TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA,
2395e71b7053SJung-uk Kim SSL_kDHE,
2396e71b7053SJung-uk Kim SSL_aNULL,
2397e71b7053SJung-uk Kim SSL_CAMELLIA128,
2398e71b7053SJung-uk Kim SSL_SHA1,
2399e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2400e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2401e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2402e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2403e71b7053SJung-uk Kim 128,
2404e71b7053SJung-uk Kim 128,
2405e71b7053SJung-uk Kim },
2406e71b7053SJung-uk Kim {
2407e71b7053SJung-uk Kim 1,
2408e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
2409e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
2410e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
2411e71b7053SJung-uk Kim SSL_kECDHE,
2412e71b7053SJung-uk Kim SSL_aECDSA,
2413e71b7053SJung-uk Kim SSL_CAMELLIA128,
2414e71b7053SJung-uk Kim SSL_SHA256,
2415e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2416e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2417e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2418e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2419e71b7053SJung-uk Kim 128,
2420e71b7053SJung-uk Kim 128,
2421e71b7053SJung-uk Kim },
2422e71b7053SJung-uk Kim {
2423e71b7053SJung-uk Kim 1,
2424e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
2425e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
2426e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
2427e71b7053SJung-uk Kim SSL_kECDHE,
2428e71b7053SJung-uk Kim SSL_aECDSA,
2429e71b7053SJung-uk Kim SSL_CAMELLIA256,
2430e71b7053SJung-uk Kim SSL_SHA384,
2431e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2432e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2433e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2434e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2435e71b7053SJung-uk Kim 256,
2436e71b7053SJung-uk Kim 256,
2437e71b7053SJung-uk Kim },
2438e71b7053SJung-uk Kim {
2439e71b7053SJung-uk Kim 1,
2440e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2441e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2442e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
2443e71b7053SJung-uk Kim SSL_kECDHE,
2444e71b7053SJung-uk Kim SSL_aRSA,
2445e71b7053SJung-uk Kim SSL_CAMELLIA128,
2446e71b7053SJung-uk Kim SSL_SHA256,
2447e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2448e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2449e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2450e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2451e71b7053SJung-uk Kim 128,
2452e71b7053SJung-uk Kim 128,
2453e71b7053SJung-uk Kim },
2454e71b7053SJung-uk Kim {
2455e71b7053SJung-uk Kim 1,
2456e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
2457e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
2458e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
2459e71b7053SJung-uk Kim SSL_kECDHE,
2460e71b7053SJung-uk Kim SSL_aRSA,
2461e71b7053SJung-uk Kim SSL_CAMELLIA256,
2462e71b7053SJung-uk Kim SSL_SHA384,
2463e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2464e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2465e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2466e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2467e71b7053SJung-uk Kim 256,
2468e71b7053SJung-uk Kim 256,
2469e71b7053SJung-uk Kim },
2470e71b7053SJung-uk Kim {
2471e71b7053SJung-uk Kim 1,
2472e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2473e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2474e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2475e71b7053SJung-uk Kim SSL_kPSK,
2476e71b7053SJung-uk Kim SSL_aPSK,
2477e71b7053SJung-uk Kim SSL_CAMELLIA128,
2478e71b7053SJung-uk Kim SSL_SHA256,
2479e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2480e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2481e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2482e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2483e71b7053SJung-uk Kim 128,
2484e71b7053SJung-uk Kim 128,
2485e71b7053SJung-uk Kim },
2486e71b7053SJung-uk Kim {
2487e71b7053SJung-uk Kim 1,
2488e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2489e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2490e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2491e71b7053SJung-uk Kim SSL_kPSK,
2492e71b7053SJung-uk Kim SSL_aPSK,
2493e71b7053SJung-uk Kim SSL_CAMELLIA256,
2494e71b7053SJung-uk Kim SSL_SHA384,
2495e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2496e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2497e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2498e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2499e71b7053SJung-uk Kim 256,
2500e71b7053SJung-uk Kim 256,
2501e71b7053SJung-uk Kim },
2502e71b7053SJung-uk Kim {
2503e71b7053SJung-uk Kim 1,
2504e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2505e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2506e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2507e71b7053SJung-uk Kim SSL_kDHEPSK,
2508e71b7053SJung-uk Kim SSL_aPSK,
2509e71b7053SJung-uk Kim SSL_CAMELLIA128,
2510e71b7053SJung-uk Kim SSL_SHA256,
2511e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2512e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2513e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2514e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2515e71b7053SJung-uk Kim 128,
2516e71b7053SJung-uk Kim 128,
2517e71b7053SJung-uk Kim },
2518e71b7053SJung-uk Kim {
2519e71b7053SJung-uk Kim 1,
2520e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2521e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2522e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2523e71b7053SJung-uk Kim SSL_kDHEPSK,
2524e71b7053SJung-uk Kim SSL_aPSK,
2525e71b7053SJung-uk Kim SSL_CAMELLIA256,
2526e71b7053SJung-uk Kim SSL_SHA384,
2527e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2528e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2529e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2530e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2531e71b7053SJung-uk Kim 256,
2532e71b7053SJung-uk Kim 256,
2533e71b7053SJung-uk Kim },
2534e71b7053SJung-uk Kim {
2535e71b7053SJung-uk Kim 1,
2536e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2537e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2538e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2539e71b7053SJung-uk Kim SSL_kRSAPSK,
2540e71b7053SJung-uk Kim SSL_aRSA,
2541e71b7053SJung-uk Kim SSL_CAMELLIA128,
2542e71b7053SJung-uk Kim SSL_SHA256,
2543e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2544e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2545e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2546e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2547e71b7053SJung-uk Kim 128,
2548e71b7053SJung-uk Kim 128,
2549e71b7053SJung-uk Kim },
2550e71b7053SJung-uk Kim {
2551e71b7053SJung-uk Kim 1,
2552e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2553e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2554e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2555e71b7053SJung-uk Kim SSL_kRSAPSK,
2556e71b7053SJung-uk Kim SSL_aRSA,
2557e71b7053SJung-uk Kim SSL_CAMELLIA256,
2558e71b7053SJung-uk Kim SSL_SHA384,
2559e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2560e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2561e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2562e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2563e71b7053SJung-uk Kim 256,
2564e71b7053SJung-uk Kim 256,
2565e71b7053SJung-uk Kim },
2566e71b7053SJung-uk Kim {
2567e71b7053SJung-uk Kim 1,
2568e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2569e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2570e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
2571e71b7053SJung-uk Kim SSL_kECDHEPSK,
2572e71b7053SJung-uk Kim SSL_aPSK,
2573e71b7053SJung-uk Kim SSL_CAMELLIA128,
2574e71b7053SJung-uk Kim SSL_SHA256,
2575e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2576e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2577e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2578e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2579e71b7053SJung-uk Kim 128,
2580e71b7053SJung-uk Kim 128,
2581e71b7053SJung-uk Kim },
2582e71b7053SJung-uk Kim {
2583e71b7053SJung-uk Kim 1,
2584e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2585e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2586e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
2587e71b7053SJung-uk Kim SSL_kECDHEPSK,
2588e71b7053SJung-uk Kim SSL_aPSK,
2589e71b7053SJung-uk Kim SSL_CAMELLIA256,
2590e71b7053SJung-uk Kim SSL_SHA384,
2591e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2592e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2593e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2594e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2595e71b7053SJung-uk Kim 256,
2596e71b7053SJung-uk Kim 256,
2597e71b7053SJung-uk Kim },
2598e71b7053SJung-uk Kim
2599e71b7053SJung-uk Kim #ifndef OPENSSL_NO_GOST
2600e71b7053SJung-uk Kim {
2601e71b7053SJung-uk Kim 1,
2602e71b7053SJung-uk Kim "GOST2001-GOST89-GOST89",
2603e71b7053SJung-uk Kim "TLS_GOSTR341001_WITH_28147_CNT_IMIT",
2604e71b7053SJung-uk Kim 0x3000081,
2605e71b7053SJung-uk Kim SSL_kGOST,
2606e71b7053SJung-uk Kim SSL_aGOST01,
26071f13597dSJung-uk Kim SSL_eGOST2814789CNT,
2608e71b7053SJung-uk Kim SSL_GOST89MAC,
2609e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2610e71b7053SJung-uk Kim 0, 0,
2611e71b7053SJung-uk Kim SSL_HIGH,
2612e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_GOST94 | TLS1_PRF_GOST94 | TLS1_STREAM_MAC,
2613e71b7053SJung-uk Kim 256,
2614e71b7053SJung-uk Kim 256,
2615e71b7053SJung-uk Kim },
2616e71b7053SJung-uk Kim {
2617e71b7053SJung-uk Kim 1,
2618e71b7053SJung-uk Kim "GOST2001-NULL-GOST94",
2619e71b7053SJung-uk Kim "TLS_GOSTR341001_WITH_NULL_GOSTR3411",
2620e71b7053SJung-uk Kim 0x3000083,
2621e71b7053SJung-uk Kim SSL_kGOST,
2622e71b7053SJung-uk Kim SSL_aGOST01,
2623e71b7053SJung-uk Kim SSL_eNULL,
26241f13597dSJung-uk Kim SSL_GOST94,
2625e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2626e71b7053SJung-uk Kim 0, 0,
2627e71b7053SJung-uk Kim SSL_STRONG_NONE,
2628e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_GOST94 | TLS1_PRF_GOST94,
2629e71b7053SJung-uk Kim 0,
2630e71b7053SJung-uk Kim 0,
2631e71b7053SJung-uk Kim },
26321f13597dSJung-uk Kim {
26331f13597dSJung-uk Kim 1,
2634b077aed3SPierre Pronchery "IANA-GOST2012-GOST8912-GOST8912",
2635b077aed3SPierre Pronchery NULL,
2636b077aed3SPierre Pronchery 0x0300c102,
2637b077aed3SPierre Pronchery SSL_kGOST,
2638b077aed3SPierre Pronchery SSL_aGOST12 | SSL_aGOST01,
2639b077aed3SPierre Pronchery SSL_eGOST2814789CNT12,
2640b077aed3SPierre Pronchery SSL_GOST89MAC12,
2641b077aed3SPierre Pronchery TLS1_VERSION, TLS1_2_VERSION,
2642b077aed3SPierre Pronchery 0, 0,
2643b077aed3SPierre Pronchery SSL_HIGH,
2644b077aed3SPierre Pronchery SSL_HANDSHAKE_MAC_GOST12_256 | TLS1_PRF_GOST12_256 | TLS1_STREAM_MAC,
2645b077aed3SPierre Pronchery 256,
2646b077aed3SPierre Pronchery 256,
2647b077aed3SPierre Pronchery },
2648b077aed3SPierre Pronchery {
2649b077aed3SPierre Pronchery 1,
2650b077aed3SPierre Pronchery "LEGACY-GOST2012-GOST8912-GOST8912",
2651e71b7053SJung-uk Kim NULL,
2652e71b7053SJung-uk Kim 0x0300ff85,
2653e71b7053SJung-uk Kim SSL_kGOST,
2654e71b7053SJung-uk Kim SSL_aGOST12 | SSL_aGOST01,
2655e71b7053SJung-uk Kim SSL_eGOST2814789CNT12,
2656e71b7053SJung-uk Kim SSL_GOST89MAC12,
2657e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2658e71b7053SJung-uk Kim 0, 0,
2659e71b7053SJung-uk Kim SSL_HIGH,
2660e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_GOST12_256 | TLS1_PRF_GOST12_256 | TLS1_STREAM_MAC,
26611f13597dSJung-uk Kim 256,
2662e71b7053SJung-uk Kim 256,
2663e71b7053SJung-uk Kim },
26641f13597dSJung-uk Kim {
26651f13597dSJung-uk Kim 1,
2666e71b7053SJung-uk Kim "GOST2012-NULL-GOST12",
2667e71b7053SJung-uk Kim NULL,
2668e71b7053SJung-uk Kim 0x0300ff87,
2669e71b7053SJung-uk Kim SSL_kGOST,
2670e71b7053SJung-uk Kim SSL_aGOST12 | SSL_aGOST01,
2671e71b7053SJung-uk Kim SSL_eNULL,
2672e71b7053SJung-uk Kim SSL_GOST12_256,
2673e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2674e71b7053SJung-uk Kim 0, 0,
2675e71b7053SJung-uk Kim SSL_STRONG_NONE,
2676e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_GOST12_256 | TLS1_PRF_GOST12_256 | TLS1_STREAM_MAC,
2677e71b7053SJung-uk Kim 0,
2678e71b7053SJung-uk Kim 0,
2679e71b7053SJung-uk Kim },
2680b077aed3SPierre Pronchery {
2681b077aed3SPierre Pronchery 1,
2682b077aed3SPierre Pronchery "GOST2012-KUZNYECHIK-KUZNYECHIKOMAC",
2683b077aed3SPierre Pronchery NULL,
2684b077aed3SPierre Pronchery 0x0300C100,
2685b077aed3SPierre Pronchery SSL_kGOST18,
2686b077aed3SPierre Pronchery SSL_aGOST12,
2687b077aed3SPierre Pronchery SSL_KUZNYECHIK,
2688b077aed3SPierre Pronchery SSL_KUZNYECHIKOMAC,
2689b077aed3SPierre Pronchery TLS1_2_VERSION, TLS1_2_VERSION,
2690b077aed3SPierre Pronchery 0, 0,
2691b077aed3SPierre Pronchery SSL_HIGH,
2692b077aed3SPierre Pronchery SSL_HANDSHAKE_MAC_GOST12_256 | TLS1_PRF_GOST12_256 | TLS1_TLSTREE,
2693b077aed3SPierre Pronchery 256,
2694b077aed3SPierre Pronchery 256,
2695b077aed3SPierre Pronchery },
2696b077aed3SPierre Pronchery {
2697b077aed3SPierre Pronchery 1,
2698b077aed3SPierre Pronchery "GOST2012-MAGMA-MAGMAOMAC",
2699b077aed3SPierre Pronchery NULL,
2700b077aed3SPierre Pronchery 0x0300C101,
2701b077aed3SPierre Pronchery SSL_kGOST18,
2702b077aed3SPierre Pronchery SSL_aGOST12,
2703b077aed3SPierre Pronchery SSL_MAGMA,
2704b077aed3SPierre Pronchery SSL_MAGMAOMAC,
2705b077aed3SPierre Pronchery TLS1_2_VERSION, TLS1_2_VERSION,
2706b077aed3SPierre Pronchery 0, 0,
2707b077aed3SPierre Pronchery SSL_HIGH,
2708b077aed3SPierre Pronchery SSL_HANDSHAKE_MAC_GOST12_256 | TLS1_PRF_GOST12_256 | TLS1_TLSTREE,
2709b077aed3SPierre Pronchery 256,
2710b077aed3SPierre Pronchery 256,
2711b077aed3SPierre Pronchery },
2712e71b7053SJung-uk Kim #endif /* OPENSSL_NO_GOST */
2713e71b7053SJung-uk Kim
2714e71b7053SJung-uk Kim {
2715e71b7053SJung-uk Kim 1,
2716e71b7053SJung-uk Kim SSL3_TXT_RSA_IDEA_128_SHA,
2717e71b7053SJung-uk Kim SSL3_RFC_RSA_IDEA_128_SHA,
2718e71b7053SJung-uk Kim SSL3_CK_RSA_IDEA_128_SHA,
27191f13597dSJung-uk Kim SSL_kRSA,
27201f13597dSJung-uk Kim SSL_aRSA,
2721e71b7053SJung-uk Kim SSL_IDEA,
2722e71b7053SJung-uk Kim SSL_SHA1,
2723e71b7053SJung-uk Kim SSL3_VERSION, TLS1_1_VERSION,
2724e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_VERSION,
2725e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2726e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2727e71b7053SJung-uk Kim 128,
2728e71b7053SJung-uk Kim 128,
2729e71b7053SJung-uk Kim },
2730ed5d4f9aSSimon L. B. Nielsen
2731e71b7053SJung-uk Kim {
2732e71b7053SJung-uk Kim 1,
2733e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_SEED_SHA,
2734e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_SEED_SHA,
2735e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_SEED_SHA,
2736e71b7053SJung-uk Kim SSL_kRSA,
2737e71b7053SJung-uk Kim SSL_aRSA,
2738e71b7053SJung-uk Kim SSL_SEED,
2739e71b7053SJung-uk Kim SSL_SHA1,
2740e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2741e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2742e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2743e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2744e71b7053SJung-uk Kim 128,
2745e71b7053SJung-uk Kim 128,
2746e71b7053SJung-uk Kim },
2747e71b7053SJung-uk Kim {
2748e71b7053SJung-uk Kim 1,
2749e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_SEED_SHA,
2750e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_SEED_SHA,
2751e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_SEED_SHA,
2752e71b7053SJung-uk Kim SSL_kDHE,
2753e71b7053SJung-uk Kim SSL_aDSS,
2754e71b7053SJung-uk Kim SSL_SEED,
2755e71b7053SJung-uk Kim SSL_SHA1,
2756e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2757e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2758e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2759e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2760e71b7053SJung-uk Kim 128,
2761e71b7053SJung-uk Kim 128,
2762e71b7053SJung-uk Kim },
2763e71b7053SJung-uk Kim {
2764e71b7053SJung-uk Kim 1,
2765e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_SEED_SHA,
2766e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_SEED_SHA,
2767e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_SEED_SHA,
2768e71b7053SJung-uk Kim SSL_kDHE,
2769e71b7053SJung-uk Kim SSL_aRSA,
2770e71b7053SJung-uk Kim SSL_SEED,
2771e71b7053SJung-uk Kim SSL_SHA1,
2772e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2773e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2774e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2775e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2776e71b7053SJung-uk Kim 128,
2777e71b7053SJung-uk Kim 128,
2778e71b7053SJung-uk Kim },
2779e71b7053SJung-uk Kim {
2780e71b7053SJung-uk Kim 1,
2781e71b7053SJung-uk Kim TLS1_TXT_ADH_WITH_SEED_SHA,
2782e71b7053SJung-uk Kim TLS1_RFC_ADH_WITH_SEED_SHA,
2783e71b7053SJung-uk Kim TLS1_CK_ADH_WITH_SEED_SHA,
2784e71b7053SJung-uk Kim SSL_kDHE,
2785e71b7053SJung-uk Kim SSL_aNULL,
2786e71b7053SJung-uk Kim SSL_SEED,
2787e71b7053SJung-uk Kim SSL_SHA1,
2788e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2789e71b7053SJung-uk Kim DTLS1_BAD_VER, DTLS1_2_VERSION,
2790e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2791e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2792e71b7053SJung-uk Kim 128,
2793e71b7053SJung-uk Kim 128,
2794e71b7053SJung-uk Kim },
2795e71b7053SJung-uk Kim
2796e71b7053SJung-uk Kim #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
2797e71b7053SJung-uk Kim {
2798e71b7053SJung-uk Kim 1,
2799e71b7053SJung-uk Kim SSL3_TXT_RSA_RC4_128_MD5,
2800e71b7053SJung-uk Kim SSL3_RFC_RSA_RC4_128_MD5,
2801e71b7053SJung-uk Kim SSL3_CK_RSA_RC4_128_MD5,
2802e71b7053SJung-uk Kim SSL_kRSA,
2803e71b7053SJung-uk Kim SSL_aRSA,
2804e71b7053SJung-uk Kim SSL_RC4,
2805e71b7053SJung-uk Kim SSL_MD5,
2806e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2807e71b7053SJung-uk Kim 0, 0,
2808e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2809e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2810e71b7053SJung-uk Kim 128,
2811e71b7053SJung-uk Kim 128,
2812e71b7053SJung-uk Kim },
2813e71b7053SJung-uk Kim {
2814e71b7053SJung-uk Kim 1,
2815e71b7053SJung-uk Kim SSL3_TXT_RSA_RC4_128_SHA,
2816e71b7053SJung-uk Kim SSL3_RFC_RSA_RC4_128_SHA,
2817e71b7053SJung-uk Kim SSL3_CK_RSA_RC4_128_SHA,
2818e71b7053SJung-uk Kim SSL_kRSA,
2819e71b7053SJung-uk Kim SSL_aRSA,
2820e71b7053SJung-uk Kim SSL_RC4,
2821e71b7053SJung-uk Kim SSL_SHA1,
2822e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2823e71b7053SJung-uk Kim 0, 0,
2824e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2825e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2826e71b7053SJung-uk Kim 128,
2827e71b7053SJung-uk Kim 128,
2828e71b7053SJung-uk Kim },
2829e71b7053SJung-uk Kim {
2830e71b7053SJung-uk Kim 1,
2831e71b7053SJung-uk Kim SSL3_TXT_ADH_RC4_128_MD5,
2832e71b7053SJung-uk Kim SSL3_RFC_ADH_RC4_128_MD5,
2833e71b7053SJung-uk Kim SSL3_CK_ADH_RC4_128_MD5,
2834e71b7053SJung-uk Kim SSL_kDHE,
2835e71b7053SJung-uk Kim SSL_aNULL,
2836e71b7053SJung-uk Kim SSL_RC4,
2837e71b7053SJung-uk Kim SSL_MD5,
2838e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2839e71b7053SJung-uk Kim 0, 0,
2840e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2841e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2842e71b7053SJung-uk Kim 128,
2843e71b7053SJung-uk Kim 128,
2844e71b7053SJung-uk Kim },
2845e71b7053SJung-uk Kim {
2846e71b7053SJung-uk Kim 1,
2847e71b7053SJung-uk Kim TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA,
2848e71b7053SJung-uk Kim TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA,
2849e71b7053SJung-uk Kim TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA,
2850e71b7053SJung-uk Kim SSL_kECDHEPSK,
2851e71b7053SJung-uk Kim SSL_aPSK,
2852e71b7053SJung-uk Kim SSL_RC4,
2853e71b7053SJung-uk Kim SSL_SHA1,
2854e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2855e71b7053SJung-uk Kim 0, 0,
2856e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2857e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2858e71b7053SJung-uk Kim 128,
2859e71b7053SJung-uk Kim 128,
2860e71b7053SJung-uk Kim },
2861e71b7053SJung-uk Kim {
2862e71b7053SJung-uk Kim 1,
2863e71b7053SJung-uk Kim TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA,
2864e71b7053SJung-uk Kim TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA,
2865e71b7053SJung-uk Kim TLS1_CK_ECDH_anon_WITH_RC4_128_SHA,
2866e71b7053SJung-uk Kim SSL_kECDHE,
2867e71b7053SJung-uk Kim SSL_aNULL,
2868e71b7053SJung-uk Kim SSL_RC4,
2869e71b7053SJung-uk Kim SSL_SHA1,
2870e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2871e71b7053SJung-uk Kim 0, 0,
2872e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2873e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2874e71b7053SJung-uk Kim 128,
2875e71b7053SJung-uk Kim 128,
2876e71b7053SJung-uk Kim },
2877e71b7053SJung-uk Kim {
2878e71b7053SJung-uk Kim 1,
2879e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA,
2880e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA,
2881e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA,
2882e71b7053SJung-uk Kim SSL_kECDHE,
2883e71b7053SJung-uk Kim SSL_aECDSA,
2884e71b7053SJung-uk Kim SSL_RC4,
2885e71b7053SJung-uk Kim SSL_SHA1,
2886e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2887e71b7053SJung-uk Kim 0, 0,
2888e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2889e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2890e71b7053SJung-uk Kim 128,
2891e71b7053SJung-uk Kim 128,
2892e71b7053SJung-uk Kim },
2893e71b7053SJung-uk Kim {
2894e71b7053SJung-uk Kim 1,
2895e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA,
2896e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA,
2897e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA,
2898e71b7053SJung-uk Kim SSL_kECDHE,
2899e71b7053SJung-uk Kim SSL_aRSA,
2900e71b7053SJung-uk Kim SSL_RC4,
2901e71b7053SJung-uk Kim SSL_SHA1,
2902e71b7053SJung-uk Kim TLS1_VERSION, TLS1_2_VERSION,
2903e71b7053SJung-uk Kim 0, 0,
2904e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2905e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2906e71b7053SJung-uk Kim 128,
2907e71b7053SJung-uk Kim 128,
2908e71b7053SJung-uk Kim },
2909e71b7053SJung-uk Kim {
2910e71b7053SJung-uk Kim 1,
2911e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_RC4_128_SHA,
2912e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_RC4_128_SHA,
2913e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_RC4_128_SHA,
2914e71b7053SJung-uk Kim SSL_kPSK,
2915e71b7053SJung-uk Kim SSL_aPSK,
2916e71b7053SJung-uk Kim SSL_RC4,
2917e71b7053SJung-uk Kim SSL_SHA1,
2918e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2919e71b7053SJung-uk Kim 0, 0,
2920e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2921e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2922e71b7053SJung-uk Kim 128,
2923e71b7053SJung-uk Kim 128,
2924e71b7053SJung-uk Kim },
2925e71b7053SJung-uk Kim {
2926e71b7053SJung-uk Kim 1,
2927e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA,
2928e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA,
2929e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_RC4_128_SHA,
2930e71b7053SJung-uk Kim SSL_kRSAPSK,
2931e71b7053SJung-uk Kim SSL_aRSA,
2932e71b7053SJung-uk Kim SSL_RC4,
2933e71b7053SJung-uk Kim SSL_SHA1,
2934e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2935e71b7053SJung-uk Kim 0, 0,
2936e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2937e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2938e71b7053SJung-uk Kim 128,
2939e71b7053SJung-uk Kim 128,
2940e71b7053SJung-uk Kim },
2941e71b7053SJung-uk Kim {
2942e71b7053SJung-uk Kim 1,
2943e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA,
2944e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA,
2945e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_RC4_128_SHA,
2946e71b7053SJung-uk Kim SSL_kDHEPSK,
2947e71b7053SJung-uk Kim SSL_aPSK,
2948e71b7053SJung-uk Kim SSL_RC4,
2949e71b7053SJung-uk Kim SSL_SHA1,
2950e71b7053SJung-uk Kim SSL3_VERSION, TLS1_2_VERSION,
2951e71b7053SJung-uk Kim 0, 0,
2952e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_MEDIUM,
2953e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
2954e71b7053SJung-uk Kim 128,
2955e71b7053SJung-uk Kim 128,
2956e71b7053SJung-uk Kim },
2957e71b7053SJung-uk Kim #endif /* OPENSSL_NO_WEAK_SSL_CIPHERS */
2958e71b7053SJung-uk Kim
2959e71b7053SJung-uk Kim {
2960e71b7053SJung-uk Kim 1,
2961e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256,
2962e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256,
2963e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256,
2964e71b7053SJung-uk Kim SSL_kRSA,
2965e71b7053SJung-uk Kim SSL_aRSA,
2966e71b7053SJung-uk Kim SSL_ARIA128GCM,
2967e71b7053SJung-uk Kim SSL_AEAD,
2968e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2969e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2970e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2971e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
2972e71b7053SJung-uk Kim 128,
2973e71b7053SJung-uk Kim 128,
2974e71b7053SJung-uk Kim },
2975e71b7053SJung-uk Kim {
2976e71b7053SJung-uk Kim 1,
2977e71b7053SJung-uk Kim TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384,
2978e71b7053SJung-uk Kim TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384,
2979e71b7053SJung-uk Kim TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384,
2980e71b7053SJung-uk Kim SSL_kRSA,
2981e71b7053SJung-uk Kim SSL_aRSA,
2982e71b7053SJung-uk Kim SSL_ARIA256GCM,
2983e71b7053SJung-uk Kim SSL_AEAD,
2984e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
2985e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
2986e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
2987e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
2988e71b7053SJung-uk Kim 256,
2989e71b7053SJung-uk Kim 256,
2990e71b7053SJung-uk Kim },
2991e71b7053SJung-uk Kim {
2992e71b7053SJung-uk Kim 1,
2993e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
2994e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
2995e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
2996e71b7053SJung-uk Kim SSL_kDHE,
2997e71b7053SJung-uk Kim SSL_aRSA,
2998e71b7053SJung-uk Kim SSL_ARIA128GCM,
2999e71b7053SJung-uk Kim SSL_AEAD,
3000e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3001e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3002e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3003e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3004e71b7053SJung-uk Kim 128,
3005e71b7053SJung-uk Kim 128,
3006e71b7053SJung-uk Kim },
3007e71b7053SJung-uk Kim {
3008e71b7053SJung-uk Kim 1,
3009e71b7053SJung-uk Kim TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
3010e71b7053SJung-uk Kim TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
3011e71b7053SJung-uk Kim TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
3012e71b7053SJung-uk Kim SSL_kDHE,
3013e71b7053SJung-uk Kim SSL_aRSA,
3014e71b7053SJung-uk Kim SSL_ARIA256GCM,
3015e71b7053SJung-uk Kim SSL_AEAD,
3016e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3017e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3018e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3019e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3020e71b7053SJung-uk Kim 256,
3021e71b7053SJung-uk Kim 256,
3022e71b7053SJung-uk Kim },
3023e71b7053SJung-uk Kim {
3024e71b7053SJung-uk Kim 1,
3025e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256,
3026e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256,
3027e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256,
3028e71b7053SJung-uk Kim SSL_kDHE,
3029e71b7053SJung-uk Kim SSL_aDSS,
3030e71b7053SJung-uk Kim SSL_ARIA128GCM,
3031e71b7053SJung-uk Kim SSL_AEAD,
3032e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3033e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3034e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3035e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3036e71b7053SJung-uk Kim 128,
3037e71b7053SJung-uk Kim 128,
3038e71b7053SJung-uk Kim },
3039e71b7053SJung-uk Kim {
3040e71b7053SJung-uk Kim 1,
3041e71b7053SJung-uk Kim TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384,
3042e71b7053SJung-uk Kim TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384,
3043e71b7053SJung-uk Kim TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384,
3044e71b7053SJung-uk Kim SSL_kDHE,
3045e71b7053SJung-uk Kim SSL_aDSS,
3046e71b7053SJung-uk Kim SSL_ARIA256GCM,
3047e71b7053SJung-uk Kim SSL_AEAD,
3048e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3049e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3050e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3051e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3052e71b7053SJung-uk Kim 256,
3053e71b7053SJung-uk Kim 256,
3054e71b7053SJung-uk Kim },
3055e71b7053SJung-uk Kim {
3056e71b7053SJung-uk Kim 1,
3057e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
3058e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
3059e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
3060e71b7053SJung-uk Kim SSL_kECDHE,
3061e71b7053SJung-uk Kim SSL_aECDSA,
3062e71b7053SJung-uk Kim SSL_ARIA128GCM,
3063e71b7053SJung-uk Kim SSL_AEAD,
3064e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3065e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3066e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3067e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3068e71b7053SJung-uk Kim 128,
3069e71b7053SJung-uk Kim 128,
3070e71b7053SJung-uk Kim },
3071e71b7053SJung-uk Kim {
3072e71b7053SJung-uk Kim 1,
3073e71b7053SJung-uk Kim TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
3074e71b7053SJung-uk Kim TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
3075e71b7053SJung-uk Kim TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
3076e71b7053SJung-uk Kim SSL_kECDHE,
3077e71b7053SJung-uk Kim SSL_aECDSA,
3078e71b7053SJung-uk Kim SSL_ARIA256GCM,
3079e71b7053SJung-uk Kim SSL_AEAD,
3080e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3081e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3082e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3083e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3084e71b7053SJung-uk Kim 256,
3085e71b7053SJung-uk Kim 256,
3086e71b7053SJung-uk Kim },
3087e71b7053SJung-uk Kim {
3088e71b7053SJung-uk Kim 1,
3089e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
3090e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
3091e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
3092e71b7053SJung-uk Kim SSL_kECDHE,
3093e71b7053SJung-uk Kim SSL_aRSA,
3094e71b7053SJung-uk Kim SSL_ARIA128GCM,
3095e71b7053SJung-uk Kim SSL_AEAD,
3096e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3097e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3098e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3099e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3100e71b7053SJung-uk Kim 128,
3101e71b7053SJung-uk Kim 128,
3102e71b7053SJung-uk Kim },
3103e71b7053SJung-uk Kim {
3104e71b7053SJung-uk Kim 1,
3105e71b7053SJung-uk Kim TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
3106e71b7053SJung-uk Kim TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
3107e71b7053SJung-uk Kim TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
3108e71b7053SJung-uk Kim SSL_kECDHE,
3109e71b7053SJung-uk Kim SSL_aRSA,
3110e71b7053SJung-uk Kim SSL_ARIA256GCM,
3111e71b7053SJung-uk Kim SSL_AEAD,
3112e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3113e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3114e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3115e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3116e71b7053SJung-uk Kim 256,
3117e71b7053SJung-uk Kim 256,
3118e71b7053SJung-uk Kim },
3119e71b7053SJung-uk Kim {
3120e71b7053SJung-uk Kim 1,
3121e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256,
3122e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256,
3123e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256,
3124e71b7053SJung-uk Kim SSL_kPSK,
3125e71b7053SJung-uk Kim SSL_aPSK,
3126e71b7053SJung-uk Kim SSL_ARIA128GCM,
3127e71b7053SJung-uk Kim SSL_AEAD,
3128e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3129e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3130e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3131e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3132e71b7053SJung-uk Kim 128,
3133e71b7053SJung-uk Kim 128,
3134e71b7053SJung-uk Kim },
3135e71b7053SJung-uk Kim {
3136e71b7053SJung-uk Kim 1,
3137e71b7053SJung-uk Kim TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384,
3138e71b7053SJung-uk Kim TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384,
3139e71b7053SJung-uk Kim TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384,
3140e71b7053SJung-uk Kim SSL_kPSK,
3141e71b7053SJung-uk Kim SSL_aPSK,
3142e71b7053SJung-uk Kim SSL_ARIA256GCM,
3143e71b7053SJung-uk Kim SSL_AEAD,
3144e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3145e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3146e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3147e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3148e71b7053SJung-uk Kim 256,
3149e71b7053SJung-uk Kim 256,
3150e71b7053SJung-uk Kim },
3151e71b7053SJung-uk Kim {
3152e71b7053SJung-uk Kim 1,
3153e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
3154e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
3155e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
3156e71b7053SJung-uk Kim SSL_kDHEPSK,
3157e71b7053SJung-uk Kim SSL_aPSK,
3158e71b7053SJung-uk Kim SSL_ARIA128GCM,
3159e71b7053SJung-uk Kim SSL_AEAD,
3160e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3161e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3162e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3163e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3164e71b7053SJung-uk Kim 128,
3165e71b7053SJung-uk Kim 128,
3166e71b7053SJung-uk Kim },
3167e71b7053SJung-uk Kim {
3168e71b7053SJung-uk Kim 1,
3169e71b7053SJung-uk Kim TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
3170e71b7053SJung-uk Kim TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
3171e71b7053SJung-uk Kim TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
3172e71b7053SJung-uk Kim SSL_kDHEPSK,
3173e71b7053SJung-uk Kim SSL_aPSK,
3174e71b7053SJung-uk Kim SSL_ARIA256GCM,
3175e71b7053SJung-uk Kim SSL_AEAD,
3176e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3177e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3178e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3179e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3180e71b7053SJung-uk Kim 256,
3181e71b7053SJung-uk Kim 256,
3182e71b7053SJung-uk Kim },
3183e71b7053SJung-uk Kim {
3184e71b7053SJung-uk Kim 1,
3185e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
3186e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
3187e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
3188e71b7053SJung-uk Kim SSL_kRSAPSK,
3189e71b7053SJung-uk Kim SSL_aRSA,
3190e71b7053SJung-uk Kim SSL_ARIA128GCM,
3191e71b7053SJung-uk Kim SSL_AEAD,
3192e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3193e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3194e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3195e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
3196e71b7053SJung-uk Kim 128,
3197e71b7053SJung-uk Kim 128,
3198e71b7053SJung-uk Kim },
3199e71b7053SJung-uk Kim {
3200e71b7053SJung-uk Kim 1,
3201e71b7053SJung-uk Kim TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
3202e71b7053SJung-uk Kim TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
3203e71b7053SJung-uk Kim TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
3204e71b7053SJung-uk Kim SSL_kRSAPSK,
3205e71b7053SJung-uk Kim SSL_aRSA,
3206e71b7053SJung-uk Kim SSL_ARIA256GCM,
3207e71b7053SJung-uk Kim SSL_AEAD,
3208e71b7053SJung-uk Kim TLS1_2_VERSION, TLS1_2_VERSION,
3209e71b7053SJung-uk Kim DTLS1_2_VERSION, DTLS1_2_VERSION,
3210e71b7053SJung-uk Kim SSL_NOT_DEFAULT | SSL_HIGH,
3211e71b7053SJung-uk Kim SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384,
3212e71b7053SJung-uk Kim 256,
3213e71b7053SJung-uk Kim 256,
3214e71b7053SJung-uk Kim },
321574664626SKris Kennaway };
321674664626SKris Kennaway
3217e71b7053SJung-uk Kim /*
3218e71b7053SJung-uk Kim * The list of known Signalling Cipher-Suite Value "ciphers", non-valid
3219e71b7053SJung-uk Kim * values stuffed into the ciphers field of the wire protocol for signalling
3220e71b7053SJung-uk Kim * purposes.
3221e71b7053SJung-uk Kim */
3222e71b7053SJung-uk Kim static SSL_CIPHER ssl3_scsvs[] = {
3223e71b7053SJung-uk Kim {
3224e71b7053SJung-uk Kim 0,
3225e71b7053SJung-uk Kim "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
3226e71b7053SJung-uk Kim "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
3227e71b7053SJung-uk Kim SSL3_CK_SCSV,
3228e71b7053SJung-uk Kim 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229e71b7053SJung-uk Kim },
3230e71b7053SJung-uk Kim {
3231e71b7053SJung-uk Kim 0,
3232e71b7053SJung-uk Kim "TLS_FALLBACK_SCSV",
3233e71b7053SJung-uk Kim "TLS_FALLBACK_SCSV",
3234e71b7053SJung-uk Kim SSL3_CK_FALLBACK_SCSV,
3235e71b7053SJung-uk Kim 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3236e71b7053SJung-uk Kim },
3237e71b7053SJung-uk Kim };
3238e71b7053SJung-uk Kim
cipher_compare(const void * a,const void * b)3239e71b7053SJung-uk Kim static int cipher_compare(const void *a, const void *b)
3240e71b7053SJung-uk Kim {
3241e71b7053SJung-uk Kim const SSL_CIPHER *ap = (const SSL_CIPHER *)a;
3242e71b7053SJung-uk Kim const SSL_CIPHER *bp = (const SSL_CIPHER *)b;
3243e71b7053SJung-uk Kim
3244e71b7053SJung-uk Kim if (ap->id == bp->id)
3245e71b7053SJung-uk Kim return 0;
3246e71b7053SJung-uk Kim return ap->id < bp->id ? -1 : 1;
3247e71b7053SJung-uk Kim }
3248e71b7053SJung-uk Kim
ssl_sort_cipher_list(void)3249e71b7053SJung-uk Kim void ssl_sort_cipher_list(void)
3250e71b7053SJung-uk Kim {
3251e71b7053SJung-uk Kim qsort(tls13_ciphers, TLS13_NUM_CIPHERS, sizeof(tls13_ciphers[0]),
3252e71b7053SJung-uk Kim cipher_compare);
3253e71b7053SJung-uk Kim qsort(ssl3_ciphers, SSL3_NUM_CIPHERS, sizeof(ssl3_ciphers[0]),
3254e71b7053SJung-uk Kim cipher_compare);
3255e71b7053SJung-uk Kim qsort(ssl3_scsvs, SSL3_NUM_SCSVS, sizeof(ssl3_scsvs[0]), cipher_compare);
3256e71b7053SJung-uk Kim }
3257e71b7053SJung-uk Kim
ssl_undefined_function_1(SSL * ssl,unsigned char * r,size_t s,const char * t,size_t u,const unsigned char * v,size_t w,int x)3258e71b7053SJung-uk Kim static int ssl_undefined_function_1(SSL *ssl, unsigned char *r, size_t s,
3259e71b7053SJung-uk Kim const char * t, size_t u,
3260e71b7053SJung-uk Kim const unsigned char * v, size_t w, int x)
3261e71b7053SJung-uk Kim {
3262e71b7053SJung-uk Kim (void)r;
3263e71b7053SJung-uk Kim (void)s;
3264e71b7053SJung-uk Kim (void)t;
3265e71b7053SJung-uk Kim (void)u;
3266e71b7053SJung-uk Kim (void)v;
3267e71b7053SJung-uk Kim (void)w;
3268e71b7053SJung-uk Kim (void)x;
3269e71b7053SJung-uk Kim return ssl_undefined_function(ssl);
3270e71b7053SJung-uk Kim }
3271e71b7053SJung-uk Kim
3272e71b7053SJung-uk Kim const SSL3_ENC_METHOD SSLv3_enc_data = {
327374664626SKris Kennaway ssl3_enc,
32741f13597dSJung-uk Kim n_ssl3_mac,
327574664626SKris Kennaway ssl3_setup_key_block,
327674664626SKris Kennaway ssl3_generate_master_secret,
327774664626SKris Kennaway ssl3_change_cipher_state,
327874664626SKris Kennaway ssl3_final_finish_mac,
327974664626SKris Kennaway SSL3_MD_CLIENT_FINISHED_CONST, 4,
328074664626SKris Kennaway SSL3_MD_SERVER_FINISHED_CONST, 4,
328174664626SKris Kennaway ssl3_alert_code,
3282e71b7053SJung-uk Kim ssl_undefined_function_1,
32837bded2dbSJung-uk Kim 0,
32847bded2dbSJung-uk Kim ssl3_set_handshake_header,
3285e71b7053SJung-uk Kim tls_close_construct_packet,
32867bded2dbSJung-uk Kim ssl3_handshake_write
328774664626SKris Kennaway };
328874664626SKris Kennaway
ssl3_default_timeout(void)32893b4e3dcbSSimon L. B. Nielsen long ssl3_default_timeout(void)
329074664626SKris Kennaway {
32916f9291ceSJung-uk Kim /*
32926f9291ceSJung-uk Kim * 2 hours, the 24 hours mentioned in the SSLv3 spec is way too long for
32936f9291ceSJung-uk Kim * http, the cache would over fill
32946f9291ceSJung-uk Kim */
329574664626SKris Kennaway return (60 * 60 * 2);
329674664626SKris Kennaway }
329774664626SKris Kennaway
ssl3_num_ciphers(void)329874664626SKris Kennaway int ssl3_num_ciphers(void)
329974664626SKris Kennaway {
3300e71b7053SJung-uk Kim return SSL3_NUM_CIPHERS;
330174664626SKris Kennaway }
330274664626SKris Kennaway
ssl3_get_cipher(unsigned int u)33031f13597dSJung-uk Kim const SSL_CIPHER *ssl3_get_cipher(unsigned int u)
330474664626SKris Kennaway {
330574664626SKris Kennaway if (u < SSL3_NUM_CIPHERS)
3306e71b7053SJung-uk Kim return &(ssl3_ciphers[SSL3_NUM_CIPHERS - 1 - u]);
330774664626SKris Kennaway else
3308e71b7053SJung-uk Kim return NULL;
330974664626SKris Kennaway }
331074664626SKris Kennaway
ssl3_set_handshake_header(SSL * s,WPACKET * pkt,int htype)3311e71b7053SJung-uk Kim int ssl3_set_handshake_header(SSL *s, WPACKET *pkt, int htype)
331274664626SKris Kennaway {
3313e71b7053SJung-uk Kim /* No header in the event of a CCS */
3314e71b7053SJung-uk Kim if (htype == SSL3_MT_CHANGE_CIPHER_SPEC)
3315e71b7053SJung-uk Kim return 1;
3316e71b7053SJung-uk Kim
3317e71b7053SJung-uk Kim /* Set the content type and 3 bytes for the message len */
3318e71b7053SJung-uk Kim if (!WPACKET_put_bytes_u8(pkt, htype)
3319e71b7053SJung-uk Kim || !WPACKET_start_sub_packet_u24(pkt))
3320c1803d78SJacques Vidrine return 0;
3321c1803d78SJacques Vidrine
3322e71b7053SJung-uk Kim return 1;
33237bded2dbSJung-uk Kim }
33247bded2dbSJung-uk Kim
ssl3_handshake_write(SSL * s)33257bded2dbSJung-uk Kim int ssl3_handshake_write(SSL *s)
33267bded2dbSJung-uk Kim {
33277bded2dbSJung-uk Kim return ssl3_do_write(s, SSL3_RT_HANDSHAKE);
33287bded2dbSJung-uk Kim }
33297bded2dbSJung-uk Kim
ssl3_new(SSL * s)333074664626SKris Kennaway int ssl3_new(SSL *s)
333174664626SKris Kennaway {
33321f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
3333b077aed3SPierre Pronchery if (!ssl_srp_ctx_init_intern(s))
3334b077aed3SPierre Pronchery return 0;
33351f13597dSJung-uk Kim #endif
3336e71b7053SJung-uk Kim
3337e71b7053SJung-uk Kim if (!s->method->ssl_clear(s))
3338e71b7053SJung-uk Kim return 0;
3339e71b7053SJung-uk Kim
3340e71b7053SJung-uk Kim return 1;
334174664626SKris Kennaway }
334274664626SKris Kennaway
ssl3_free(SSL * s)334374664626SKris Kennaway void ssl3_free(SSL *s)
334474664626SKris Kennaway {
3345b077aed3SPierre Pronchery if (s == NULL)
334674664626SKris Kennaway return;
334774664626SKris Kennaway
334874664626SKris Kennaway ssl3_cleanup_key_block(s);
3349e71b7053SJung-uk Kim
3350b077aed3SPierre Pronchery EVP_PKEY_free(s->s3.peer_tmp);
3351b077aed3SPierre Pronchery s->s3.peer_tmp = NULL;
3352b077aed3SPierre Pronchery EVP_PKEY_free(s->s3.tmp.pkey);
3353b077aed3SPierre Pronchery s->s3.tmp.pkey = NULL;
33543b4e3dcbSSimon L. B. Nielsen
3355b077aed3SPierre Pronchery ssl_evp_cipher_free(s->s3.tmp.new_sym_enc);
3356b077aed3SPierre Pronchery ssl_evp_md_free(s->s3.tmp.new_hash);
3357b077aed3SPierre Pronchery
3358b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.ctype);
3359b077aed3SPierre Pronchery sk_X509_NAME_pop_free(s->s3.tmp.peer_ca_names, X509_NAME_free);
3360b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.ciphers_raw);
3361b077aed3SPierre Pronchery OPENSSL_clear_free(s->s3.tmp.pms, s->s3.tmp.pmslen);
3362b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.peer_sigalgs);
3363b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.peer_cert_sigalgs);
33646f9291ceSJung-uk Kim ssl3_free_digest_list(s);
3365b077aed3SPierre Pronchery OPENSSL_free(s->s3.alpn_selected);
3366b077aed3SPierre Pronchery OPENSSL_free(s->s3.alpn_proposed);
33677bded2dbSJung-uk Kim
3368*e0c4386eSCy Schubert #ifndef OPENSSL_NO_PSK
3369*e0c4386eSCy Schubert OPENSSL_free(s->s3.tmp.psk);
3370*e0c4386eSCy Schubert #endif
3371*e0c4386eSCy Schubert
33721f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
3373b077aed3SPierre Pronchery ssl_srp_ctx_free_intern(s);
33741f13597dSJung-uk Kim #endif
3375b077aed3SPierre Pronchery memset(&s->s3, 0, sizeof(s->s3));
337674664626SKris Kennaway }
337774664626SKris Kennaway
ssl3_clear(SSL * s)3378e71b7053SJung-uk Kim int ssl3_clear(SSL *s)
337974664626SKris Kennaway {
338074664626SKris Kennaway ssl3_cleanup_key_block(s);
3381b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.ctype);
3382b077aed3SPierre Pronchery sk_X509_NAME_pop_free(s->s3.tmp.peer_ca_names, X509_NAME_free);
3383b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.ciphers_raw);
3384b077aed3SPierre Pronchery OPENSSL_clear_free(s->s3.tmp.pms, s->s3.tmp.pmslen);
3385b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.peer_sigalgs);
3386b077aed3SPierre Pronchery OPENSSL_free(s->s3.tmp.peer_cert_sigalgs);
338774664626SKris Kennaway
3388b077aed3SPierre Pronchery EVP_PKEY_free(s->s3.tmp.pkey);
3389b077aed3SPierre Pronchery EVP_PKEY_free(s->s3.peer_tmp);
339074664626SKris Kennaway
33911f13597dSJung-uk Kim ssl3_free_digest_list(s);
3392e71b7053SJung-uk Kim
3393b077aed3SPierre Pronchery OPENSSL_free(s->s3.alpn_selected);
3394b077aed3SPierre Pronchery OPENSSL_free(s->s3.alpn_proposed);
3395e71b7053SJung-uk Kim
3396e71b7053SJung-uk Kim /* NULL/zero-out everything in the s3 struct */
3397b077aed3SPierre Pronchery memset(&s->s3, 0, sizeof(s->s3));
339874664626SKris Kennaway
3399e71b7053SJung-uk Kim if (!ssl_free_wbio_buffer(s))
3400e71b7053SJung-uk Kim return 0;
340174664626SKris Kennaway
340274664626SKris Kennaway s->version = SSL3_VERSION;
34031f13597dSJung-uk Kim
3404e71b7053SJung-uk Kim #if !defined(OPENSSL_NO_NEXTPROTONEG)
3405e71b7053SJung-uk Kim OPENSSL_free(s->ext.npn);
3406e71b7053SJung-uk Kim s->ext.npn = NULL;
3407e71b7053SJung-uk Kim s->ext.npn_len = 0;
34081f13597dSJung-uk Kim #endif
3409e71b7053SJung-uk Kim
3410e71b7053SJung-uk Kim return 1;
34111f13597dSJung-uk Kim }
34121f13597dSJung-uk Kim
34131f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
srp_password_from_info_cb(SSL * s,void * arg)3414e71b7053SJung-uk Kim static char *srp_password_from_info_cb(SSL *s, void *arg)
34151f13597dSJung-uk Kim {
3416e71b7053SJung-uk Kim return OPENSSL_strdup(s->srp_ctx.info);
34171f13597dSJung-uk Kim }
34181f13597dSJung-uk Kim #endif
341974664626SKris Kennaway
3420e71b7053SJung-uk Kim static int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t len);
34217bded2dbSJung-uk Kim
ssl3_ctrl(SSL * s,int cmd,long larg,void * parg)34225c87c606SMark Murray long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
342374664626SKris Kennaway {
342474664626SKris Kennaway int ret = 0;
342574664626SKris Kennaway
34266f9291ceSJung-uk Kim switch (cmd) {
342774664626SKris Kennaway case SSL_CTRL_GET_CLIENT_CERT_REQUEST:
342874664626SKris Kennaway break;
342974664626SKris Kennaway case SSL_CTRL_GET_NUM_RENEGOTIATIONS:
3430b077aed3SPierre Pronchery ret = s->s3.num_renegotiations;
343174664626SKris Kennaway break;
343274664626SKris Kennaway case SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS:
3433b077aed3SPierre Pronchery ret = s->s3.num_renegotiations;
3434b077aed3SPierre Pronchery s->s3.num_renegotiations = 0;
343574664626SKris Kennaway break;
343674664626SKris Kennaway case SSL_CTRL_GET_TOTAL_RENEGOTIATIONS:
3437b077aed3SPierre Pronchery ret = s->s3.total_renegotiations;
343874664626SKris Kennaway break;
343974664626SKris Kennaway case SSL_CTRL_GET_FLAGS:
3440b077aed3SPierre Pronchery ret = (int)(s->s3.flags);
344174664626SKris Kennaway break;
3442b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
344374664626SKris Kennaway case SSL_CTRL_SET_TMP_DH:
344474664626SKris Kennaway {
3445e71b7053SJung-uk Kim EVP_PKEY *pkdh = NULL;
3446b077aed3SPierre Pronchery if (parg == NULL) {
3447b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_PASSED_NULL_PARAMETER);
3448e71b7053SJung-uk Kim return 0;
344974664626SKris Kennaway }
3450b077aed3SPierre Pronchery pkdh = ssl_dh_to_pkey(parg);
3451b077aed3SPierre Pronchery if (pkdh == NULL) {
3452b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
3453b077aed3SPierre Pronchery return 0;
3454e71b7053SJung-uk Kim }
3455b077aed3SPierre Pronchery if (!SSL_set0_tmp_dh_pkey(s, pkdh)) {
3456b077aed3SPierre Pronchery EVP_PKEY_free(pkdh);
3457b077aed3SPierre Pronchery return 0;
3458b077aed3SPierre Pronchery }
3459b077aed3SPierre Pronchery return 1;
346074664626SKris Kennaway }
346174664626SKris Kennaway break;
346274664626SKris Kennaway case SSL_CTRL_SET_TMP_DH_CB:
3463f579bf8eSKris Kennaway {
3464b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
3465e71b7053SJung-uk Kim return ret;
3466f579bf8eSKris Kennaway }
3467b077aed3SPierre Pronchery #endif
3468e71b7053SJung-uk Kim case SSL_CTRL_SET_DH_AUTO:
3469e71b7053SJung-uk Kim s->cert->dh_tmp_auto = larg;
3470e71b7053SJung-uk Kim return 1;
3471b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
34723b4e3dcbSSimon L. B. Nielsen case SSL_CTRL_SET_TMP_ECDH:
34733b4e3dcbSSimon L. B. Nielsen {
34746f9291ceSJung-uk Kim if (parg == NULL) {
3475b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_PASSED_NULL_PARAMETER);
3476e71b7053SJung-uk Kim return 0;
34773b4e3dcbSSimon L. B. Nielsen }
3478b077aed3SPierre Pronchery return ssl_set_tmp_ecdh_groups(&s->ext.supportedgroups,
3479e71b7053SJung-uk Kim &s->ext.supportedgroups_len,
3480b077aed3SPierre Pronchery parg);
34813b4e3dcbSSimon L. B. Nielsen }
3482b077aed3SPierre Pronchery #endif /* !OPENSSL_NO_DEPRECATED_3_0 */
3483db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_HOSTNAME:
3484e71b7053SJung-uk Kim /*
3485e71b7053SJung-uk Kim * This API is only used for a client to set what SNI it will request
3486e71b7053SJung-uk Kim * from the server, but we currently allow it to be used on servers
3487e71b7053SJung-uk Kim * as well, which is a programming error. Currently we just clear
3488e71b7053SJung-uk Kim * the field in SSL_do_handshake() for server SSLs, but when we can
3489e71b7053SJung-uk Kim * make ABI-breaking changes, we may want to make use of this API
3490e71b7053SJung-uk Kim * an error on server SSLs.
3491e71b7053SJung-uk Kim */
34926f9291ceSJung-uk Kim if (larg == TLSEXT_NAMETYPE_host_name) {
34938180e704SJung-uk Kim size_t len;
34948180e704SJung-uk Kim
3495e71b7053SJung-uk Kim OPENSSL_free(s->ext.hostname);
3496e71b7053SJung-uk Kim s->ext.hostname = NULL;
3497db522d3aSSimon L. B. Nielsen
3498db522d3aSSimon L. B. Nielsen ret = 1;
3499db522d3aSSimon L. B. Nielsen if (parg == NULL)
3500db522d3aSSimon L. B. Nielsen break;
35018180e704SJung-uk Kim len = strlen((char *)parg);
35028180e704SJung-uk Kim if (len == 0 || len > TLSEXT_MAXLEN_host_name) {
3503b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME);
3504db522d3aSSimon L. B. Nielsen return 0;
3505db522d3aSSimon L. B. Nielsen }
3506e71b7053SJung-uk Kim if ((s->ext.hostname = OPENSSL_strdup((char *)parg)) == NULL) {
3507b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR);
3508db522d3aSSimon L. B. Nielsen return 0;
3509db522d3aSSimon L. B. Nielsen }
35106f9291ceSJung-uk Kim } else {
3511b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE);
3512db522d3aSSimon L. B. Nielsen return 0;
3513db522d3aSSimon L. B. Nielsen }
3514db522d3aSSimon L. B. Nielsen break;
3515db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_DEBUG_ARG:
3516e71b7053SJung-uk Kim s->ext.debug_arg = parg;
3517db522d3aSSimon L. B. Nielsen ret = 1;
3518db522d3aSSimon L. B. Nielsen break;
3519db522d3aSSimon L. B. Nielsen
3520e71b7053SJung-uk Kim case SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE:
3521e71b7053SJung-uk Kim ret = s->ext.status_type;
35221f13597dSJung-uk Kim break;
35231f13597dSJung-uk Kim
3524db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE:
3525e71b7053SJung-uk Kim s->ext.status_type = larg;
3526db522d3aSSimon L. B. Nielsen ret = 1;
3527db522d3aSSimon L. B. Nielsen break;
3528db522d3aSSimon L. B. Nielsen
3529db522d3aSSimon L. B. Nielsen case SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS:
3530e71b7053SJung-uk Kim *(STACK_OF(X509_EXTENSION) **)parg = s->ext.ocsp.exts;
3531db522d3aSSimon L. B. Nielsen ret = 1;
3532db522d3aSSimon L. B. Nielsen break;
3533db522d3aSSimon L. B. Nielsen
3534db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS:
3535e71b7053SJung-uk Kim s->ext.ocsp.exts = parg;
3536db522d3aSSimon L. B. Nielsen ret = 1;
3537db522d3aSSimon L. B. Nielsen break;
3538db522d3aSSimon L. B. Nielsen
3539db522d3aSSimon L. B. Nielsen case SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS:
3540e71b7053SJung-uk Kim *(STACK_OF(OCSP_RESPID) **)parg = s->ext.ocsp.ids;
3541db522d3aSSimon L. B. Nielsen ret = 1;
3542db522d3aSSimon L. B. Nielsen break;
3543db522d3aSSimon L. B. Nielsen
3544db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS:
3545e71b7053SJung-uk Kim s->ext.ocsp.ids = parg;
3546db522d3aSSimon L. B. Nielsen ret = 1;
3547db522d3aSSimon L. B. Nielsen break;
3548db522d3aSSimon L. B. Nielsen
3549db522d3aSSimon L. B. Nielsen case SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP:
3550e71b7053SJung-uk Kim *(unsigned char **)parg = s->ext.ocsp.resp;
3551e71b7053SJung-uk Kim if (s->ext.ocsp.resp_len == 0
3552e71b7053SJung-uk Kim || s->ext.ocsp.resp_len > LONG_MAX)
3553e71b7053SJung-uk Kim return -1;
3554e71b7053SJung-uk Kim return (long)s->ext.ocsp.resp_len;
3555db522d3aSSimon L. B. Nielsen
3556db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP:
3557e71b7053SJung-uk Kim OPENSSL_free(s->ext.ocsp.resp);
3558e71b7053SJung-uk Kim s->ext.ocsp.resp = parg;
3559e71b7053SJung-uk Kim s->ext.ocsp.resp_len = larg;
3560db522d3aSSimon L. B. Nielsen ret = 1;
3561db522d3aSSimon L. B. Nielsen break;
3562db522d3aSSimon L. B. Nielsen
35637bded2dbSJung-uk Kim case SSL_CTRL_CHAIN:
35647bded2dbSJung-uk Kim if (larg)
3565e71b7053SJung-uk Kim return ssl_cert_set1_chain(s, NULL, (STACK_OF(X509) *)parg);
35667bded2dbSJung-uk Kim else
3567e71b7053SJung-uk Kim return ssl_cert_set0_chain(s, NULL, (STACK_OF(X509) *)parg);
35687bded2dbSJung-uk Kim
35697bded2dbSJung-uk Kim case SSL_CTRL_CHAIN_CERT:
35707bded2dbSJung-uk Kim if (larg)
3571e71b7053SJung-uk Kim return ssl_cert_add1_chain_cert(s, NULL, (X509 *)parg);
35727bded2dbSJung-uk Kim else
3573e71b7053SJung-uk Kim return ssl_cert_add0_chain_cert(s, NULL, (X509 *)parg);
35747bded2dbSJung-uk Kim
35757bded2dbSJung-uk Kim case SSL_CTRL_GET_CHAIN_CERTS:
35767bded2dbSJung-uk Kim *(STACK_OF(X509) **)parg = s->cert->key->chain;
3577da327cd2SJung-uk Kim ret = 1;
35787bded2dbSJung-uk Kim break;
35797bded2dbSJung-uk Kim
35807bded2dbSJung-uk Kim case SSL_CTRL_SELECT_CURRENT_CERT:
35817bded2dbSJung-uk Kim return ssl_cert_select_current(s->cert, (X509 *)parg);
35827bded2dbSJung-uk Kim
35837bded2dbSJung-uk Kim case SSL_CTRL_SET_CURRENT_CERT:
35847bded2dbSJung-uk Kim if (larg == SSL_CERT_SET_SERVER) {
35857bded2dbSJung-uk Kim const SSL_CIPHER *cipher;
35867bded2dbSJung-uk Kim if (!s->server)
35877bded2dbSJung-uk Kim return 0;
3588b077aed3SPierre Pronchery cipher = s->s3.tmp.new_cipher;
3589e71b7053SJung-uk Kim if (cipher == NULL)
35907bded2dbSJung-uk Kim return 0;
35917bded2dbSJung-uk Kim /*
35927bded2dbSJung-uk Kim * No certificate for unauthenticated ciphersuites or using SRP
35937bded2dbSJung-uk Kim * authentication
35947bded2dbSJung-uk Kim */
35957bded2dbSJung-uk Kim if (cipher->algorithm_auth & (SSL_aNULL | SSL_aSRP))
35967bded2dbSJung-uk Kim return 2;
3597b077aed3SPierre Pronchery if (s->s3.tmp.cert == NULL)
35987bded2dbSJung-uk Kim return 0;
3599b077aed3SPierre Pronchery s->cert->key = s->s3.tmp.cert;
36007bded2dbSJung-uk Kim return 1;
36017bded2dbSJung-uk Kim }
36027bded2dbSJung-uk Kim return ssl_cert_set_current(s->cert, larg);
36037bded2dbSJung-uk Kim
3604e71b7053SJung-uk Kim case SSL_CTRL_GET_GROUPS:
36057bded2dbSJung-uk Kim {
3606e71b7053SJung-uk Kim uint16_t *clist;
36077bded2dbSJung-uk Kim size_t clistlen;
3608e71b7053SJung-uk Kim
36097bded2dbSJung-uk Kim if (!s->session)
36107bded2dbSJung-uk Kim return 0;
3611da327cd2SJung-uk Kim clist = s->ext.peer_supportedgroups;
3612da327cd2SJung-uk Kim clistlen = s->ext.peer_supportedgroups_len;
36137bded2dbSJung-uk Kim if (parg) {
36147bded2dbSJung-uk Kim size_t i;
36157bded2dbSJung-uk Kim int *cptr = parg;
3616e71b7053SJung-uk Kim
36177bded2dbSJung-uk Kim for (i = 0; i < clistlen; i++) {
3618b077aed3SPierre Pronchery const TLS_GROUP_INFO *cinf
3619b077aed3SPierre Pronchery = tls1_group_id_lookup(s->ctx, clist[i]);
3620e71b7053SJung-uk Kim
3621e71b7053SJung-uk Kim if (cinf != NULL)
3622b077aed3SPierre Pronchery cptr[i] = tls1_group_id2nid(cinf->group_id, 1);
36237bded2dbSJung-uk Kim else
3624e71b7053SJung-uk Kim cptr[i] = TLSEXT_nid_unknown | clist[i];
36257bded2dbSJung-uk Kim }
36267bded2dbSJung-uk Kim }
36277bded2dbSJung-uk Kim return (int)clistlen;
36287bded2dbSJung-uk Kim }
36297bded2dbSJung-uk Kim
3630e71b7053SJung-uk Kim case SSL_CTRL_SET_GROUPS:
3631e71b7053SJung-uk Kim return tls1_set_groups(&s->ext.supportedgroups,
3632e71b7053SJung-uk Kim &s->ext.supportedgroups_len, parg, larg);
36337bded2dbSJung-uk Kim
3634e71b7053SJung-uk Kim case SSL_CTRL_SET_GROUPS_LIST:
3635b077aed3SPierre Pronchery return tls1_set_groups_list(s->ctx, &s->ext.supportedgroups,
3636e71b7053SJung-uk Kim &s->ext.supportedgroups_len, parg);
36377bded2dbSJung-uk Kim
3638e71b7053SJung-uk Kim case SSL_CTRL_GET_SHARED_GROUP:
3639e71b7053SJung-uk Kim {
3640e71b7053SJung-uk Kim uint16_t id = tls1_shared_group(s, larg);
36417bded2dbSJung-uk Kim
3642b077aed3SPierre Pronchery if (larg != -1)
3643b077aed3SPierre Pronchery return tls1_group_id2nid(id, 1);
3644e71b7053SJung-uk Kim return id;
3645e71b7053SJung-uk Kim }
3646b077aed3SPierre Pronchery case SSL_CTRL_GET_NEGOTIATED_GROUP:
3647b077aed3SPierre Pronchery {
3648b077aed3SPierre Pronchery unsigned int id;
3649b077aed3SPierre Pronchery
3650b077aed3SPierre Pronchery if (SSL_IS_TLS13(s) && s->s3.did_kex)
3651b077aed3SPierre Pronchery id = s->s3.group_id;
3652b077aed3SPierre Pronchery else
3653b077aed3SPierre Pronchery id = s->session->kex_group;
3654b077aed3SPierre Pronchery ret = tls1_group_id2nid(id, 1);
3655b077aed3SPierre Pronchery break;
3656b077aed3SPierre Pronchery }
36577bded2dbSJung-uk Kim case SSL_CTRL_SET_SIGALGS:
36587bded2dbSJung-uk Kim return tls1_set_sigalgs(s->cert, parg, larg, 0);
36597bded2dbSJung-uk Kim
36607bded2dbSJung-uk Kim case SSL_CTRL_SET_SIGALGS_LIST:
36617bded2dbSJung-uk Kim return tls1_set_sigalgs_list(s->cert, parg, 0);
36627bded2dbSJung-uk Kim
36637bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_SIGALGS:
36647bded2dbSJung-uk Kim return tls1_set_sigalgs(s->cert, parg, larg, 1);
36657bded2dbSJung-uk Kim
36667bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_SIGALGS_LIST:
36677bded2dbSJung-uk Kim return tls1_set_sigalgs_list(s->cert, parg, 1);
36687bded2dbSJung-uk Kim
36697bded2dbSJung-uk Kim case SSL_CTRL_GET_CLIENT_CERT_TYPES:
36707bded2dbSJung-uk Kim {
36717bded2dbSJung-uk Kim const unsigned char **pctype = parg;
3672b077aed3SPierre Pronchery if (s->server || !s->s3.tmp.cert_req)
36737bded2dbSJung-uk Kim return 0;
36747bded2dbSJung-uk Kim if (pctype)
3675b077aed3SPierre Pronchery *pctype = s->s3.tmp.ctype;
3676b077aed3SPierre Pronchery return s->s3.tmp.ctype_len;
36777bded2dbSJung-uk Kim }
36787bded2dbSJung-uk Kim
36797bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_CERT_TYPES:
36807bded2dbSJung-uk Kim if (!s->server)
36817bded2dbSJung-uk Kim return 0;
36827bded2dbSJung-uk Kim return ssl3_set_req_cert_type(s->cert, parg, larg);
36837bded2dbSJung-uk Kim
36847bded2dbSJung-uk Kim case SSL_CTRL_BUILD_CERT_CHAIN:
3685e71b7053SJung-uk Kim return ssl_build_cert_chain(s, NULL, larg);
36867bded2dbSJung-uk Kim
36877bded2dbSJung-uk Kim case SSL_CTRL_SET_VERIFY_CERT_STORE:
36887bded2dbSJung-uk Kim return ssl_cert_set_cert_store(s->cert, parg, 0, larg);
36897bded2dbSJung-uk Kim
36907bded2dbSJung-uk Kim case SSL_CTRL_SET_CHAIN_CERT_STORE:
36917bded2dbSJung-uk Kim return ssl_cert_set_cert_store(s->cert, parg, 1, larg);
36927bded2dbSJung-uk Kim
369383eaf7aeSJung-uk Kim case SSL_CTRL_GET_VERIFY_CERT_STORE:
369483eaf7aeSJung-uk Kim return ssl_cert_get_cert_store(s->cert, parg, 0);
369583eaf7aeSJung-uk Kim
369683eaf7aeSJung-uk Kim case SSL_CTRL_GET_CHAIN_CERT_STORE:
369783eaf7aeSJung-uk Kim return ssl_cert_get_cert_store(s->cert, parg, 1);
369883eaf7aeSJung-uk Kim
36997bded2dbSJung-uk Kim case SSL_CTRL_GET_PEER_SIGNATURE_NID:
3700b077aed3SPierre Pronchery if (s->s3.tmp.peer_sigalg == NULL)
3701e71b7053SJung-uk Kim return 0;
3702b077aed3SPierre Pronchery *(int *)parg = s->s3.tmp.peer_sigalg->hash;
37037bded2dbSJung-uk Kim return 1;
37047bded2dbSJung-uk Kim
3705c9cf7b5cSJung-uk Kim case SSL_CTRL_GET_SIGNATURE_NID:
3706b077aed3SPierre Pronchery if (s->s3.tmp.sigalg == NULL)
3707c9cf7b5cSJung-uk Kim return 0;
3708b077aed3SPierre Pronchery *(int *)parg = s->s3.tmp.sigalg->hash;
3709c9cf7b5cSJung-uk Kim return 1;
3710c9cf7b5cSJung-uk Kim
3711c9cf7b5cSJung-uk Kim case SSL_CTRL_GET_PEER_TMP_KEY:
3712b077aed3SPierre Pronchery if (s->session == NULL || s->s3.peer_tmp == NULL) {
37137bded2dbSJung-uk Kim return 0;
3714e71b7053SJung-uk Kim } else {
3715b077aed3SPierre Pronchery EVP_PKEY_up_ref(s->s3.peer_tmp);
3716b077aed3SPierre Pronchery *(EVP_PKEY **)parg = s->s3.peer_tmp;
37177bded2dbSJung-uk Kim return 1;
37187bded2dbSJung-uk Kim }
3719c9cf7b5cSJung-uk Kim
3720c9cf7b5cSJung-uk Kim case SSL_CTRL_GET_TMP_KEY:
3721b077aed3SPierre Pronchery if (s->session == NULL || s->s3.tmp.pkey == NULL) {
3722c9cf7b5cSJung-uk Kim return 0;
3723c9cf7b5cSJung-uk Kim } else {
3724b077aed3SPierre Pronchery EVP_PKEY_up_ref(s->s3.tmp.pkey);
3725b077aed3SPierre Pronchery *(EVP_PKEY **)parg = s->s3.tmp.pkey;
3726c9cf7b5cSJung-uk Kim return 1;
3727c9cf7b5cSJung-uk Kim }
3728c9cf7b5cSJung-uk Kim
37297bded2dbSJung-uk Kim case SSL_CTRL_GET_EC_POINT_FORMATS:
37307bded2dbSJung-uk Kim {
37317bded2dbSJung-uk Kim const unsigned char **pformat = parg;
37327bded2dbSJung-uk Kim
3733da327cd2SJung-uk Kim if (s->ext.peer_ecpointformats == NULL)
3734e71b7053SJung-uk Kim return 0;
3735da327cd2SJung-uk Kim *pformat = s->ext.peer_ecpointformats;
3736da327cd2SJung-uk Kim return (int)s->ext.peer_ecpointformats_len;
3737fa5fddf1SJung-uk Kim }
3738fa5fddf1SJung-uk Kim
3739f579bf8eSKris Kennaway default:
3740f579bf8eSKris Kennaway break;
3741f579bf8eSKris Kennaway }
3742e71b7053SJung-uk Kim return ret;
3743f579bf8eSKris Kennaway }
3744f579bf8eSKris Kennaway
ssl3_callback_ctrl(SSL * s,int cmd,void (* fp)(void))37453b4e3dcbSSimon L. B. Nielsen long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
3746f579bf8eSKris Kennaway {
3747f579bf8eSKris Kennaway int ret = 0;
3748f579bf8eSKris Kennaway
37496f9291ceSJung-uk Kim switch (cmd) {
3750b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
3751f579bf8eSKris Kennaway case SSL_CTRL_SET_TMP_DH_CB:
3752f579bf8eSKris Kennaway s->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp;
3753b077aed3SPierre Pronchery ret = 1;
375474664626SKris Kennaway break;
375574664626SKris Kennaway #endif
3756e71b7053SJung-uk Kim case SSL_CTRL_SET_TLSEXT_DEBUG_CB:
3757e71b7053SJung-uk Kim s->ext.debug_cb = (void (*)(SSL *, int, int,
3758e71b7053SJung-uk Kim const unsigned char *, int, void *))fp;
3759b077aed3SPierre Pronchery ret = 1;
3760e71b7053SJung-uk Kim break;
3761e71b7053SJung-uk Kim
3762e71b7053SJung-uk Kim case SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB:
3763e71b7053SJung-uk Kim s->not_resumable_session_cb = (int (*)(SSL *, int))fp;
3764b077aed3SPierre Pronchery ret = 1;
37653b4e3dcbSSimon L. B. Nielsen break;
376674664626SKris Kennaway default:
376774664626SKris Kennaway break;
376874664626SKris Kennaway }
3769e71b7053SJung-uk Kim return ret;
377074664626SKris Kennaway }
377174664626SKris Kennaway
ssl3_ctx_ctrl(SSL_CTX * ctx,int cmd,long larg,void * parg)37725c87c606SMark Murray long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
377374664626SKris Kennaway {
37746f9291ceSJung-uk Kim switch (cmd) {
3775b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
377674664626SKris Kennaway case SSL_CTRL_SET_TMP_DH:
377774664626SKris Kennaway {
3778e71b7053SJung-uk Kim EVP_PKEY *pkdh = NULL;
3779b077aed3SPierre Pronchery if (parg == NULL) {
3780b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_PASSED_NULL_PARAMETER);
3781f579bf8eSKris Kennaway return 0;
378274664626SKris Kennaway }
3783b077aed3SPierre Pronchery pkdh = ssl_dh_to_pkey(parg);
3784e71b7053SJung-uk Kim if (pkdh == NULL) {
3785b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
3786e71b7053SJung-uk Kim return 0;
3787e71b7053SJung-uk Kim }
3788b077aed3SPierre Pronchery if (!SSL_CTX_set0_tmp_dh_pkey(ctx, pkdh)) {
3789e71b7053SJung-uk Kim EVP_PKEY_free(pkdh);
37906935a639SJung-uk Kim return 0;
379174664626SKris Kennaway }
3792e71b7053SJung-uk Kim return 1;
3793e71b7053SJung-uk Kim }
379474664626SKris Kennaway case SSL_CTRL_SET_TMP_DH_CB:
3795f579bf8eSKris Kennaway {
3796b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
3797e71b7053SJung-uk Kim return 0;
3798f579bf8eSKris Kennaway }
3799b077aed3SPierre Pronchery #endif
3800e71b7053SJung-uk Kim case SSL_CTRL_SET_DH_AUTO:
3801e71b7053SJung-uk Kim ctx->cert->dh_tmp_auto = larg;
3802e71b7053SJung-uk Kim return 1;
3803b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
38043b4e3dcbSSimon L. B. Nielsen case SSL_CTRL_SET_TMP_ECDH:
38053b4e3dcbSSimon L. B. Nielsen {
38066f9291ceSJung-uk Kim if (parg == NULL) {
3807b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_PASSED_NULL_PARAMETER);
38083b4e3dcbSSimon L. B. Nielsen return 0;
38093b4e3dcbSSimon L. B. Nielsen }
3810b077aed3SPierre Pronchery return ssl_set_tmp_ecdh_groups(&ctx->ext.supportedgroups,
3811e71b7053SJung-uk Kim &ctx->ext.supportedgroups_len,
3812b077aed3SPierre Pronchery parg);
38133b4e3dcbSSimon L. B. Nielsen }
3814b077aed3SPierre Pronchery #endif /* !OPENSSL_NO_DEPRECATED_3_0 */
3815db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG:
3816e71b7053SJung-uk Kim ctx->ext.servername_arg = parg;
3817db522d3aSSimon L. B. Nielsen break;
3818db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_TICKET_KEYS:
3819db522d3aSSimon L. B. Nielsen case SSL_CTRL_GET_TLSEXT_TICKET_KEYS:
3820db522d3aSSimon L. B. Nielsen {
3821db522d3aSSimon L. B. Nielsen unsigned char *keys = parg;
3822e71b7053SJung-uk Kim long tick_keylen = (sizeof(ctx->ext.tick_key_name) +
3823e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_hmac_key) +
3824e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_aes_key));
3825e71b7053SJung-uk Kim if (keys == NULL)
3826e71b7053SJung-uk Kim return tick_keylen;
3827e71b7053SJung-uk Kim if (larg != tick_keylen) {
3828b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH);
3829db522d3aSSimon L. B. Nielsen return 0;
3830db522d3aSSimon L. B. Nielsen }
38316f9291ceSJung-uk Kim if (cmd == SSL_CTRL_SET_TLSEXT_TICKET_KEYS) {
3832e71b7053SJung-uk Kim memcpy(ctx->ext.tick_key_name, keys,
3833e71b7053SJung-uk Kim sizeof(ctx->ext.tick_key_name));
3834e71b7053SJung-uk Kim memcpy(ctx->ext.secure->tick_hmac_key,
3835e71b7053SJung-uk Kim keys + sizeof(ctx->ext.tick_key_name),
3836e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_hmac_key));
3837e71b7053SJung-uk Kim memcpy(ctx->ext.secure->tick_aes_key,
3838e71b7053SJung-uk Kim keys + sizeof(ctx->ext.tick_key_name) +
3839e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_hmac_key),
3840e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_aes_key));
38416f9291ceSJung-uk Kim } else {
3842e71b7053SJung-uk Kim memcpy(keys, ctx->ext.tick_key_name,
3843e71b7053SJung-uk Kim sizeof(ctx->ext.tick_key_name));
3844e71b7053SJung-uk Kim memcpy(keys + sizeof(ctx->ext.tick_key_name),
3845e71b7053SJung-uk Kim ctx->ext.secure->tick_hmac_key,
3846e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_hmac_key));
3847e71b7053SJung-uk Kim memcpy(keys + sizeof(ctx->ext.tick_key_name) +
3848e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_hmac_key),
3849e71b7053SJung-uk Kim ctx->ext.secure->tick_aes_key,
3850e71b7053SJung-uk Kim sizeof(ctx->ext.secure->tick_aes_key));
3851db522d3aSSimon L. B. Nielsen }
3852db522d3aSSimon L. B. Nielsen return 1;
3853db522d3aSSimon L. B. Nielsen }
3854db522d3aSSimon L. B. Nielsen
3855e71b7053SJung-uk Kim case SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE:
3856e71b7053SJung-uk Kim return ctx->ext.status_type;
3857e71b7053SJung-uk Kim
3858e71b7053SJung-uk Kim case SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE:
3859e71b7053SJung-uk Kim ctx->ext.status_type = larg;
3860e71b7053SJung-uk Kim break;
38611f13597dSJung-uk Kim
3862db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG:
3863e71b7053SJung-uk Kim ctx->ext.status_arg = parg;
3864db522d3aSSimon L. B. Nielsen return 1;
3865e71b7053SJung-uk Kim
3866e71b7053SJung-uk Kim case SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG:
3867e71b7053SJung-uk Kim *(void**)parg = ctx->ext.status_arg;
3868e71b7053SJung-uk Kim break;
3869e71b7053SJung-uk Kim
3870e71b7053SJung-uk Kim case SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB:
3871e71b7053SJung-uk Kim *(int (**)(SSL*, void*))parg = ctx->ext.status_cb;
3872db522d3aSSimon L. B. Nielsen break;
3873db522d3aSSimon L. B. Nielsen
38741f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
38751f13597dSJung-uk Kim case SSL_CTRL_SET_TLS_EXT_SRP_USERNAME:
38761f13597dSJung-uk Kim ctx->srp_ctx.srp_Mask |= SSL_kSRP;
38771f13597dSJung-uk Kim OPENSSL_free(ctx->srp_ctx.login);
38781f13597dSJung-uk Kim ctx->srp_ctx.login = NULL;
38791f13597dSJung-uk Kim if (parg == NULL)
38801f13597dSJung-uk Kim break;
3881e71b7053SJung-uk Kim if (strlen((const char *)parg) > 255 || strlen((const char *)parg) < 1) {
3882b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME);
38831f13597dSJung-uk Kim return 0;
38841f13597dSJung-uk Kim }
3885e71b7053SJung-uk Kim if ((ctx->srp_ctx.login = OPENSSL_strdup((char *)parg)) == NULL) {
3886b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR);
38871f13597dSJung-uk Kim return 0;
38881f13597dSJung-uk Kim }
38891f13597dSJung-uk Kim break;
38901f13597dSJung-uk Kim case SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD:
38916f9291ceSJung-uk Kim ctx->srp_ctx.SRP_give_srp_client_pwd_callback =
38926f9291ceSJung-uk Kim srp_password_from_info_cb;
3893e71b7053SJung-uk Kim if (ctx->srp_ctx.info != NULL)
3894e71b7053SJung-uk Kim OPENSSL_free(ctx->srp_ctx.info);
3895b077aed3SPierre Pronchery if ((ctx->srp_ctx.info = OPENSSL_strdup((char *)parg)) == NULL) {
3896b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR);
3897e71b7053SJung-uk Kim return 0;
3898e71b7053SJung-uk Kim }
38991f13597dSJung-uk Kim break;
39001f13597dSJung-uk Kim case SSL_CTRL_SET_SRP_ARG:
39011f13597dSJung-uk Kim ctx->srp_ctx.srp_Mask |= SSL_kSRP;
39021f13597dSJung-uk Kim ctx->srp_ctx.SRP_cb_arg = parg;
39031f13597dSJung-uk Kim break;
39041f13597dSJung-uk Kim
39051f13597dSJung-uk Kim case SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH:
39061f13597dSJung-uk Kim ctx->srp_ctx.strength = larg;
39071f13597dSJung-uk Kim break;
39081f13597dSJung-uk Kim #endif
39097bded2dbSJung-uk Kim
3910e71b7053SJung-uk Kim case SSL_CTRL_SET_GROUPS:
3911e71b7053SJung-uk Kim return tls1_set_groups(&ctx->ext.supportedgroups,
3912e71b7053SJung-uk Kim &ctx->ext.supportedgroups_len,
39137bded2dbSJung-uk Kim parg, larg);
39147bded2dbSJung-uk Kim
3915e71b7053SJung-uk Kim case SSL_CTRL_SET_GROUPS_LIST:
3916b077aed3SPierre Pronchery return tls1_set_groups_list(ctx, &ctx->ext.supportedgroups,
3917e71b7053SJung-uk Kim &ctx->ext.supportedgroups_len,
39187bded2dbSJung-uk Kim parg);
3919b077aed3SPierre Pronchery
39207bded2dbSJung-uk Kim case SSL_CTRL_SET_SIGALGS:
39217bded2dbSJung-uk Kim return tls1_set_sigalgs(ctx->cert, parg, larg, 0);
39227bded2dbSJung-uk Kim
39237bded2dbSJung-uk Kim case SSL_CTRL_SET_SIGALGS_LIST:
39247bded2dbSJung-uk Kim return tls1_set_sigalgs_list(ctx->cert, parg, 0);
39257bded2dbSJung-uk Kim
39267bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_SIGALGS:
39277bded2dbSJung-uk Kim return tls1_set_sigalgs(ctx->cert, parg, larg, 1);
39287bded2dbSJung-uk Kim
39297bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_SIGALGS_LIST:
39307bded2dbSJung-uk Kim return tls1_set_sigalgs_list(ctx->cert, parg, 1);
39317bded2dbSJung-uk Kim
39327bded2dbSJung-uk Kim case SSL_CTRL_SET_CLIENT_CERT_TYPES:
39337bded2dbSJung-uk Kim return ssl3_set_req_cert_type(ctx->cert, parg, larg);
39347bded2dbSJung-uk Kim
39357bded2dbSJung-uk Kim case SSL_CTRL_BUILD_CERT_CHAIN:
3936e71b7053SJung-uk Kim return ssl_build_cert_chain(NULL, ctx, larg);
39377bded2dbSJung-uk Kim
39387bded2dbSJung-uk Kim case SSL_CTRL_SET_VERIFY_CERT_STORE:
39397bded2dbSJung-uk Kim return ssl_cert_set_cert_store(ctx->cert, parg, 0, larg);
39407bded2dbSJung-uk Kim
39417bded2dbSJung-uk Kim case SSL_CTRL_SET_CHAIN_CERT_STORE:
39427bded2dbSJung-uk Kim return ssl_cert_set_cert_store(ctx->cert, parg, 1, larg);
39437bded2dbSJung-uk Kim
394483eaf7aeSJung-uk Kim case SSL_CTRL_GET_VERIFY_CERT_STORE:
394583eaf7aeSJung-uk Kim return ssl_cert_get_cert_store(ctx->cert, parg, 0);
394683eaf7aeSJung-uk Kim
394783eaf7aeSJung-uk Kim case SSL_CTRL_GET_CHAIN_CERT_STORE:
394883eaf7aeSJung-uk Kim return ssl_cert_get_cert_store(ctx->cert, parg, 1);
394983eaf7aeSJung-uk Kim
395074664626SKris Kennaway /* A Thawte special :-) */
395174664626SKris Kennaway case SSL_CTRL_EXTRA_CHAIN_CERT:
39526f9291ceSJung-uk Kim if (ctx->extra_certs == NULL) {
3953e71b7053SJung-uk Kim if ((ctx->extra_certs = sk_X509_new_null()) == NULL) {
3954b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
3955e71b7053SJung-uk Kim return 0;
395674664626SKris Kennaway }
3957e71b7053SJung-uk Kim }
3958e71b7053SJung-uk Kim if (!sk_X509_push(ctx->extra_certs, (X509 *)parg)) {
3959b077aed3SPierre Pronchery ERR_raise(ERR_LIB_SSL, ERR_R_MALLOC_FAILURE);
3960e71b7053SJung-uk Kim return 0;
3961e71b7053SJung-uk Kim }
396274664626SKris Kennaway break;
396374664626SKris Kennaway
39641f13597dSJung-uk Kim case SSL_CTRL_GET_EXTRA_CHAIN_CERTS:
39657bded2dbSJung-uk Kim if (ctx->extra_certs == NULL && larg == 0)
39667bded2dbSJung-uk Kim *(STACK_OF(X509) **)parg = ctx->cert->key->chain;
39677bded2dbSJung-uk Kim else
39681f13597dSJung-uk Kim *(STACK_OF(X509) **)parg = ctx->extra_certs;
39691f13597dSJung-uk Kim break;
39701f13597dSJung-uk Kim
39711f13597dSJung-uk Kim case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS:
39721f13597dSJung-uk Kim sk_X509_pop_free(ctx->extra_certs, X509_free);
39731f13597dSJung-uk Kim ctx->extra_certs = NULL;
39741f13597dSJung-uk Kim break;
39751f13597dSJung-uk Kim
39767bded2dbSJung-uk Kim case SSL_CTRL_CHAIN:
39777bded2dbSJung-uk Kim if (larg)
3978e71b7053SJung-uk Kim return ssl_cert_set1_chain(NULL, ctx, (STACK_OF(X509) *)parg);
39797bded2dbSJung-uk Kim else
3980e71b7053SJung-uk Kim return ssl_cert_set0_chain(NULL, ctx, (STACK_OF(X509) *)parg);
39817bded2dbSJung-uk Kim
39827bded2dbSJung-uk Kim case SSL_CTRL_CHAIN_CERT:
39837bded2dbSJung-uk Kim if (larg)
3984e71b7053SJung-uk Kim return ssl_cert_add1_chain_cert(NULL, ctx, (X509 *)parg);
39857bded2dbSJung-uk Kim else
3986e71b7053SJung-uk Kim return ssl_cert_add0_chain_cert(NULL, ctx, (X509 *)parg);
39877bded2dbSJung-uk Kim
39887bded2dbSJung-uk Kim case SSL_CTRL_GET_CHAIN_CERTS:
39897bded2dbSJung-uk Kim *(STACK_OF(X509) **)parg = ctx->cert->key->chain;
39907bded2dbSJung-uk Kim break;
39917bded2dbSJung-uk Kim
39927bded2dbSJung-uk Kim case SSL_CTRL_SELECT_CURRENT_CERT:
39937bded2dbSJung-uk Kim return ssl_cert_select_current(ctx->cert, (X509 *)parg);
39947bded2dbSJung-uk Kim
39957bded2dbSJung-uk Kim case SSL_CTRL_SET_CURRENT_CERT:
39967bded2dbSJung-uk Kim return ssl_cert_set_current(ctx->cert, larg);
39977bded2dbSJung-uk Kim
399874664626SKris Kennaway default:
3999e71b7053SJung-uk Kim return 0;
400074664626SKris Kennaway }
4001e71b7053SJung-uk Kim return 1;
400274664626SKris Kennaway }
400374664626SKris Kennaway
ssl3_ctx_callback_ctrl(SSL_CTX * ctx,int cmd,void (* fp)(void))40043b4e3dcbSSimon L. B. Nielsen long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
4005f579bf8eSKris Kennaway {
40066f9291ceSJung-uk Kim switch (cmd) {
4007b077aed3SPierre Pronchery #if !defined(OPENSSL_NO_DEPRECATED_3_0)
4008f579bf8eSKris Kennaway case SSL_CTRL_SET_TMP_DH_CB:
4009f579bf8eSKris Kennaway {
4010e71b7053SJung-uk Kim ctx->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp;
4011f579bf8eSKris Kennaway }
4012f579bf8eSKris Kennaway break;
4013f579bf8eSKris Kennaway #endif
4014db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB:
4015e71b7053SJung-uk Kim ctx->ext.servername_cb = (int (*)(SSL *, int *, void *))fp;
4016db522d3aSSimon L. B. Nielsen break;
4017db522d3aSSimon L. B. Nielsen
4018db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB:
4019e71b7053SJung-uk Kim ctx->ext.status_cb = (int (*)(SSL *, void *))fp;
4020db522d3aSSimon L. B. Nielsen break;
4021db522d3aSSimon L. B. Nielsen
4022b077aed3SPierre Pronchery # ifndef OPENSSL_NO_DEPRECATED_3_0
4023db522d3aSSimon L. B. Nielsen case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB:
4024e71b7053SJung-uk Kim ctx->ext.ticket_key_cb = (int (*)(SSL *, unsigned char *,
4025db522d3aSSimon L. B. Nielsen unsigned char *,
4026db522d3aSSimon L. B. Nielsen EVP_CIPHER_CTX *,
4027db522d3aSSimon L. B. Nielsen HMAC_CTX *, int))fp;
4028db522d3aSSimon L. B. Nielsen break;
4029b077aed3SPierre Pronchery #endif
4030db522d3aSSimon L. B. Nielsen
40311f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
40321f13597dSJung-uk Kim case SSL_CTRL_SET_SRP_VERIFY_PARAM_CB:
40331f13597dSJung-uk Kim ctx->srp_ctx.srp_Mask |= SSL_kSRP;
40341f13597dSJung-uk Kim ctx->srp_ctx.SRP_verify_param_callback = (int (*)(SSL *, void *))fp;
40351f13597dSJung-uk Kim break;
40361f13597dSJung-uk Kim case SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB:
40371f13597dSJung-uk Kim ctx->srp_ctx.srp_Mask |= SSL_kSRP;
40386f9291ceSJung-uk Kim ctx->srp_ctx.TLS_ext_srp_username_callback =
40396f9291ceSJung-uk Kim (int (*)(SSL *, int *, void *))fp;
40401f13597dSJung-uk Kim break;
40411f13597dSJung-uk Kim case SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB:
40421f13597dSJung-uk Kim ctx->srp_ctx.srp_Mask |= SSL_kSRP;
40436f9291ceSJung-uk Kim ctx->srp_ctx.SRP_give_srp_client_pwd_callback =
40446f9291ceSJung-uk Kim (char *(*)(SSL *, void *))fp;
40451f13597dSJung-uk Kim break;
40461f13597dSJung-uk Kim #endif
4047e71b7053SJung-uk Kim case SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB:
4048e71b7053SJung-uk Kim {
4049e71b7053SJung-uk Kim ctx->not_resumable_session_cb = (int (*)(SSL *, int))fp;
4050f579bf8eSKris Kennaway }
4051e71b7053SJung-uk Kim break;
4052e71b7053SJung-uk Kim default:
4053e71b7053SJung-uk Kim return 0;
4054e71b7053SJung-uk Kim }
4055e71b7053SJung-uk Kim return 1;
4056e71b7053SJung-uk Kim }
4057e71b7053SJung-uk Kim
SSL_CTX_set_tlsext_ticket_key_evp_cb(SSL_CTX * ctx,int (* fp)(SSL *,unsigned char *,unsigned char *,EVP_CIPHER_CTX *,EVP_MAC_CTX *,int))4058b077aed3SPierre Pronchery int SSL_CTX_set_tlsext_ticket_key_evp_cb
4059b077aed3SPierre Pronchery (SSL_CTX *ctx, int (*fp)(SSL *, unsigned char *, unsigned char *,
4060b077aed3SPierre Pronchery EVP_CIPHER_CTX *, EVP_MAC_CTX *, int))
4061b077aed3SPierre Pronchery {
4062b077aed3SPierre Pronchery ctx->ext.ticket_key_evp_cb = fp;
4063b077aed3SPierre Pronchery return 1;
4064b077aed3SPierre Pronchery }
4065b077aed3SPierre Pronchery
ssl3_get_cipher_by_id(uint32_t id)4066e71b7053SJung-uk Kim const SSL_CIPHER *ssl3_get_cipher_by_id(uint32_t id)
4067e71b7053SJung-uk Kim {
4068e71b7053SJung-uk Kim SSL_CIPHER c;
4069e71b7053SJung-uk Kim const SSL_CIPHER *cp;
4070e71b7053SJung-uk Kim
4071e71b7053SJung-uk Kim c.id = id;
4072e71b7053SJung-uk Kim cp = OBJ_bsearch_ssl_cipher_id(&c, tls13_ciphers, TLS13_NUM_CIPHERS);
4073e71b7053SJung-uk Kim if (cp != NULL)
4074e71b7053SJung-uk Kim return cp;
4075e71b7053SJung-uk Kim cp = OBJ_bsearch_ssl_cipher_id(&c, ssl3_ciphers, SSL3_NUM_CIPHERS);
4076e71b7053SJung-uk Kim if (cp != NULL)
4077e71b7053SJung-uk Kim return cp;
4078e71b7053SJung-uk Kim return OBJ_bsearch_ssl_cipher_id(&c, ssl3_scsvs, SSL3_NUM_SCSVS);
4079e71b7053SJung-uk Kim }
4080e71b7053SJung-uk Kim
ssl3_get_cipher_by_std_name(const char * stdname)4081e71b7053SJung-uk Kim const SSL_CIPHER *ssl3_get_cipher_by_std_name(const char *stdname)
4082e71b7053SJung-uk Kim {
4083c3c73b4fSJung-uk Kim SSL_CIPHER *tbl;
4084c3c73b4fSJung-uk Kim SSL_CIPHER *alltabs[] = {tls13_ciphers, ssl3_ciphers, ssl3_scsvs};
4085c3c73b4fSJung-uk Kim size_t i, j, tblsize[] = {TLS13_NUM_CIPHERS, SSL3_NUM_CIPHERS,
4086c3c73b4fSJung-uk Kim SSL3_NUM_SCSVS};
4087e71b7053SJung-uk Kim
4088e71b7053SJung-uk Kim /* this is not efficient, necessary to optimize this? */
4089e71b7053SJung-uk Kim for (j = 0; j < OSSL_NELEM(alltabs); j++) {
4090e71b7053SJung-uk Kim for (i = 0, tbl = alltabs[j]; i < tblsize[j]; i++, tbl++) {
4091e71b7053SJung-uk Kim if (tbl->stdname == NULL)
4092e71b7053SJung-uk Kim continue;
4093e71b7053SJung-uk Kim if (strcmp(stdname, tbl->stdname) == 0) {
4094c3c73b4fSJung-uk Kim return tbl;
4095e71b7053SJung-uk Kim }
4096e71b7053SJung-uk Kim }
4097e71b7053SJung-uk Kim }
4098c3c73b4fSJung-uk Kim return NULL;
4099f579bf8eSKris Kennaway }
4100f579bf8eSKris Kennaway
41016f9291ceSJung-uk Kim /*
41026f9291ceSJung-uk Kim * This function needs to check if the ciphers required are actually
41036f9291ceSJung-uk Kim * available
41046f9291ceSJung-uk Kim */
ssl3_get_cipher_by_char(const unsigned char * p)41051f13597dSJung-uk Kim const SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p)
410674664626SKris Kennaway {
4107e71b7053SJung-uk Kim return ssl3_get_cipher_by_id(SSL3_CK_CIPHERSUITE_FLAG
4108e71b7053SJung-uk Kim | ((uint32_t)p[0] << 8L)
4109e71b7053SJung-uk Kim | (uint32_t)p[1]);
411074664626SKris Kennaway }
411174664626SKris Kennaway
ssl3_put_cipher_by_char(const SSL_CIPHER * c,WPACKET * pkt,size_t * len)4112e71b7053SJung-uk Kim int ssl3_put_cipher_by_char(const SSL_CIPHER *c, WPACKET *pkt, size_t *len)
411374664626SKris Kennaway {
4114e71b7053SJung-uk Kim if ((c->id & 0xff000000) != SSL3_CK_CIPHERSUITE_FLAG) {
4115e71b7053SJung-uk Kim *len = 0;
4116e71b7053SJung-uk Kim return 1;
411774664626SKris Kennaway }
411874664626SKris Kennaway
4119e71b7053SJung-uk Kim if (!WPACKET_put_bytes_u16(pkt, c->id & 0xffff))
4120e71b7053SJung-uk Kim return 0;
4121e71b7053SJung-uk Kim
4122e71b7053SJung-uk Kim *len = 2;
4123e71b7053SJung-uk Kim return 1;
4124e71b7053SJung-uk Kim }
4125e71b7053SJung-uk Kim
4126e71b7053SJung-uk Kim /*
4127e71b7053SJung-uk Kim * ssl3_choose_cipher - choose a cipher from those offered by the client
4128e71b7053SJung-uk Kim * @s: SSL connection
4129e71b7053SJung-uk Kim * @clnt: ciphers offered by the client
4130e71b7053SJung-uk Kim * @srvr: ciphers enabled on the server?
4131e71b7053SJung-uk Kim *
4132e71b7053SJung-uk Kim * Returns the selected cipher or NULL when no common ciphers.
4133e71b7053SJung-uk Kim */
ssl3_choose_cipher(SSL * s,STACK_OF (SSL_CIPHER)* clnt,STACK_OF (SSL_CIPHER)* srvr)4134e71b7053SJung-uk Kim const SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
41355c87c606SMark Murray STACK_OF(SSL_CIPHER) *srvr)
413674664626SKris Kennaway {
4137e71b7053SJung-uk Kim const SSL_CIPHER *c, *ret = NULL;
41385c87c606SMark Murray STACK_OF(SSL_CIPHER) *prio, *allow;
4139e71b7053SJung-uk Kim int i, ii, ok, prefer_sha256 = 0;
4140e71b7053SJung-uk Kim unsigned long alg_k = 0, alg_a = 0, mask_k = 0, mask_a = 0;
4141e71b7053SJung-uk Kim STACK_OF(SSL_CIPHER) *prio_chacha = NULL;
414274664626SKris Kennaway
414374664626SKris Kennaway /* Let's see which ciphers we can support */
414474664626SKris Kennaway
41456f9291ceSJung-uk Kim /*
41466f9291ceSJung-uk Kim * Do not set the compare functions, because this may lead to a
41476f9291ceSJung-uk Kim * reordering by "id". We want to keep the original ordering. We may pay
41486f9291ceSJung-uk Kim * a price in performance during sk_SSL_CIPHER_find(), but would have to
41496f9291ceSJung-uk Kim * pay with the price of sk_SSL_CIPHER_dup().
41505c87c606SMark Murray */
415174664626SKris Kennaway
4152b077aed3SPierre Pronchery OSSL_TRACE_BEGIN(TLS_CIPHER) {
4153b077aed3SPierre Pronchery BIO_printf(trc_out, "Server has %d from %p:\n",
4154b077aed3SPierre Pronchery sk_SSL_CIPHER_num(srvr), (void *)srvr);
41556f9291ceSJung-uk Kim for (i = 0; i < sk_SSL_CIPHER_num(srvr); ++i) {
41565c87c606SMark Murray c = sk_SSL_CIPHER_value(srvr, i);
4157b077aed3SPierre Pronchery BIO_printf(trc_out, "%p:%s\n", (void *)c, c->name);
41585c87c606SMark Murray }
4159b077aed3SPierre Pronchery BIO_printf(trc_out, "Client sent %d from %p:\n",
4160b077aed3SPierre Pronchery sk_SSL_CIPHER_num(clnt), (void *)clnt);
41616f9291ceSJung-uk Kim for (i = 0; i < sk_SSL_CIPHER_num(clnt); ++i) {
41625c87c606SMark Murray c = sk_SSL_CIPHER_value(clnt, i);
4163b077aed3SPierre Pronchery BIO_printf(trc_out, "%p:%s\n", (void *)c, c->name);
416474664626SKris Kennaway }
4165b077aed3SPierre Pronchery } OSSL_TRACE_END(TLS_CIPHER);
416674664626SKris Kennaway
4167e71b7053SJung-uk Kim /* SUITE-B takes precedence over server preference and ChaCha priortiy */
4168e71b7053SJung-uk Kim if (tls1_suiteb(s)) {
41695c87c606SMark Murray prio = srvr;
41705c87c606SMark Murray allow = clnt;
4171e71b7053SJung-uk Kim } else if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) {
4172e71b7053SJung-uk Kim prio = srvr;
4173e71b7053SJung-uk Kim allow = clnt;
4174b077aed3SPierre Pronchery
4175e71b7053SJung-uk Kim /* If ChaCha20 is at the top of the client preference list,
4176e71b7053SJung-uk Kim and there are ChaCha20 ciphers in the server list, then
4177e71b7053SJung-uk Kim temporarily prioritize all ChaCha20 ciphers in the servers list. */
4178e71b7053SJung-uk Kim if (s->options & SSL_OP_PRIORITIZE_CHACHA && sk_SSL_CIPHER_num(clnt) > 0) {
4179e71b7053SJung-uk Kim c = sk_SSL_CIPHER_value(clnt, 0);
4180e71b7053SJung-uk Kim if (c->algorithm_enc == SSL_CHACHA20POLY1305) {
4181e71b7053SJung-uk Kim /* ChaCha20 is client preferred, check server... */
4182e71b7053SJung-uk Kim int num = sk_SSL_CIPHER_num(srvr);
4183e71b7053SJung-uk Kim int found = 0;
4184e71b7053SJung-uk Kim for (i = 0; i < num; i++) {
4185e71b7053SJung-uk Kim c = sk_SSL_CIPHER_value(srvr, i);
4186e71b7053SJung-uk Kim if (c->algorithm_enc == SSL_CHACHA20POLY1305) {
4187e71b7053SJung-uk Kim found = 1;
4188e71b7053SJung-uk Kim break;
4189e71b7053SJung-uk Kim }
4190e71b7053SJung-uk Kim }
4191e71b7053SJung-uk Kim if (found) {
4192e71b7053SJung-uk Kim prio_chacha = sk_SSL_CIPHER_new_reserve(NULL, num);
4193e71b7053SJung-uk Kim /* if reserve fails, then there's likely a memory issue */
4194e71b7053SJung-uk Kim if (prio_chacha != NULL) {
4195e71b7053SJung-uk Kim /* Put all ChaCha20 at the top, starting with the one we just found */
4196e71b7053SJung-uk Kim sk_SSL_CIPHER_push(prio_chacha, c);
4197e71b7053SJung-uk Kim for (i++; i < num; i++) {
4198e71b7053SJung-uk Kim c = sk_SSL_CIPHER_value(srvr, i);
4199e71b7053SJung-uk Kim if (c->algorithm_enc == SSL_CHACHA20POLY1305)
4200e71b7053SJung-uk Kim sk_SSL_CIPHER_push(prio_chacha, c);
4201e71b7053SJung-uk Kim }
4202e71b7053SJung-uk Kim /* Pull in the rest */
4203e71b7053SJung-uk Kim for (i = 0; i < num; i++) {
4204e71b7053SJung-uk Kim c = sk_SSL_CIPHER_value(srvr, i);
4205e71b7053SJung-uk Kim if (c->algorithm_enc != SSL_CHACHA20POLY1305)
4206e71b7053SJung-uk Kim sk_SSL_CIPHER_push(prio_chacha, c);
4207e71b7053SJung-uk Kim }
4208e71b7053SJung-uk Kim prio = prio_chacha;
4209e71b7053SJung-uk Kim }
4210e71b7053SJung-uk Kim }
4211e71b7053SJung-uk Kim }
4212e71b7053SJung-uk Kim }
42136f9291ceSJung-uk Kim } else {
42145c87c606SMark Murray prio = clnt;
42155c87c606SMark Murray allow = srvr;
42165c87c606SMark Murray }
42175c87c606SMark Murray
4218e71b7053SJung-uk Kim if (SSL_IS_TLS13(s)) {
4219e71b7053SJung-uk Kim #ifndef OPENSSL_NO_PSK
4220e71b7053SJung-uk Kim int j;
4221e71b7053SJung-uk Kim
4222e71b7053SJung-uk Kim /*
4223e71b7053SJung-uk Kim * If we allow "old" style PSK callbacks, and we have no certificate (so
4224e71b7053SJung-uk Kim * we're not going to succeed without a PSK anyway), and we're in
4225e71b7053SJung-uk Kim * TLSv1.3 then the default hash for a PSK is SHA-256 (as per the
4226e71b7053SJung-uk Kim * TLSv1.3 spec). Therefore we should prioritise ciphersuites using
4227e71b7053SJung-uk Kim * that.
4228e71b7053SJung-uk Kim */
4229e71b7053SJung-uk Kim if (s->psk_server_callback != NULL) {
4230e71b7053SJung-uk Kim for (j = 0; j < SSL_PKEY_NUM && !ssl_has_cert(s, j); j++);
4231e71b7053SJung-uk Kim if (j == SSL_PKEY_NUM) {
4232e71b7053SJung-uk Kim /* There are no certificates */
4233e71b7053SJung-uk Kim prefer_sha256 = 1;
4234e71b7053SJung-uk Kim }
4235e71b7053SJung-uk Kim }
4236e71b7053SJung-uk Kim #endif
4237e71b7053SJung-uk Kim } else {
42387bded2dbSJung-uk Kim tls1_set_cert_validity(s);
4239e71b7053SJung-uk Kim ssl_set_masks(s);
4240e71b7053SJung-uk Kim }
42417bded2dbSJung-uk Kim
42426f9291ceSJung-uk Kim for (i = 0; i < sk_SSL_CIPHER_num(prio); i++) {
42435c87c606SMark Murray c = sk_SSL_CIPHER_value(prio, i);
424474664626SKris Kennaway
4245e71b7053SJung-uk Kim /* Skip ciphers not supported by the protocol version */
4246e71b7053SJung-uk Kim if (!SSL_IS_DTLS(s) &&
4247e71b7053SJung-uk Kim ((s->version < c->min_tls) || (s->version > c->max_tls)))
4248e71b7053SJung-uk Kim continue;
4249e71b7053SJung-uk Kim if (SSL_IS_DTLS(s) &&
4250e71b7053SJung-uk Kim (DTLS_VERSION_LT(s->version, c->min_dtls) ||
4251e71b7053SJung-uk Kim DTLS_VERSION_GT(s->version, c->max_dtls)))
42521f13597dSJung-uk Kim continue;
42531f13597dSJung-uk Kim
4254e71b7053SJung-uk Kim /*
4255e71b7053SJung-uk Kim * Since TLS 1.3 ciphersuites can be used with any auth or
4256e71b7053SJung-uk Kim * key exchange scheme skip tests.
4257e71b7053SJung-uk Kim */
4258e71b7053SJung-uk Kim if (!SSL_IS_TLS13(s)) {
4259b077aed3SPierre Pronchery mask_k = s->s3.tmp.mask_k;
4260b077aed3SPierre Pronchery mask_a = s->s3.tmp.mask_a;
42611f13597dSJung-uk Kim #ifndef OPENSSL_NO_SRP
42626f9291ceSJung-uk Kim if (s->srp_ctx.srp_Mask & SSL_kSRP) {
4263fa5fddf1SJung-uk Kim mask_k |= SSL_kSRP;
4264fa5fddf1SJung-uk Kim mask_a |= SSL_aSRP;
4265fa5fddf1SJung-uk Kim }
42661f13597dSJung-uk Kim #endif
426774664626SKris Kennaway
42681f13597dSJung-uk Kim alg_k = c->algorithm_mkey;
42691f13597dSJung-uk Kim alg_a = c->algorithm_auth;
42701f13597dSJung-uk Kim
42711f13597dSJung-uk Kim #ifndef OPENSSL_NO_PSK
42721f13597dSJung-uk Kim /* with PSK there must be server callback set */
4273e71b7053SJung-uk Kim if ((alg_k & SSL_PSK) && s->psk_server_callback == NULL)
42741f13597dSJung-uk Kim continue;
42751f13597dSJung-uk Kim #endif /* OPENSSL_NO_PSK */
42761f13597dSJung-uk Kim
42771f13597dSJung-uk Kim ok = (alg_k & mask_k) && (alg_a & mask_a);
4278b077aed3SPierre Pronchery OSSL_TRACE7(TLS_CIPHER,
4279b077aed3SPierre Pronchery "%d:[%08lX:%08lX:%08lX:%08lX]%p:%s\n",
4280b077aed3SPierre Pronchery ok, alg_k, alg_a, mask_k, mask_a, (void *)c, c->name);
428174664626SKris Kennaway
42826f9291ceSJung-uk Kim /*
42837bded2dbSJung-uk Kim * if we are considering an ECC cipher suite that uses an ephemeral
42847bded2dbSJung-uk Kim * EC key check it
42856f9291ceSJung-uk Kim */
4286e71b7053SJung-uk Kim if (alg_k & SSL_kECDHE)
42877bded2dbSJung-uk Kim ok = ok && tls1_check_ec_tmp_key(s, c->id);
42881f13597dSJung-uk Kim
42896f9291ceSJung-uk Kim if (!ok)
42906f9291ceSJung-uk Kim continue;
4291e71b7053SJung-uk Kim }
42921f13597dSJung-uk Kim ii = sk_SSL_CIPHER_find(allow, c);
42936f9291ceSJung-uk Kim if (ii >= 0) {
4294e71b7053SJung-uk Kim /* Check security callback permits this cipher */
4295e71b7053SJung-uk Kim if (!ssl_security(s, SSL_SECOP_CIPHER_SHARED,
4296e71b7053SJung-uk Kim c->strength_bits, 0, (void *)c))
4297e71b7053SJung-uk Kim continue;
4298b077aed3SPierre Pronchery
4299e71b7053SJung-uk Kim if ((alg_k & SSL_kECDHE) && (alg_a & SSL_aECDSA)
4300b077aed3SPierre Pronchery && s->s3.is_probably_safari) {
43016f9291ceSJung-uk Kim if (!ret)
43026f9291ceSJung-uk Kim ret = sk_SSL_CIPHER_value(allow, ii);
4303de78d5d8SJung-uk Kim continue;
4304de78d5d8SJung-uk Kim }
4305b077aed3SPierre Pronchery
4306e71b7053SJung-uk Kim if (prefer_sha256) {
4307e71b7053SJung-uk Kim const SSL_CIPHER *tmp = sk_SSL_CIPHER_value(allow, ii);
4308b077aed3SPierre Pronchery const EVP_MD *md = ssl_md(s->ctx, tmp->algorithm2);
4309e71b7053SJung-uk Kim
4310b077aed3SPierre Pronchery if (md != NULL
4311b077aed3SPierre Pronchery && EVP_MD_is_a(md, OSSL_DIGEST_NAME_SHA2_256)) {
4312e71b7053SJung-uk Kim ret = tmp;
4313e71b7053SJung-uk Kim break;
4314e71b7053SJung-uk Kim }
4315e71b7053SJung-uk Kim if (ret == NULL)
4316e71b7053SJung-uk Kim ret = tmp;
4317e71b7053SJung-uk Kim continue;
4318e71b7053SJung-uk Kim }
43191f13597dSJung-uk Kim ret = sk_SSL_CIPHER_value(allow, ii);
432074664626SKris Kennaway break;
432174664626SKris Kennaway }
432274664626SKris Kennaway }
4323b077aed3SPierre Pronchery
4324e71b7053SJung-uk Kim sk_SSL_CIPHER_free(prio_chacha);
4325b077aed3SPierre Pronchery
4326e71b7053SJung-uk Kim return ret;
432774664626SKris Kennaway }
432874664626SKris Kennaway
ssl3_get_req_cert_type(SSL * s,WPACKET * pkt)4329e71b7053SJung-uk Kim int ssl3_get_req_cert_type(SSL *s, WPACKET *pkt)
433074664626SKris Kennaway {
4331e71b7053SJung-uk Kim uint32_t alg_k, alg_a = 0;
433274664626SKris Kennaway
43337bded2dbSJung-uk Kim /* If we have custom certificate types set, use them */
4334e71b7053SJung-uk Kim if (s->cert->ctype)
4335e71b7053SJung-uk Kim return WPACKET_memcpy(pkt, s->cert->ctype, s->cert->ctype_len);
4336e71b7053SJung-uk Kim /* Get mask of algorithms disabled by signature list */
4337e71b7053SJung-uk Kim ssl_set_sig_mask(&alg_a, s, SSL_SECOP_SIGALG_MASK);
43387bded2dbSJung-uk Kim
4339b077aed3SPierre Pronchery alg_k = s->s3.tmp.new_cipher->algorithm_mkey;
43401f13597dSJung-uk Kim
43411f13597dSJung-uk Kim #ifndef OPENSSL_NO_GOST
4342e71b7053SJung-uk Kim if (s->version >= TLS1_VERSION && (alg_k & SSL_kGOST))
4343b077aed3SPierre Pronchery if (!WPACKET_put_bytes_u8(pkt, TLS_CT_GOST01_SIGN)
4344b077aed3SPierre Pronchery || !WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_SIGN)
4345b077aed3SPierre Pronchery || !WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_512_SIGN)
4346b077aed3SPierre Pronchery || !WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_LEGACY_SIGN)
4347b077aed3SPierre Pronchery || !WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_LEGACY_512_SIGN))
4348b077aed3SPierre Pronchery return 0;
4349b077aed3SPierre Pronchery
4350b077aed3SPierre Pronchery if (s->version >= TLS1_2_VERSION && (alg_k & SSL_kGOST18))
4351b077aed3SPierre Pronchery if (!WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_SIGN)
4352b077aed3SPierre Pronchery || !WPACKET_put_bytes_u8(pkt, TLS_CT_GOST12_IANA_512_SIGN))
4353b077aed3SPierre Pronchery return 0;
43541f13597dSJung-uk Kim #endif
435574664626SKris Kennaway
4356e71b7053SJung-uk Kim if ((s->version == SSL3_VERSION) && (alg_k & SSL_kDHE)) {
4357e71b7053SJung-uk Kim if (!WPACKET_put_bytes_u8(pkt, SSL3_CT_RSA_EPHEMERAL_DH))
4358e71b7053SJung-uk Kim return 0;
4359b077aed3SPierre Pronchery if (!(alg_a & SSL_aDSS)
4360b077aed3SPierre Pronchery && !WPACKET_put_bytes_u8(pkt, SSL3_CT_DSS_EPHEMERAL_DH))
4361e71b7053SJung-uk Kim return 0;
4362e71b7053SJung-uk Kim }
4363e71b7053SJung-uk Kim if (!(alg_a & SSL_aRSA) && !WPACKET_put_bytes_u8(pkt, SSL3_CT_RSA_SIGN))
4364e71b7053SJung-uk Kim return 0;
4365e71b7053SJung-uk Kim if (!(alg_a & SSL_aDSS) && !WPACKET_put_bytes_u8(pkt, SSL3_CT_DSS_SIGN))
4366e71b7053SJung-uk Kim return 0;
4367b077aed3SPierre Pronchery
43686f9291ceSJung-uk Kim /*
4369e71b7053SJung-uk Kim * ECDSA certs can be used with RSA cipher suites too so we don't
4370e71b7053SJung-uk Kim * need to check for SSL_kECDH or SSL_kECDHE
43713b4e3dcbSSimon L. B. Nielsen */
4372e71b7053SJung-uk Kim if (s->version >= TLS1_VERSION
4373e71b7053SJung-uk Kim && !(alg_a & SSL_aECDSA)
4374e71b7053SJung-uk Kim && !WPACKET_put_bytes_u8(pkt, TLS_CT_ECDSA_SIGN))
4375e71b7053SJung-uk Kim return 0;
4376b077aed3SPierre Pronchery
4377e71b7053SJung-uk Kim return 1;
437874664626SKris Kennaway }
437974664626SKris Kennaway
ssl3_set_req_cert_type(CERT * c,const unsigned char * p,size_t len)43807bded2dbSJung-uk Kim static int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t len)
43817bded2dbSJung-uk Kim {
4382e71b7053SJung-uk Kim OPENSSL_free(c->ctype);
4383e71b7053SJung-uk Kim c->ctype = NULL;
4384e71b7053SJung-uk Kim c->ctype_len = 0;
4385e71b7053SJung-uk Kim if (p == NULL || len == 0)
43867bded2dbSJung-uk Kim return 1;
43877bded2dbSJung-uk Kim if (len > 0xff)
43887bded2dbSJung-uk Kim return 0;
4389e71b7053SJung-uk Kim c->ctype = OPENSSL_memdup(p, len);
4390e71b7053SJung-uk Kim if (c->ctype == NULL)
43917bded2dbSJung-uk Kim return 0;
4392e71b7053SJung-uk Kim c->ctype_len = len;
43937bded2dbSJung-uk Kim return 1;
43947bded2dbSJung-uk Kim }
43957bded2dbSJung-uk Kim
ssl3_shutdown(SSL * s)439674664626SKris Kennaway int ssl3_shutdown(SSL *s)
439774664626SKris Kennaway {
43986a599222SSimon L. B. Nielsen int ret;
439974664626SKris Kennaway
44006f9291ceSJung-uk Kim /*
44016f9291ceSJung-uk Kim * Don't do anything much if we have not done the handshake or we don't
44026f9291ceSJung-uk Kim * want to send messages :-)
44036f9291ceSJung-uk Kim */
4404e71b7053SJung-uk Kim if (s->quiet_shutdown || SSL_in_before(s)) {
440574664626SKris Kennaway s->shutdown = (SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);
4406e71b7053SJung-uk Kim return 1;
440774664626SKris Kennaway }
440874664626SKris Kennaway
44096f9291ceSJung-uk Kim if (!(s->shutdown & SSL_SENT_SHUTDOWN)) {
441074664626SKris Kennaway s->shutdown |= SSL_SENT_SHUTDOWN;
441174664626SKris Kennaway ssl3_send_alert(s, SSL3_AL_WARNING, SSL_AD_CLOSE_NOTIFY);
44126f9291ceSJung-uk Kim /*
44136f9291ceSJung-uk Kim * our shutdown alert has been sent now, and if it still needs to be
4414b077aed3SPierre Pronchery * written, s->s3.alert_dispatch will be true
44156f9291ceSJung-uk Kim */
4416b077aed3SPierre Pronchery if (s->s3.alert_dispatch)
4417e71b7053SJung-uk Kim return -1; /* return WANT_WRITE */
4418b077aed3SPierre Pronchery } else if (s->s3.alert_dispatch) {
441974664626SKris Kennaway /* resend it if not sent */
44206a599222SSimon L. B. Nielsen ret = s->method->ssl_dispatch_alert(s);
44216f9291ceSJung-uk Kim if (ret == -1) {
44226f9291ceSJung-uk Kim /*
44236f9291ceSJung-uk Kim * we only get to return -1 here the 2nd/Nth invocation, we must
4424e71b7053SJung-uk Kim * have already signalled return 0 upon a previous invocation,
44256f9291ceSJung-uk Kim * return WANT_WRITE
44266f9291ceSJung-uk Kim */
4427e71b7053SJung-uk Kim return ret;
44286a599222SSimon L. B. Nielsen }
44296f9291ceSJung-uk Kim } else if (!(s->shutdown & SSL_RECEIVED_SHUTDOWN)) {
4430e71b7053SJung-uk Kim size_t readbytes;
44316f9291ceSJung-uk Kim /*
44326f9291ceSJung-uk Kim * If we are waiting for a close from our peer, we are closed
44336f9291ceSJung-uk Kim */
4434e71b7053SJung-uk Kim s->method->ssl_read_bytes(s, 0, NULL, NULL, 0, 0, &readbytes);
44356f9291ceSJung-uk Kim if (!(s->shutdown & SSL_RECEIVED_SHUTDOWN)) {
4436e71b7053SJung-uk Kim return -1; /* return WANT_READ */
44376a599222SSimon L. B. Nielsen }
443874664626SKris Kennaway }
443974664626SKris Kennaway
444074664626SKris Kennaway if ((s->shutdown == (SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN)) &&
4441b077aed3SPierre Pronchery !s->s3.alert_dispatch)
4442e71b7053SJung-uk Kim return 1;
444374664626SKris Kennaway else
4444e71b7053SJung-uk Kim return 0;
444574664626SKris Kennaway }
444674664626SKris Kennaway
ssl3_write(SSL * s,const void * buf,size_t len,size_t * written)4447e71b7053SJung-uk Kim int ssl3_write(SSL *s, const void *buf, size_t len, size_t *written)
444874664626SKris Kennaway {
444974664626SKris Kennaway clear_sys_error();
4450b077aed3SPierre Pronchery if (s->s3.renegotiate)
4451e71b7053SJung-uk Kim ssl3_renegotiate_check(s, 0);
445274664626SKris Kennaway
4453e71b7053SJung-uk Kim return s->method->ssl_write_bytes(s, SSL3_RT_APPLICATION_DATA, buf, len,
4454e71b7053SJung-uk Kim written);
445574664626SKris Kennaway }
445674664626SKris Kennaway
ssl3_read_internal(SSL * s,void * buf,size_t len,int peek,size_t * readbytes)4457e71b7053SJung-uk Kim static int ssl3_read_internal(SSL *s, void *buf, size_t len, int peek,
4458e71b7053SJung-uk Kim size_t *readbytes)
445974664626SKris Kennaway {
446074664626SKris Kennaway int ret;
446174664626SKris Kennaway
446274664626SKris Kennaway clear_sys_error();
4463b077aed3SPierre Pronchery if (s->s3.renegotiate)
4464e71b7053SJung-uk Kim ssl3_renegotiate_check(s, 0);
4465b077aed3SPierre Pronchery s->s3.in_read_app_data = 1;
44666f9291ceSJung-uk Kim ret =
4467e71b7053SJung-uk Kim s->method->ssl_read_bytes(s, SSL3_RT_APPLICATION_DATA, NULL, buf, len,
4468e71b7053SJung-uk Kim peek, readbytes);
4469b077aed3SPierre Pronchery if ((ret == -1) && (s->s3.in_read_app_data == 2)) {
44706f9291ceSJung-uk Kim /*
44716f9291ceSJung-uk Kim * ssl3_read_bytes decided to call s->handshake_func, which called
44726f9291ceSJung-uk Kim * ssl3_read_bytes to read handshake data. However, ssl3_read_bytes
44736f9291ceSJung-uk Kim * actually found application data and thinks that application data
44746f9291ceSJung-uk Kim * makes sense here; so disable handshake processing and try to read
44756f9291ceSJung-uk Kim * application data again.
44766f9291ceSJung-uk Kim */
4477e71b7053SJung-uk Kim ossl_statem_set_in_handshake(s, 1);
44786f9291ceSJung-uk Kim ret =
4479e71b7053SJung-uk Kim s->method->ssl_read_bytes(s, SSL3_RT_APPLICATION_DATA, NULL, buf,
4480e71b7053SJung-uk Kim len, peek, readbytes);
4481e71b7053SJung-uk Kim ossl_statem_set_in_handshake(s, 0);
44826f9291ceSJung-uk Kim } else
4483b077aed3SPierre Pronchery s->s3.in_read_app_data = 0;
448474664626SKris Kennaway
4485e71b7053SJung-uk Kim return ret;
448674664626SKris Kennaway }
448774664626SKris Kennaway
ssl3_read(SSL * s,void * buf,size_t len,size_t * readbytes)4488e71b7053SJung-uk Kim int ssl3_read(SSL *s, void *buf, size_t len, size_t *readbytes)
448974664626SKris Kennaway {
4490e71b7053SJung-uk Kim return ssl3_read_internal(s, buf, len, 0, readbytes);
449174664626SKris Kennaway }
449274664626SKris Kennaway
ssl3_peek(SSL * s,void * buf,size_t len,size_t * readbytes)4493e71b7053SJung-uk Kim int ssl3_peek(SSL *s, void *buf, size_t len, size_t *readbytes)
4494de7cdddaSKris Kennaway {
4495e71b7053SJung-uk Kim return ssl3_read_internal(s, buf, len, 1, readbytes);
449674664626SKris Kennaway }
449774664626SKris Kennaway
ssl3_renegotiate(SSL * s)449874664626SKris Kennaway int ssl3_renegotiate(SSL *s)
449974664626SKris Kennaway {
450074664626SKris Kennaway if (s->handshake_func == NULL)
4501e71b7053SJung-uk Kim return 1;
450274664626SKris Kennaway
4503b077aed3SPierre Pronchery s->s3.renegotiate = 1;
4504e71b7053SJung-uk Kim return 1;
450574664626SKris Kennaway }
450674664626SKris Kennaway
4507e71b7053SJung-uk Kim /*
4508e71b7053SJung-uk Kim * Check if we are waiting to do a renegotiation and if so whether now is a
4509e71b7053SJung-uk Kim * good time to do it. If |initok| is true then we are being called from inside
4510e71b7053SJung-uk Kim * the state machine so ignore the result of SSL_in_init(s). Otherwise we
4511e71b7053SJung-uk Kim * should not do a renegotiation if SSL_in_init(s) is true. Returns 1 if we
4512e71b7053SJung-uk Kim * should do a renegotiation now and sets up the state machine for it. Otherwise
4513e71b7053SJung-uk Kim * returns 0.
4514e71b7053SJung-uk Kim */
ssl3_renegotiate_check(SSL * s,int initok)4515e71b7053SJung-uk Kim int ssl3_renegotiate_check(SSL *s, int initok)
451674664626SKris Kennaway {
451774664626SKris Kennaway int ret = 0;
451874664626SKris Kennaway
4519b077aed3SPierre Pronchery if (s->s3.renegotiate) {
4520e71b7053SJung-uk Kim if (!RECORD_LAYER_read_pending(&s->rlayer)
4521e71b7053SJung-uk Kim && !RECORD_LAYER_write_pending(&s->rlayer)
4522e71b7053SJung-uk Kim && (initok || !SSL_in_init(s))) {
452374664626SKris Kennaway /*
45246f9291ceSJung-uk Kim * if we are the server, and we have sent a 'RENEGOTIATE'
4525e71b7053SJung-uk Kim * message, we need to set the state machine into the renegotiate
4526e71b7053SJung-uk Kim * state.
452774664626SKris Kennaway */
4528e71b7053SJung-uk Kim ossl_statem_set_renegotiate(s);
4529b077aed3SPierre Pronchery s->s3.renegotiate = 0;
4530b077aed3SPierre Pronchery s->s3.num_renegotiations++;
4531b077aed3SPierre Pronchery s->s3.total_renegotiations++;
453274664626SKris Kennaway ret = 1;
453374664626SKris Kennaway }
453474664626SKris Kennaway }
4535e71b7053SJung-uk Kim return ret;
453674664626SKris Kennaway }
45376f9291ceSJung-uk Kim
45386f9291ceSJung-uk Kim /*
45397bded2dbSJung-uk Kim * If we are using default SHA1+MD5 algorithms switch to new SHA256 PRF and
45407bded2dbSJung-uk Kim * handshake macs if required.
4541e71b7053SJung-uk Kim *
4542e71b7053SJung-uk Kim * If PSK and using SHA384 for TLS < 1.2 switch to default.
45431f13597dSJung-uk Kim */
ssl_get_algorithm2(SSL * s)45441f13597dSJung-uk Kim long ssl_get_algorithm2(SSL *s)
45451f13597dSJung-uk Kim {
4546aeb5019cSJung-uk Kim long alg2;
4547b077aed3SPierre Pronchery if (s->s3.tmp.new_cipher == NULL)
4548aeb5019cSJung-uk Kim return -1;
4549b077aed3SPierre Pronchery alg2 = s->s3.tmp.new_cipher->algorithm2;
4550e71b7053SJung-uk Kim if (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_SHA256_PRF) {
4551e71b7053SJung-uk Kim if (alg2 == (SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF))
45521f13597dSJung-uk Kim return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256;
4553b077aed3SPierre Pronchery } else if (s->s3.tmp.new_cipher->algorithm_mkey & SSL_PSK) {
4554e71b7053SJung-uk Kim if (alg2 == (SSL_HANDSHAKE_MAC_SHA384 | TLS1_PRF_SHA384))
4555e71b7053SJung-uk Kim return SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF;
4556e71b7053SJung-uk Kim }
45571f13597dSJung-uk Kim return alg2;
45581f13597dSJung-uk Kim }
4559e71b7053SJung-uk Kim
4560e71b7053SJung-uk Kim /*
4561e71b7053SJung-uk Kim * Fill a ClientRandom or ServerRandom field of length len. Returns <= 0 on
4562e71b7053SJung-uk Kim * failure, 1 on success.
4563e71b7053SJung-uk Kim */
ssl_fill_hello_random(SSL * s,int server,unsigned char * result,size_t len,DOWNGRADE dgrd)4564e71b7053SJung-uk Kim int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, size_t len,
4565e71b7053SJung-uk Kim DOWNGRADE dgrd)
4566e71b7053SJung-uk Kim {
4567e71b7053SJung-uk Kim int send_time = 0, ret;
4568e71b7053SJung-uk Kim
4569e71b7053SJung-uk Kim if (len < 4)
4570e71b7053SJung-uk Kim return 0;
4571e71b7053SJung-uk Kim if (server)
4572e71b7053SJung-uk Kim send_time = (s->mode & SSL_MODE_SEND_SERVERHELLO_TIME) != 0;
4573e71b7053SJung-uk Kim else
4574e71b7053SJung-uk Kim send_time = (s->mode & SSL_MODE_SEND_CLIENTHELLO_TIME) != 0;
4575e71b7053SJung-uk Kim if (send_time) {
4576e71b7053SJung-uk Kim unsigned long Time = (unsigned long)time(NULL);
4577e71b7053SJung-uk Kim unsigned char *p = result;
4578e71b7053SJung-uk Kim
4579e71b7053SJung-uk Kim l2n(Time, p);
4580b077aed3SPierre Pronchery ret = RAND_bytes_ex(s->ctx->libctx, p, len - 4, 0);
4581e71b7053SJung-uk Kim } else {
4582b077aed3SPierre Pronchery ret = RAND_bytes_ex(s->ctx->libctx, result, len, 0);
4583e71b7053SJung-uk Kim }
4584e71b7053SJung-uk Kim
4585e71b7053SJung-uk Kim if (ret > 0) {
4586e71b7053SJung-uk Kim if (!ossl_assert(sizeof(tls11downgrade) < len)
4587e71b7053SJung-uk Kim || !ossl_assert(sizeof(tls12downgrade) < len))
4588e71b7053SJung-uk Kim return 0;
4589e71b7053SJung-uk Kim if (dgrd == DOWNGRADE_TO_1_2)
4590e71b7053SJung-uk Kim memcpy(result + len - sizeof(tls12downgrade), tls12downgrade,
4591e71b7053SJung-uk Kim sizeof(tls12downgrade));
4592e71b7053SJung-uk Kim else if (dgrd == DOWNGRADE_TO_1_1)
4593e71b7053SJung-uk Kim memcpy(result + len - sizeof(tls11downgrade), tls11downgrade,
4594e71b7053SJung-uk Kim sizeof(tls11downgrade));
4595e71b7053SJung-uk Kim }
4596e71b7053SJung-uk Kim
4597e71b7053SJung-uk Kim return ret;
4598e71b7053SJung-uk Kim }
4599e71b7053SJung-uk Kim
ssl_generate_master_secret(SSL * s,unsigned char * pms,size_t pmslen,int free_pms)4600e71b7053SJung-uk Kim int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen,
4601e71b7053SJung-uk Kim int free_pms)
4602e71b7053SJung-uk Kim {
4603b077aed3SPierre Pronchery unsigned long alg_k = s->s3.tmp.new_cipher->algorithm_mkey;
4604e71b7053SJung-uk Kim int ret = 0;
4605e71b7053SJung-uk Kim
4606e71b7053SJung-uk Kim if (alg_k & SSL_PSK) {
4607e71b7053SJung-uk Kim #ifndef OPENSSL_NO_PSK
4608e71b7053SJung-uk Kim unsigned char *pskpms, *t;
4609b077aed3SPierre Pronchery size_t psklen = s->s3.tmp.psklen;
4610e71b7053SJung-uk Kim size_t pskpmslen;
4611e71b7053SJung-uk Kim
4612e71b7053SJung-uk Kim /* create PSK premaster_secret */
4613e71b7053SJung-uk Kim
4614e71b7053SJung-uk Kim /* For plain PSK "other_secret" is psklen zeroes */
4615e71b7053SJung-uk Kim if (alg_k & SSL_kPSK)
4616e71b7053SJung-uk Kim pmslen = psklen;
4617e71b7053SJung-uk Kim
4618e71b7053SJung-uk Kim pskpmslen = 4 + pmslen + psklen;
4619e71b7053SJung-uk Kim pskpms = OPENSSL_malloc(pskpmslen);
4620e71b7053SJung-uk Kim if (pskpms == NULL)
4621e71b7053SJung-uk Kim goto err;
4622e71b7053SJung-uk Kim t = pskpms;
4623e71b7053SJung-uk Kim s2n(pmslen, t);
4624e71b7053SJung-uk Kim if (alg_k & SSL_kPSK)
4625e71b7053SJung-uk Kim memset(t, 0, pmslen);
4626e71b7053SJung-uk Kim else
4627e71b7053SJung-uk Kim memcpy(t, pms, pmslen);
4628e71b7053SJung-uk Kim t += pmslen;
4629e71b7053SJung-uk Kim s2n(psklen, t);
4630b077aed3SPierre Pronchery memcpy(t, s->s3.tmp.psk, psklen);
4631e71b7053SJung-uk Kim
4632b077aed3SPierre Pronchery OPENSSL_clear_free(s->s3.tmp.psk, psklen);
4633b077aed3SPierre Pronchery s->s3.tmp.psk = NULL;
4634b077aed3SPierre Pronchery s->s3.tmp.psklen = 0;
4635e71b7053SJung-uk Kim if (!s->method->ssl3_enc->generate_master_secret(s,
4636e71b7053SJung-uk Kim s->session->master_key, pskpms, pskpmslen,
4637e71b7053SJung-uk Kim &s->session->master_key_length)) {
4638e71b7053SJung-uk Kim OPENSSL_clear_free(pskpms, pskpmslen);
4639e71b7053SJung-uk Kim /* SSLfatal() already called */
4640e71b7053SJung-uk Kim goto err;
4641e71b7053SJung-uk Kim }
4642e71b7053SJung-uk Kim OPENSSL_clear_free(pskpms, pskpmslen);
4643e71b7053SJung-uk Kim #else
4644e71b7053SJung-uk Kim /* Should never happen */
4645e71b7053SJung-uk Kim goto err;
4646e71b7053SJung-uk Kim #endif
4647e71b7053SJung-uk Kim } else {
4648e71b7053SJung-uk Kim if (!s->method->ssl3_enc->generate_master_secret(s,
4649e71b7053SJung-uk Kim s->session->master_key, pms, pmslen,
4650e71b7053SJung-uk Kim &s->session->master_key_length)) {
4651e71b7053SJung-uk Kim /* SSLfatal() already called */
4652e71b7053SJung-uk Kim goto err;
4653e71b7053SJung-uk Kim }
4654e71b7053SJung-uk Kim }
4655e71b7053SJung-uk Kim
4656e71b7053SJung-uk Kim ret = 1;
4657e71b7053SJung-uk Kim err:
4658e71b7053SJung-uk Kim if (pms) {
4659e71b7053SJung-uk Kim if (free_pms)
4660e71b7053SJung-uk Kim OPENSSL_clear_free(pms, pmslen);
4661e71b7053SJung-uk Kim else
4662e71b7053SJung-uk Kim OPENSSL_cleanse(pms, pmslen);
4663e71b7053SJung-uk Kim }
4664b6c1fdcdSJung-uk Kim if (s->server == 0) {
4665b077aed3SPierre Pronchery s->s3.tmp.pms = NULL;
4666b077aed3SPierre Pronchery s->s3.tmp.pmslen = 0;
4667b6c1fdcdSJung-uk Kim }
4668e71b7053SJung-uk Kim return ret;
4669e71b7053SJung-uk Kim }
4670e71b7053SJung-uk Kim
4671e71b7053SJung-uk Kim /* Generate a private key from parameters */
ssl_generate_pkey(SSL * s,EVP_PKEY * pm)4672b077aed3SPierre Pronchery EVP_PKEY *ssl_generate_pkey(SSL *s, EVP_PKEY *pm)
4673e71b7053SJung-uk Kim {
4674e71b7053SJung-uk Kim EVP_PKEY_CTX *pctx = NULL;
4675e71b7053SJung-uk Kim EVP_PKEY *pkey = NULL;
4676e71b7053SJung-uk Kim
4677e71b7053SJung-uk Kim if (pm == NULL)
4678e71b7053SJung-uk Kim return NULL;
4679b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, pm, s->ctx->propq);
4680e71b7053SJung-uk Kim if (pctx == NULL)
4681e71b7053SJung-uk Kim goto err;
4682e71b7053SJung-uk Kim if (EVP_PKEY_keygen_init(pctx) <= 0)
4683e71b7053SJung-uk Kim goto err;
4684e71b7053SJung-uk Kim if (EVP_PKEY_keygen(pctx, &pkey) <= 0) {
4685e71b7053SJung-uk Kim EVP_PKEY_free(pkey);
4686e71b7053SJung-uk Kim pkey = NULL;
4687e71b7053SJung-uk Kim }
4688e71b7053SJung-uk Kim
4689e71b7053SJung-uk Kim err:
4690e71b7053SJung-uk Kim EVP_PKEY_CTX_free(pctx);
4691e71b7053SJung-uk Kim return pkey;
4692e71b7053SJung-uk Kim }
4693b077aed3SPierre Pronchery
4694e71b7053SJung-uk Kim /* Generate a private key from a group ID */
ssl_generate_pkey_group(SSL * s,uint16_t id)4695e71b7053SJung-uk Kim EVP_PKEY *ssl_generate_pkey_group(SSL *s, uint16_t id)
4696e71b7053SJung-uk Kim {
4697b077aed3SPierre Pronchery const TLS_GROUP_INFO *ginf = tls1_group_id_lookup(s->ctx, id);
4698e71b7053SJung-uk Kim EVP_PKEY_CTX *pctx = NULL;
4699e71b7053SJung-uk Kim EVP_PKEY *pkey = NULL;
4700e71b7053SJung-uk Kim
4701e71b7053SJung-uk Kim if (ginf == NULL) {
4702b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4703e71b7053SJung-uk Kim goto err;
4704e71b7053SJung-uk Kim }
4705b077aed3SPierre Pronchery
4706b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, ginf->algorithm,
4707b077aed3SPierre Pronchery s->ctx->propq);
4708b077aed3SPierre Pronchery
4709e71b7053SJung-uk Kim if (pctx == NULL) {
4710b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_MALLOC_FAILURE);
4711e71b7053SJung-uk Kim goto err;
4712e71b7053SJung-uk Kim }
4713e71b7053SJung-uk Kim if (EVP_PKEY_keygen_init(pctx) <= 0) {
4714b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB);
4715e71b7053SJung-uk Kim goto err;
4716e71b7053SJung-uk Kim }
4717b077aed3SPierre Pronchery if (EVP_PKEY_CTX_set_group_name(pctx, ginf->realname) <= 0) {
4718b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB);
4719e71b7053SJung-uk Kim goto err;
4720e71b7053SJung-uk Kim }
4721e71b7053SJung-uk Kim if (EVP_PKEY_keygen(pctx, &pkey) <= 0) {
4722b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB);
4723e71b7053SJung-uk Kim EVP_PKEY_free(pkey);
4724e71b7053SJung-uk Kim pkey = NULL;
4725e71b7053SJung-uk Kim }
4726e71b7053SJung-uk Kim
4727e71b7053SJung-uk Kim err:
4728e71b7053SJung-uk Kim EVP_PKEY_CTX_free(pctx);
4729e71b7053SJung-uk Kim return pkey;
4730e71b7053SJung-uk Kim }
4731e71b7053SJung-uk Kim
4732e71b7053SJung-uk Kim /*
4733e71b7053SJung-uk Kim * Generate parameters from a group ID
4734e71b7053SJung-uk Kim */
ssl_generate_param_group(SSL * s,uint16_t id)4735b077aed3SPierre Pronchery EVP_PKEY *ssl_generate_param_group(SSL *s, uint16_t id)
4736e71b7053SJung-uk Kim {
4737e71b7053SJung-uk Kim EVP_PKEY_CTX *pctx = NULL;
4738e71b7053SJung-uk Kim EVP_PKEY *pkey = NULL;
4739b077aed3SPierre Pronchery const TLS_GROUP_INFO *ginf = tls1_group_id_lookup(s->ctx, id);
4740e71b7053SJung-uk Kim
4741e71b7053SJung-uk Kim if (ginf == NULL)
4742e71b7053SJung-uk Kim goto err;
4743e71b7053SJung-uk Kim
4744b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_name(s->ctx->libctx, ginf->algorithm,
4745b077aed3SPierre Pronchery s->ctx->propq);
4746e71b7053SJung-uk Kim
4747e71b7053SJung-uk Kim if (pctx == NULL)
4748e71b7053SJung-uk Kim goto err;
4749e71b7053SJung-uk Kim if (EVP_PKEY_paramgen_init(pctx) <= 0)
4750e71b7053SJung-uk Kim goto err;
4751b077aed3SPierre Pronchery if (EVP_PKEY_CTX_set_group_name(pctx, ginf->realname) <= 0) {
4752b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB);
4753e71b7053SJung-uk Kim goto err;
4754b077aed3SPierre Pronchery }
4755e71b7053SJung-uk Kim if (EVP_PKEY_paramgen(pctx, &pkey) <= 0) {
4756e71b7053SJung-uk Kim EVP_PKEY_free(pkey);
4757e71b7053SJung-uk Kim pkey = NULL;
4758e71b7053SJung-uk Kim }
4759e71b7053SJung-uk Kim
4760e71b7053SJung-uk Kim err:
4761e71b7053SJung-uk Kim EVP_PKEY_CTX_free(pctx);
4762e71b7053SJung-uk Kim return pkey;
4763e71b7053SJung-uk Kim }
4764e71b7053SJung-uk Kim
4765b077aed3SPierre Pronchery /* Generate secrets from pms */
ssl_gensecret(SSL * s,unsigned char * pms,size_t pmslen)4766b077aed3SPierre Pronchery int ssl_gensecret(SSL *s, unsigned char *pms, size_t pmslen)
4767e71b7053SJung-uk Kim {
4768e71b7053SJung-uk Kim int rv = 0;
4769e71b7053SJung-uk Kim
4770e71b7053SJung-uk Kim /* SSLfatal() called as appropriate in the below functions */
4771e71b7053SJung-uk Kim if (SSL_IS_TLS13(s)) {
4772e71b7053SJung-uk Kim /*
4773e71b7053SJung-uk Kim * If we are resuming then we already generated the early secret
4774e71b7053SJung-uk Kim * when we created the ClientHello, so don't recreate it.
4775e71b7053SJung-uk Kim */
4776e71b7053SJung-uk Kim if (!s->hit)
4777e71b7053SJung-uk Kim rv = tls13_generate_secret(s, ssl_handshake_md(s), NULL, NULL,
4778e71b7053SJung-uk Kim 0,
4779e71b7053SJung-uk Kim (unsigned char *)&s->early_secret);
4780e71b7053SJung-uk Kim else
4781e71b7053SJung-uk Kim rv = 1;
4782e71b7053SJung-uk Kim
4783e71b7053SJung-uk Kim rv = rv && tls13_generate_handshake_secret(s, pms, pmslen);
4784e71b7053SJung-uk Kim } else {
4785e71b7053SJung-uk Kim rv = ssl_generate_master_secret(s, pms, pmslen, 0);
4786e71b7053SJung-uk Kim }
4787b077aed3SPierre Pronchery
4788b077aed3SPierre Pronchery return rv;
4789b077aed3SPierre Pronchery }
4790b077aed3SPierre Pronchery
4791b077aed3SPierre Pronchery /* Derive secrets for ECDH/DH */
ssl_derive(SSL * s,EVP_PKEY * privkey,EVP_PKEY * pubkey,int gensecret)4792b077aed3SPierre Pronchery int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey, int gensecret)
4793b077aed3SPierre Pronchery {
4794b077aed3SPierre Pronchery int rv = 0;
4795b077aed3SPierre Pronchery unsigned char *pms = NULL;
4796b077aed3SPierre Pronchery size_t pmslen = 0;
4797b077aed3SPierre Pronchery EVP_PKEY_CTX *pctx;
4798b077aed3SPierre Pronchery
4799b077aed3SPierre Pronchery if (privkey == NULL || pubkey == NULL) {
4800b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4801b077aed3SPierre Pronchery return 0;
4802b077aed3SPierre Pronchery }
4803b077aed3SPierre Pronchery
4804b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, privkey, s->ctx->propq);
4805b077aed3SPierre Pronchery
4806b077aed3SPierre Pronchery if (EVP_PKEY_derive_init(pctx) <= 0
4807b077aed3SPierre Pronchery || EVP_PKEY_derive_set_peer(pctx, pubkey) <= 0
4808b077aed3SPierre Pronchery || EVP_PKEY_derive(pctx, NULL, &pmslen) <= 0) {
4809b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4810b077aed3SPierre Pronchery goto err;
4811b077aed3SPierre Pronchery }
4812b077aed3SPierre Pronchery
4813b077aed3SPierre Pronchery if (SSL_IS_TLS13(s) && EVP_PKEY_is_a(privkey, "DH"))
4814b077aed3SPierre Pronchery EVP_PKEY_CTX_set_dh_pad(pctx, 1);
4815b077aed3SPierre Pronchery
4816b077aed3SPierre Pronchery pms = OPENSSL_malloc(pmslen);
4817b077aed3SPierre Pronchery if (pms == NULL) {
4818b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_MALLOC_FAILURE);
4819b077aed3SPierre Pronchery goto err;
4820b077aed3SPierre Pronchery }
4821b077aed3SPierre Pronchery
4822b077aed3SPierre Pronchery if (EVP_PKEY_derive(pctx, pms, &pmslen) <= 0) {
4823b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4824b077aed3SPierre Pronchery goto err;
4825b077aed3SPierre Pronchery }
4826b077aed3SPierre Pronchery
4827b077aed3SPierre Pronchery if (gensecret) {
4828b077aed3SPierre Pronchery /* SSLfatal() called as appropriate in the below functions */
4829b077aed3SPierre Pronchery rv = ssl_gensecret(s, pms, pmslen);
4830e71b7053SJung-uk Kim } else {
4831e71b7053SJung-uk Kim /* Save premaster secret */
4832b077aed3SPierre Pronchery s->s3.tmp.pms = pms;
4833b077aed3SPierre Pronchery s->s3.tmp.pmslen = pmslen;
4834e71b7053SJung-uk Kim pms = NULL;
4835e71b7053SJung-uk Kim rv = 1;
4836e71b7053SJung-uk Kim }
4837e71b7053SJung-uk Kim
4838e71b7053SJung-uk Kim err:
4839e71b7053SJung-uk Kim OPENSSL_clear_free(pms, pmslen);
4840e71b7053SJung-uk Kim EVP_PKEY_CTX_free(pctx);
4841e71b7053SJung-uk Kim return rv;
4842e71b7053SJung-uk Kim }
4843e71b7053SJung-uk Kim
4844b077aed3SPierre Pronchery /* Decapsulate secrets for KEM */
ssl_decapsulate(SSL * s,EVP_PKEY * privkey,const unsigned char * ct,size_t ctlen,int gensecret)4845b077aed3SPierre Pronchery int ssl_decapsulate(SSL *s, EVP_PKEY *privkey,
4846b077aed3SPierre Pronchery const unsigned char *ct, size_t ctlen,
4847b077aed3SPierre Pronchery int gensecret)
4848e71b7053SJung-uk Kim {
4849b077aed3SPierre Pronchery int rv = 0;
4850b077aed3SPierre Pronchery unsigned char *pms = NULL;
4851b077aed3SPierre Pronchery size_t pmslen = 0;
4852b077aed3SPierre Pronchery EVP_PKEY_CTX *pctx;
4853b077aed3SPierre Pronchery
4854b077aed3SPierre Pronchery if (privkey == NULL) {
4855b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4856b077aed3SPierre Pronchery return 0;
4857b077aed3SPierre Pronchery }
4858b077aed3SPierre Pronchery
4859b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, privkey, s->ctx->propq);
4860b077aed3SPierre Pronchery
4861b077aed3SPierre Pronchery if (EVP_PKEY_decapsulate_init(pctx, NULL) <= 0
4862b077aed3SPierre Pronchery || EVP_PKEY_decapsulate(pctx, NULL, &pmslen, ct, ctlen) <= 0) {
4863b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4864b077aed3SPierre Pronchery goto err;
4865b077aed3SPierre Pronchery }
4866b077aed3SPierre Pronchery
4867b077aed3SPierre Pronchery pms = OPENSSL_malloc(pmslen);
4868b077aed3SPierre Pronchery if (pms == NULL) {
4869b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_MALLOC_FAILURE);
4870b077aed3SPierre Pronchery goto err;
4871b077aed3SPierre Pronchery }
4872b077aed3SPierre Pronchery
4873b077aed3SPierre Pronchery if (EVP_PKEY_decapsulate(pctx, pms, &pmslen, ct, ctlen) <= 0) {
4874b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4875b077aed3SPierre Pronchery goto err;
4876b077aed3SPierre Pronchery }
4877b077aed3SPierre Pronchery
4878b077aed3SPierre Pronchery if (gensecret) {
4879b077aed3SPierre Pronchery /* SSLfatal() called as appropriate in the below functions */
4880b077aed3SPierre Pronchery rv = ssl_gensecret(s, pms, pmslen);
4881b077aed3SPierre Pronchery } else {
4882b077aed3SPierre Pronchery /* Save premaster secret */
4883b077aed3SPierre Pronchery s->s3.tmp.pms = pms;
4884b077aed3SPierre Pronchery s->s3.tmp.pmslen = pmslen;
4885b077aed3SPierre Pronchery pms = NULL;
4886b077aed3SPierre Pronchery rv = 1;
4887b077aed3SPierre Pronchery }
4888b077aed3SPierre Pronchery
4889b077aed3SPierre Pronchery err:
4890b077aed3SPierre Pronchery OPENSSL_clear_free(pms, pmslen);
4891b077aed3SPierre Pronchery EVP_PKEY_CTX_free(pctx);
4892b077aed3SPierre Pronchery return rv;
4893b077aed3SPierre Pronchery }
4894b077aed3SPierre Pronchery
ssl_encapsulate(SSL * s,EVP_PKEY * pubkey,unsigned char ** ctp,size_t * ctlenp,int gensecret)4895b077aed3SPierre Pronchery int ssl_encapsulate(SSL *s, EVP_PKEY *pubkey,
4896b077aed3SPierre Pronchery unsigned char **ctp, size_t *ctlenp,
4897b077aed3SPierre Pronchery int gensecret)
4898b077aed3SPierre Pronchery {
4899b077aed3SPierre Pronchery int rv = 0;
4900b077aed3SPierre Pronchery unsigned char *pms = NULL, *ct = NULL;
4901b077aed3SPierre Pronchery size_t pmslen = 0, ctlen = 0;
4902b077aed3SPierre Pronchery EVP_PKEY_CTX *pctx;
4903b077aed3SPierre Pronchery
4904b077aed3SPierre Pronchery if (pubkey == NULL) {
4905b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4906b077aed3SPierre Pronchery return 0;
4907b077aed3SPierre Pronchery }
4908b077aed3SPierre Pronchery
4909b077aed3SPierre Pronchery pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, pubkey, s->ctx->propq);
4910b077aed3SPierre Pronchery
4911b077aed3SPierre Pronchery if (EVP_PKEY_encapsulate_init(pctx, NULL) <= 0
4912b077aed3SPierre Pronchery || EVP_PKEY_encapsulate(pctx, NULL, &ctlen, NULL, &pmslen) <= 0
4913b077aed3SPierre Pronchery || pmslen == 0 || ctlen == 0) {
4914b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4915b077aed3SPierre Pronchery goto err;
4916b077aed3SPierre Pronchery }
4917b077aed3SPierre Pronchery
4918b077aed3SPierre Pronchery pms = OPENSSL_malloc(pmslen);
4919b077aed3SPierre Pronchery ct = OPENSSL_malloc(ctlen);
4920b077aed3SPierre Pronchery if (pms == NULL || ct == NULL) {
4921b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_MALLOC_FAILURE);
4922b077aed3SPierre Pronchery goto err;
4923b077aed3SPierre Pronchery }
4924b077aed3SPierre Pronchery
4925b077aed3SPierre Pronchery if (EVP_PKEY_encapsulate(pctx, ct, &ctlen, pms, &pmslen) <= 0) {
4926b077aed3SPierre Pronchery SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
4927b077aed3SPierre Pronchery goto err;
4928b077aed3SPierre Pronchery }
4929b077aed3SPierre Pronchery
4930b077aed3SPierre Pronchery if (gensecret) {
4931b077aed3SPierre Pronchery /* SSLfatal() called as appropriate in the below functions */
4932b077aed3SPierre Pronchery rv = ssl_gensecret(s, pms, pmslen);
4933b077aed3SPierre Pronchery } else {
4934b077aed3SPierre Pronchery /* Save premaster secret */
4935b077aed3SPierre Pronchery s->s3.tmp.pms = pms;
4936b077aed3SPierre Pronchery s->s3.tmp.pmslen = pmslen;
4937b077aed3SPierre Pronchery pms = NULL;
4938b077aed3SPierre Pronchery rv = 1;
4939b077aed3SPierre Pronchery }
4940b077aed3SPierre Pronchery
4941b077aed3SPierre Pronchery if (rv > 0) {
4942b077aed3SPierre Pronchery /* Pass ownership of ct to caller */
4943b077aed3SPierre Pronchery *ctp = ct;
4944b077aed3SPierre Pronchery *ctlenp = ctlen;
4945b077aed3SPierre Pronchery ct = NULL;
4946b077aed3SPierre Pronchery }
4947b077aed3SPierre Pronchery
4948b077aed3SPierre Pronchery err:
4949b077aed3SPierre Pronchery OPENSSL_clear_free(pms, pmslen);
4950b077aed3SPierre Pronchery OPENSSL_free(ct);
4951b077aed3SPierre Pronchery EVP_PKEY_CTX_free(pctx);
4952b077aed3SPierre Pronchery return rv;
4953b077aed3SPierre Pronchery }
4954b077aed3SPierre Pronchery
SSL_group_to_name(SSL * s,int nid)4955b077aed3SPierre Pronchery const char *SSL_group_to_name(SSL *s, int nid) {
4956b077aed3SPierre Pronchery int group_id = 0;
4957b077aed3SPierre Pronchery const TLS_GROUP_INFO *cinf = NULL;
4958b077aed3SPierre Pronchery
4959b077aed3SPierre Pronchery /* first convert to real group id for internal and external IDs */
4960b077aed3SPierre Pronchery if (nid & TLSEXT_nid_unknown)
4961b077aed3SPierre Pronchery group_id = nid & 0xFFFF;
4962b077aed3SPierre Pronchery else
4963b077aed3SPierre Pronchery group_id = tls1_nid2group_id(nid);
4964b077aed3SPierre Pronchery
4965b077aed3SPierre Pronchery /* then look up */
4966b077aed3SPierre Pronchery cinf = tls1_group_id_lookup(s->ctx, group_id);
4967b077aed3SPierre Pronchery
4968b077aed3SPierre Pronchery if (cinf != NULL)
4969b077aed3SPierre Pronchery return cinf->tlsname;
4970e71b7053SJung-uk Kim return NULL;
4971e71b7053SJung-uk Kim }
4972