|
@@ -1,427 +0,0 @@
|
1
|
|
-From 2ad3ec1ab5379a16b16aba48a42ced27b170534e Mon Sep 17 00:00:00 2001
|
2
|
|
-From: Remi Gacogne <rgacogne@aquaray.fr>
|
3
|
|
-Date: Fri, 29 May 2015 16:26:17 +0200
|
4
|
|
-Subject: [PATCH 15/18] MEDIUM: ssl: replace standards DH groups with custom
|
5
|
|
- ones
|
6
|
|
-MIME-Version: 1.0
|
7
|
|
-Content-Type: text/plain; charset=UTF-8
|
8
|
|
-Content-Transfer-Encoding: 8bit
|
9
|
|
-
|
10
|
|
-It is likely that powerful adversaries have been pre-computing the
|
11
|
|
-standardized DH groups, because being widely used have made them
|
12
|
|
-valuable targets. While users are advised to generate their own
|
13
|
|
-DH parameters, replace the ones we ship by values been randomly
|
14
|
|
-generated for this product only.
|
15
|
|
-
|
16
|
|
-[wt: replaced dh1024_p, dh2048_p, and dh4096_p with locally-generated
|
17
|
|
- ones as recommended by Rémi]
|
18
|
|
-
|
19
|
|
-(cherry picked from commit d3a341a96fb6107d2b8e3d7a9c0afa2ff43bb0b6)
|
20
|
|
----
|
21
|
|
- src/ssl_sock.c | 340 +++++++++++++++++----------------------------------------
|
22
|
|
- 1 file changed, 102 insertions(+), 238 deletions(-)
|
23
|
|
-
|
24
|
|
-diff --git a/src/ssl_sock.c b/src/ssl_sock.c
|
25
|
|
-index 0f7819b..93aab8b 100644
|
26
|
|
---- a/src/ssl_sock.c
|
27
|
|
-+++ b/src/ssl_sock.c
|
28
|
|
-@@ -114,7 +114,6 @@ static int ssl_dh_ptr_index = -1;
|
29
|
|
- static DH *local_dh_1024 = NULL;
|
30
|
|
- static DH *local_dh_2048 = NULL;
|
31
|
|
- static DH *local_dh_4096 = NULL;
|
32
|
|
--static DH *local_dh_8192 = NULL;
|
33
|
|
- #endif /* OPENSSL_NO_DH */
|
34
|
|
-
|
35
|
|
- #ifdef SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB
|
36
|
|
-@@ -766,32 +765,28 @@ static int ssl_sock_switchctx_cbk(SSL *ssl, int *al, struct bind_conf *s)
|
37
|
|
-
|
38
|
|
- static DH * ssl_get_dh_1024(void)
|
39
|
|
- {
|
40
|
|
--#if OPENSSL_VERSION_NUMBER < 0x0090801fL
|
41
|
|
-- static const unsigned char rfc_2409_prime_1024[] = {
|
42
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC9,0x0F,0xDA,0xA2,
|
43
|
|
-- 0x21,0x68,0xC2,0x34,0xC4,0xC6,0x62,0x8B,0x80,0xDC,0x1C,0xD1,
|
44
|
|
-- 0x29,0x02,0x4E,0x08,0x8A,0x67,0xCC,0x74,0x02,0x0B,0xBE,0xA6,
|
45
|
|
-- 0x3B,0x13,0x9B,0x22,0x51,0x4A,0x08,0x79,0x8E,0x34,0x04,0xDD,
|
46
|
|
-- 0xEF,0x95,0x19,0xB3,0xCD,0x3A,0x43,0x1B,0x30,0x2B,0x0A,0x6D,
|
47
|
|
-- 0xF2,0x5F,0x14,0x37,0x4F,0xE1,0x35,0x6D,0x6D,0x51,0xC2,0x45,
|
48
|
|
-- 0xE4,0x85,0xB5,0x76,0x62,0x5E,0x7E,0xC6,0xF4,0x4C,0x42,0xE9,
|
49
|
|
-- 0xA6,0x37,0xED,0x6B,0x0B,0xFF,0x5C,0xB6,0xF4,0x06,0xB7,0xED,
|
50
|
|
-- 0xEE,0x38,0x6B,0xFB,0x5A,0x89,0x9F,0xA5,0xAE,0x9F,0x24,0x11,
|
51
|
|
-- 0x7C,0x4B,0x1F,0xE6,0x49,0x28,0x66,0x51,0xEC,0xE6,0x53,0x81,
|
52
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
53
|
|
-- };
|
54
|
|
--#endif
|
55
|
|
-+ static unsigned char dh1024_p[]={
|
56
|
|
-+ 0xFA,0xF9,0x2A,0x22,0x2A,0xA7,0x7F,0xE1,0x67,0x4E,0x53,0xF7,
|
57
|
|
-+ 0x56,0x13,0xC3,0xB1,0xE3,0x29,0x6B,0x66,0x31,0x6A,0x7F,0xB3,
|
58
|
|
-+ 0xC2,0x68,0x6B,0xCB,0x1D,0x57,0x39,0x1D,0x1F,0xFF,0x1C,0xC9,
|
59
|
|
-+ 0xA6,0xA4,0x98,0x82,0x31,0x5D,0x25,0xFF,0x8A,0xE0,0x73,0x96,
|
60
|
|
-+ 0x81,0xC8,0x83,0x79,0xC1,0x5A,0x04,0xF8,0x37,0x0D,0xA8,0x3D,
|
61
|
|
-+ 0xAE,0x74,0xBC,0xDB,0xB6,0xA4,0x75,0xD9,0x71,0x8A,0xA0,0x17,
|
62
|
|
-+ 0x9E,0x2D,0xC8,0xA8,0xDF,0x2C,0x5F,0x82,0x95,0xF8,0x92,0x9B,
|
63
|
|
-+ 0xA7,0x33,0x5F,0x89,0x71,0xC8,0x2D,0x6B,0x18,0x86,0xC4,0x94,
|
64
|
|
-+ 0x22,0xA5,0x52,0x8D,0xF6,0xF6,0xD2,0x37,0x92,0x0F,0xA5,0xCC,
|
65
|
|
-+ 0xDB,0x7B,0x1D,0x3D,0xA1,0x31,0xB7,0x80,0x8F,0x0B,0x67,0x5E,
|
66
|
|
-+ 0x36,0xA5,0x60,0x0C,0xF1,0x95,0x33,0x8B,
|
67
|
|
-+ };
|
68
|
|
-+ static unsigned char dh1024_g[]={
|
69
|
|
-+ 0x02,
|
70
|
|
-+ };
|
71
|
|
-+
|
72
|
|
- DH *dh = DH_new();
|
73
|
|
- if (dh) {
|
74
|
|
--#if OPENSSL_VERSION_NUMBER >= 0x0090801fL
|
75
|
|
-- dh->p = get_rfc2409_prime_1024(NULL);
|
76
|
|
--#else
|
77
|
|
-- dh->p = BN_bin2bn(rfc_2409_prime_1024, sizeof rfc_2409_prime_1024, NULL);
|
78
|
|
--#endif
|
79
|
|
-- /* See RFC 2409, Section 6 "Oakley Groups"
|
80
|
|
-- for the reason why 2 is used as generator.
|
81
|
|
-- */
|
82
|
|
-- BN_dec2bn(&dh->g, "2");
|
83
|
|
-+ dh->p = BN_bin2bn(dh1024_p, sizeof dh1024_p, NULL);
|
84
|
|
-+ dh->g = BN_bin2bn(dh1024_g, sizeof dh1024_g, NULL);
|
85
|
|
-+
|
86
|
|
- if (!dh->p || !dh->g) {
|
87
|
|
- DH_free(dh);
|
88
|
|
- dh = NULL;
|
89
|
|
-@@ -802,43 +797,39 @@ static DH * ssl_get_dh_1024(void)
|
90
|
|
-
|
91
|
|
- static DH *ssl_get_dh_2048(void)
|
92
|
|
- {
|
93
|
|
--#if OPENSSL_VERSION_NUMBER < 0x0090801fL
|
94
|
|
-- static const unsigned char rfc_3526_prime_2048[] = {
|
95
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC9,0x0F,0xDA,0xA2,
|
96
|
|
-- 0x21,0x68,0xC2,0x34,0xC4,0xC6,0x62,0x8B,0x80,0xDC,0x1C,0xD1,
|
97
|
|
-- 0x29,0x02,0x4E,0x08,0x8A,0x67,0xCC,0x74,0x02,0x0B,0xBE,0xA6,
|
98
|
|
-- 0x3B,0x13,0x9B,0x22,0x51,0x4A,0x08,0x79,0x8E,0x34,0x04,0xDD,
|
99
|
|
-- 0xEF,0x95,0x19,0xB3,0xCD,0x3A,0x43,0x1B,0x30,0x2B,0x0A,0x6D,
|
100
|
|
-- 0xF2,0x5F,0x14,0x37,0x4F,0xE1,0x35,0x6D,0x6D,0x51,0xC2,0x45,
|
101
|
|
-- 0xE4,0x85,0xB5,0x76,0x62,0x5E,0x7E,0xC6,0xF4,0x4C,0x42,0xE9,
|
102
|
|
-- 0xA6,0x37,0xED,0x6B,0x0B,0xFF,0x5C,0xB6,0xF4,0x06,0xB7,0xED,
|
103
|
|
-- 0xEE,0x38,0x6B,0xFB,0x5A,0x89,0x9F,0xA5,0xAE,0x9F,0x24,0x11,
|
104
|
|
-- 0x7C,0x4B,0x1F,0xE6,0x49,0x28,0x66,0x51,0xEC,0xE4,0x5B,0x3D,
|
105
|
|
-- 0xC2,0x00,0x7C,0xB8,0xA1,0x63,0xBF,0x05,0x98,0xDA,0x48,0x36,
|
106
|
|
-- 0x1C,0x55,0xD3,0x9A,0x69,0x16,0x3F,0xA8,0xFD,0x24,0xCF,0x5F,
|
107
|
|
-- 0x83,0x65,0x5D,0x23,0xDC,0xA3,0xAD,0x96,0x1C,0x62,0xF3,0x56,
|
108
|
|
-- 0x20,0x85,0x52,0xBB,0x9E,0xD5,0x29,0x07,0x70,0x96,0x96,0x6D,
|
109
|
|
-- 0x67,0x0C,0x35,0x4E,0x4A,0xBC,0x98,0x04,0xF1,0x74,0x6C,0x08,
|
110
|
|
-- 0xCA,0x18,0x21,0x7C,0x32,0x90,0x5E,0x46,0x2E,0x36,0xCE,0x3B,
|
111
|
|
-- 0xE3,0x9E,0x77,0x2C,0x18,0x0E,0x86,0x03,0x9B,0x27,0x83,0xA2,
|
112
|
|
-- 0xEC,0x07,0xA2,0x8F,0xB5,0xC5,0x5D,0xF0,0x6F,0x4C,0x52,0xC9,
|
113
|
|
-- 0xDE,0x2B,0xCB,0xF6,0x95,0x58,0x17,0x18,0x39,0x95,0x49,0x7C,
|
114
|
|
-- 0xEA,0x95,0x6A,0xE5,0x15,0xD2,0x26,0x18,0x98,0xFA,0x05,0x10,
|
115
|
|
-- 0x15,0x72,0x8E,0x5A,0x8A,0xAC,0xAA,0x68,0xFF,0xFF,0xFF,0xFF,
|
116
|
|
-- 0xFF,0xFF,0xFF,0xFF,
|
117
|
|
-- };
|
118
|
|
--#endif
|
119
|
|
-+ static unsigned char dh2048_p[]={
|
120
|
|
-+ 0xEC,0x86,0xF8,0x70,0xA0,0x33,0x16,0xEC,0x05,0x1A,0x73,0x59,
|
121
|
|
-+ 0xCD,0x1F,0x8B,0xF8,0x29,0xE4,0xD2,0xCF,0x52,0xDD,0xC2,0x24,
|
122
|
|
-+ 0x8D,0xB5,0x38,0x9A,0xFB,0x5C,0xA4,0xE4,0xB2,0xDA,0xCE,0x66,
|
123
|
|
-+ 0x50,0x74,0xA6,0x85,0x4D,0x4B,0x1D,0x30,0xB8,0x2B,0xF3,0x10,
|
124
|
|
-+ 0xE9,0xA7,0x2D,0x05,0x71,0xE7,0x81,0xDF,0x8B,0x59,0x52,0x3B,
|
125
|
|
-+ 0x5F,0x43,0x0B,0x68,0xF1,0xDB,0x07,0xBE,0x08,0x6B,0x1B,0x23,
|
126
|
|
-+ 0xEE,0x4D,0xCC,0x9E,0x0E,0x43,0xA0,0x1E,0xDF,0x43,0x8C,0xEC,
|
127
|
|
-+ 0xBE,0xBE,0x90,0xB4,0x51,0x54,0xB9,0x2F,0x7B,0x64,0x76,0x4E,
|
128
|
|
-+ 0x5D,0xD4,0x2E,0xAE,0xC2,0x9E,0xAE,0x51,0x43,0x59,0xC7,0x77,
|
129
|
|
-+ 0x9C,0x50,0x3C,0x0E,0xED,0x73,0x04,0x5F,0xF1,0x4C,0x76,0x2A,
|
130
|
|
-+ 0xD8,0xF8,0xCF,0xFC,0x34,0x40,0xD1,0xB4,0x42,0x61,0x84,0x66,
|
131
|
|
-+ 0x42,0x39,0x04,0xF8,0x68,0xB2,0x62,0xD7,0x55,0xED,0x1B,0x74,
|
132
|
|
-+ 0x75,0x91,0xE0,0xC5,0x69,0xC1,0x31,0x5C,0xDB,0x7B,0x44,0x2E,
|
133
|
|
-+ 0xCE,0x84,0x58,0x0D,0x1E,0x66,0x0C,0xC8,0x44,0x9E,0xFD,0x40,
|
134
|
|
-+ 0x08,0x67,0x5D,0xFB,0xA7,0x76,0x8F,0x00,0x11,0x87,0xE9,0x93,
|
135
|
|
-+ 0xF9,0x7D,0xC4,0xBC,0x74,0x55,0x20,0xD4,0x4A,0x41,0x2F,0x43,
|
136
|
|
-+ 0x42,0x1A,0xC1,0xF2,0x97,0x17,0x49,0x27,0x37,0x6B,0x2F,0x88,
|
137
|
|
-+ 0x7E,0x1C,0xA0,0xA1,0x89,0x92,0x27,0xD9,0x56,0x5A,0x71,0xC1,
|
138
|
|
-+ 0x56,0x37,0x7E,0x3A,0x9D,0x05,0xE7,0xEE,0x5D,0x8F,0x82,0x17,
|
139
|
|
-+ 0xBC,0xE9,0xC2,0x93,0x30,0x82,0xF9,0xF4,0xC9,0xAE,0x49,0xDB,
|
140
|
|
-+ 0xD0,0x54,0xB4,0xD9,0x75,0x4D,0xFA,0x06,0xB8,0xD6,0x38,0x41,
|
141
|
|
-+ 0xB7,0x1F,0x77,0xF3,
|
142
|
|
-+ };
|
143
|
|
-+ static unsigned char dh2048_g[]={
|
144
|
|
-+ 0x02,
|
145
|
|
-+ };
|
146
|
|
-+
|
147
|
|
- DH *dh = DH_new();
|
148
|
|
- if (dh) {
|
149
|
|
--#if OPENSSL_VERSION_NUMBER >= 0x0090801fL
|
150
|
|
-- dh->p = get_rfc3526_prime_2048(NULL);
|
151
|
|
--#else
|
152
|
|
-- dh->p = BN_bin2bn(rfc_3526_prime_2048, sizeof rfc_3526_prime_2048, NULL);
|
153
|
|
--#endif
|
154
|
|
-- /* See RFC 3526, Section 3 "2048-bit MODP Group"
|
155
|
|
-- for the reason why 2 is used as generator.
|
156
|
|
-- */
|
157
|
|
-- BN_dec2bn(&dh->g, "2");
|
158
|
|
-+ dh->p = BN_bin2bn(dh2048_p, sizeof dh2048_p, NULL);
|
159
|
|
-+ dh->g = BN_bin2bn(dh2048_g, sizeof dh2048_g, NULL);
|
160
|
|
-+
|
161
|
|
- if (!dh->p || !dh->g) {
|
162
|
|
- DH_free(dh);
|
163
|
|
- dh = NULL;
|
164
|
|
-@@ -849,175 +840,60 @@ static DH *ssl_get_dh_2048(void)
|
165
|
|
-
|
166
|
|
- static DH *ssl_get_dh_4096(void)
|
167
|
|
- {
|
168
|
|
--#if OPENSSL_VERSION_NUMBER < 0x0090801fL
|
169
|
|
-- static const unsigned char rfc_3526_prime_4096[] = {
|
170
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC9,0x0F,0xDA,0xA2,
|
171
|
|
-- 0x21,0x68,0xC2,0x34,0xC4,0xC6,0x62,0x8B,0x80,0xDC,0x1C,0xD1,
|
172
|
|
-- 0x29,0x02,0x4E,0x08,0x8A,0x67,0xCC,0x74,0x02,0x0B,0xBE,0xA6,
|
173
|
|
-- 0x3B,0x13,0x9B,0x22,0x51,0x4A,0x08,0x79,0x8E,0x34,0x04,0xDD,
|
174
|
|
-- 0xEF,0x95,0x19,0xB3,0xCD,0x3A,0x43,0x1B,0x30,0x2B,0x0A,0x6D,
|
175
|
|
-- 0xF2,0x5F,0x14,0x37,0x4F,0xE1,0x35,0x6D,0x6D,0x51,0xC2,0x45,
|
176
|
|
-- 0xE4,0x85,0xB5,0x76,0x62,0x5E,0x7E,0xC6,0xF4,0x4C,0x42,0xE9,
|
177
|
|
-- 0xA6,0x37,0xED,0x6B,0x0B,0xFF,0x5C,0xB6,0xF4,0x06,0xB7,0xED,
|
178
|
|
-- 0xEE,0x38,0x6B,0xFB,0x5A,0x89,0x9F,0xA5,0xAE,0x9F,0x24,0x11,
|
179
|
|
-- 0x7C,0x4B,0x1F,0xE6,0x49,0x28,0x66,0x51,0xEC,0xE4,0x5B,0x3D,
|
180
|
|
-- 0xC2,0x00,0x7C,0xB8,0xA1,0x63,0xBF,0x05,0x98,0xDA,0x48,0x36,
|
181
|
|
-- 0x1C,0x55,0xD3,0x9A,0x69,0x16,0x3F,0xA8,0xFD,0x24,0xCF,0x5F,
|
182
|
|
-- 0x83,0x65,0x5D,0x23,0xDC,0xA3,0xAD,0x96,0x1C,0x62,0xF3,0x56,
|
183
|
|
-- 0x20,0x85,0x52,0xBB,0x9E,0xD5,0x29,0x07,0x70,0x96,0x96,0x6D,
|
184
|
|
-- 0x67,0x0C,0x35,0x4E,0x4A,0xBC,0x98,0x04,0xF1,0x74,0x6C,0x08,
|
185
|
|
-- 0xCA,0x18,0x21,0x7C,0x32,0x90,0x5E,0x46,0x2E,0x36,0xCE,0x3B,
|
186
|
|
-- 0xE3,0x9E,0x77,0x2C,0x18,0x0E,0x86,0x03,0x9B,0x27,0x83,0xA2,
|
187
|
|
-- 0xEC,0x07,0xA2,0x8F,0xB5,0xC5,0x5D,0xF0,0x6F,0x4C,0x52,0xC9,
|
188
|
|
-- 0xDE,0x2B,0xCB,0xF6,0x95,0x58,0x17,0x18,0x39,0x95,0x49,0x7C,
|
189
|
|
-- 0xEA,0x95,0x6A,0xE5,0x15,0xD2,0x26,0x18,0x98,0xFA,0x05,0x10,
|
190
|
|
-- 0x15,0x72,0x8E,0x5A,0x8A,0xAA,0xC4,0x2D,0xAD,0x33,0x17,0x0D,
|
191
|
|
-- 0x04,0x50,0x7A,0x33,0xA8,0x55,0x21,0xAB,0xDF,0x1C,0xBA,0x64,
|
192
|
|
-- 0xEC,0xFB,0x85,0x04,0x58,0xDB,0xEF,0x0A,0x8A,0xEA,0x71,0x57,
|
193
|
|
-- 0x5D,0x06,0x0C,0x7D,0xB3,0x97,0x0F,0x85,0xA6,0xE1,0xE4,0xC7,
|
194
|
|
-- 0xAB,0xF5,0xAE,0x8C,0xDB,0x09,0x33,0xD7,0x1E,0x8C,0x94,0xE0,
|
195
|
|
-- 0x4A,0x25,0x61,0x9D,0xCE,0xE3,0xD2,0x26,0x1A,0xD2,0xEE,0x6B,
|
196
|
|
-- 0xF1,0x2F,0xFA,0x06,0xD9,0x8A,0x08,0x64,0xD8,0x76,0x02,0x73,
|
197
|
|
-- 0x3E,0xC8,0x6A,0x64,0x52,0x1F,0x2B,0x18,0x17,0x7B,0x20,0x0C,
|
198
|
|
-- 0xBB,0xE1,0x17,0x57,0x7A,0x61,0x5D,0x6C,0x77,0x09,0x88,0xC0,
|
199
|
|
-- 0xBA,0xD9,0x46,0xE2,0x08,0xE2,0x4F,0xA0,0x74,0xE5,0xAB,0x31,
|
200
|
|
-- 0x43,0xDB,0x5B,0xFC,0xE0,0xFD,0x10,0x8E,0x4B,0x82,0xD1,0x20,
|
201
|
|
-- 0xA9,0x21,0x08,0x01,0x1A,0x72,0x3C,0x12,0xA7,0x87,0xE6,0xD7,
|
202
|
|
-- 0x88,0x71,0x9A,0x10,0xBD,0xBA,0x5B,0x26,0x99,0xC3,0x27,0x18,
|
203
|
|
-- 0x6A,0xF4,0xE2,0x3C,0x1A,0x94,0x68,0x34,0xB6,0x15,0x0B,0xDA,
|
204
|
|
-- 0x25,0x83,0xE9,0xCA,0x2A,0xD4,0x4C,0xE8,0xDB,0xBB,0xC2,0xDB,
|
205
|
|
-- 0x04,0xDE,0x8E,0xF9,0x2E,0x8E,0xFC,0x14,0x1F,0xBE,0xCA,0xA6,
|
206
|
|
-- 0x28,0x7C,0x59,0x47,0x4E,0x6B,0xC0,0x5D,0x99,0xB2,0x96,0x4F,
|
207
|
|
-- 0xA0,0x90,0xC3,0xA2,0x23,0x3B,0xA1,0x86,0x51,0x5B,0xE7,0xED,
|
208
|
|
-- 0x1F,0x61,0x29,0x70,0xCE,0xE2,0xD7,0xAF,0xB8,0x1B,0xDD,0x76,
|
209
|
|
-- 0x21,0x70,0x48,0x1C,0xD0,0x06,0x91,0x27,0xD5,0xB0,0x5A,0xA9,
|
210
|
|
-- 0x93,0xB4,0xEA,0x98,0x8D,0x8F,0xDD,0xC1,0x86,0xFF,0xB7,0xDC,
|
211
|
|
-- 0x90,0xA6,0xC0,0x8F,0x4D,0xF4,0x35,0xC9,0x34,0x06,0x31,0x99,
|
212
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
213
|
|
-+ static unsigned char dh4096_p[]={
|
214
|
|
-+ 0xDE,0x16,0x94,0xCD,0x99,0x58,0x07,0xF1,0xF7,0x32,0x96,0x11,
|
215
|
|
-+ 0x04,0x82,0xD4,0x84,0x72,0x80,0x99,0x06,0xCA,0xF0,0xA3,0x68,
|
216
|
|
-+ 0x07,0xCE,0x64,0x50,0xE7,0x74,0x45,0x20,0x80,0x5E,0x4D,0xAD,
|
217
|
|
-+ 0xA5,0xB6,0xED,0xFA,0x80,0x6C,0x3B,0x35,0xC4,0x9A,0x14,0x6B,
|
218
|
|
-+ 0x32,0xBB,0xFD,0x1F,0x17,0x8E,0xB7,0x1F,0xD6,0xFA,0x3F,0x7B,
|
219
|
|
-+ 0xEE,0x16,0xA5,0x62,0x33,0x0D,0xED,0xBC,0x4E,0x58,0xE5,0x47,
|
220
|
|
-+ 0x4D,0xE9,0xAB,0x8E,0x38,0xD3,0x6E,0x90,0x57,0xE3,0x22,0x15,
|
221
|
|
-+ 0x33,0xBD,0xF6,0x43,0x45,0xB5,0x10,0x0A,0xBE,0x2C,0xB4,0x35,
|
222
|
|
-+ 0xB8,0x53,0x8D,0xAD,0xFB,0xA7,0x1F,0x85,0x58,0x41,0x7A,0x79,
|
223
|
|
-+ 0x20,0x68,0xB3,0xE1,0x3D,0x08,0x76,0xBF,0x86,0x0D,0x49,0xE3,
|
224
|
|
-+ 0x82,0x71,0x8C,0xB4,0x8D,0x81,0x84,0xD4,0xE7,0xBE,0x91,0xDC,
|
225
|
|
-+ 0x26,0x39,0x48,0x0F,0x35,0xC4,0xCA,0x65,0xE3,0x40,0x93,0x52,
|
226
|
|
-+ 0x76,0x58,0x7D,0xDD,0x51,0x75,0xDC,0x69,0x61,0xBF,0x47,0x2C,
|
227
|
|
-+ 0x16,0x68,0x2D,0xC9,0x29,0xD3,0xE6,0xC0,0x99,0x48,0xA0,0x9A,
|
228
|
|
-+ 0xC8,0x78,0xC0,0x6D,0x81,0x67,0x12,0x61,0x3F,0x71,0xBA,0x41,
|
229
|
|
-+ 0x1F,0x6C,0x89,0x44,0x03,0xBA,0x3B,0x39,0x60,0xAA,0x28,0x55,
|
230
|
|
-+ 0x59,0xAE,0xB8,0xFA,0xCB,0x6F,0xA5,0x1A,0xF7,0x2B,0xDD,0x52,
|
231
|
|
-+ 0x8A,0x8B,0xE2,0x71,0xA6,0x5E,0x7E,0xD8,0x2E,0x18,0xE0,0x66,
|
232
|
|
-+ 0xDF,0xDD,0x22,0x21,0x99,0x52,0x73,0xA6,0x33,0x20,0x65,0x0E,
|
233
|
|
-+ 0x53,0xE7,0x6B,0x9B,0xC5,0xA3,0x2F,0x97,0x65,0x76,0xD3,0x47,
|
234
|
|
-+ 0x23,0x77,0x12,0xB6,0x11,0x7B,0x24,0xED,0xF1,0xEF,0xC0,0xE2,
|
235
|
|
-+ 0xA3,0x7E,0x67,0x05,0x3E,0x96,0x4D,0x45,0xC2,0x18,0xD1,0x73,
|
236
|
|
-+ 0x9E,0x07,0xF3,0x81,0x6E,0x52,0x63,0xF6,0x20,0x76,0xB9,0x13,
|
237
|
|
-+ 0xD2,0x65,0x30,0x18,0x16,0x09,0x16,0x9E,0x8F,0xF1,0xD2,0x10,
|
238
|
|
-+ 0x5A,0xD3,0xD4,0xAF,0x16,0x61,0xDA,0x55,0x2E,0x18,0x5E,0x14,
|
239
|
|
-+ 0x08,0x54,0x2E,0x2A,0x25,0xA2,0x1A,0x9B,0x8B,0x32,0xA9,0xFD,
|
240
|
|
-+ 0xC2,0x48,0x96,0xE1,0x80,0xCA,0xE9,0x22,0x17,0xBB,0xCE,0x3E,
|
241
|
|
-+ 0x9E,0xED,0xC7,0xF1,0x1F,0xEC,0x17,0x21,0xDC,0x7B,0x82,0x48,
|
242
|
|
-+ 0x8E,0xBB,0x4B,0x9D,0x5B,0x04,0x04,0xDA,0xDB,0x39,0xDF,0x01,
|
243
|
|
-+ 0x40,0xC3,0xAA,0x26,0x23,0x89,0x75,0xC6,0x0B,0xD0,0xA2,0x60,
|
244
|
|
-+ 0x6A,0xF1,0xCC,0x65,0x18,0x98,0x1B,0x52,0xD2,0x74,0x61,0xCC,
|
245
|
|
-+ 0xBD,0x60,0xAE,0xA3,0xA0,0x66,0x6A,0x16,0x34,0x92,0x3F,0x41,
|
246
|
|
-+ 0x40,0x31,0x29,0xC0,0x2C,0x63,0xB2,0x07,0x8D,0xEB,0x94,0xB8,
|
247
|
|
-+ 0xE8,0x47,0x92,0x52,0x93,0x6A,0x1B,0x7E,0x1A,0x61,0xB3,0x1B,
|
248
|
|
-+ 0xF0,0xD6,0x72,0x9B,0xF1,0xB0,0xAF,0xBF,0x3E,0x65,0xEF,0x23,
|
249
|
|
-+ 0x1D,0x6F,0xFF,0x70,0xCD,0x8A,0x4C,0x8A,0xA0,0x72,0x9D,0xBE,
|
250
|
|
-+ 0xD4,0xBB,0x24,0x47,0x4A,0x68,0xB5,0xF5,0xC6,0xD5,0x7A,0xCD,
|
251
|
|
-+ 0xCA,0x06,0x41,0x07,0xAD,0xC2,0x1E,0xE6,0x54,0xA7,0xAD,0x03,
|
252
|
|
-+ 0xD9,0x12,0xC1,0x9C,0x13,0xB1,0xC9,0x0A,0x43,0x8E,0x1E,0x08,
|
253
|
|
-+ 0xCE,0x50,0x82,0x73,0x5F,0xA7,0x55,0x1D,0xD9,0x59,0xAC,0xB5,
|
254
|
|
-+ 0xEA,0x02,0x7F,0x6C,0x5B,0x74,0x96,0x98,0x67,0x24,0xA3,0x0F,
|
255
|
|
-+ 0x15,0xFC,0xA9,0x7D,0x3E,0x67,0xD1,0x70,0xF8,0x97,0xF3,0x67,
|
256
|
|
-+ 0xC5,0x8C,0x88,0x44,0x08,0x02,0xC7,0x2B,
|
257
|
|
- };
|
258
|
|
--#endif
|
259
|
|
-- DH *dh = DH_new();
|
260
|
|
-- if (dh) {
|
261
|
|
--#if OPENSSL_VERSION_NUMBER >= 0x0090801fL
|
262
|
|
-- dh->p = get_rfc3526_prime_4096(NULL);
|
263
|
|
--#else
|
264
|
|
-- dh->p = BN_bin2bn(rfc_3526_prime_4096, sizeof rfc_3526_prime_4096, NULL);
|
265
|
|
--#endif
|
266
|
|
-- /* See RFC 3526, Section 5 "4096-bit MODP Group"
|
267
|
|
-- for the reason why 2 is used as generator.
|
268
|
|
-- */
|
269
|
|
-- BN_dec2bn(&dh->g, "2");
|
270
|
|
-- if (!dh->p || !dh->g) {
|
271
|
|
-- DH_free(dh);
|
272
|
|
-- dh = NULL;
|
273
|
|
-- }
|
274
|
|
-- }
|
275
|
|
-- return dh;
|
276
|
|
--}
|
277
|
|
-+ static unsigned char dh4096_g[]={
|
278
|
|
-+ 0x02,
|
279
|
|
-+ };
|
280
|
|
-
|
281
|
|
--static DH *ssl_get_dh_8192(void)
|
282
|
|
--{
|
283
|
|
--#if OPENSSL_VERSION_NUMBER < 0x0090801fL
|
284
|
|
-- static const unsigned char rfc_3526_prime_8192[] = {
|
285
|
|
-- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC9,0x0F,0xDA,0xA2,
|
286
|
|
-- 0x21,0x68,0xC2,0x34,0xC4,0xC6,0x62,0x8B,0x80,0xDC,0x1C,0xD1,
|
287
|
|
-- 0x29,0x02,0x4E,0x08,0x8A,0x67,0xCC,0x74,0x02,0x0B,0xBE,0xA6,
|
288
|
|
-- 0x3B,0x13,0x9B,0x22,0x51,0x4A,0x08,0x79,0x8E,0x34,0x04,0xDD,
|
289
|
|
-- 0xEF,0x95,0x19,0xB3,0xCD,0x3A,0x43,0x1B,0x30,0x2B,0x0A,0x6D,
|
290
|
|
-- 0xF2,0x5F,0x14,0x37,0x4F,0xE1,0x35,0x6D,0x6D,0x51,0xC2,0x45,
|
291
|
|
-- 0xE4,0x85,0xB5,0x76,0x62,0x5E,0x7E,0xC6,0xF4,0x4C,0x42,0xE9,
|
292
|
|
-- 0xA6,0x37,0xED,0x6B,0x0B,0xFF,0x5C,0xB6,0xF4,0x06,0xB7,0xED,
|
293
|
|
-- 0xEE,0x38,0x6B,0xFB,0x5A,0x89,0x9F,0xA5,0xAE,0x9F,0x24,0x11,
|
294
|
|
-- 0x7C,0x4B,0x1F,0xE6,0x49,0x28,0x66,0x51,0xEC,0xE4,0x5B,0x3D,
|
295
|
|
-- 0xC2,0x00,0x7C,0xB8,0xA1,0x63,0xBF,0x05,0x98,0xDA,0x48,0x36,
|
296
|
|
-- 0x1C,0x55,0xD3,0x9A,0x69,0x16,0x3F,0xA8,0xFD,0x24,0xCF,0x5F,
|
297
|
|
-- 0x83,0x65,0x5D,0x23,0xDC,0xA3,0xAD,0x96,0x1C,0x62,0xF3,0x56,
|
298
|
|
-- 0x20,0x85,0x52,0xBB,0x9E,0xD5,0x29,0x07,0x70,0x96,0x96,0x6D,
|
299
|
|
-- 0x67,0x0C,0x35,0x4E,0x4A,0xBC,0x98,0x04,0xF1,0x74,0x6C,0x08,
|
300
|
|
-- 0xCA,0x18,0x21,0x7C,0x32,0x90,0x5E,0x46,0x2E,0x36,0xCE,0x3B,
|
301
|
|
-- 0xE3,0x9E,0x77,0x2C,0x18,0x0E,0x86,0x03,0x9B,0x27,0x83,0xA2,
|
302
|
|
-- 0xEC,0x07,0xA2,0x8F,0xB5,0xC5,0x5D,0xF0,0x6F,0x4C,0x52,0xC9,
|
303
|
|
-- 0xDE,0x2B,0xCB,0xF6,0x95,0x58,0x17,0x18,0x39,0x95,0x49,0x7C,
|
304
|
|
-- 0xEA,0x95,0x6A,0xE5,0x15,0xD2,0x26,0x18,0x98,0xFA,0x05,0x10,
|
305
|
|
-- 0x15,0x72,0x8E,0x5A,0x8A,0xAA,0xC4,0x2D,0xAD,0x33,0x17,0x0D,
|
306
|
|
-- 0x04,0x50,0x7A,0x33,0xA8,0x55,0x21,0xAB,0xDF,0x1C,0xBA,0x64,
|
307
|
|
-- 0xEC,0xFB,0x85,0x04,0x58,0xDB,0xEF,0x0A,0x8A,0xEA,0x71,0x57,
|
308
|
|
-- 0x5D,0x06,0x0C,0x7D,0xB3,0x97,0x0F,0x85,0xA6,0xE1,0xE4,0xC7,
|
309
|
|
-- 0xAB,0xF5,0xAE,0x8C,0xDB,0x09,0x33,0xD7,0x1E,0x8C,0x94,0xE0,
|
310
|
|
-- 0x4A,0x25,0x61,0x9D,0xCE,0xE3,0xD2,0x26,0x1A,0xD2,0xEE,0x6B,
|
311
|
|
-- 0xF1,0x2F,0xFA,0x06,0xD9,0x8A,0x08,0x64,0xD8,0x76,0x02,0x73,
|
312
|
|
-- 0x3E,0xC8,0x6A,0x64,0x52,0x1F,0x2B,0x18,0x17,0x7B,0x20,0x0C,
|
313
|
|
-- 0xBB,0xE1,0x17,0x57,0x7A,0x61,0x5D,0x6C,0x77,0x09,0x88,0xC0,
|
314
|
|
-- 0xBA,0xD9,0x46,0xE2,0x08,0xE2,0x4F,0xA0,0x74,0xE5,0xAB,0x31,
|
315
|
|
-- 0x43,0xDB,0x5B,0xFC,0xE0,0xFD,0x10,0x8E,0x4B,0x82,0xD1,0x20,
|
316
|
|
-- 0xA9,0x21,0x08,0x01,0x1A,0x72,0x3C,0x12,0xA7,0x87,0xE6,0xD7,
|
317
|
|
-- 0x88,0x71,0x9A,0x10,0xBD,0xBA,0x5B,0x26,0x99,0xC3,0x27,0x18,
|
318
|
|
-- 0x6A,0xF4,0xE2,0x3C,0x1A,0x94,0x68,0x34,0xB6,0x15,0x0B,0xDA,
|
319
|
|
-- 0x25,0x83,0xE9,0xCA,0x2A,0xD4,0x4C,0xE8,0xDB,0xBB,0xC2,0xDB,
|
320
|
|
-- 0x04,0xDE,0x8E,0xF9,0x2E,0x8E,0xFC,0x14,0x1F,0xBE,0xCA,0xA6,
|
321
|
|
-- 0x28,0x7C,0x59,0x47,0x4E,0x6B,0xC0,0x5D,0x99,0xB2,0x96,0x4F,
|
322
|
|
-- 0xA0,0x90,0xC3,0xA2,0x23,0x3B,0xA1,0x86,0x51,0x5B,0xE7,0xED,
|
323
|
|
-- 0x1F,0x61,0x29,0x70,0xCE,0xE2,0xD7,0xAF,0xB8,0x1B,0xDD,0x76,
|
324
|
|
-- 0x21,0x70,0x48,0x1C,0xD0,0x06,0x91,0x27,0xD5,0xB0,0x5A,0xA9,
|
325
|
|
-- 0x93,0xB4,0xEA,0x98,0x8D,0x8F,0xDD,0xC1,0x86,0xFF,0xB7,0xDC,
|
326
|
|
-- 0x90,0xA6,0xC0,0x8F,0x4D,0xF4,0x35,0xC9,0x34,0x02,0x84,0x92,
|
327
|
|
-- 0x36,0xC3,0xFA,0xB4,0xD2,0x7C,0x70,0x26,0xC1,0xD4,0xDC,0xB2,
|
328
|
|
-- 0x60,0x26,0x46,0xDE,0xC9,0x75,0x1E,0x76,0x3D,0xBA,0x37,0xBD,
|
329
|
|
-- 0xF8,0xFF,0x94,0x06,0xAD,0x9E,0x53,0x0E,0xE5,0xDB,0x38,0x2F,
|
330
|
|
-- 0x41,0x30,0x01,0xAE,0xB0,0x6A,0x53,0xED,0x90,0x27,0xD8,0x31,
|
331
|
|
-- 0x17,0x97,0x27,0xB0,0x86,0x5A,0x89,0x18,0xDA,0x3E,0xDB,0xEB,
|
332
|
|
-- 0xCF,0x9B,0x14,0xED,0x44,0xCE,0x6C,0xBA,0xCE,0xD4,0xBB,0x1B,
|
333
|
|
-- 0xDB,0x7F,0x14,0x47,0xE6,0xCC,0x25,0x4B,0x33,0x20,0x51,0x51,
|
334
|
|
-- 0x2B,0xD7,0xAF,0x42,0x6F,0xB8,0xF4,0x01,0x37,0x8C,0xD2,0xBF,
|
335
|
|
-- 0x59,0x83,0xCA,0x01,0xC6,0x4B,0x92,0xEC,0xF0,0x32,0xEA,0x15,
|
336
|
|
-- 0xD1,0x72,0x1D,0x03,0xF4,0x82,0xD7,0xCE,0x6E,0x74,0xFE,0xF6,
|
337
|
|
-- 0xD5,0x5E,0x70,0x2F,0x46,0x98,0x0C,0x82,0xB5,0xA8,0x40,0x31,
|
338
|
|
-- 0x90,0x0B,0x1C,0x9E,0x59,0xE7,0xC9,0x7F,0xBE,0xC7,0xE8,0xF3,
|
339
|
|
-- 0x23,0xA9,0x7A,0x7E,0x36,0xCC,0x88,0xBE,0x0F,0x1D,0x45,0xB7,
|
340
|
|
-- 0xFF,0x58,0x5A,0xC5,0x4B,0xD4,0x07,0xB2,0x2B,0x41,0x54,0xAA,
|
341
|
|
-- 0xCC,0x8F,0x6D,0x7E,0xBF,0x48,0xE1,0xD8,0x14,0xCC,0x5E,0xD2,
|
342
|
|
-- 0x0F,0x80,0x37,0xE0,0xA7,0x97,0x15,0xEE,0xF2,0x9B,0xE3,0x28,
|
343
|
|
-- 0x06,0xA1,0xD5,0x8B,0xB7,0xC5,0xDA,0x76,0xF5,0x50,0xAA,0x3D,
|
344
|
|
-- 0x8A,0x1F,0xBF,0xF0,0xEB,0x19,0xCC,0xB1,0xA3,0x13,0xD5,0x5C,
|
345
|
|
-- 0xDA,0x56,0xC9,0xEC,0x2E,0xF2,0x96,0x32,0x38,0x7F,0xE8,0xD7,
|
346
|
|
-- 0x6E,0x3C,0x04,0x68,0x04,0x3E,0x8F,0x66,0x3F,0x48,0x60,0xEE,
|
347
|
|
-- 0x12,0xBF,0x2D,0x5B,0x0B,0x74,0x74,0xD6,0xE6,0x94,0xF9,0x1E,
|
348
|
|
-- 0x6D,0xBE,0x11,0x59,0x74,0xA3,0x92,0x6F,0x12,0xFE,0xE5,0xE4,
|
349
|
|
-- 0x38,0x77,0x7C,0xB6,0xA9,0x32,0xDF,0x8C,0xD8,0xBE,0xC4,0xD0,
|
350
|
|
-- 0x73,0xB9,0x31,0xBA,0x3B,0xC8,0x32,0xB6,0x8D,0x9D,0xD3,0x00,
|
351
|
|
-- 0x74,0x1F,0xA7,0xBF,0x8A,0xFC,0x47,0xED,0x25,0x76,0xF6,0x93,
|
352
|
|
-- 0x6B,0xA4,0x24,0x66,0x3A,0xAB,0x63,0x9C,0x5A,0xE4,0xF5,0x68,
|
353
|
|
-- 0x34,0x23,0xB4,0x74,0x2B,0xF1,0xC9,0x78,0x23,0x8F,0x16,0xCB,
|
354
|
|
-- 0xE3,0x9D,0x65,0x2D,0xE3,0xFD,0xB8,0xBE,0xFC,0x84,0x8A,0xD9,
|
355
|
|
-- 0x22,0x22,0x2E,0x04,0xA4,0x03,0x7C,0x07,0x13,0xEB,0x57,0xA8,
|
356
|
|
-- 0x1A,0x23,0xF0,0xC7,0x34,0x73,0xFC,0x64,0x6C,0xEA,0x30,0x6B,
|
357
|
|
-- 0x4B,0xCB,0xC8,0x86,0x2F,0x83,0x85,0xDD,0xFA,0x9D,0x4B,0x7F,
|
358
|
|
-- 0xA2,0xC0,0x87,0xE8,0x79,0x68,0x33,0x03,0xED,0x5B,0xDD,0x3A,
|
359
|
|
-- 0x06,0x2B,0x3C,0xF5,0xB3,0xA2,0x78,0xA6,0x6D,0x2A,0x13,0xF8,
|
360
|
|
-- 0x3F,0x44,0xF8,0x2D,0xDF,0x31,0x0E,0xE0,0x74,0xAB,0x6A,0x36,
|
361
|
|
-- 0x45,0x97,0xE8,0x99,0xA0,0x25,0x5D,0xC1,0x64,0xF3,0x1C,0xC5,
|
362
|
|
-- 0x08,0x46,0x85,0x1D,0xF9,0xAB,0x48,0x19,0x5D,0xED,0x7E,0xA1,
|
363
|
|
-- 0xB1,0xD5,0x10,0xBD,0x7E,0xE7,0x4D,0x73,0xFA,0xF3,0x6B,0xC3,
|
364
|
|
-- 0x1E,0xCF,0xA2,0x68,0x35,0x90,0x46,0xF4,0xEB,0x87,0x9F,0x92,
|
365
|
|
-- 0x40,0x09,0x43,0x8B,0x48,0x1C,0x6C,0xD7,0x88,0x9A,0x00,0x2E,
|
366
|
|
-- 0xD5,0xEE,0x38,0x2B,0xC9,0x19,0x0D,0xA6,0xFC,0x02,0x6E,0x47,
|
367
|
|
-- 0x95,0x58,0xE4,0x47,0x56,0x77,0xE9,0xAA,0x9E,0x30,0x50,0xE2,
|
368
|
|
-- 0x76,0x56,0x94,0xDF,0xC8,0x1F,0x56,0xE8,0x80,0xB9,0x6E,0x71,
|
369
|
|
-- 0x60,0xC9,0x80,0xDD,0x98,0xED,0xD3,0xDF,0xFF,0xFF,0xFF,0xFF,
|
370
|
|
-- 0xFF,0xFF,0xFF,0xFF,
|
371
|
|
-- };
|
372
|
|
--#endif
|
373
|
|
- DH *dh = DH_new();
|
374
|
|
- if (dh) {
|
375
|
|
--#if OPENSSL_VERSION_NUMBER >= 0x0090801fL
|
376
|
|
-- dh->p = get_rfc3526_prime_8192(NULL);
|
377
|
|
--#else
|
378
|
|
-- dh->p = BN_bin2bn(rfc_3526_prime_8192, sizeof rfc_3526_prime_8192, NULL);
|
379
|
|
--#endif
|
380
|
|
-- /* See RFC 3526, Section 7 "8192-bit MODP Group"
|
381
|
|
-- for the reason why 2 is used as generator.
|
382
|
|
-- */
|
383
|
|
-- BN_dec2bn(&dh->g, "2");
|
384
|
|
-+ dh->p = BN_bin2bn(dh4096_p, sizeof dh4096_p, NULL);
|
385
|
|
-+ dh->g = BN_bin2bn(dh4096_g, sizeof dh4096_g, NULL);
|
386
|
|
-+
|
387
|
|
- if (!dh->p || !dh->g) {
|
388
|
|
- DH_free(dh);
|
389
|
|
- dh = NULL;
|
390
|
|
-@@ -1045,10 +921,7 @@ static DH *ssl_get_tmp_dh(SSL *ssl, int export, int keylen)
|
391
|
|
- keylen = global.tune.ssl_default_dh_param;
|
392
|
|
- }
|
393
|
|
-
|
394
|
|
-- if (keylen >= 8192) {
|
395
|
|
-- dh = local_dh_8192;
|
396
|
|
-- }
|
397
|
|
-- else if (keylen >= 4096) {
|
398
|
|
-+ if (keylen >= 4096) {
|
399
|
|
- dh = local_dh_4096;
|
400
|
|
- }
|
401
|
|
- else if (keylen >= 2048) {
|
402
|
|
-@@ -1643,10 +1516,6 @@ int ssl_sock_prepare_ctx(struct bind_conf *bind_conf, SSL_CTX *ctx, struct proxy
|
403
|
|
- if (local_dh_4096 == NULL) {
|
404
|
|
- local_dh_4096 = ssl_get_dh_4096();
|
405
|
|
- }
|
406
|
|
-- if (global.tune.ssl_default_dh_param >= 8192 &&
|
407
|
|
-- local_dh_8192 == NULL) {
|
408
|
|
-- local_dh_8192 = ssl_get_dh_8192();
|
409
|
|
-- }
|
410
|
|
- }
|
411
|
|
- }
|
412
|
|
- }
|
413
|
|
-@@ -4753,11 +4622,6 @@ static void __ssl_sock_deinit(void)
|
414
|
|
- DH_free(local_dh_4096);
|
415
|
|
- local_dh_4096 = NULL;
|
416
|
|
- }
|
417
|
|
--
|
418
|
|
-- if (local_dh_8192) {
|
419
|
|
-- DH_free(local_dh_8192);
|
420
|
|
-- local_dh_8192 = NULL;
|
421
|
|
-- }
|
422
|
|
- #endif
|
423
|
|
-
|
424
|
|
- ERR_remove_state(0);
|
425
|
|
-2.3.6
|
426
|
|
-
|