1 /*
2 * Copyright (C) 2016 Red Hat, Inc.
3 *
4 * Author: Nikos Mavrogiannopoulos
5 *
6 * This file is part of GnuTLS.
7 *
8 * The GnuTLS is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; either version 2.1 of
11 * the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>
20 *
21 */
22
23 #include "gnutls_int.h"
24 #include <gnutls/gnutls.h>
25
26 #if defined(ENABLE_DHE) || defined(ENABLE_ANON)
27
28 #include "dh.h"
29
30 static const unsigned char ffdhe_generator = 0x02;
31
32 static const unsigned char ffdhe_params_2048[] = {
33 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
34 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
35 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
36 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
37 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
38 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
39 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
40 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
41 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
42 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
43 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
44 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
45 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
46 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
47 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
48 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
49 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
50 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
51 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
52 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
53 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
54 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
55 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
56 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
57 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
58 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
59 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
60 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
61 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
62 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
63 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
64 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
65 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
66 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
67 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
68 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF,
69 0xFF, 0xFF, 0xFF, 0xFF
70 };
71
72 static const unsigned char ffdhe_q_2048[] = {
73 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
74 0xFF, 0xD6, 0xFC, 0x2A, 0x2C, 0x51, 0x5D,
75 0xA5, 0x4D, 0x57, 0xEE, 0x2B, 0x10, 0x13,
76 0x9E, 0x9E, 0x78, 0xEC, 0x5C, 0xE2, 0xC1,
77 0xE7, 0x16, 0x9B, 0x4A, 0xD4, 0xF0, 0x9B,
78 0x20, 0x8A, 0x32, 0x19, 0xFD, 0xE6, 0x49,
79 0xCE, 0xE7, 0x12, 0x4D, 0x9F, 0x7C, 0xBE,
80 0x97, 0xF1, 0xB1, 0xB1, 0x86, 0x3A, 0xEC,
81 0x7B, 0x40, 0xD9, 0x01, 0x57, 0x62, 0x30,
82 0xBD, 0x69, 0xEF, 0x8F, 0x6A, 0xEA, 0xFE,
83 0xB2, 0xB0, 0x92, 0x19, 0xFA, 0x8F, 0xAF,
84 0x83, 0x37, 0x68, 0x42, 0xB1, 0xB2, 0xAA,
85 0x9E, 0xF6, 0x8D, 0x79, 0xDA, 0xAB, 0x89,
86 0xAF, 0x3F, 0xAB, 0xE4, 0x9A, 0xCC, 0x27,
87 0x86, 0x38, 0x70, 0x73, 0x45, 0xBB, 0xF1,
88 0x53, 0x44, 0xED, 0x79, 0xF7, 0xF4, 0x39,
89 0x0E, 0xF8, 0xAC, 0x50, 0x9B, 0x56, 0xF3,
90 0x9A, 0x98, 0x56, 0x65, 0x27, 0xA4, 0x1D,
91 0x3C, 0xBD, 0x5E, 0x05, 0x58, 0xC1, 0x59,
92 0x92, 0x7D, 0xB0, 0xE8, 0x84, 0x54, 0xA5,
93 0xD9, 0x64, 0x71, 0xFD, 0xDC, 0xB5, 0x6D,
94 0x5B, 0xB0, 0x6B, 0xFA, 0x34, 0x0E, 0xA7,
95 0xA1, 0x51, 0xEF, 0x1C, 0xA6, 0xFA, 0x57,
96 0x2B, 0x76, 0xF3, 0xB1, 0xB9, 0x5D, 0x8C,
97 0x85, 0x83, 0xD3, 0xE4, 0x77, 0x05, 0x36,
98 0xB8, 0x4F, 0x01, 0x7E, 0x70, 0xE6, 0xFB,
99 0xF1, 0x76, 0x60, 0x1A, 0x02, 0x66, 0x94,
100 0x1A, 0x17, 0xB0, 0xC8, 0xB9, 0x7F, 0x4E,
101 0x74, 0xC2, 0xC1, 0xFF, 0xC7, 0x27, 0x89,
102 0x19, 0x77, 0x79, 0x40, 0xC1, 0xE1, 0xFF,
103 0x1D, 0x8D, 0xA6, 0x37, 0xD6, 0xB9, 0x9D,
104 0xDA, 0xFE, 0x5E, 0x17, 0x61, 0x10, 0x02,
105 0xE2, 0xC7, 0x78, 0xC1, 0xBE, 0x8B, 0x41,
106 0xD9, 0x63, 0x79, 0xA5, 0x13, 0x60, 0xD9,
107 0x77, 0xFD, 0x44, 0x35, 0xA1, 0x1C, 0x30,
108 0x94, 0x2E, 0x4B, 0xFF, 0xFF, 0xFF, 0xFF,
109 0xFF, 0xFF, 0xFF, 0xFF
110 };
111
112 const gnutls_datum_t gnutls_ffdhe_2048_group_prime = {
113 (void *) ffdhe_params_2048, sizeof(ffdhe_params_2048)
114 };
115 const gnutls_datum_t gnutls_ffdhe_2048_group_q = {
116 (void *) ffdhe_q_2048, sizeof(ffdhe_q_2048)
117 };
118 const gnutls_datum_t gnutls_ffdhe_2048_group_generator = {
119 (void *) &ffdhe_generator, sizeof(ffdhe_generator)
120 };
121 const unsigned int gnutls_ffdhe_2048_key_bits = 256;
122
123 static const unsigned char ffdhe_params_3072[] = {
124 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
125 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
126 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
127 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
128 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
129 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
130 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
131 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
132 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
133 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
134 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
135 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
136 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
137 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
138 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
139 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
140 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
141 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
142 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
143 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
144 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
145 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
146 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
147 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
148 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
149 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
150 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
151 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
152 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
153 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
154 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
155 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
156 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
157 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
158 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
159 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
160 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
161 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
162 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
163 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
164 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
165 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
166 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
167 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
168 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
169 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
170 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
171 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
172 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
173 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
174 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
175 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
176 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
177 0x2B, 0x66, 0xC6, 0x2E, 0x37, 0xFF, 0xFF,
178 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
179 };
180
181 static const unsigned char ffdhe_q_3072[] = {
182 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
183 0xFF, 0xD6, 0xFC, 0x2A, 0x2C, 0x51, 0x5D,
184 0xA5, 0x4D, 0x57, 0xEE, 0x2B, 0x10, 0x13,
185 0x9E, 0x9E, 0x78, 0xEC, 0x5C, 0xE2, 0xC1,
186 0xE7, 0x16, 0x9B, 0x4A, 0xD4, 0xF0, 0x9B,
187 0x20, 0x8A, 0x32, 0x19, 0xFD, 0xE6, 0x49,
188 0xCE, 0xE7, 0x12, 0x4D, 0x9F, 0x7C, 0xBE,
189 0x97, 0xF1, 0xB1, 0xB1, 0x86, 0x3A, 0xEC,
190 0x7B, 0x40, 0xD9, 0x01, 0x57, 0x62, 0x30,
191 0xBD, 0x69, 0xEF, 0x8F, 0x6A, 0xEA, 0xFE,
192 0xB2, 0xB0, 0x92, 0x19, 0xFA, 0x8F, 0xAF,
193 0x83, 0x37, 0x68, 0x42, 0xB1, 0xB2, 0xAA,
194 0x9E, 0xF6, 0x8D, 0x79, 0xDA, 0xAB, 0x89,
195 0xAF, 0x3F, 0xAB, 0xE4, 0x9A, 0xCC, 0x27,
196 0x86, 0x38, 0x70, 0x73, 0x45, 0xBB, 0xF1,
197 0x53, 0x44, 0xED, 0x79, 0xF7, 0xF4, 0x39,
198 0x0E, 0xF8, 0xAC, 0x50, 0x9B, 0x56, 0xF3,
199 0x9A, 0x98, 0x56, 0x65, 0x27, 0xA4, 0x1D,
200 0x3C, 0xBD, 0x5E, 0x05, 0x58, 0xC1, 0x59,
201 0x92, 0x7D, 0xB0, 0xE8, 0x84, 0x54, 0xA5,
202 0xD9, 0x64, 0x71, 0xFD, 0xDC, 0xB5, 0x6D,
203 0x5B, 0xB0, 0x6B, 0xFA, 0x34, 0x0E, 0xA7,
204 0xA1, 0x51, 0xEF, 0x1C, 0xA6, 0xFA, 0x57,
205 0x2B, 0x76, 0xF3, 0xB1, 0xB9, 0x5D, 0x8C,
206 0x85, 0x83, 0xD3, 0xE4, 0x77, 0x05, 0x36,
207 0xB8, 0x4F, 0x01, 0x7E, 0x70, 0xE6, 0xFB,
208 0xF1, 0x76, 0x60, 0x1A, 0x02, 0x66, 0x94,
209 0x1A, 0x17, 0xB0, 0xC8, 0xB9, 0x7F, 0x4E,
210 0x74, 0xC2, 0xC1, 0xFF, 0xC7, 0x27, 0x89,
211 0x19, 0x77, 0x79, 0x40, 0xC1, 0xE1, 0xFF,
212 0x1D, 0x8D, 0xA6, 0x37, 0xD6, 0xB9, 0x9D,
213 0xDA, 0xFE, 0x5E, 0x17, 0x61, 0x10, 0x02,
214 0xE2, 0xC7, 0x78, 0xC1, 0xBE, 0x8B, 0x41,
215 0xD9, 0x63, 0x79, 0xA5, 0x13, 0x60, 0xD9,
216 0x77, 0xFD, 0x44, 0x35, 0xA1, 0x1C, 0x30,
217 0x8F, 0xE7, 0xEE, 0x6F, 0x1A, 0xAD, 0x9D,
218 0xB2, 0x8C, 0x81, 0xAD, 0xDE, 0x1A, 0x7A,
219 0x6F, 0x7C, 0xCE, 0x01, 0x1C, 0x30, 0xDA,
220 0x37, 0xE4, 0xEB, 0x73, 0x64, 0x83, 0xBD,
221 0x6C, 0x8E, 0x93, 0x48, 0xFB, 0xFB, 0xF7,
222 0x2C, 0xC6, 0x58, 0x7D, 0x60, 0xC3, 0x6C,
223 0x8E, 0x57, 0x7F, 0x09, 0x84, 0xC2, 0x89,
224 0xC9, 0x38, 0x5A, 0x09, 0x86, 0x49, 0xDE,
225 0x21, 0xBC, 0xA2, 0x7A, 0x7E, 0xA2, 0x29,
226 0x71, 0x6B, 0xA6, 0xE9, 0xB2, 0x79, 0x71,
227 0x0F, 0x38, 0xFA, 0xA5, 0xFF, 0xAE, 0x57,
228 0x41, 0x55, 0xCE, 0x4E, 0xFB, 0x4F, 0x74,
229 0x36, 0x95, 0xE2, 0x91, 0x1B, 0x1D, 0x06,
230 0xD5, 0xE2, 0x90, 0xCB, 0xCD, 0x86, 0xF5,
231 0x6D, 0x0E, 0xDF, 0xCD, 0x21, 0x6A, 0xE2,
232 0x24, 0x27, 0x05, 0x5E, 0x68, 0x35, 0xFD,
233 0x29, 0xEE, 0xF7, 0x9E, 0x0D, 0x90, 0x77,
234 0x1F, 0xEA, 0xCE, 0xBE, 0x12, 0xF2, 0x0E,
235 0x95, 0xB3, 0x63, 0x17, 0x1B, 0xFF, 0xFF,
236 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
237 };
238
239 const gnutls_datum_t gnutls_ffdhe_3072_group_prime = {
240 (void *) ffdhe_params_3072, sizeof(ffdhe_params_3072)
241 };
242 const gnutls_datum_t gnutls_ffdhe_3072_group_q = {
243 (void *) ffdhe_q_3072, sizeof(ffdhe_q_3072)
244 };
245 const gnutls_datum_t gnutls_ffdhe_3072_group_generator = {
246 (void *) &ffdhe_generator, sizeof(ffdhe_generator)
247 };
248 const unsigned int gnutls_ffdhe_3072_key_bits = 276;
249
250 static const unsigned char ffdhe_params_4096[] = {
251 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
252 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
253 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
254 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
255 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
256 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
257 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
258 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
259 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
260 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
261 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
262 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
263 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
264 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
265 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
266 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
267 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
268 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
269 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
270 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
271 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
272 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
273 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
274 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
275 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
276 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
277 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
278 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
279 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
280 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
281 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
282 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
283 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
284 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
285 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
286 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
287 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
288 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
289 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
290 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
291 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
292 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
293 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
294 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
295 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
296 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
297 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
298 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
299 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
300 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
301 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
302 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
303 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
304 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
305 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
306 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
307 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
308 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
309 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
310 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
311 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
312 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
313 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
314 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
315 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
316 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
317 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
318 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
319 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
320 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
321 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
322 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A,
323 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
324 0xFF
325 };
326
327 static const unsigned char ffdhe_q_4096[] = {
328 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
329 0xFF, 0xD6, 0xFC, 0x2A, 0x2C, 0x51, 0x5D,
330 0xA5, 0x4D, 0x57, 0xEE, 0x2B, 0x10, 0x13,
331 0x9E, 0x9E, 0x78, 0xEC, 0x5C, 0xE2, 0xC1,
332 0xE7, 0x16, 0x9B, 0x4A, 0xD4, 0xF0, 0x9B,
333 0x20, 0x8A, 0x32, 0x19, 0xFD, 0xE6, 0x49,
334 0xCE, 0xE7, 0x12, 0x4D, 0x9F, 0x7C, 0xBE,
335 0x97, 0xF1, 0xB1, 0xB1, 0x86, 0x3A, 0xEC,
336 0x7B, 0x40, 0xD9, 0x01, 0x57, 0x62, 0x30,
337 0xBD, 0x69, 0xEF, 0x8F, 0x6A, 0xEA, 0xFE,
338 0xB2, 0xB0, 0x92, 0x19, 0xFA, 0x8F, 0xAF,
339 0x83, 0x37, 0x68, 0x42, 0xB1, 0xB2, 0xAA,
340 0x9E, 0xF6, 0x8D, 0x79, 0xDA, 0xAB, 0x89,
341 0xAF, 0x3F, 0xAB, 0xE4, 0x9A, 0xCC, 0x27,
342 0x86, 0x38, 0x70, 0x73, 0x45, 0xBB, 0xF1,
343 0x53, 0x44, 0xED, 0x79, 0xF7, 0xF4, 0x39,
344 0x0E, 0xF8, 0xAC, 0x50, 0x9B, 0x56, 0xF3,
345 0x9A, 0x98, 0x56, 0x65, 0x27, 0xA4, 0x1D,
346 0x3C, 0xBD, 0x5E, 0x05, 0x58, 0xC1, 0x59,
347 0x92, 0x7D, 0xB0, 0xE8, 0x84, 0x54, 0xA5,
348 0xD9, 0x64, 0x71, 0xFD, 0xDC, 0xB5, 0x6D,
349 0x5B, 0xB0, 0x6B, 0xFA, 0x34, 0x0E, 0xA7,
350 0xA1, 0x51, 0xEF, 0x1C, 0xA6, 0xFA, 0x57,
351 0x2B, 0x76, 0xF3, 0xB1, 0xB9, 0x5D, 0x8C,
352 0x85, 0x83, 0xD3, 0xE4, 0x77, 0x05, 0x36,
353 0xB8, 0x4F, 0x01, 0x7E, 0x70, 0xE6, 0xFB,
354 0xF1, 0x76, 0x60, 0x1A, 0x02, 0x66, 0x94,
355 0x1A, 0x17, 0xB0, 0xC8, 0xB9, 0x7F, 0x4E,
356 0x74, 0xC2, 0xC1, 0xFF, 0xC7, 0x27, 0x89,
357 0x19, 0x77, 0x79, 0x40, 0xC1, 0xE1, 0xFF,
358 0x1D, 0x8D, 0xA6, 0x37, 0xD6, 0xB9, 0x9D,
359 0xDA, 0xFE, 0x5E, 0x17, 0x61, 0x10, 0x02,
360 0xE2, 0xC7, 0x78, 0xC1, 0xBE, 0x8B, 0x41,
361 0xD9, 0x63, 0x79, 0xA5, 0x13, 0x60, 0xD9,
362 0x77, 0xFD, 0x44, 0x35, 0xA1, 0x1C, 0x30,
363 0x8F, 0xE7, 0xEE, 0x6F, 0x1A, 0xAD, 0x9D,
364 0xB2, 0x8C, 0x81, 0xAD, 0xDE, 0x1A, 0x7A,
365 0x6F, 0x7C, 0xCE, 0x01, 0x1C, 0x30, 0xDA,
366 0x37, 0xE4, 0xEB, 0x73, 0x64, 0x83, 0xBD,
367 0x6C, 0x8E, 0x93, 0x48, 0xFB, 0xFB, 0xF7,
368 0x2C, 0xC6, 0x58, 0x7D, 0x60, 0xC3, 0x6C,
369 0x8E, 0x57, 0x7F, 0x09, 0x84, 0xC2, 0x89,
370 0xC9, 0x38, 0x5A, 0x09, 0x86, 0x49, 0xDE,
371 0x21, 0xBC, 0xA2, 0x7A, 0x7E, 0xA2, 0x29,
372 0x71, 0x6B, 0xA6, 0xE9, 0xB2, 0x79, 0x71,
373 0x0F, 0x38, 0xFA, 0xA5, 0xFF, 0xAE, 0x57,
374 0x41, 0x55, 0xCE, 0x4E, 0xFB, 0x4F, 0x74,
375 0x36, 0x95, 0xE2, 0x91, 0x1B, 0x1D, 0x06,
376 0xD5, 0xE2, 0x90, 0xCB, 0xCD, 0x86, 0xF5,
377 0x6D, 0x0E, 0xDF, 0xCD, 0x21, 0x6A, 0xE2,
378 0x24, 0x27, 0x05, 0x5E, 0x68, 0x35, 0xFD,
379 0x29, 0xEE, 0xF7, 0x9E, 0x0D, 0x90, 0x77,
380 0x1F, 0xEA, 0xCE, 0xBE, 0x12, 0xF2, 0x0E,
381 0x95, 0xB3, 0x4F, 0x0F, 0x78, 0xB7, 0x37,
382 0xA9, 0x61, 0x8B, 0x26, 0xFA, 0x7D, 0xBC,
383 0x98, 0x74, 0xF2, 0x72, 0xC4, 0x2B, 0xDB,
384 0x56, 0x3E, 0xAF, 0xA1, 0x6B, 0x4F, 0xB6,
385 0x8C, 0x3B, 0xB1, 0xE7, 0x8E, 0xAA, 0x81,
386 0xA0, 0x02, 0x43, 0xFA, 0xAD, 0xD2, 0xBF,
387 0x18, 0xE6, 0x3D, 0x38, 0x9A, 0xE4, 0x43,
388 0x77, 0xDA, 0x18, 0xC5, 0x76, 0xB5, 0x0F,
389 0x00, 0x96, 0xCF, 0x34, 0x19, 0x54, 0x83,
390 0xB0, 0x05, 0x48, 0xC0, 0x98, 0x62, 0x36,
391 0xE3, 0xBC, 0x7C, 0xB8, 0xD6, 0x80, 0x1C,
392 0x04, 0x94, 0xCC, 0xD1, 0x99, 0xE5, 0xC5,
393 0xBD, 0x0D, 0x0E, 0xDC, 0x9E, 0xB8, 0xA0,
394 0x00, 0x1E, 0x15, 0x27, 0x67, 0x54, 0xFC,
395 0xC6, 0x85, 0x66, 0x05, 0x41, 0x48, 0xE6,
396 0xE7, 0x64, 0xBE, 0xE7, 0xC7, 0x64, 0xDA,
397 0xAD, 0x3F, 0xC4, 0x52, 0x35, 0xA6, 0xDA,
398 0xD4, 0x28, 0xFA, 0x20, 0xC1, 0x70, 0xE3,
399 0x45, 0x00, 0x3F, 0x2F, 0x32, 0xAF, 0xB5,
400 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
401 0xFF
402 };
403
404 const gnutls_datum_t gnutls_ffdhe_4096_group_prime = {
405 (void *) ffdhe_params_4096, sizeof(ffdhe_params_4096)
406 };
407 const gnutls_datum_t gnutls_ffdhe_4096_group_q = {
408 (void *) ffdhe_q_4096, sizeof(ffdhe_q_4096)
409 };
410 const gnutls_datum_t gnutls_ffdhe_4096_group_generator = {
411 (void *) &ffdhe_generator, sizeof(ffdhe_generator)
412 };
413 const unsigned int gnutls_ffdhe_4096_key_bits = 336;
414
415 static const unsigned char ffdhe_params_6144[] = {
416 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
417 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
418 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
419 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
420 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
421 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
422 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
423 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
424 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
425 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
426 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
427 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
428 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
429 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
430 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
431 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
432 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
433 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
434 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
435 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
436 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
437 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
438 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
439 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
440 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
441 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
442 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
443 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
444 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
445 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
446 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
447 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
448 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
449 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
450 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
451 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
452 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
453 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
454 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
455 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
456 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
457 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
458 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
459 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
460 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
461 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
462 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
463 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
464 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
465 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
466 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
467 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
468 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
469 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
470 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
471 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
472 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
473 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
474 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
475 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
476 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
477 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
478 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
479 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
480 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
481 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
482 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
483 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
484 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
485 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
486 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
487 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
488 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C,
489 0x7A, 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53,
490 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA,
491 0xF5, 0x3E, 0xA6, 0x3B, 0xB4, 0x54, 0x32,
492 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD,
493 0x64, 0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E,
494 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, 0xCD,
495 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71,
496 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04,
497 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD,
498 0xB4, 0x77, 0xA5, 0x24, 0x71, 0xF7, 0xA9,
499 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
500 0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0,
501 0x92, 0x35, 0x05, 0x11, 0xE3, 0x0A, 0xBE,
502 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F,
503 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3,
504 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9,
505 0xB4, 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2,
506 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E, 0x77,
507 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23,
508 0x2A, 0x28, 0x1B, 0xF6, 0xB3, 0xA7, 0x39,
509 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8,
510 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, 0xF9,
511 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
512 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F,
513 0x5E, 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62,
514 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8,
515 0x54, 0x33, 0x8A, 0xE4, 0x9F, 0x52, 0x35,
516 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D,
517 0xD5, 0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D,
518 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, 0x5B,
519 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6,
520 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E,
521 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31,
522 0x61, 0xC1, 0xA4, 0x1D, 0x57, 0x0D, 0x79,
523 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
524 0xD0, 0xE4, 0x0E, 0x65, 0xFF, 0xFF, 0xFF,
525 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
526 };
527
528 static const unsigned char ffdhe_q_6144[] = {
529 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
530 0xFF, 0xD6, 0xFC, 0x2A, 0x2C, 0x51, 0x5D,
531 0xA5, 0x4D, 0x57, 0xEE, 0x2B, 0x10, 0x13,
532 0x9E, 0x9E, 0x78, 0xEC, 0x5C, 0xE2, 0xC1,
533 0xE7, 0x16, 0x9B, 0x4A, 0xD4, 0xF0, 0x9B,
534 0x20, 0x8A, 0x32, 0x19, 0xFD, 0xE6, 0x49,
535 0xCE, 0xE7, 0x12, 0x4D, 0x9F, 0x7C, 0xBE,
536 0x97, 0xF1, 0xB1, 0xB1, 0x86, 0x3A, 0xEC,
537 0x7B, 0x40, 0xD9, 0x01, 0x57, 0x62, 0x30,
538 0xBD, 0x69, 0xEF, 0x8F, 0x6A, 0xEA, 0xFE,
539 0xB2, 0xB0, 0x92, 0x19, 0xFA, 0x8F, 0xAF,
540 0x83, 0x37, 0x68, 0x42, 0xB1, 0xB2, 0xAA,
541 0x9E, 0xF6, 0x8D, 0x79, 0xDA, 0xAB, 0x89,
542 0xAF, 0x3F, 0xAB, 0xE4, 0x9A, 0xCC, 0x27,
543 0x86, 0x38, 0x70, 0x73, 0x45, 0xBB, 0xF1,
544 0x53, 0x44, 0xED, 0x79, 0xF7, 0xF4, 0x39,
545 0x0E, 0xF8, 0xAC, 0x50, 0x9B, 0x56, 0xF3,
546 0x9A, 0x98, 0x56, 0x65, 0x27, 0xA4, 0x1D,
547 0x3C, 0xBD, 0x5E, 0x05, 0x58, 0xC1, 0x59,
548 0x92, 0x7D, 0xB0, 0xE8, 0x84, 0x54, 0xA5,
549 0xD9, 0x64, 0x71, 0xFD, 0xDC, 0xB5, 0x6D,
550 0x5B, 0xB0, 0x6B, 0xFA, 0x34, 0x0E, 0xA7,
551 0xA1, 0x51, 0xEF, 0x1C, 0xA6, 0xFA, 0x57,
552 0x2B, 0x76, 0xF3, 0xB1, 0xB9, 0x5D, 0x8C,
553 0x85, 0x83, 0xD3, 0xE4, 0x77, 0x05, 0x36,
554 0xB8, 0x4F, 0x01, 0x7E, 0x70, 0xE6, 0xFB,
555 0xF1, 0x76, 0x60, 0x1A, 0x02, 0x66, 0x94,
556 0x1A, 0x17, 0xB0, 0xC8, 0xB9, 0x7F, 0x4E,
557 0x74, 0xC2, 0xC1, 0xFF, 0xC7, 0x27, 0x89,
558 0x19, 0x77, 0x79, 0x40, 0xC1, 0xE1, 0xFF,
559 0x1D, 0x8D, 0xA6, 0x37, 0xD6, 0xB9, 0x9D,
560 0xDA, 0xFE, 0x5E, 0x17, 0x61, 0x10, 0x02,
561 0xE2, 0xC7, 0x78, 0xC1, 0xBE, 0x8B, 0x41,
562 0xD9, 0x63, 0x79, 0xA5, 0x13, 0x60, 0xD9,
563 0x77, 0xFD, 0x44, 0x35, 0xA1, 0x1C, 0x30,
564 0x8F, 0xE7, 0xEE, 0x6F, 0x1A, 0xAD, 0x9D,
565 0xB2, 0x8C, 0x81, 0xAD, 0xDE, 0x1A, 0x7A,
566 0x6F, 0x7C, 0xCE, 0x01, 0x1C, 0x30, 0xDA,
567 0x37, 0xE4, 0xEB, 0x73, 0x64, 0x83, 0xBD,
568 0x6C, 0x8E, 0x93, 0x48, 0xFB, 0xFB, 0xF7,
569 0x2C, 0xC6, 0x58, 0x7D, 0x60, 0xC3, 0x6C,
570 0x8E, 0x57, 0x7F, 0x09, 0x84, 0xC2, 0x89,
571 0xC9, 0x38, 0x5A, 0x09, 0x86, 0x49, 0xDE,
572 0x21, 0xBC, 0xA2, 0x7A, 0x7E, 0xA2, 0x29,
573 0x71, 0x6B, 0xA6, 0xE9, 0xB2, 0x79, 0x71,
574 0x0F, 0x38, 0xFA, 0xA5, 0xFF, 0xAE, 0x57,
575 0x41, 0x55, 0xCE, 0x4E, 0xFB, 0x4F, 0x74,
576 0x36, 0x95, 0xE2, 0x91, 0x1B, 0x1D, 0x06,
577 0xD5, 0xE2, 0x90, 0xCB, 0xCD, 0x86, 0xF5,
578 0x6D, 0x0E, 0xDF, 0xCD, 0x21, 0x6A, 0xE2,
579 0x24, 0x27, 0x05, 0x5E, 0x68, 0x35, 0xFD,
580 0x29, 0xEE, 0xF7, 0x9E, 0x0D, 0x90, 0x77,
581 0x1F, 0xEA, 0xCE, 0xBE, 0x12, 0xF2, 0x0E,
582 0x95, 0xB3, 0x4F, 0x0F, 0x78, 0xB7, 0x37,
583 0xA9, 0x61, 0x8B, 0x26, 0xFA, 0x7D, 0xBC,
584 0x98, 0x74, 0xF2, 0x72, 0xC4, 0x2B, 0xDB,
585 0x56, 0x3E, 0xAF, 0xA1, 0x6B, 0x4F, 0xB6,
586 0x8C, 0x3B, 0xB1, 0xE7, 0x8E, 0xAA, 0x81,
587 0xA0, 0x02, 0x43, 0xFA, 0xAD, 0xD2, 0xBF,
588 0x18, 0xE6, 0x3D, 0x38, 0x9A, 0xE4, 0x43,
589 0x77, 0xDA, 0x18, 0xC5, 0x76, 0xB5, 0x0F,
590 0x00, 0x96, 0xCF, 0x34, 0x19, 0x54, 0x83,
591 0xB0, 0x05, 0x48, 0xC0, 0x98, 0x62, 0x36,
592 0xE3, 0xBC, 0x7C, 0xB8, 0xD6, 0x80, 0x1C,
593 0x04, 0x94, 0xCC, 0xD1, 0x99, 0xE5, 0xC5,
594 0xBD, 0x0D, 0x0E, 0xDC, 0x9E, 0xB8, 0xA0,
595 0x00, 0x1E, 0x15, 0x27, 0x67, 0x54, 0xFC,
596 0xC6, 0x85, 0x66, 0x05, 0x41, 0x48, 0xE6,
597 0xE7, 0x64, 0xBE, 0xE7, 0xC7, 0x64, 0xDA,
598 0xAD, 0x3F, 0xC4, 0x52, 0x35, 0xA6, 0xDA,
599 0xD4, 0x28, 0xFA, 0x20, 0xC1, 0x70, 0xE3,
600 0x45, 0x00, 0x3F, 0x2F, 0x06, 0xEC, 0x81,
601 0x05, 0xFE, 0xB2, 0x5B, 0x22, 0x81, 0xB6,
602 0x3D, 0x27, 0x33, 0xBE, 0x96, 0x1C, 0x29,
603 0x95, 0x1D, 0x11, 0xDD, 0x22, 0x21, 0x65,
604 0x7A, 0x9F, 0x53, 0x1D, 0xDA, 0x2A, 0x19,
605 0x4D, 0xBB, 0x12, 0x64, 0x48, 0xBD, 0xEE,
606 0xB2, 0x58, 0xE0, 0x7E, 0xA6, 0x59, 0xC7,
607 0x46, 0x19, 0xA6, 0x38, 0x0E, 0x1D, 0x66,
608 0xD6, 0x83, 0x2B, 0xFE, 0x67, 0xF6, 0x38,
609 0xCD, 0x8F, 0xAE, 0x1F, 0x27, 0x23, 0x02,
610 0x0F, 0x9C, 0x40, 0xA3, 0xFD, 0xA6, 0x7E,
611 0xDA, 0x3B, 0xD2, 0x92, 0x38, 0xFB, 0xD4,
612 0xD4, 0xB4, 0x88, 0x5C, 0x2A, 0x99, 0x17,
613 0x6D, 0xB1, 0xA0, 0x6C, 0x50, 0x07, 0x78,
614 0x49, 0x1A, 0x82, 0x88, 0xF1, 0x85, 0x5F,
615 0x60, 0xFF, 0xFC, 0xF1, 0xD1, 0x37, 0x3F,
616 0xD9, 0x4F, 0xC6, 0x0C, 0x18, 0x11, 0xE1,
617 0xAC, 0x3F, 0x1C, 0x6D, 0x00, 0x3B, 0xEC,
618 0xDA, 0x3B, 0x1F, 0x27, 0x25, 0xCA, 0x59,
619 0x5D, 0xE0, 0xCA, 0x63, 0x32, 0x8F, 0x3B,
620 0xE5, 0x7C, 0xC9, 0x77, 0x55, 0x60, 0x11,
621 0x95, 0x14, 0x0D, 0xFB, 0x59, 0xD3, 0x9C,
622 0xE0, 0x91, 0x30, 0x8B, 0x41, 0x05, 0x74,
623 0x6D, 0xAC, 0x23, 0xD3, 0x3E, 0x5F, 0x7C,
624 0xE4, 0x84, 0x8D, 0xA3, 0x16, 0xA9, 0xC6,
625 0x6B, 0x95, 0x81, 0xBA, 0x35, 0x73, 0xBF,
626 0xAF, 0x31, 0x14, 0x96, 0x18, 0x8A, 0xB1,
627 0x54, 0x23, 0x28, 0x2E, 0xE4, 0x16, 0xDC,
628 0x2A, 0x19, 0xC5, 0x72, 0x4F, 0xA9, 0x1A,
629 0xE4, 0xAD, 0xC8, 0x8B, 0xC6, 0x67, 0x96,
630 0xEA, 0xE5, 0x67, 0x7A, 0x01, 0xF6, 0x4E,
631 0x8C, 0x08, 0x63, 0x13, 0x95, 0x82, 0x2D,
632 0x9D, 0xB8, 0xFC, 0xEE, 0x35, 0xC0, 0x6B,
633 0x1F, 0xEE, 0xA5, 0x47, 0x4D, 0x6D, 0x8F,
634 0x34, 0xB1, 0x53, 0x4A, 0x93, 0x6A, 0x18,
635 0xB0, 0xE0, 0xD2, 0x0E, 0xAB, 0x86, 0xBC,
636 0x9C, 0x6D, 0x6A, 0x52, 0x07, 0x19, 0x4E,
637 0x68, 0x72, 0x07, 0x32, 0xFF, 0xFF, 0xFF,
638 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
639 };
640
641 const gnutls_datum_t gnutls_ffdhe_6144_group_prime = {
642 (void *) ffdhe_params_6144, sizeof(ffdhe_params_6144)
643 };
644 const gnutls_datum_t gnutls_ffdhe_6144_group_q = {
645 (void *) ffdhe_q_6144, sizeof(ffdhe_q_6144)
646 };
647 const gnutls_datum_t gnutls_ffdhe_6144_group_generator = {
648 (void *) &ffdhe_generator, sizeof(ffdhe_generator)
649 };
650 const unsigned int gnutls_ffdhe_6144_key_bits = 376;
651
652 static const unsigned char ffdhe_params_8192[] = {
653 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
654 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
655 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
656 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
657 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
658 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
659 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
660 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
661 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
662 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
663 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
664 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
665 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
666 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
667 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
668 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
669 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
670 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
671 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
672 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
673 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
674 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
675 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
676 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
677 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
678 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
679 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
680 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
681 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
682 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
683 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
684 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
685 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
686 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
687 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
688 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
689 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
690 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
691 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
692 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
693 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
694 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
695 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
696 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
697 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
698 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
699 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
700 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
701 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
702 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
703 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
704 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
705 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
706 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
707 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
708 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
709 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
710 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
711 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
712 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
713 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
714 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
715 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
716 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
717 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
718 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
719 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
720 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
721 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
722 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
723 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
724 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
725 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C,
726 0x7A, 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53,
727 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA,
728 0xF5, 0x3E, 0xA6, 0x3B, 0xB4, 0x54, 0x32,
729 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD,
730 0x64, 0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E,
731 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, 0xCD,
732 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71,
733 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04,
734 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD,
735 0xB4, 0x77, 0xA5, 0x24, 0x71, 0xF7, 0xA9,
736 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
737 0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0,
738 0x92, 0x35, 0x05, 0x11, 0xE3, 0x0A, 0xBE,
739 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F,
740 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3,
741 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9,
742 0xB4, 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2,
743 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E, 0x77,
744 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23,
745 0x2A, 0x28, 0x1B, 0xF6, 0xB3, 0xA7, 0x39,
746 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8,
747 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, 0xF9,
748 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
749 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F,
750 0x5E, 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62,
751 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8,
752 0x54, 0x33, 0x8A, 0xE4, 0x9F, 0x52, 0x35,
753 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D,
754 0xD5, 0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D,
755 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, 0x5B,
756 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6,
757 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E,
758 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31,
759 0x61, 0xC1, 0xA4, 0x1D, 0x57, 0x0D, 0x79,
760 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
761 0xCF, 0xF4, 0x6A, 0xAA, 0x36, 0xAD, 0x00,
762 0x4C, 0xF6, 0x00, 0xC8, 0x38, 0x1E, 0x42,
763 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, 0xFD,
764 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43,
765 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC,
766 0x5E, 0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B,
767 0x10, 0xEF, 0x86, 0xB6, 0x31, 0x42, 0xA3,
768 0xAB, 0x88, 0x29, 0x55, 0x5B, 0x2F, 0x74,
769 0x7C, 0x93, 0x26, 0x65, 0xCB, 0x2C, 0x0F,
770 0x1C, 0xC0, 0x1B, 0xD7, 0x02, 0x29, 0x38,
771 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, 0x54,
772 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82,
773 0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F,
774 0x5C, 0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD,
775 0x82, 0x51, 0x54, 0x1F, 0xC6, 0x8C, 0x9C,
776 0x86, 0xB0, 0x22, 0xBB, 0x70, 0x99, 0x87,
777 0x6A, 0x46, 0x0E, 0x74, 0x51, 0xA8, 0xA9,
778 0x31, 0x09, 0x70, 0x3F, 0xEE, 0x1C, 0x21,
779 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, 0x51,
780 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC,
781 0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21,
782 0x7B, 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A,
783 0x95, 0xF9, 0xD5, 0xB8, 0x01, 0x94, 0x88,
784 0xD9, 0xC0, 0xA0, 0xA1, 0xFE, 0x30, 0x75,
785 0xA5, 0x77, 0xE2, 0x31, 0x83, 0xF8, 0x1D,
786 0x4A, 0x3F, 0x2F, 0xA4, 0x57, 0x1E, 0xFC,
787 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, 0xB6,
788 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E,
789 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A,
790 0x30, 0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71,
791 0xA8, 0x7E, 0x2F, 0x74, 0x1E, 0xF8, 0xC1,
792 0xFE, 0x86, 0xFE, 0xA6, 0xBB, 0xFD, 0xE5,
793 0x30, 0x67, 0x7F, 0x0D, 0x97, 0xD1, 0x1D,
794 0x49, 0xF7, 0xA8, 0x44, 0x3D, 0x08, 0x22,
795 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, 0x01,
796 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C,
797 0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42,
798 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
799 0xFF, 0xFF
800 };
801
802 static const unsigned char ffdhe_q_8192[] = {
803 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
804 0xFF, 0xD6, 0xFC, 0x2A, 0x2C, 0x51, 0x5D,
805 0xA5, 0x4D, 0x57, 0xEE, 0x2B, 0x10, 0x13,
806 0x9E, 0x9E, 0x78, 0xEC, 0x5C, 0xE2, 0xC1,
807 0xE7, 0x16, 0x9B, 0x4A, 0xD4, 0xF0, 0x9B,
808 0x20, 0x8A, 0x32, 0x19, 0xFD, 0xE6, 0x49,
809 0xCE, 0xE7, 0x12, 0x4D, 0x9F, 0x7C, 0xBE,
810 0x97, 0xF1, 0xB1, 0xB1, 0x86, 0x3A, 0xEC,
811 0x7B, 0x40, 0xD9, 0x01, 0x57, 0x62, 0x30,
812 0xBD, 0x69, 0xEF, 0x8F, 0x6A, 0xEA, 0xFE,
813 0xB2, 0xB0, 0x92, 0x19, 0xFA, 0x8F, 0xAF,
814 0x83, 0x37, 0x68, 0x42, 0xB1, 0xB2, 0xAA,
815 0x9E, 0xF6, 0x8D, 0x79, 0xDA, 0xAB, 0x89,
816 0xAF, 0x3F, 0xAB, 0xE4, 0x9A, 0xCC, 0x27,
817 0x86, 0x38, 0x70, 0x73, 0x45, 0xBB, 0xF1,
818 0x53, 0x44, 0xED, 0x79, 0xF7, 0xF4, 0x39,
819 0x0E, 0xF8, 0xAC, 0x50, 0x9B, 0x56, 0xF3,
820 0x9A, 0x98, 0x56, 0x65, 0x27, 0xA4, 0x1D,
821 0x3C, 0xBD, 0x5E, 0x05, 0x58, 0xC1, 0x59,
822 0x92, 0x7D, 0xB0, 0xE8, 0x84, 0x54, 0xA5,
823 0xD9, 0x64, 0x71, 0xFD, 0xDC, 0xB5, 0x6D,
824 0x5B, 0xB0, 0x6B, 0xFA, 0x34, 0x0E, 0xA7,
825 0xA1, 0x51, 0xEF, 0x1C, 0xA6, 0xFA, 0x57,
826 0x2B, 0x76, 0xF3, 0xB1, 0xB9, 0x5D, 0x8C,
827 0x85, 0x83, 0xD3, 0xE4, 0x77, 0x05, 0x36,
828 0xB8, 0x4F, 0x01, 0x7E, 0x70, 0xE6, 0xFB,
829 0xF1, 0x76, 0x60, 0x1A, 0x02, 0x66, 0x94,
830 0x1A, 0x17, 0xB0, 0xC8, 0xB9, 0x7F, 0x4E,
831 0x74, 0xC2, 0xC1, 0xFF, 0xC7, 0x27, 0x89,
832 0x19, 0x77, 0x79, 0x40, 0xC1, 0xE1, 0xFF,
833 0x1D, 0x8D, 0xA6, 0x37, 0xD6, 0xB9, 0x9D,
834 0xDA, 0xFE, 0x5E, 0x17, 0x61, 0x10, 0x02,
835 0xE2, 0xC7, 0x78, 0xC1, 0xBE, 0x8B, 0x41,
836 0xD9, 0x63, 0x79, 0xA5, 0x13, 0x60, 0xD9,
837 0x77, 0xFD, 0x44, 0x35, 0xA1, 0x1C, 0x30,
838 0x8F, 0xE7, 0xEE, 0x6F, 0x1A, 0xAD, 0x9D,
839 0xB2, 0x8C, 0x81, 0xAD, 0xDE, 0x1A, 0x7A,
840 0x6F, 0x7C, 0xCE, 0x01, 0x1C, 0x30, 0xDA,
841 0x37, 0xE4, 0xEB, 0x73, 0x64, 0x83, 0xBD,
842 0x6C, 0x8E, 0x93, 0x48, 0xFB, 0xFB, 0xF7,
843 0x2C, 0xC6, 0x58, 0x7D, 0x60, 0xC3, 0x6C,
844 0x8E, 0x57, 0x7F, 0x09, 0x84, 0xC2, 0x89,
845 0xC9, 0x38, 0x5A, 0x09, 0x86, 0x49, 0xDE,
846 0x21, 0xBC, 0xA2, 0x7A, 0x7E, 0xA2, 0x29,
847 0x71, 0x6B, 0xA6, 0xE9, 0xB2, 0x79, 0x71,
848 0x0F, 0x38, 0xFA, 0xA5, 0xFF, 0xAE, 0x57,
849 0x41, 0x55, 0xCE, 0x4E, 0xFB, 0x4F, 0x74,
850 0x36, 0x95, 0xE2, 0x91, 0x1B, 0x1D, 0x06,
851 0xD5, 0xE2, 0x90, 0xCB, 0xCD, 0x86, 0xF5,
852 0x6D, 0x0E, 0xDF, 0xCD, 0x21, 0x6A, 0xE2,
853 0x24, 0x27, 0x05, 0x5E, 0x68, 0x35, 0xFD,
854 0x29, 0xEE, 0xF7, 0x9E, 0x0D, 0x90, 0x77,
855 0x1F, 0xEA, 0xCE, 0xBE, 0x12, 0xF2, 0x0E,
856 0x95, 0xB3, 0x4F, 0x0F, 0x78, 0xB7, 0x37,
857 0xA9, 0x61, 0x8B, 0x26, 0xFA, 0x7D, 0xBC,
858 0x98, 0x74, 0xF2, 0x72, 0xC4, 0x2B, 0xDB,
859 0x56, 0x3E, 0xAF, 0xA1, 0x6B, 0x4F, 0xB6,
860 0x8C, 0x3B, 0xB1, 0xE7, 0x8E, 0xAA, 0x81,
861 0xA0, 0x02, 0x43, 0xFA, 0xAD, 0xD2, 0xBF,
862 0x18, 0xE6, 0x3D, 0x38, 0x9A, 0xE4, 0x43,
863 0x77, 0xDA, 0x18, 0xC5, 0x76, 0xB5, 0x0F,
864 0x00, 0x96, 0xCF, 0x34, 0x19, 0x54, 0x83,
865 0xB0, 0x05, 0x48, 0xC0, 0x98, 0x62, 0x36,
866 0xE3, 0xBC, 0x7C, 0xB8, 0xD6, 0x80, 0x1C,
867 0x04, 0x94, 0xCC, 0xD1, 0x99, 0xE5, 0xC5,
868 0xBD, 0x0D, 0x0E, 0xDC, 0x9E, 0xB8, 0xA0,
869 0x00, 0x1E, 0x15, 0x27, 0x67, 0x54, 0xFC,
870 0xC6, 0x85, 0x66, 0x05, 0x41, 0x48, 0xE6,
871 0xE7, 0x64, 0xBE, 0xE7, 0xC7, 0x64, 0xDA,
872 0xAD, 0x3F, 0xC4, 0x52, 0x35, 0xA6, 0xDA,
873 0xD4, 0x28, 0xFA, 0x20, 0xC1, 0x70, 0xE3,
874 0x45, 0x00, 0x3F, 0x2F, 0x06, 0xEC, 0x81,
875 0x05, 0xFE, 0xB2, 0x5B, 0x22, 0x81, 0xB6,
876 0x3D, 0x27, 0x33, 0xBE, 0x96, 0x1C, 0x29,
877 0x95, 0x1D, 0x11, 0xDD, 0x22, 0x21, 0x65,
878 0x7A, 0x9F, 0x53, 0x1D, 0xDA, 0x2A, 0x19,
879 0x4D, 0xBB, 0x12, 0x64, 0x48, 0xBD, 0xEE,
880 0xB2, 0x58, 0xE0, 0x7E, 0xA6, 0x59, 0xC7,
881 0x46, 0x19, 0xA6, 0x38, 0x0E, 0x1D, 0x66,
882 0xD6, 0x83, 0x2B, 0xFE, 0x67, 0xF6, 0x38,
883 0xCD, 0x8F, 0xAE, 0x1F, 0x27, 0x23, 0x02,
884 0x0F, 0x9C, 0x40, 0xA3, 0xFD, 0xA6, 0x7E,
885 0xDA, 0x3B, 0xD2, 0x92, 0x38, 0xFB, 0xD4,
886 0xD4, 0xB4, 0x88, 0x5C, 0x2A, 0x99, 0x17,
887 0x6D, 0xB1, 0xA0, 0x6C, 0x50, 0x07, 0x78,
888 0x49, 0x1A, 0x82, 0x88, 0xF1, 0x85, 0x5F,
889 0x60, 0xFF, 0xFC, 0xF1, 0xD1, 0x37, 0x3F,
890 0xD9, 0x4F, 0xC6, 0x0C, 0x18, 0x11, 0xE1,
891 0xAC, 0x3F, 0x1C, 0x6D, 0x00, 0x3B, 0xEC,
892 0xDA, 0x3B, 0x1F, 0x27, 0x25, 0xCA, 0x59,
893 0x5D, 0xE0, 0xCA, 0x63, 0x32, 0x8F, 0x3B,
894 0xE5, 0x7C, 0xC9, 0x77, 0x55, 0x60, 0x11,
895 0x95, 0x14, 0x0D, 0xFB, 0x59, 0xD3, 0x9C,
896 0xE0, 0x91, 0x30, 0x8B, 0x41, 0x05, 0x74,
897 0x6D, 0xAC, 0x23, 0xD3, 0x3E, 0x5F, 0x7C,
898 0xE4, 0x84, 0x8D, 0xA3, 0x16, 0xA9, 0xC6,
899 0x6B, 0x95, 0x81, 0xBA, 0x35, 0x73, 0xBF,
900 0xAF, 0x31, 0x14, 0x96, 0x18, 0x8A, 0xB1,
901 0x54, 0x23, 0x28, 0x2E, 0xE4, 0x16, 0xDC,
902 0x2A, 0x19, 0xC5, 0x72, 0x4F, 0xA9, 0x1A,
903 0xE4, 0xAD, 0xC8, 0x8B, 0xC6, 0x67, 0x96,
904 0xEA, 0xE5, 0x67, 0x7A, 0x01, 0xF6, 0x4E,
905 0x8C, 0x08, 0x63, 0x13, 0x95, 0x82, 0x2D,
906 0x9D, 0xB8, 0xFC, 0xEE, 0x35, 0xC0, 0x6B,
907 0x1F, 0xEE, 0xA5, 0x47, 0x4D, 0x6D, 0x8F,
908 0x34, 0xB1, 0x53, 0x4A, 0x93, 0x6A, 0x18,
909 0xB0, 0xE0, 0xD2, 0x0E, 0xAB, 0x86, 0xBC,
910 0x9C, 0x6D, 0x6A, 0x52, 0x07, 0x19, 0x4E,
911 0x67, 0xFA, 0x35, 0x55, 0x1B, 0x56, 0x80,
912 0x26, 0x7B, 0x00, 0x64, 0x1C, 0x0F, 0x21,
913 0x2D, 0x18, 0xEC, 0xA8, 0xD7, 0x32, 0x7E,
914 0xD9, 0x1F, 0xE7, 0x64, 0xA8, 0x4E, 0xA1,
915 0xB4, 0x3F, 0xF5, 0xB4, 0xF6, 0xE8, 0xE6,
916 0x2F, 0x05, 0xC6, 0x61, 0xDE, 0xFB, 0x25,
917 0x88, 0x77, 0xC3, 0x5B, 0x18, 0xA1, 0x51,
918 0xD5, 0xC4, 0x14, 0xAA, 0xAD, 0x97, 0xBA,
919 0x3E, 0x49, 0x93, 0x32, 0xE5, 0x96, 0x07,
920 0x8E, 0x60, 0x0D, 0xEB, 0x81, 0x14, 0x9C,
921 0x44, 0x1C, 0xE9, 0x57, 0x82, 0xF2, 0x2A,
922 0x28, 0x25, 0x63, 0xC5, 0xBA, 0xC1, 0x41,
923 0x14, 0x23, 0x60, 0x5D, 0x1A, 0xE1, 0xAF,
924 0xAE, 0x2C, 0x8B, 0x06, 0x60, 0x23, 0x7E,
925 0xC1, 0x28, 0xAA, 0x0F, 0xE3, 0x46, 0x4E,
926 0x43, 0x58, 0x11, 0x5D, 0xB8, 0x4C, 0xC3,
927 0xB5, 0x23, 0x07, 0x3A, 0x28, 0xD4, 0x54,
928 0x98, 0x84, 0xB8, 0x1F, 0xF7, 0x0E, 0x10,
929 0xBF, 0x36, 0x1C, 0x13, 0x72, 0x96, 0x28,
930 0xD5, 0x34, 0x8F, 0x07, 0x21, 0x1E, 0x7E,
931 0x4C, 0xF4, 0xF1, 0x8B, 0x28, 0x60, 0x90,
932 0xBD, 0xB1, 0x24, 0x0B, 0x66, 0xD6, 0xCD,
933 0x4A, 0xFC, 0xEA, 0xDC, 0x00, 0xCA, 0x44,
934 0x6C, 0xE0, 0x50, 0x50, 0xFF, 0x18, 0x3A,
935 0xD2, 0xBB, 0xF1, 0x18, 0xC1, 0xFC, 0x0E,
936 0xA5, 0x1F, 0x97, 0xD2, 0x2B, 0x8F, 0x7E,
937 0x46, 0x70, 0x5D, 0x45, 0x27, 0xF4, 0x5B,
938 0x42, 0xAE, 0xFF, 0x39, 0x58, 0x53, 0x37,
939 0x6F, 0x69, 0x7D, 0xD5, 0xFD, 0xF2, 0xC5,
940 0x18, 0x7D, 0x7D, 0x5F, 0x0E, 0x2E, 0xB8,
941 0xD4, 0x3F, 0x17, 0xBA, 0x0F, 0x7C, 0x60,
942 0xFF, 0x43, 0x7F, 0x53, 0x5D, 0xFE, 0xF2,
943 0x98, 0x33, 0xBF, 0x86, 0xCB, 0xE8, 0x8E,
944 0xA4, 0xFB, 0xD4, 0x22, 0x1E, 0x84, 0x11,
945 0x72, 0x83, 0x54, 0xFA, 0x30, 0xA7, 0x00,
946 0x8F, 0x15, 0x4A, 0x41, 0xC7, 0xFC, 0x46,
947 0x6B, 0x46, 0x45, 0xDB, 0xE2, 0xE3, 0x21,
948 0x26, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
949 0xFF, 0xFF
950 };
951
952 const gnutls_datum_t gnutls_ffdhe_8192_group_prime = {
953 (void *) ffdhe_params_8192, sizeof(ffdhe_params_8192)
954 };
955 const gnutls_datum_t gnutls_ffdhe_8192_group_q = {
956 (void *) ffdhe_q_8192, sizeof(ffdhe_q_8192)
957 };
958 const gnutls_datum_t gnutls_ffdhe_8192_group_generator = {
959 (void *) &ffdhe_generator, sizeof(ffdhe_generator)
960 };
961 const unsigned int gnutls_ffdhe_8192_key_bits = 512;
962
963 static const unsigned char modp_generator = 0x02;
964
965 static const unsigned char modp_params_2048[] = {
966 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
967 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68,
968 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80,
969 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08,
970 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
971 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A,
972 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 0xEF,
973 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
974 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
975 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51,
976 0xC2, 0x45, 0xE4, 0x85, 0xB5, 0x76, 0x62,
977 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
978 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C,
979 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38,
980 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE,
981 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
982 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
983 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
984 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C,
985 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8,
986 0xFD, 0x24, 0xCF, 0x5F, 0x83, 0x65, 0x5D,
987 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62,
988 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E,
989 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
990 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98,
991 0x04, 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18,
992 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
993 0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C,
994 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
995 0xA2, 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5,
996 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 0xDE,
997 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
998 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A,
999 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA,
1000 0x05, 0x10, 0x15, 0x72, 0x8E, 0x5A, 0x8A,
1001 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF,
1002 0xFF, 0xFF, 0xFF, 0xFF
1003 };
1004
1005 static const unsigned char modp_q_2048[] = {
1006 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1007 0xFF, 0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4,
1008 0x61, 0x1A, 0x62, 0x63, 0x31, 0x45, 0xC0,
1009 0x6E, 0x0E, 0x68, 0x94, 0x81, 0x27, 0x04,
1010 0x45, 0x33, 0xE6, 0x3A, 0x01, 0x05, 0xDF,
1011 0x53, 0x1D, 0x89, 0xCD, 0x91, 0x28, 0xA5,
1012 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E, 0xF7,
1013 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
1014 0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A,
1015 0x1B, 0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8,
1016 0xE1, 0x22, 0xF2, 0x42, 0xDA, 0xBB, 0x31,
1017 0x2F, 0x3F, 0x63, 0x7A, 0x26, 0x21, 0x74,
1018 0xD3, 0x1B, 0xF6, 0xB5, 0x85, 0xFF, 0xAE,
1019 0x5B, 0x7A, 0x03, 0x5B, 0xF6, 0xF7, 0x1C,
1020 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2, 0xD7,
1021 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
1022 0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D,
1023 0x9E, 0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1,
1024 0xDF, 0x82, 0xCC, 0x6D, 0x24, 0x1B, 0x0E,
1025 0x2A, 0xE9, 0xCD, 0x34, 0x8B, 0x1F, 0xD4,
1026 0x7E, 0x92, 0x67, 0xAF, 0xC1, 0xB2, 0xAE,
1027 0x91, 0xEE, 0x51, 0xD6, 0xCB, 0x0E, 0x31,
1028 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D, 0xCF,
1029 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
1030 0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C,
1031 0x02, 0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C,
1032 0x10, 0xBE, 0x19, 0x48, 0x2F, 0x23, 0x17,
1033 0x1B, 0x67, 0x1D, 0xF1, 0xCF, 0x3B, 0x96,
1034 0x0C, 0x07, 0x43, 0x01, 0xCD, 0x93, 0xC1,
1035 0xD1, 0x76, 0x03, 0xD1, 0x47, 0xDA, 0xE2,
1036 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64, 0xEF,
1037 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
1038 0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5,
1039 0x72, 0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D,
1040 0x02, 0x88, 0x0A, 0xB9, 0x47, 0x2D, 0x45,
1041 0x56, 0x55, 0x34, 0x7F, 0xFF, 0xFF, 0xFF,
1042 0xFF, 0xFF, 0xFF, 0xFF
1043 };
1044
1045 const gnutls_datum_t gnutls_modp_2048_group_prime = {
1046 (void *) modp_params_2048, sizeof(modp_params_2048)
1047 };
1048 const gnutls_datum_t gnutls_modp_2048_group_q = {
1049 (void *) modp_q_2048, sizeof(modp_q_2048)
1050 };
1051 const gnutls_datum_t gnutls_modp_2048_group_generator = {
1052 (void *) &modp_generator, sizeof(modp_generator)
1053 };
1054 const unsigned int gnutls_modp_2048_key_bits = 256;
1055
1056 static const unsigned char modp_params_3072[] = {
1057 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1058 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68,
1059 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80,
1060 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08,
1061 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
1062 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A,
1063 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 0xEF,
1064 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
1065 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
1066 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51,
1067 0xC2, 0x45, 0xE4, 0x85, 0xB5, 0x76, 0x62,
1068 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
1069 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C,
1070 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38,
1071 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE,
1072 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
1073 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
1074 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
1075 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C,
1076 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8,
1077 0xFD, 0x24, 0xCF, 0x5F, 0x83, 0x65, 0x5D,
1078 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62,
1079 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E,
1080 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
1081 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98,
1082 0x04, 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18,
1083 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
1084 0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C,
1085 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
1086 0xA2, 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5,
1087 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 0xDE,
1088 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
1089 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A,
1090 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA,
1091 0x05, 0x10, 0x15, 0x72, 0x8E, 0x5A, 0x8A,
1092 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
1093 0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21,
1094 0xAB, 0xDF, 0x1C, 0xBA, 0x64, 0xEC, 0xFB,
1095 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A,
1096 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
1097 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4,
1098 0xC7, 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09,
1099 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0, 0x4A,
1100 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26,
1101 0x1A, 0xD2, 0xEE, 0x6B, 0xF1, 0x2F, 0xFA,
1102 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76,
1103 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, 0x52,
1104 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
1105 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D,
1106 0x6C, 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9,
1107 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74,
1108 0xE5, 0xAB, 0x31, 0x43, 0xDB, 0x5B, 0xFC,
1109 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1,
1110 0x20, 0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF,
1111 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
1112 };
1113
1114 static const unsigned char modp_q_3072[] = {
1115 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1116 0xFF, 0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4,
1117 0x61, 0x1A, 0x62, 0x63, 0x31, 0x45, 0xC0,
1118 0x6E, 0x0E, 0x68, 0x94, 0x81, 0x27, 0x04,
1119 0x45, 0x33, 0xE6, 0x3A, 0x01, 0x05, 0xDF,
1120 0x53, 0x1D, 0x89, 0xCD, 0x91, 0x28, 0xA5,
1121 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E, 0xF7,
1122 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
1123 0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A,
1124 0x1B, 0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8,
1125 0xE1, 0x22, 0xF2, 0x42, 0xDA, 0xBB, 0x31,
1126 0x2F, 0x3F, 0x63, 0x7A, 0x26, 0x21, 0x74,
1127 0xD3, 0x1B, 0xF6, 0xB5, 0x85, 0xFF, 0xAE,
1128 0x5B, 0x7A, 0x03, 0x5B, 0xF6, 0xF7, 0x1C,
1129 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2, 0xD7,
1130 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
1131 0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D,
1132 0x9E, 0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1,
1133 0xDF, 0x82, 0xCC, 0x6D, 0x24, 0x1B, 0x0E,
1134 0x2A, 0xE9, 0xCD, 0x34, 0x8B, 0x1F, 0xD4,
1135 0x7E, 0x92, 0x67, 0xAF, 0xC1, 0xB2, 0xAE,
1136 0x91, 0xEE, 0x51, 0xD6, 0xCB, 0x0E, 0x31,
1137 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D, 0xCF,
1138 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
1139 0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C,
1140 0x02, 0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C,
1141 0x10, 0xBE, 0x19, 0x48, 0x2F, 0x23, 0x17,
1142 0x1B, 0x67, 0x1D, 0xF1, 0xCF, 0x3B, 0x96,
1143 0x0C, 0x07, 0x43, 0x01, 0xCD, 0x93, 0xC1,
1144 0xD1, 0x76, 0x03, 0xD1, 0x47, 0xDA, 0xE2,
1145 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64, 0xEF,
1146 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
1147 0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5,
1148 0x72, 0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D,
1149 0x02, 0x88, 0x0A, 0xB9, 0x47, 0x2D, 0x45,
1150 0x55, 0x62, 0x16, 0xD6, 0x99, 0x8B, 0x86,
1151 0x82, 0x28, 0x3D, 0x19, 0xD4, 0x2A, 0x90,
1152 0xD5, 0xEF, 0x8E, 0x5D, 0x32, 0x76, 0x7D,
1153 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85, 0x45,
1154 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
1155 0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2,
1156 0x63, 0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84,
1157 0x99, 0xEB, 0x8F, 0x46, 0x4A, 0x70, 0x25,
1158 0x12, 0xB0, 0xCE, 0xE7, 0x71, 0xE9, 0x13,
1159 0x0D, 0x69, 0x77, 0x35, 0xF8, 0x97, 0xFD,
1160 0x03, 0x6C, 0xC5, 0x04, 0x32, 0x6C, 0x3B,
1161 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32, 0x29,
1162 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
1163 0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE,
1164 0xB6, 0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C,
1165 0xA3, 0x71, 0x04, 0x71, 0x27, 0xD0, 0x3A,
1166 0x72, 0xD5, 0x98, 0xA1, 0xED, 0xAD, 0xFE,
1167 0x70, 0x7E, 0x88, 0x47, 0x25, 0xC1, 0x68,
1168 0x90, 0x54, 0x9D, 0x69, 0x65, 0x7F, 0xFF,
1169 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
1170 };
1171
1172 const gnutls_datum_t gnutls_modp_3072_group_prime = {
1173 (void *) modp_params_3072, sizeof(modp_params_3072)
1174 };
1175 const gnutls_datum_t gnutls_modp_3072_group_q = {
1176 (void *) modp_q_3072, sizeof(modp_q_3072)
1177 };
1178 const gnutls_datum_t gnutls_modp_3072_group_generator = {
1179 (void *) &modp_generator, sizeof(modp_generator)
1180 };
1181 const unsigned int gnutls_modp_3072_key_bits = 276;
1182
1183 static const unsigned char modp_params_4096[] = {
1184 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1185 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68,
1186 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80,
1187 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08,
1188 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
1189 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A,
1190 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 0xEF,
1191 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
1192 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
1193 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51,
1194 0xC2, 0x45, 0xE4, 0x85, 0xB5, 0x76, 0x62,
1195 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
1196 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C,
1197 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38,
1198 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE,
1199 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
1200 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
1201 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
1202 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C,
1203 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8,
1204 0xFD, 0x24, 0xCF, 0x5F, 0x83, 0x65, 0x5D,
1205 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62,
1206 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E,
1207 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
1208 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98,
1209 0x04, 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18,
1210 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
1211 0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C,
1212 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
1213 0xA2, 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5,
1214 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 0xDE,
1215 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
1216 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A,
1217 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA,
1218 0x05, 0x10, 0x15, 0x72, 0x8E, 0x5A, 0x8A,
1219 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
1220 0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21,
1221 0xAB, 0xDF, 0x1C, 0xBA, 0x64, 0xEC, 0xFB,
1222 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A,
1223 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
1224 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4,
1225 0xC7, 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09,
1226 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0, 0x4A,
1227 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26,
1228 0x1A, 0xD2, 0xEE, 0x6B, 0xF1, 0x2F, 0xFA,
1229 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76,
1230 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, 0x52,
1231 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
1232 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D,
1233 0x6C, 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9,
1234 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74,
1235 0xE5, 0xAB, 0x31, 0x43, 0xDB, 0x5B, 0xFC,
1236 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1,
1237 0x20, 0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72,
1238 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, 0x88,
1239 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
1240 0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2,
1241 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15,
1242 0x0B, 0xDA, 0x25, 0x83, 0xE9, 0xCA, 0x2A,
1243 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
1244 0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC,
1245 0x14, 0x1F, 0xBE, 0xCA, 0xA6, 0x28, 0x7C,
1246 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99,
1247 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
1248 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7,
1249 0xED, 0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2,
1250 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76, 0x21,
1251 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27,
1252 0xD5, 0xB0, 0x5A, 0xA9, 0x93, 0xB4, 0xEA,
1253 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF,
1254 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F, 0x4D,
1255 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
1256 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1257 0xFF
1258 };
1259
1260 static const unsigned char modp_q_4096[] = {
1261 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1262 0xFF, 0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4,
1263 0x61, 0x1A, 0x62, 0x63, 0x31, 0x45, 0xC0,
1264 0x6E, 0x0E, 0x68, 0x94, 0x81, 0x27, 0x04,
1265 0x45, 0x33, 0xE6, 0x3A, 0x01, 0x05, 0xDF,
1266 0x53, 0x1D, 0x89, 0xCD, 0x91, 0x28, 0xA5,
1267 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E, 0xF7,
1268 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
1269 0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A,
1270 0x1B, 0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8,
1271 0xE1, 0x22, 0xF2, 0x42, 0xDA, 0xBB, 0x31,
1272 0x2F, 0x3F, 0x63, 0x7A, 0x26, 0x21, 0x74,
1273 0xD3, 0x1B, 0xF6, 0xB5, 0x85, 0xFF, 0xAE,
1274 0x5B, 0x7A, 0x03, 0x5B, 0xF6, 0xF7, 0x1C,
1275 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2, 0xD7,
1276 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
1277 0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D,
1278 0x9E, 0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1,
1279 0xDF, 0x82, 0xCC, 0x6D, 0x24, 0x1B, 0x0E,
1280 0x2A, 0xE9, 0xCD, 0x34, 0x8B, 0x1F, 0xD4,
1281 0x7E, 0x92, 0x67, 0xAF, 0xC1, 0xB2, 0xAE,
1282 0x91, 0xEE, 0x51, 0xD6, 0xCB, 0x0E, 0x31,
1283 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D, 0xCF,
1284 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
1285 0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C,
1286 0x02, 0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C,
1287 0x10, 0xBE, 0x19, 0x48, 0x2F, 0x23, 0x17,
1288 0x1B, 0x67, 0x1D, 0xF1, 0xCF, 0x3B, 0x96,
1289 0x0C, 0x07, 0x43, 0x01, 0xCD, 0x93, 0xC1,
1290 0xD1, 0x76, 0x03, 0xD1, 0x47, 0xDA, 0xE2,
1291 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64, 0xEF,
1292 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
1293 0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5,
1294 0x72, 0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D,
1295 0x02, 0x88, 0x0A, 0xB9, 0x47, 0x2D, 0x45,
1296 0x55, 0x62, 0x16, 0xD6, 0x99, 0x8B, 0x86,
1297 0x82, 0x28, 0x3D, 0x19, 0xD4, 0x2A, 0x90,
1298 0xD5, 0xEF, 0x8E, 0x5D, 0x32, 0x76, 0x7D,
1299 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85, 0x45,
1300 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
1301 0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2,
1302 0x63, 0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84,
1303 0x99, 0xEB, 0x8F, 0x46, 0x4A, 0x70, 0x25,
1304 0x12, 0xB0, 0xCE, 0xE7, 0x71, 0xE9, 0x13,
1305 0x0D, 0x69, 0x77, 0x35, 0xF8, 0x97, 0xFD,
1306 0x03, 0x6C, 0xC5, 0x04, 0x32, 0x6C, 0x3B,
1307 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32, 0x29,
1308 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
1309 0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE,
1310 0xB6, 0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C,
1311 0xA3, 0x71, 0x04, 0x71, 0x27, 0xD0, 0x3A,
1312 0x72, 0xD5, 0x98, 0xA1, 0xED, 0xAD, 0xFE,
1313 0x70, 0x7E, 0x88, 0x47, 0x25, 0xC1, 0x68,
1314 0x90, 0x54, 0x90, 0x84, 0x00, 0x8D, 0x39,
1315 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B, 0xC4,
1316 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
1317 0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71,
1318 0x1E, 0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A,
1319 0x85, 0xED, 0x12, 0xC1, 0xF4, 0xE5, 0x15,
1320 0x6A, 0x26, 0x74, 0x6D, 0xDD, 0xE1, 0x6D,
1321 0x82, 0x6F, 0x47, 0x7C, 0x97, 0x47, 0x7E,
1322 0x0A, 0x0F, 0xDF, 0x65, 0x53, 0x14, 0x3E,
1323 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E, 0xCC,
1324 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
1325 0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3,
1326 0xF6, 0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71,
1327 0x6B, 0xD7, 0xDC, 0x0D, 0xEE, 0xBB, 0x10,
1328 0xB8, 0x24, 0x0E, 0x68, 0x03, 0x48, 0x93,
1329 0xEA, 0xD8, 0x2D, 0x54, 0xC9, 0xDA, 0x75,
1330 0x4C, 0x46, 0xC7, 0xEE, 0xE0, 0xC3, 0x7F,
1331 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47, 0xA6,
1332 0xFA, 0x1A, 0xE4, 0x9A, 0x03, 0x18, 0xCC,
1333 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1334 0xFF
1335 };
1336
1337 const gnutls_datum_t gnutls_modp_4096_group_prime = {
1338 (void *) modp_params_4096, sizeof(modp_params_4096)
1339 };
1340 const gnutls_datum_t gnutls_modp_4096_group_q = {
1341 (void *) modp_q_4096, sizeof(modp_q_4096)
1342 };
1343 const gnutls_datum_t gnutls_modp_4096_group_generator = {
1344 (void *) &modp_generator, sizeof(modp_generator)
1345 };
1346 const unsigned int gnutls_modp_4096_key_bits = 336;
1347
1348 static const unsigned char modp_params_6144[] = {
1349 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1350 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68,
1351 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80,
1352 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08,
1353 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
1354 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A,
1355 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 0xEF,
1356 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
1357 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
1358 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51,
1359 0xC2, 0x45, 0xE4, 0x85, 0xB5, 0x76, 0x62,
1360 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
1361 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C,
1362 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38,
1363 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE,
1364 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
1365 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
1366 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
1367 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C,
1368 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8,
1369 0xFD, 0x24, 0xCF, 0x5F, 0x83, 0x65, 0x5D,
1370 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62,
1371 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E,
1372 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
1373 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98,
1374 0x04, 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18,
1375 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
1376 0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C,
1377 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
1378 0xA2, 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5,
1379 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 0xDE,
1380 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
1381 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A,
1382 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA,
1383 0x05, 0x10, 0x15, 0x72, 0x8E, 0x5A, 0x8A,
1384 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
1385 0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21,
1386 0xAB, 0xDF, 0x1C, 0xBA, 0x64, 0xEC, 0xFB,
1387 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A,
1388 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
1389 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4,
1390 0xC7, 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09,
1391 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0, 0x4A,
1392 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26,
1393 0x1A, 0xD2, 0xEE, 0x6B, 0xF1, 0x2F, 0xFA,
1394 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76,
1395 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, 0x52,
1396 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
1397 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D,
1398 0x6C, 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9,
1399 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74,
1400 0xE5, 0xAB, 0x31, 0x43, 0xDB, 0x5B, 0xFC,
1401 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1,
1402 0x20, 0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72,
1403 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, 0x88,
1404 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
1405 0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2,
1406 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15,
1407 0x0B, 0xDA, 0x25, 0x83, 0xE9, 0xCA, 0x2A,
1408 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
1409 0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC,
1410 0x14, 0x1F, 0xBE, 0xCA, 0xA6, 0x28, 0x7C,
1411 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99,
1412 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
1413 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7,
1414 0xED, 0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2,
1415 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76, 0x21,
1416 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27,
1417 0xD5, 0xB0, 0x5A, 0xA9, 0x93, 0xB4, 0xEA,
1418 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF,
1419 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F, 0x4D,
1420 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
1421 0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70,
1422 0x26, 0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26,
1423 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D,
1424 0xBA, 0x37, 0xBD, 0xF8, 0xFF, 0x94, 0x06,
1425 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38,
1426 0x2F, 0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A,
1427 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31, 0x17,
1428 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
1429 0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14,
1430 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4,
1431 0xBB, 0x1B, 0xDB, 0x7F, 0x14, 0x47, 0xE6,
1432 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
1433 0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4,
1434 0x01, 0x37, 0x8C, 0xD2, 0xBF, 0x59, 0x83,
1435 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0,
1436 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
1437 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE,
1438 0xF6, 0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98,
1439 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31, 0x90,
1440 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F,
1441 0xBE, 0xC7, 0xE8, 0xF3, 0x23, 0xA9, 0x7A,
1442 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D,
1443 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5, 0x4B,
1444 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
1445 0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1,
1446 0xD8, 0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80,
1447 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2,
1448 0x9B, 0xE3, 0x28, 0x06, 0xA1, 0xD5, 0x8B,
1449 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA,
1450 0x3D, 0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19,
1451 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C, 0xDA,
1452 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
1453 0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04,
1454 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48,
1455 0x60, 0xEE, 0x12, 0xBF, 0x2D, 0x5B, 0x0B,
1456 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
1457 0x6D, 0xCC, 0x40, 0x24, 0xFF, 0xFF, 0xFF,
1458 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
1459 };
1460
1461 static const unsigned char modp_q_6144[] = {
1462 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1463 0xFF, 0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4,
1464 0x61, 0x1A, 0x62, 0x63, 0x31, 0x45, 0xC0,
1465 0x6E, 0x0E, 0x68, 0x94, 0x81, 0x27, 0x04,
1466 0x45, 0x33, 0xE6, 0x3A, 0x01, 0x05, 0xDF,
1467 0x53, 0x1D, 0x89, 0xCD, 0x91, 0x28, 0xA5,
1468 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E, 0xF7,
1469 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
1470 0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A,
1471 0x1B, 0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8,
1472 0xE1, 0x22, 0xF2, 0x42, 0xDA, 0xBB, 0x31,
1473 0x2F, 0x3F, 0x63, 0x7A, 0x26, 0x21, 0x74,
1474 0xD3, 0x1B, 0xF6, 0xB5, 0x85, 0xFF, 0xAE,
1475 0x5B, 0x7A, 0x03, 0x5B, 0xF6, 0xF7, 0x1C,
1476 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2, 0xD7,
1477 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
1478 0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D,
1479 0x9E, 0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1,
1480 0xDF, 0x82, 0xCC, 0x6D, 0x24, 0x1B, 0x0E,
1481 0x2A, 0xE9, 0xCD, 0x34, 0x8B, 0x1F, 0xD4,
1482 0x7E, 0x92, 0x67, 0xAF, 0xC1, 0xB2, 0xAE,
1483 0x91, 0xEE, 0x51, 0xD6, 0xCB, 0x0E, 0x31,
1484 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D, 0xCF,
1485 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
1486 0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C,
1487 0x02, 0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C,
1488 0x10, 0xBE, 0x19, 0x48, 0x2F, 0x23, 0x17,
1489 0x1B, 0x67, 0x1D, 0xF1, 0xCF, 0x3B, 0x96,
1490 0x0C, 0x07, 0x43, 0x01, 0xCD, 0x93, 0xC1,
1491 0xD1, 0x76, 0x03, 0xD1, 0x47, 0xDA, 0xE2,
1492 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64, 0xEF,
1493 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
1494 0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5,
1495 0x72, 0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D,
1496 0x02, 0x88, 0x0A, 0xB9, 0x47, 0x2D, 0x45,
1497 0x55, 0x62, 0x16, 0xD6, 0x99, 0x8B, 0x86,
1498 0x82, 0x28, 0x3D, 0x19, 0xD4, 0x2A, 0x90,
1499 0xD5, 0xEF, 0x8E, 0x5D, 0x32, 0x76, 0x7D,
1500 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85, 0x45,
1501 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
1502 0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2,
1503 0x63, 0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84,
1504 0x99, 0xEB, 0x8F, 0x46, 0x4A, 0x70, 0x25,
1505 0x12, 0xB0, 0xCE, 0xE7, 0x71, 0xE9, 0x13,
1506 0x0D, 0x69, 0x77, 0x35, 0xF8, 0x97, 0xFD,
1507 0x03, 0x6C, 0xC5, 0x04, 0x32, 0x6C, 0x3B,
1508 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32, 0x29,
1509 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
1510 0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE,
1511 0xB6, 0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C,
1512 0xA3, 0x71, 0x04, 0x71, 0x27, 0xD0, 0x3A,
1513 0x72, 0xD5, 0x98, 0xA1, 0xED, 0xAD, 0xFE,
1514 0x70, 0x7E, 0x88, 0x47, 0x25, 0xC1, 0x68,
1515 0x90, 0x54, 0x90, 0x84, 0x00, 0x8D, 0x39,
1516 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B, 0xC4,
1517 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
1518 0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71,
1519 0x1E, 0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A,
1520 0x85, 0xED, 0x12, 0xC1, 0xF4, 0xE5, 0x15,
1521 0x6A, 0x26, 0x74, 0x6D, 0xDD, 0xE1, 0x6D,
1522 0x82, 0x6F, 0x47, 0x7C, 0x97, 0x47, 0x7E,
1523 0x0A, 0x0F, 0xDF, 0x65, 0x53, 0x14, 0x3E,
1524 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E, 0xCC,
1525 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
1526 0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3,
1527 0xF6, 0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71,
1528 0x6B, 0xD7, 0xDC, 0x0D, 0xEE, 0xBB, 0x10,
1529 0xB8, 0x24, 0x0E, 0x68, 0x03, 0x48, 0x93,
1530 0xEA, 0xD8, 0x2D, 0x54, 0xC9, 0xDA, 0x75,
1531 0x4C, 0x46, 0xC7, 0xEE, 0xE0, 0xC3, 0x7F,
1532 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47, 0xA6,
1533 0xFA, 0x1A, 0xE4, 0x9A, 0x01, 0x42, 0x49,
1534 0x1B, 0x61, 0xFD, 0x5A, 0x69, 0x3E, 0x38,
1535 0x13, 0x60, 0xEA, 0x6E, 0x59, 0x30, 0x13,
1536 0x23, 0x6F, 0x64, 0xBA, 0x8F, 0x3B, 0x1E,
1537 0xDD, 0x1B, 0xDE, 0xFC, 0x7F, 0xCA, 0x03,
1538 0x56, 0xCF, 0x29, 0x87, 0x72, 0xED, 0x9C,
1539 0x17, 0xA0, 0x98, 0x00, 0xD7, 0x58, 0x35,
1540 0x29, 0xF6, 0xC8, 0x13, 0xEC, 0x18, 0x8B,
1541 0xCB, 0x93, 0xD8, 0x43, 0x2D, 0x44, 0x8C,
1542 0x6D, 0x1F, 0x6D, 0xF5, 0xE7, 0xCD, 0x8A,
1543 0x76, 0xA2, 0x67, 0x36, 0x5D, 0x67, 0x6A,
1544 0x5D, 0x8D, 0xED, 0xBF, 0x8A, 0x23, 0xF3,
1545 0x66, 0x12, 0xA5, 0x99, 0x90, 0x28, 0xA8,
1546 0x95, 0xEB, 0xD7, 0xA1, 0x37, 0xDC, 0x7A,
1547 0x00, 0x9B, 0xC6, 0x69, 0x5F, 0xAC, 0xC1,
1548 0xE5, 0x00, 0xE3, 0x25, 0xC9, 0x76, 0x78,
1549 0x19, 0x75, 0x0A, 0xE8, 0xB9, 0x0E, 0x81,
1550 0xFA, 0x41, 0x6B, 0xE7, 0x37, 0x3A, 0x7F,
1551 0x7B, 0x6A, 0xAF, 0x38, 0x17, 0xA3, 0x4C,
1552 0x06, 0x41, 0x5A, 0xD4, 0x20, 0x18, 0xC8,
1553 0x05, 0x8E, 0x4F, 0x2C, 0xF3, 0xE4, 0xBF,
1554 0xDF, 0x63, 0xF4, 0x79, 0x91, 0xD4, 0xBD,
1555 0x3F, 0x1B, 0x66, 0x44, 0x5F, 0x07, 0x8E,
1556 0xA2, 0xDB, 0xFF, 0xAC, 0x2D, 0x62, 0xA5,
1557 0xEA, 0x03, 0xD9, 0x15, 0xA0, 0xAA, 0x55,
1558 0x66, 0x47, 0xB6, 0xBF, 0x5F, 0xA4, 0x70,
1559 0xEC, 0x0A, 0x66, 0x2F, 0x69, 0x07, 0xC0,
1560 0x1B, 0xF0, 0x53, 0xCB, 0x8A, 0xF7, 0x79,
1561 0x4D, 0xF1, 0x94, 0x03, 0x50, 0xEA, 0xC5,
1562 0xDB, 0xE2, 0xED, 0x3B, 0x7A, 0xA8, 0x55,
1563 0x1E, 0xC5, 0x0F, 0xDF, 0xF8, 0x75, 0x8C,
1564 0xE6, 0x58, 0xD1, 0x89, 0xEA, 0xAE, 0x6D,
1565 0x2B, 0x64, 0xF6, 0x17, 0x79, 0x4B, 0x19,
1566 0x1C, 0x3F, 0xF4, 0x6B, 0xB7, 0x1E, 0x02,
1567 0x34, 0x02, 0x1F, 0x47, 0xB3, 0x1F, 0xA4,
1568 0x30, 0x77, 0x09, 0x5F, 0x96, 0xAD, 0x85,
1569 0xBA, 0x3A, 0x6B, 0x73, 0x4A, 0x7C, 0x8F,
1570 0x36, 0xE6, 0x20, 0x12, 0x7F, 0xFF, 0xFF,
1571 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
1572 };
1573
1574 const gnutls_datum_t gnutls_modp_6144_group_prime = {
1575 (void *) modp_params_6144, sizeof(modp_params_6144)
1576 };
1577 const gnutls_datum_t gnutls_modp_6144_group_q = {
1578 (void *) modp_q_6144, sizeof(modp_q_6144)
1579 };
1580 const gnutls_datum_t gnutls_modp_6144_group_generator = {
1581 (void *) &modp_generator, sizeof(modp_generator)
1582 };
1583 const unsigned int gnutls_modp_6144_key_bits = 376;
1584
1585 static const unsigned char modp_params_8192[] = {
1586 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1587 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68,
1588 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80,
1589 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08,
1590 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
1591 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A,
1592 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 0xEF,
1593 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
1594 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
1595 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51,
1596 0xC2, 0x45, 0xE4, 0x85, 0xB5, 0x76, 0x62,
1597 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
1598 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C,
1599 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38,
1600 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE,
1601 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
1602 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
1603 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
1604 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C,
1605 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8,
1606 0xFD, 0x24, 0xCF, 0x5F, 0x83, 0x65, 0x5D,
1607 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62,
1608 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E,
1609 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
1610 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98,
1611 0x04, 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18,
1612 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
1613 0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C,
1614 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
1615 0xA2, 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5,
1616 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 0xDE,
1617 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
1618 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A,
1619 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA,
1620 0x05, 0x10, 0x15, 0x72, 0x8E, 0x5A, 0x8A,
1621 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
1622 0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21,
1623 0xAB, 0xDF, 0x1C, 0xBA, 0x64, 0xEC, 0xFB,
1624 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A,
1625 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
1626 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4,
1627 0xC7, 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09,
1628 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0, 0x4A,
1629 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26,
1630 0x1A, 0xD2, 0xEE, 0x6B, 0xF1, 0x2F, 0xFA,
1631 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76,
1632 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, 0x52,
1633 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
1634 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D,
1635 0x6C, 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9,
1636 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74,
1637 0xE5, 0xAB, 0x31, 0x43, 0xDB, 0x5B, 0xFC,
1638 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1,
1639 0x20, 0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72,
1640 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, 0x88,
1641 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
1642 0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2,
1643 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15,
1644 0x0B, 0xDA, 0x25, 0x83, 0xE9, 0xCA, 0x2A,
1645 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
1646 0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC,
1647 0x14, 0x1F, 0xBE, 0xCA, 0xA6, 0x28, 0x7C,
1648 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99,
1649 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
1650 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7,
1651 0xED, 0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2,
1652 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76, 0x21,
1653 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27,
1654 0xD5, 0xB0, 0x5A, 0xA9, 0x93, 0xB4, 0xEA,
1655 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF,
1656 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F, 0x4D,
1657 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
1658 0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70,
1659 0x26, 0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26,
1660 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D,
1661 0xBA, 0x37, 0xBD, 0xF8, 0xFF, 0x94, 0x06,
1662 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38,
1663 0x2F, 0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A,
1664 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31, 0x17,
1665 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
1666 0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14,
1667 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4,
1668 0xBB, 0x1B, 0xDB, 0x7F, 0x14, 0x47, 0xE6,
1669 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
1670 0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4,
1671 0x01, 0x37, 0x8C, 0xD2, 0xBF, 0x59, 0x83,
1672 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0,
1673 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
1674 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE,
1675 0xF6, 0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98,
1676 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31, 0x90,
1677 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F,
1678 0xBE, 0xC7, 0xE8, 0xF3, 0x23, 0xA9, 0x7A,
1679 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D,
1680 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5, 0x4B,
1681 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
1682 0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1,
1683 0xD8, 0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80,
1684 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2,
1685 0x9B, 0xE3, 0x28, 0x06, 0xA1, 0xD5, 0x8B,
1686 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA,
1687 0x3D, 0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19,
1688 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C, 0xDA,
1689 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
1690 0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04,
1691 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48,
1692 0x60, 0xEE, 0x12, 0xBF, 0x2D, 0x5B, 0x0B,
1693 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
1694 0x6D, 0xBE, 0x11, 0x59, 0x74, 0xA3, 0x92,
1695 0x6F, 0x12, 0xFE, 0xE5, 0xE4, 0x38, 0x77,
1696 0x7C, 0xB6, 0xA9, 0x32, 0xDF, 0x8C, 0xD8,
1697 0xBE, 0xC4, 0xD0, 0x73, 0xB9, 0x31, 0xBA,
1698 0x3B, 0xC8, 0x32, 0xB6, 0x8D, 0x9D, 0xD3,
1699 0x00, 0x74, 0x1F, 0xA7, 0xBF, 0x8A, 0xFC,
1700 0x47, 0xED, 0x25, 0x76, 0xF6, 0x93, 0x6B,
1701 0xA4, 0x24, 0x66, 0x3A, 0xAB, 0x63, 0x9C,
1702 0x5A, 0xE4, 0xF5, 0x68, 0x34, 0x23, 0xB4,
1703 0x74, 0x2B, 0xF1, 0xC9, 0x78, 0x23, 0x8F,
1704 0x16, 0xCB, 0xE3, 0x9D, 0x65, 0x2D, 0xE3,
1705 0xFD, 0xB8, 0xBE, 0xFC, 0x84, 0x8A, 0xD9,
1706 0x22, 0x22, 0x2E, 0x04, 0xA4, 0x03, 0x7C,
1707 0x07, 0x13, 0xEB, 0x57, 0xA8, 0x1A, 0x23,
1708 0xF0, 0xC7, 0x34, 0x73, 0xFC, 0x64, 0x6C,
1709 0xEA, 0x30, 0x6B, 0x4B, 0xCB, 0xC8, 0x86,
1710 0x2F, 0x83, 0x85, 0xDD, 0xFA, 0x9D, 0x4B,
1711 0x7F, 0xA2, 0xC0, 0x87, 0xE8, 0x79, 0x68,
1712 0x33, 0x03, 0xED, 0x5B, 0xDD, 0x3A, 0x06,
1713 0x2B, 0x3C, 0xF5, 0xB3, 0xA2, 0x78, 0xA6,
1714 0x6D, 0x2A, 0x13, 0xF8, 0x3F, 0x44, 0xF8,
1715 0x2D, 0xDF, 0x31, 0x0E, 0xE0, 0x74, 0xAB,
1716 0x6A, 0x36, 0x45, 0x97, 0xE8, 0x99, 0xA0,
1717 0x25, 0x5D, 0xC1, 0x64, 0xF3, 0x1C, 0xC5,
1718 0x08, 0x46, 0x85, 0x1D, 0xF9, 0xAB, 0x48,
1719 0x19, 0x5D, 0xED, 0x7E, 0xA1, 0xB1, 0xD5,
1720 0x10, 0xBD, 0x7E, 0xE7, 0x4D, 0x73, 0xFA,
1721 0xF3, 0x6B, 0xC3, 0x1E, 0xCF, 0xA2, 0x68,
1722 0x35, 0x90, 0x46, 0xF4, 0xEB, 0x87, 0x9F,
1723 0x92, 0x40, 0x09, 0x43, 0x8B, 0x48, 0x1C,
1724 0x6C, 0xD7, 0x88, 0x9A, 0x00, 0x2E, 0xD5,
1725 0xEE, 0x38, 0x2B, 0xC9, 0x19, 0x0D, 0xA6,
1726 0xFC, 0x02, 0x6E, 0x47, 0x95, 0x58, 0xE4,
1727 0x47, 0x56, 0x77, 0xE9, 0xAA, 0x9E, 0x30,
1728 0x50, 0xE2, 0x76, 0x56, 0x94, 0xDF, 0xC8,
1729 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
1730 0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3,
1731 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1732 0xFF, 0xFF
1733 };
1734
1735 static const unsigned char modp_q_8192[] = {
1736 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1737 0xFF, 0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4,
1738 0x61, 0x1A, 0x62, 0x63, 0x31, 0x45, 0xC0,
1739 0x6E, 0x0E, 0x68, 0x94, 0x81, 0x27, 0x04,
1740 0x45, 0x33, 0xE6, 0x3A, 0x01, 0x05, 0xDF,
1741 0x53, 0x1D, 0x89, 0xCD, 0x91, 0x28, 0xA5,
1742 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E, 0xF7,
1743 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
1744 0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A,
1745 0x1B, 0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8,
1746 0xE1, 0x22, 0xF2, 0x42, 0xDA, 0xBB, 0x31,
1747 0x2F, 0x3F, 0x63, 0x7A, 0x26, 0x21, 0x74,
1748 0xD3, 0x1B, 0xF6, 0xB5, 0x85, 0xFF, 0xAE,
1749 0x5B, 0x7A, 0x03, 0x5B, 0xF6, 0xF7, 0x1C,
1750 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2, 0xD7,
1751 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
1752 0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D,
1753 0x9E, 0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1,
1754 0xDF, 0x82, 0xCC, 0x6D, 0x24, 0x1B, 0x0E,
1755 0x2A, 0xE9, 0xCD, 0x34, 0x8B, 0x1F, 0xD4,
1756 0x7E, 0x92, 0x67, 0xAF, 0xC1, 0xB2, 0xAE,
1757 0x91, 0xEE, 0x51, 0xD6, 0xCB, 0x0E, 0x31,
1758 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D, 0xCF,
1759 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
1760 0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C,
1761 0x02, 0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C,
1762 0x10, 0xBE, 0x19, 0x48, 0x2F, 0x23, 0x17,
1763 0x1B, 0x67, 0x1D, 0xF1, 0xCF, 0x3B, 0x96,
1764 0x0C, 0x07, 0x43, 0x01, 0xCD, 0x93, 0xC1,
1765 0xD1, 0x76, 0x03, 0xD1, 0x47, 0xDA, 0xE2,
1766 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64, 0xEF,
1767 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
1768 0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5,
1769 0x72, 0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D,
1770 0x02, 0x88, 0x0A, 0xB9, 0x47, 0x2D, 0x45,
1771 0x55, 0x62, 0x16, 0xD6, 0x99, 0x8B, 0x86,
1772 0x82, 0x28, 0x3D, 0x19, 0xD4, 0x2A, 0x90,
1773 0xD5, 0xEF, 0x8E, 0x5D, 0x32, 0x76, 0x7D,
1774 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85, 0x45,
1775 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
1776 0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2,
1777 0x63, 0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84,
1778 0x99, 0xEB, 0x8F, 0x46, 0x4A, 0x70, 0x25,
1779 0x12, 0xB0, 0xCE, 0xE7, 0x71, 0xE9, 0x13,
1780 0x0D, 0x69, 0x77, 0x35, 0xF8, 0x97, 0xFD,
1781 0x03, 0x6C, 0xC5, 0x04, 0x32, 0x6C, 0x3B,
1782 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32, 0x29,
1783 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
1784 0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE,
1785 0xB6, 0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C,
1786 0xA3, 0x71, 0x04, 0x71, 0x27, 0xD0, 0x3A,
1787 0x72, 0xD5, 0x98, 0xA1, 0xED, 0xAD, 0xFE,
1788 0x70, 0x7E, 0x88, 0x47, 0x25, 0xC1, 0x68,
1789 0x90, 0x54, 0x90, 0x84, 0x00, 0x8D, 0x39,
1790 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B, 0xC4,
1791 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
1792 0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71,
1793 0x1E, 0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A,
1794 0x85, 0xED, 0x12, 0xC1, 0xF4, 0xE5, 0x15,
1795 0x6A, 0x26, 0x74, 0x6D, 0xDD, 0xE1, 0x6D,
1796 0x82, 0x6F, 0x47, 0x7C, 0x97, 0x47, 0x7E,
1797 0x0A, 0x0F, 0xDF, 0x65, 0x53, 0x14, 0x3E,
1798 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E, 0xCC,
1799 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
1800 0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3,
1801 0xF6, 0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71,
1802 0x6B, 0xD7, 0xDC, 0x0D, 0xEE, 0xBB, 0x10,
1803 0xB8, 0x24, 0x0E, 0x68, 0x03, 0x48, 0x93,
1804 0xEA, 0xD8, 0x2D, 0x54, 0xC9, 0xDA, 0x75,
1805 0x4C, 0x46, 0xC7, 0xEE, 0xE0, 0xC3, 0x7F,
1806 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47, 0xA6,
1807 0xFA, 0x1A, 0xE4, 0x9A, 0x01, 0x42, 0x49,
1808 0x1B, 0x61, 0xFD, 0x5A, 0x69, 0x3E, 0x38,
1809 0x13, 0x60, 0xEA, 0x6E, 0x59, 0x30, 0x13,
1810 0x23, 0x6F, 0x64, 0xBA, 0x8F, 0x3B, 0x1E,
1811 0xDD, 0x1B, 0xDE, 0xFC, 0x7F, 0xCA, 0x03,
1812 0x56, 0xCF, 0x29, 0x87, 0x72, 0xED, 0x9C,
1813 0x17, 0xA0, 0x98, 0x00, 0xD7, 0x58, 0x35,
1814 0x29, 0xF6, 0xC8, 0x13, 0xEC, 0x18, 0x8B,
1815 0xCB, 0x93, 0xD8, 0x43, 0x2D, 0x44, 0x8C,
1816 0x6D, 0x1F, 0x6D, 0xF5, 0xE7, 0xCD, 0x8A,
1817 0x76, 0xA2, 0x67, 0x36, 0x5D, 0x67, 0x6A,
1818 0x5D, 0x8D, 0xED, 0xBF, 0x8A, 0x23, 0xF3,
1819 0x66, 0x12, 0xA5, 0x99, 0x90, 0x28, 0xA8,
1820 0x95, 0xEB, 0xD7, 0xA1, 0x37, 0xDC, 0x7A,
1821 0x00, 0x9B, 0xC6, 0x69, 0x5F, 0xAC, 0xC1,
1822 0xE5, 0x00, 0xE3, 0x25, 0xC9, 0x76, 0x78,
1823 0x19, 0x75, 0x0A, 0xE8, 0xB9, 0x0E, 0x81,
1824 0xFA, 0x41, 0x6B, 0xE7, 0x37, 0x3A, 0x7F,
1825 0x7B, 0x6A, 0xAF, 0x38, 0x17, 0xA3, 0x4C,
1826 0x06, 0x41, 0x5A, 0xD4, 0x20, 0x18, 0xC8,
1827 0x05, 0x8E, 0x4F, 0x2C, 0xF3, 0xE4, 0xBF,
1828 0xDF, 0x63, 0xF4, 0x79, 0x91, 0xD4, 0xBD,
1829 0x3F, 0x1B, 0x66, 0x44, 0x5F, 0x07, 0x8E,
1830 0xA2, 0xDB, 0xFF, 0xAC, 0x2D, 0x62, 0xA5,
1831 0xEA, 0x03, 0xD9, 0x15, 0xA0, 0xAA, 0x55,
1832 0x66, 0x47, 0xB6, 0xBF, 0x5F, 0xA4, 0x70,
1833 0xEC, 0x0A, 0x66, 0x2F, 0x69, 0x07, 0xC0,
1834 0x1B, 0xF0, 0x53, 0xCB, 0x8A, 0xF7, 0x79,
1835 0x4D, 0xF1, 0x94, 0x03, 0x50, 0xEA, 0xC5,
1836 0xDB, 0xE2, 0xED, 0x3B, 0x7A, 0xA8, 0x55,
1837 0x1E, 0xC5, 0x0F, 0xDF, 0xF8, 0x75, 0x8C,
1838 0xE6, 0x58, 0xD1, 0x89, 0xEA, 0xAE, 0x6D,
1839 0x2B, 0x64, 0xF6, 0x17, 0x79, 0x4B, 0x19,
1840 0x1C, 0x3F, 0xF4, 0x6B, 0xB7, 0x1E, 0x02,
1841 0x34, 0x02, 0x1F, 0x47, 0xB3, 0x1F, 0xA4,
1842 0x30, 0x77, 0x09, 0x5F, 0x96, 0xAD, 0x85,
1843 0xBA, 0x3A, 0x6B, 0x73, 0x4A, 0x7C, 0x8F,
1844 0x36, 0xDF, 0x08, 0xAC, 0xBA, 0x51, 0xC9,
1845 0x37, 0x89, 0x7F, 0x72, 0xF2, 0x1C, 0x3B,
1846 0xBE, 0x5B, 0x54, 0x99, 0x6F, 0xC6, 0x6C,
1847 0x5F, 0x62, 0x68, 0x39, 0xDC, 0x98, 0xDD,
1848 0x1D, 0xE4, 0x19, 0x5B, 0x46, 0xCE, 0xE9,
1849 0x80, 0x3A, 0x0F, 0xD3, 0xDF, 0xC5, 0x7E,
1850 0x23, 0xF6, 0x92, 0xBB, 0x7B, 0x49, 0xB5,
1851 0xD2, 0x12, 0x33, 0x1D, 0x55, 0xB1, 0xCE,
1852 0x2D, 0x72, 0x7A, 0xB4, 0x1A, 0x11, 0xDA,
1853 0x3A, 0x15, 0xF8, 0xE4, 0xBC, 0x11, 0xC7,
1854 0x8B, 0x65, 0xF1, 0xCE, 0xB2, 0x96, 0xF1,
1855 0xFE, 0xDC, 0x5F, 0x7E, 0x42, 0x45, 0x6C,
1856 0x91, 0x11, 0x17, 0x02, 0x52, 0x01, 0xBE,
1857 0x03, 0x89, 0xF5, 0xAB, 0xD4, 0x0D, 0x11,
1858 0xF8, 0x63, 0x9A, 0x39, 0xFE, 0x32, 0x36,
1859 0x75, 0x18, 0x35, 0xA5, 0xE5, 0xE4, 0x43,
1860 0x17, 0xC1, 0xC2, 0xEE, 0xFD, 0x4E, 0xA5,
1861 0xBF, 0xD1, 0x60, 0x43, 0xF4, 0x3C, 0xB4,
1862 0x19, 0x81, 0xF6, 0xAD, 0xEE, 0x9D, 0x03,
1863 0x15, 0x9E, 0x7A, 0xD9, 0xD1, 0x3C, 0x53,
1864 0x36, 0x95, 0x09, 0xFC, 0x1F, 0xA2, 0x7C,
1865 0x16, 0xEF, 0x98, 0x87, 0x70, 0x3A, 0x55,
1866 0xB5, 0x1B, 0x22, 0xCB, 0xF4, 0x4C, 0xD0,
1867 0x12, 0xAE, 0xE0, 0xB2, 0x79, 0x8E, 0x62,
1868 0x84, 0x23, 0x42, 0x8E, 0xFC, 0xD5, 0xA4,
1869 0x0C, 0xAE, 0xF6, 0xBF, 0x50, 0xD8, 0xEA,
1870 0x88, 0x5E, 0xBF, 0x73, 0xA6, 0xB9, 0xFD,
1871 0x79, 0xB5, 0xE1, 0x8F, 0x67, 0xD1, 0x34,
1872 0x1A, 0xC8, 0x23, 0x7A, 0x75, 0xC3, 0xCF,
1873 0xC9, 0x20, 0x04, 0xA1, 0xC5, 0xA4, 0x0E,
1874 0x36, 0x6B, 0xC4, 0x4D, 0x00, 0x17, 0x6A,
1875 0xF7, 0x1C, 0x15, 0xE4, 0x8C, 0x86, 0xD3,
1876 0x7E, 0x01, 0x37, 0x23, 0xCA, 0xAC, 0x72,
1877 0x23, 0xAB, 0x3B, 0xF4, 0xD5, 0x4F, 0x18,
1878 0x28, 0x71, 0x3B, 0x2B, 0x4A, 0x6F, 0xE4,
1879 0x0F, 0xAB, 0x74, 0x40, 0x5C, 0xB7, 0x38,
1880 0xB0, 0x64, 0xC0, 0x6E, 0xCC, 0x76, 0xE9,
1881 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1882 0xFF, 0xFF
1883 };
1884
1885 const gnutls_datum_t gnutls_modp_8192_group_prime = {
1886 (void *) modp_params_8192, sizeof(modp_params_8192)
1887 };
1888 const gnutls_datum_t gnutls_modp_8192_group_q = {
1889 (void *) modp_q_8192, sizeof(modp_q_8192)
1890 };
1891 const gnutls_datum_t gnutls_modp_8192_group_generator = {
1892 (void *) &modp_generator, sizeof(modp_generator)
1893 };
1894 const unsigned int gnutls_modp_8192_key_bits = 512;
1895
1896 unsigned
_gnutls_dh_prime_match_fips_approved(const uint8_t * prime,size_t prime_size,const uint8_t * generator,size_t generator_size,uint8_t ** q,size_t * q_size)1897 _gnutls_dh_prime_match_fips_approved(const uint8_t *prime,
1898 size_t prime_size,
1899 const uint8_t *generator,
1900 size_t generator_size,
1901 uint8_t **q,
1902 size_t *q_size)
1903 {
1904 static const struct {
1905 const gnutls_datum_t *prime;
1906 const gnutls_datum_t *generator;
1907 const gnutls_datum_t *q;
1908 } primes[] = {
1909 { &gnutls_ffdhe_8192_group_prime, &gnutls_ffdhe_8192_group_generator, &gnutls_ffdhe_8192_group_q },
1910 { &gnutls_ffdhe_6144_group_prime, &gnutls_ffdhe_6144_group_generator, &gnutls_ffdhe_6144_group_q },
1911 { &gnutls_ffdhe_4096_group_prime, &gnutls_ffdhe_4096_group_generator, &gnutls_ffdhe_4096_group_q },
1912 { &gnutls_ffdhe_3072_group_prime, &gnutls_ffdhe_3072_group_generator, &gnutls_ffdhe_3072_group_q },
1913 { &gnutls_ffdhe_2048_group_prime, &gnutls_ffdhe_2048_group_generator, &gnutls_ffdhe_2048_group_q },
1914 { &gnutls_modp_8192_group_prime, &gnutls_modp_8192_group_generator, &gnutls_modp_8192_group_q },
1915 { &gnutls_modp_6144_group_prime, &gnutls_modp_6144_group_generator, &gnutls_modp_6144_group_q },
1916 { &gnutls_modp_4096_group_prime, &gnutls_modp_4096_group_generator, &gnutls_modp_4096_group_q },
1917 { &gnutls_modp_3072_group_prime, &gnutls_modp_3072_group_generator, &gnutls_modp_3072_group_q },
1918 { &gnutls_modp_2048_group_prime, &gnutls_modp_2048_group_generator, &gnutls_modp_2048_group_q },
1919 };
1920 size_t i;
1921
1922 for (i = 0; i < sizeof(primes) / sizeof(primes[0]); i++) {
1923 if (primes[i].prime->size == prime_size &&
1924 memcmp(primes[i].prime->data, prime, primes[i].prime->size) == 0 &&
1925 primes[i].generator->size == generator_size &&
1926 memcmp(primes[i].generator->data, generator, primes[i].generator->size) == 0) {
1927 if (q) {
1928 *q = primes[i].q->data;
1929 *q_size = primes[i].q->size;
1930 }
1931 return 1;
1932 }
1933 }
1934
1935 return 0;
1936 }
1937
1938 #endif
1939