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