1e5b75505Sopenharmony_ci/*
2e5b75505Sopenharmony_ci * Diffie-Hellman groups
3e5b75505Sopenharmony_ci * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
4e5b75505Sopenharmony_ci *
5e5b75505Sopenharmony_ci * This software may be distributed under the terms of the BSD license.
6e5b75505Sopenharmony_ci * See README for more details.
7e5b75505Sopenharmony_ci */
8e5b75505Sopenharmony_ci
9e5b75505Sopenharmony_ci#include "includes.h"
10e5b75505Sopenharmony_ci
11e5b75505Sopenharmony_ci#include "common.h"
12e5b75505Sopenharmony_ci#include "crypto.h"
13e5b75505Sopenharmony_ci#include "random.h"
14e5b75505Sopenharmony_ci#include "dh_groups.h"
15e5b75505Sopenharmony_ci
16e5b75505Sopenharmony_ci
17e5b75505Sopenharmony_ci#ifdef ALL_DH_GROUPS
18e5b75505Sopenharmony_ci
19e5b75505Sopenharmony_ci/* RFC 4306, B.1. Group 1 - 768 Bit MODP
20e5b75505Sopenharmony_ci * Generator: 2
21e5b75505Sopenharmony_ci * Prime: 2^768 - 2 ^704 - 1 + 2^64 * { [2^638 pi] + 149686 }
22e5b75505Sopenharmony_ci */
23e5b75505Sopenharmony_cistatic const u8 dh_group1_generator[1] = { 0x02 };
24e5b75505Sopenharmony_cistatic const u8 dh_group1_prime[96] = {
25e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
26e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
27e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
28e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
29e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
30e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
31e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
32e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
33e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
34e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
35e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x3A, 0x36, 0x20,
36e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
37e5b75505Sopenharmony_ci};
38e5b75505Sopenharmony_cistatic const u8 dh_group1_order[96] = {
39e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
40e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
41e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
42e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
43e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
44e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
45e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
46e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
47e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
48e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
49e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1D, 0x1B, 0x10,
50e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
51e5b75505Sopenharmony_ci};
52e5b75505Sopenharmony_ci
53e5b75505Sopenharmony_ci/* RFC 4306, B.2. Group 2 - 1024 Bit MODP
54e5b75505Sopenharmony_ci * Generator: 2
55e5b75505Sopenharmony_ci * Prime: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }
56e5b75505Sopenharmony_ci */
57e5b75505Sopenharmony_cistatic const u8 dh_group2_generator[1] = { 0x02 };
58e5b75505Sopenharmony_cistatic const u8 dh_group2_prime[128] = {
59e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
60e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
61e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
62e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
63e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
64e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
65e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
66e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
67e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
68e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
69e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
70e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
71e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
72e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
73e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE6, 0x53, 0x81,
74e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
75e5b75505Sopenharmony_ci};
76e5b75505Sopenharmony_cistatic const u8 dh_group2_order[128] = {
77e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
78e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
79e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
80e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
81e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
82e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
83e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
84e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
85e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
86e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
87e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
88e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
89e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
90e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
91e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x73, 0x29, 0xC0,
92e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
93e5b75505Sopenharmony_ci};
94e5b75505Sopenharmony_ci
95e5b75505Sopenharmony_ci#endif /* ALL_DH_GROUPS */
96e5b75505Sopenharmony_ci
97e5b75505Sopenharmony_ci/* RFC 3526, 2. Group 5 - 1536 Bit MODP
98e5b75505Sopenharmony_ci * Generator: 2
99e5b75505Sopenharmony_ci * Prime: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
100e5b75505Sopenharmony_ci */
101e5b75505Sopenharmony_cistatic const u8 dh_group5_generator[1] = { 0x02 };
102e5b75505Sopenharmony_cistatic const u8 dh_group5_prime[192] = {
103e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
104e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
105e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
106e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
107e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
108e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
109e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
110e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
111e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
112e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
113e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
114e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
115e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
116e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
117e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
118e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
119e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
120e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
121e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
122e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
123e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
124e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
125e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x23, 0x73, 0x27,
126e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
127e5b75505Sopenharmony_ci};
128e5b75505Sopenharmony_cistatic const u8 dh_group5_order[192] = {
129e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
130e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
131e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
132e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
133e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
134e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
135e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
136e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
137e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
138e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
139e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
140e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
141e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
142e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
143e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
144e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
145e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
146e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
147e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
148e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
149e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
150e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
151e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x11, 0xB9, 0x93,
152e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
153e5b75505Sopenharmony_ci};
154e5b75505Sopenharmony_ci
155e5b75505Sopenharmony_ci#ifdef ALL_DH_GROUPS
156e5b75505Sopenharmony_ci
157e5b75505Sopenharmony_ci/* RFC 3526, 3. Group 14 - 2048 Bit MODP
158e5b75505Sopenharmony_ci * Generator: 2
159e5b75505Sopenharmony_ci * Prime: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
160e5b75505Sopenharmony_ci */
161e5b75505Sopenharmony_cistatic const u8 dh_group14_generator[1] = { 0x02 };
162e5b75505Sopenharmony_cistatic const u8 dh_group14_prime[256] = {
163e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
164e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
165e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
166e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
167e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
168e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
169e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
170e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
171e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
172e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
173e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
174e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
175e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
176e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
177e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
178e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
179e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
180e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
181e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
182e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
183e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
184e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
185e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
186e5b75505Sopenharmony_ci	0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
187e5b75505Sopenharmony_ci	0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
188e5b75505Sopenharmony_ci	0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
189e5b75505Sopenharmony_ci	0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
190e5b75505Sopenharmony_ci	0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
191e5b75505Sopenharmony_ci	0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
192e5b75505Sopenharmony_ci	0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
193e5b75505Sopenharmony_ci	0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68,
194e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
195e5b75505Sopenharmony_ci};
196e5b75505Sopenharmony_cistatic const u8 dh_group14_order[256] = {
197e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
198e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
199e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
200e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
201e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
202e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
203e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
204e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
205e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
206e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
207e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
208e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
209e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
210e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
211e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
212e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
213e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
214e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
215e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
216e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
217e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
218e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
219e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C, 0x10, 0xBE,
220e5b75505Sopenharmony_ci	0x19, 0x48, 0x2F, 0x23, 0x17, 0x1B, 0x67, 0x1D,
221e5b75505Sopenharmony_ci	0xF1, 0xCF, 0x3B, 0x96, 0x0C, 0x07, 0x43, 0x01,
222e5b75505Sopenharmony_ci	0xCD, 0x93, 0xC1, 0xD1, 0x76, 0x03, 0xD1, 0x47,
223e5b75505Sopenharmony_ci	0xDA, 0xE2, 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64,
224e5b75505Sopenharmony_ci	0xEF, 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
225e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5, 0x72,
226e5b75505Sopenharmony_ci	0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D, 0x02, 0x88,
227e5b75505Sopenharmony_ci	0x0A, 0xB9, 0x47, 0x2D, 0x45, 0x56, 0x55, 0x34,
228e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
229e5b75505Sopenharmony_ci};
230e5b75505Sopenharmony_ci
231e5b75505Sopenharmony_ci/* RFC 3526, 4. Group 15 - 3072 Bit MODP
232e5b75505Sopenharmony_ci * Generator: 2
233e5b75505Sopenharmony_ci * Prime: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
234e5b75505Sopenharmony_ci */
235e5b75505Sopenharmony_cistatic const u8 dh_group15_generator[1] = { 0x02 };
236e5b75505Sopenharmony_cistatic const u8 dh_group15_prime[384] = {
237e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
238e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
239e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
240e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
241e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
242e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
243e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
244e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
245e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
246e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
247e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
248e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
249e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
250e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
251e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
252e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
253e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
254e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
255e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
256e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
257e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
258e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
259e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
260e5b75505Sopenharmony_ci	0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
261e5b75505Sopenharmony_ci	0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
262e5b75505Sopenharmony_ci	0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
263e5b75505Sopenharmony_ci	0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
264e5b75505Sopenharmony_ci	0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
265e5b75505Sopenharmony_ci	0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
266e5b75505Sopenharmony_ci	0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
267e5b75505Sopenharmony_ci	0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
268e5b75505Sopenharmony_ci	0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
269e5b75505Sopenharmony_ci	0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
270e5b75505Sopenharmony_ci	0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
271e5b75505Sopenharmony_ci	0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
272e5b75505Sopenharmony_ci	0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
273e5b75505Sopenharmony_ci	0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
274e5b75505Sopenharmony_ci	0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
275e5b75505Sopenharmony_ci	0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
276e5b75505Sopenharmony_ci	0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
277e5b75505Sopenharmony_ci	0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
278e5b75505Sopenharmony_ci	0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
279e5b75505Sopenharmony_ci	0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
280e5b75505Sopenharmony_ci	0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
281e5b75505Sopenharmony_ci	0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
282e5b75505Sopenharmony_ci	0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
283e5b75505Sopenharmony_ci	0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA,
284e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
285e5b75505Sopenharmony_ci};
286e5b75505Sopenharmony_cistatic const u8 dh_group15_order[384] = {
287e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
288e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
289e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
290e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
291e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
292e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
293e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
294e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
295e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
296e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
297e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
298e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
299e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
300e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
301e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
302e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
303e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
304e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
305e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
306e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
307e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
308e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
309e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C, 0x10, 0xBE,
310e5b75505Sopenharmony_ci	0x19, 0x48, 0x2F, 0x23, 0x17, 0x1B, 0x67, 0x1D,
311e5b75505Sopenharmony_ci	0xF1, 0xCF, 0x3B, 0x96, 0x0C, 0x07, 0x43, 0x01,
312e5b75505Sopenharmony_ci	0xCD, 0x93, 0xC1, 0xD1, 0x76, 0x03, 0xD1, 0x47,
313e5b75505Sopenharmony_ci	0xDA, 0xE2, 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64,
314e5b75505Sopenharmony_ci	0xEF, 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
315e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5, 0x72,
316e5b75505Sopenharmony_ci	0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D, 0x02, 0x88,
317e5b75505Sopenharmony_ci	0x0A, 0xB9, 0x47, 0x2D, 0x45, 0x55, 0x62, 0x16,
318e5b75505Sopenharmony_ci	0xD6, 0x99, 0x8B, 0x86, 0x82, 0x28, 0x3D, 0x19,
319e5b75505Sopenharmony_ci	0xD4, 0x2A, 0x90, 0xD5, 0xEF, 0x8E, 0x5D, 0x32,
320e5b75505Sopenharmony_ci	0x76, 0x7D, 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85,
321e5b75505Sopenharmony_ci	0x45, 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
322e5b75505Sopenharmony_ci	0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2, 0x63,
323e5b75505Sopenharmony_ci	0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84, 0x99, 0xEB,
324e5b75505Sopenharmony_ci	0x8F, 0x46, 0x4A, 0x70, 0x25, 0x12, 0xB0, 0xCE,
325e5b75505Sopenharmony_ci	0xE7, 0x71, 0xE9, 0x13, 0x0D, 0x69, 0x77, 0x35,
326e5b75505Sopenharmony_ci	0xF8, 0x97, 0xFD, 0x03, 0x6C, 0xC5, 0x04, 0x32,
327e5b75505Sopenharmony_ci	0x6C, 0x3B, 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32,
328e5b75505Sopenharmony_ci	0x29, 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
329e5b75505Sopenharmony_ci	0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE, 0xB6,
330e5b75505Sopenharmony_ci	0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C, 0xA3, 0x71,
331e5b75505Sopenharmony_ci	0x04, 0x71, 0x27, 0xD0, 0x3A, 0x72, 0xD5, 0x98,
332e5b75505Sopenharmony_ci	0xA1, 0xED, 0xAD, 0xFE, 0x70, 0x7E, 0x88, 0x47,
333e5b75505Sopenharmony_ci	0x25, 0xC1, 0x68, 0x90, 0x54, 0x9D, 0x69, 0x65,
334e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
335e5b75505Sopenharmony_ci};
336e5b75505Sopenharmony_ci
337e5b75505Sopenharmony_ci/* RFC 3526, 5. Group 16 - 4096 Bit MODP
338e5b75505Sopenharmony_ci * Generator: 2
339e5b75505Sopenharmony_ci * Prime: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
340e5b75505Sopenharmony_ci */
341e5b75505Sopenharmony_cistatic const u8 dh_group16_generator[1] = { 0x02 };
342e5b75505Sopenharmony_cistatic const u8 dh_group16_prime[512] = {
343e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
344e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
345e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
346e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
347e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
348e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
349e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
350e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
351e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
352e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
353e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
354e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
355e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
356e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
357e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
358e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
359e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
360e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
361e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
362e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
363e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
364e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
365e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
366e5b75505Sopenharmony_ci	0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
367e5b75505Sopenharmony_ci	0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
368e5b75505Sopenharmony_ci	0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
369e5b75505Sopenharmony_ci	0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
370e5b75505Sopenharmony_ci	0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
371e5b75505Sopenharmony_ci	0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
372e5b75505Sopenharmony_ci	0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
373e5b75505Sopenharmony_ci	0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
374e5b75505Sopenharmony_ci	0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
375e5b75505Sopenharmony_ci	0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
376e5b75505Sopenharmony_ci	0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
377e5b75505Sopenharmony_ci	0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
378e5b75505Sopenharmony_ci	0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
379e5b75505Sopenharmony_ci	0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
380e5b75505Sopenharmony_ci	0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
381e5b75505Sopenharmony_ci	0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
382e5b75505Sopenharmony_ci	0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
383e5b75505Sopenharmony_ci	0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
384e5b75505Sopenharmony_ci	0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
385e5b75505Sopenharmony_ci	0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
386e5b75505Sopenharmony_ci	0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
387e5b75505Sopenharmony_ci	0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
388e5b75505Sopenharmony_ci	0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
389e5b75505Sopenharmony_ci	0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
390e5b75505Sopenharmony_ci	0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
391e5b75505Sopenharmony_ci	0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
392e5b75505Sopenharmony_ci	0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
393e5b75505Sopenharmony_ci	0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
394e5b75505Sopenharmony_ci	0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
395e5b75505Sopenharmony_ci	0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
396e5b75505Sopenharmony_ci	0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
397e5b75505Sopenharmony_ci	0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
398e5b75505Sopenharmony_ci	0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
399e5b75505Sopenharmony_ci	0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
400e5b75505Sopenharmony_ci	0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
401e5b75505Sopenharmony_ci	0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
402e5b75505Sopenharmony_ci	0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
403e5b75505Sopenharmony_ci	0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
404e5b75505Sopenharmony_ci	0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
405e5b75505Sopenharmony_ci	0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
406e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
407e5b75505Sopenharmony_ci};
408e5b75505Sopenharmony_cistatic const u8 dh_group16_order[512] = {
409e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
410e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
411e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
412e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
413e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
414e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
415e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
416e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
417e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
418e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
419e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
420e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
421e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
422e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
423e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
424e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
425e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
426e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
427e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
428e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
429e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
430e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
431e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C, 0x10, 0xBE,
432e5b75505Sopenharmony_ci	0x19, 0x48, 0x2F, 0x23, 0x17, 0x1B, 0x67, 0x1D,
433e5b75505Sopenharmony_ci	0xF1, 0xCF, 0x3B, 0x96, 0x0C, 0x07, 0x43, 0x01,
434e5b75505Sopenharmony_ci	0xCD, 0x93, 0xC1, 0xD1, 0x76, 0x03, 0xD1, 0x47,
435e5b75505Sopenharmony_ci	0xDA, 0xE2, 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64,
436e5b75505Sopenharmony_ci	0xEF, 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
437e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5, 0x72,
438e5b75505Sopenharmony_ci	0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D, 0x02, 0x88,
439e5b75505Sopenharmony_ci	0x0A, 0xB9, 0x47, 0x2D, 0x45, 0x55, 0x62, 0x16,
440e5b75505Sopenharmony_ci	0xD6, 0x99, 0x8B, 0x86, 0x82, 0x28, 0x3D, 0x19,
441e5b75505Sopenharmony_ci	0xD4, 0x2A, 0x90, 0xD5, 0xEF, 0x8E, 0x5D, 0x32,
442e5b75505Sopenharmony_ci	0x76, 0x7D, 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85,
443e5b75505Sopenharmony_ci	0x45, 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
444e5b75505Sopenharmony_ci	0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2, 0x63,
445e5b75505Sopenharmony_ci	0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84, 0x99, 0xEB,
446e5b75505Sopenharmony_ci	0x8F, 0x46, 0x4A, 0x70, 0x25, 0x12, 0xB0, 0xCE,
447e5b75505Sopenharmony_ci	0xE7, 0x71, 0xE9, 0x13, 0x0D, 0x69, 0x77, 0x35,
448e5b75505Sopenharmony_ci	0xF8, 0x97, 0xFD, 0x03, 0x6C, 0xC5, 0x04, 0x32,
449e5b75505Sopenharmony_ci	0x6C, 0x3B, 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32,
450e5b75505Sopenharmony_ci	0x29, 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
451e5b75505Sopenharmony_ci	0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE, 0xB6,
452e5b75505Sopenharmony_ci	0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C, 0xA3, 0x71,
453e5b75505Sopenharmony_ci	0x04, 0x71, 0x27, 0xD0, 0x3A, 0x72, 0xD5, 0x98,
454e5b75505Sopenharmony_ci	0xA1, 0xED, 0xAD, 0xFE, 0x70, 0x7E, 0x88, 0x47,
455e5b75505Sopenharmony_ci	0x25, 0xC1, 0x68, 0x90, 0x54, 0x90, 0x84, 0x00,
456e5b75505Sopenharmony_ci	0x8D, 0x39, 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B,
457e5b75505Sopenharmony_ci	0xC4, 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
458e5b75505Sopenharmony_ci	0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71, 0x1E,
459e5b75505Sopenharmony_ci	0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A, 0x85, 0xED,
460e5b75505Sopenharmony_ci	0x12, 0xC1, 0xF4, 0xE5, 0x15, 0x6A, 0x26, 0x74,
461e5b75505Sopenharmony_ci	0x6D, 0xDD, 0xE1, 0x6D, 0x82, 0x6F, 0x47, 0x7C,
462e5b75505Sopenharmony_ci	0x97, 0x47, 0x7E, 0x0A, 0x0F, 0xDF, 0x65, 0x53,
463e5b75505Sopenharmony_ci	0x14, 0x3E, 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E,
464e5b75505Sopenharmony_ci	0xCC, 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
465e5b75505Sopenharmony_ci	0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3, 0xF6,
466e5b75505Sopenharmony_ci	0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71, 0x6B, 0xD7,
467e5b75505Sopenharmony_ci	0xDC, 0x0D, 0xEE, 0xBB, 0x10, 0xB8, 0x24, 0x0E,
468e5b75505Sopenharmony_ci	0x68, 0x03, 0x48, 0x93, 0xEA, 0xD8, 0x2D, 0x54,
469e5b75505Sopenharmony_ci	0xC9, 0xDA, 0x75, 0x4C, 0x46, 0xC7, 0xEE, 0xE0,
470e5b75505Sopenharmony_ci	0xC3, 0x7F, 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47,
471e5b75505Sopenharmony_ci	0xA6, 0xFA, 0x1A, 0xE4, 0x9A, 0x03, 0x18, 0xCC,
472e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
473e5b75505Sopenharmony_ci};
474e5b75505Sopenharmony_ci
475e5b75505Sopenharmony_ci/* RFC 3526, 6. Group 17 - 6144 Bit MODP
476e5b75505Sopenharmony_ci * Generator: 2
477e5b75505Sopenharmony_ci * Prime: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
478e5b75505Sopenharmony_ci */
479e5b75505Sopenharmony_cistatic const u8 dh_group17_generator[1] = { 0x02 };
480e5b75505Sopenharmony_cistatic const u8 dh_group17_prime[768] = {
481e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
482e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
483e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
484e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
485e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
486e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
487e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
488e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
489e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
490e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
491e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
492e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
493e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
494e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
495e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
496e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
497e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
498e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
499e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
500e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
501e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
502e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
503e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
504e5b75505Sopenharmony_ci	0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
505e5b75505Sopenharmony_ci	0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
506e5b75505Sopenharmony_ci	0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
507e5b75505Sopenharmony_ci	0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
508e5b75505Sopenharmony_ci	0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
509e5b75505Sopenharmony_ci	0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
510e5b75505Sopenharmony_ci	0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
511e5b75505Sopenharmony_ci	0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
512e5b75505Sopenharmony_ci	0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
513e5b75505Sopenharmony_ci	0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
514e5b75505Sopenharmony_ci	0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
515e5b75505Sopenharmony_ci	0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
516e5b75505Sopenharmony_ci	0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
517e5b75505Sopenharmony_ci	0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
518e5b75505Sopenharmony_ci	0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
519e5b75505Sopenharmony_ci	0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
520e5b75505Sopenharmony_ci	0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
521e5b75505Sopenharmony_ci	0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
522e5b75505Sopenharmony_ci	0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
523e5b75505Sopenharmony_ci	0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
524e5b75505Sopenharmony_ci	0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
525e5b75505Sopenharmony_ci	0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
526e5b75505Sopenharmony_ci	0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
527e5b75505Sopenharmony_ci	0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
528e5b75505Sopenharmony_ci	0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
529e5b75505Sopenharmony_ci	0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
530e5b75505Sopenharmony_ci	0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
531e5b75505Sopenharmony_ci	0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
532e5b75505Sopenharmony_ci	0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
533e5b75505Sopenharmony_ci	0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
534e5b75505Sopenharmony_ci	0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
535e5b75505Sopenharmony_ci	0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
536e5b75505Sopenharmony_ci	0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
537e5b75505Sopenharmony_ci	0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
538e5b75505Sopenharmony_ci	0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
539e5b75505Sopenharmony_ci	0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
540e5b75505Sopenharmony_ci	0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
541e5b75505Sopenharmony_ci	0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
542e5b75505Sopenharmony_ci	0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
543e5b75505Sopenharmony_ci	0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
544e5b75505Sopenharmony_ci	0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26,
545e5b75505Sopenharmony_ci	0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26, 0x46, 0xDE,
546e5b75505Sopenharmony_ci	0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
547e5b75505Sopenharmony_ci	0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E,
548e5b75505Sopenharmony_ci	0xE5, 0xDB, 0x38, 0x2F, 0x41, 0x30, 0x01, 0xAE,
549e5b75505Sopenharmony_ci	0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
550e5b75505Sopenharmony_ci	0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
551e5b75505Sopenharmony_ci	0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14, 0xED,
552e5b75505Sopenharmony_ci	0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
553e5b75505Sopenharmony_ci	0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B,
554e5b75505Sopenharmony_ci	0x33, 0x20, 0x51, 0x51, 0x2B, 0xD7, 0xAF, 0x42,
555e5b75505Sopenharmony_ci	0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
556e5b75505Sopenharmony_ci	0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC,
557e5b75505Sopenharmony_ci	0xF0, 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
558e5b75505Sopenharmony_ci	0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
559e5b75505Sopenharmony_ci	0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82,
560e5b75505Sopenharmony_ci	0xB5, 0xA8, 0x40, 0x31, 0x90, 0x0B, 0x1C, 0x9E,
561e5b75505Sopenharmony_ci	0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
562e5b75505Sopenharmony_ci	0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE,
563e5b75505Sopenharmony_ci	0x0F, 0x1D, 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5,
564e5b75505Sopenharmony_ci	0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
565e5b75505Sopenharmony_ci	0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8,
566e5b75505Sopenharmony_ci	0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80, 0x37, 0xE0,
567e5b75505Sopenharmony_ci	0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
568e5b75505Sopenharmony_ci	0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76,
569e5b75505Sopenharmony_ci	0xF5, 0x50, 0xAA, 0x3D, 0x8A, 0x1F, 0xBF, 0xF0,
570e5b75505Sopenharmony_ci	0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
571e5b75505Sopenharmony_ci	0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
572e5b75505Sopenharmony_ci	0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04, 0x68,
573e5b75505Sopenharmony_ci	0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
574e5b75505Sopenharmony_ci	0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6,
575e5b75505Sopenharmony_ci	0xE6, 0x94, 0xF9, 0x1E, 0x6D, 0xCC, 0x40, 0x24,
576e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
577e5b75505Sopenharmony_ci};
578e5b75505Sopenharmony_cistatic const u8 dh_group17_order[768] = {
579e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
580e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
581e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
582e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
583e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
584e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
585e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
586e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
587e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
588e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
589e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
590e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
591e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
592e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
593e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
594e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
595e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
596e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
597e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
598e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
599e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
600e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
601e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C, 0x10, 0xBE,
602e5b75505Sopenharmony_ci	0x19, 0x48, 0x2F, 0x23, 0x17, 0x1B, 0x67, 0x1D,
603e5b75505Sopenharmony_ci	0xF1, 0xCF, 0x3B, 0x96, 0x0C, 0x07, 0x43, 0x01,
604e5b75505Sopenharmony_ci	0xCD, 0x93, 0xC1, 0xD1, 0x76, 0x03, 0xD1, 0x47,
605e5b75505Sopenharmony_ci	0xDA, 0xE2, 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64,
606e5b75505Sopenharmony_ci	0xEF, 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
607e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5, 0x72,
608e5b75505Sopenharmony_ci	0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D, 0x02, 0x88,
609e5b75505Sopenharmony_ci	0x0A, 0xB9, 0x47, 0x2D, 0x45, 0x55, 0x62, 0x16,
610e5b75505Sopenharmony_ci	0xD6, 0x99, 0x8B, 0x86, 0x82, 0x28, 0x3D, 0x19,
611e5b75505Sopenharmony_ci	0xD4, 0x2A, 0x90, 0xD5, 0xEF, 0x8E, 0x5D, 0x32,
612e5b75505Sopenharmony_ci	0x76, 0x7D, 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85,
613e5b75505Sopenharmony_ci	0x45, 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
614e5b75505Sopenharmony_ci	0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2, 0x63,
615e5b75505Sopenharmony_ci	0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84, 0x99, 0xEB,
616e5b75505Sopenharmony_ci	0x8F, 0x46, 0x4A, 0x70, 0x25, 0x12, 0xB0, 0xCE,
617e5b75505Sopenharmony_ci	0xE7, 0x71, 0xE9, 0x13, 0x0D, 0x69, 0x77, 0x35,
618e5b75505Sopenharmony_ci	0xF8, 0x97, 0xFD, 0x03, 0x6C, 0xC5, 0x04, 0x32,
619e5b75505Sopenharmony_ci	0x6C, 0x3B, 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32,
620e5b75505Sopenharmony_ci	0x29, 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
621e5b75505Sopenharmony_ci	0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE, 0xB6,
622e5b75505Sopenharmony_ci	0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C, 0xA3, 0x71,
623e5b75505Sopenharmony_ci	0x04, 0x71, 0x27, 0xD0, 0x3A, 0x72, 0xD5, 0x98,
624e5b75505Sopenharmony_ci	0xA1, 0xED, 0xAD, 0xFE, 0x70, 0x7E, 0x88, 0x47,
625e5b75505Sopenharmony_ci	0x25, 0xC1, 0x68, 0x90, 0x54, 0x90, 0x84, 0x00,
626e5b75505Sopenharmony_ci	0x8D, 0x39, 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B,
627e5b75505Sopenharmony_ci	0xC4, 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
628e5b75505Sopenharmony_ci	0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71, 0x1E,
629e5b75505Sopenharmony_ci	0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A, 0x85, 0xED,
630e5b75505Sopenharmony_ci	0x12, 0xC1, 0xF4, 0xE5, 0x15, 0x6A, 0x26, 0x74,
631e5b75505Sopenharmony_ci	0x6D, 0xDD, 0xE1, 0x6D, 0x82, 0x6F, 0x47, 0x7C,
632e5b75505Sopenharmony_ci	0x97, 0x47, 0x7E, 0x0A, 0x0F, 0xDF, 0x65, 0x53,
633e5b75505Sopenharmony_ci	0x14, 0x3E, 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E,
634e5b75505Sopenharmony_ci	0xCC, 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
635e5b75505Sopenharmony_ci	0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3, 0xF6,
636e5b75505Sopenharmony_ci	0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71, 0x6B, 0xD7,
637e5b75505Sopenharmony_ci	0xDC, 0x0D, 0xEE, 0xBB, 0x10, 0xB8, 0x24, 0x0E,
638e5b75505Sopenharmony_ci	0x68, 0x03, 0x48, 0x93, 0xEA, 0xD8, 0x2D, 0x54,
639e5b75505Sopenharmony_ci	0xC9, 0xDA, 0x75, 0x4C, 0x46, 0xC7, 0xEE, 0xE0,
640e5b75505Sopenharmony_ci	0xC3, 0x7F, 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47,
641e5b75505Sopenharmony_ci	0xA6, 0xFA, 0x1A, 0xE4, 0x9A, 0x01, 0x42, 0x49,
642e5b75505Sopenharmony_ci	0x1B, 0x61, 0xFD, 0x5A, 0x69, 0x3E, 0x38, 0x13,
643e5b75505Sopenharmony_ci	0x60, 0xEA, 0x6E, 0x59, 0x30, 0x13, 0x23, 0x6F,
644e5b75505Sopenharmony_ci	0x64, 0xBA, 0x8F, 0x3B, 0x1E, 0xDD, 0x1B, 0xDE,
645e5b75505Sopenharmony_ci	0xFC, 0x7F, 0xCA, 0x03, 0x56, 0xCF, 0x29, 0x87,
646e5b75505Sopenharmony_ci	0x72, 0xED, 0x9C, 0x17, 0xA0, 0x98, 0x00, 0xD7,
647e5b75505Sopenharmony_ci	0x58, 0x35, 0x29, 0xF6, 0xC8, 0x13, 0xEC, 0x18,
648e5b75505Sopenharmony_ci	0x8B, 0xCB, 0x93, 0xD8, 0x43, 0x2D, 0x44, 0x8C,
649e5b75505Sopenharmony_ci	0x6D, 0x1F, 0x6D, 0xF5, 0xE7, 0xCD, 0x8A, 0x76,
650e5b75505Sopenharmony_ci	0xA2, 0x67, 0x36, 0x5D, 0x67, 0x6A, 0x5D, 0x8D,
651e5b75505Sopenharmony_ci	0xED, 0xBF, 0x8A, 0x23, 0xF3, 0x66, 0x12, 0xA5,
652e5b75505Sopenharmony_ci	0x99, 0x90, 0x28, 0xA8, 0x95, 0xEB, 0xD7, 0xA1,
653e5b75505Sopenharmony_ci	0x37, 0xDC, 0x7A, 0x00, 0x9B, 0xC6, 0x69, 0x5F,
654e5b75505Sopenharmony_ci	0xAC, 0xC1, 0xE5, 0x00, 0xE3, 0x25, 0xC9, 0x76,
655e5b75505Sopenharmony_ci	0x78, 0x19, 0x75, 0x0A, 0xE8, 0xB9, 0x0E, 0x81,
656e5b75505Sopenharmony_ci	0xFA, 0x41, 0x6B, 0xE7, 0x37, 0x3A, 0x7F, 0x7B,
657e5b75505Sopenharmony_ci	0x6A, 0xAF, 0x38, 0x17, 0xA3, 0x4C, 0x06, 0x41,
658e5b75505Sopenharmony_ci	0x5A, 0xD4, 0x20, 0x18, 0xC8, 0x05, 0x8E, 0x4F,
659e5b75505Sopenharmony_ci	0x2C, 0xF3, 0xE4, 0xBF, 0xDF, 0x63, 0xF4, 0x79,
660e5b75505Sopenharmony_ci	0x91, 0xD4, 0xBD, 0x3F, 0x1B, 0x66, 0x44, 0x5F,
661e5b75505Sopenharmony_ci	0x07, 0x8E, 0xA2, 0xDB, 0xFF, 0xAC, 0x2D, 0x62,
662e5b75505Sopenharmony_ci	0xA5, 0xEA, 0x03, 0xD9, 0x15, 0xA0, 0xAA, 0x55,
663e5b75505Sopenharmony_ci	0x66, 0x47, 0xB6, 0xBF, 0x5F, 0xA4, 0x70, 0xEC,
664e5b75505Sopenharmony_ci	0x0A, 0x66, 0x2F, 0x69, 0x07, 0xC0, 0x1B, 0xF0,
665e5b75505Sopenharmony_ci	0x53, 0xCB, 0x8A, 0xF7, 0x79, 0x4D, 0xF1, 0x94,
666e5b75505Sopenharmony_ci	0x03, 0x50, 0xEA, 0xC5, 0xDB, 0xE2, 0xED, 0x3B,
667e5b75505Sopenharmony_ci	0x7A, 0xA8, 0x55, 0x1E, 0xC5, 0x0F, 0xDF, 0xF8,
668e5b75505Sopenharmony_ci	0x75, 0x8C, 0xE6, 0x58, 0xD1, 0x89, 0xEA, 0xAE,
669e5b75505Sopenharmony_ci	0x6D, 0x2B, 0x64, 0xF6, 0x17, 0x79, 0x4B, 0x19,
670e5b75505Sopenharmony_ci	0x1C, 0x3F, 0xF4, 0x6B, 0xB7, 0x1E, 0x02, 0x34,
671e5b75505Sopenharmony_ci	0x02, 0x1F, 0x47, 0xB3, 0x1F, 0xA4, 0x30, 0x77,
672e5b75505Sopenharmony_ci	0x09, 0x5F, 0x96, 0xAD, 0x85, 0xBA, 0x3A, 0x6B,
673e5b75505Sopenharmony_ci	0x73, 0x4A, 0x7C, 0x8F, 0x36, 0xE6, 0x20, 0x12,
674e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
675e5b75505Sopenharmony_ci};
676e5b75505Sopenharmony_ci
677e5b75505Sopenharmony_ci/* RFC 3526, 7. Group 18 - 8192 Bit MODP
678e5b75505Sopenharmony_ci * Generator: 2
679e5b75505Sopenharmony_ci * Prime: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
680e5b75505Sopenharmony_ci */
681e5b75505Sopenharmony_cistatic const u8 dh_group18_generator[1] = { 0x02 };
682e5b75505Sopenharmony_cistatic const u8 dh_group18_prime[1024] = {
683e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
684e5b75505Sopenharmony_ci	0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
685e5b75505Sopenharmony_ci	0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
686e5b75505Sopenharmony_ci	0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
687e5b75505Sopenharmony_ci	0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
688e5b75505Sopenharmony_ci	0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
689e5b75505Sopenharmony_ci	0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
690e5b75505Sopenharmony_ci	0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
691e5b75505Sopenharmony_ci	0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
692e5b75505Sopenharmony_ci	0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
693e5b75505Sopenharmony_ci	0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
694e5b75505Sopenharmony_ci	0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
695e5b75505Sopenharmony_ci	0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
696e5b75505Sopenharmony_ci	0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
697e5b75505Sopenharmony_ci	0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
698e5b75505Sopenharmony_ci	0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
699e5b75505Sopenharmony_ci	0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
700e5b75505Sopenharmony_ci	0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
701e5b75505Sopenharmony_ci	0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
702e5b75505Sopenharmony_ci	0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
703e5b75505Sopenharmony_ci	0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
704e5b75505Sopenharmony_ci	0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
705e5b75505Sopenharmony_ci	0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
706e5b75505Sopenharmony_ci	0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
707e5b75505Sopenharmony_ci	0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
708e5b75505Sopenharmony_ci	0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
709e5b75505Sopenharmony_ci	0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
710e5b75505Sopenharmony_ci	0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
711e5b75505Sopenharmony_ci	0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
712e5b75505Sopenharmony_ci	0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
713e5b75505Sopenharmony_ci	0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
714e5b75505Sopenharmony_ci	0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
715e5b75505Sopenharmony_ci	0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
716e5b75505Sopenharmony_ci	0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
717e5b75505Sopenharmony_ci	0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
718e5b75505Sopenharmony_ci	0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
719e5b75505Sopenharmony_ci	0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
720e5b75505Sopenharmony_ci	0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
721e5b75505Sopenharmony_ci	0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
722e5b75505Sopenharmony_ci	0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
723e5b75505Sopenharmony_ci	0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
724e5b75505Sopenharmony_ci	0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
725e5b75505Sopenharmony_ci	0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
726e5b75505Sopenharmony_ci	0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
727e5b75505Sopenharmony_ci	0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
728e5b75505Sopenharmony_ci	0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
729e5b75505Sopenharmony_ci	0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
730e5b75505Sopenharmony_ci	0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
731e5b75505Sopenharmony_ci	0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
732e5b75505Sopenharmony_ci	0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
733e5b75505Sopenharmony_ci	0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
734e5b75505Sopenharmony_ci	0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
735e5b75505Sopenharmony_ci	0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
736e5b75505Sopenharmony_ci	0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
737e5b75505Sopenharmony_ci	0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
738e5b75505Sopenharmony_ci	0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
739e5b75505Sopenharmony_ci	0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
740e5b75505Sopenharmony_ci	0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
741e5b75505Sopenharmony_ci	0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
742e5b75505Sopenharmony_ci	0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
743e5b75505Sopenharmony_ci	0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
744e5b75505Sopenharmony_ci	0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
745e5b75505Sopenharmony_ci	0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
746e5b75505Sopenharmony_ci	0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26,
747e5b75505Sopenharmony_ci	0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26, 0x46, 0xDE,
748e5b75505Sopenharmony_ci	0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
749e5b75505Sopenharmony_ci	0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E,
750e5b75505Sopenharmony_ci	0xE5, 0xDB, 0x38, 0x2F, 0x41, 0x30, 0x01, 0xAE,
751e5b75505Sopenharmony_ci	0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
752e5b75505Sopenharmony_ci	0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
753e5b75505Sopenharmony_ci	0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14, 0xED,
754e5b75505Sopenharmony_ci	0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
755e5b75505Sopenharmony_ci	0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B,
756e5b75505Sopenharmony_ci	0x33, 0x20, 0x51, 0x51, 0x2B, 0xD7, 0xAF, 0x42,
757e5b75505Sopenharmony_ci	0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
758e5b75505Sopenharmony_ci	0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC,
759e5b75505Sopenharmony_ci	0xF0, 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
760e5b75505Sopenharmony_ci	0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
761e5b75505Sopenharmony_ci	0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82,
762e5b75505Sopenharmony_ci	0xB5, 0xA8, 0x40, 0x31, 0x90, 0x0B, 0x1C, 0x9E,
763e5b75505Sopenharmony_ci	0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
764e5b75505Sopenharmony_ci	0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE,
765e5b75505Sopenharmony_ci	0x0F, 0x1D, 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5,
766e5b75505Sopenharmony_ci	0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
767e5b75505Sopenharmony_ci	0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8,
768e5b75505Sopenharmony_ci	0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80, 0x37, 0xE0,
769e5b75505Sopenharmony_ci	0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
770e5b75505Sopenharmony_ci	0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76,
771e5b75505Sopenharmony_ci	0xF5, 0x50, 0xAA, 0x3D, 0x8A, 0x1F, 0xBF, 0xF0,
772e5b75505Sopenharmony_ci	0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
773e5b75505Sopenharmony_ci	0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
774e5b75505Sopenharmony_ci	0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04, 0x68,
775e5b75505Sopenharmony_ci	0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
776e5b75505Sopenharmony_ci	0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6,
777e5b75505Sopenharmony_ci	0xE6, 0x94, 0xF9, 0x1E, 0x6D, 0xBE, 0x11, 0x59,
778e5b75505Sopenharmony_ci	0x74, 0xA3, 0x92, 0x6F, 0x12, 0xFE, 0xE5, 0xE4,
779e5b75505Sopenharmony_ci	0x38, 0x77, 0x7C, 0xB6, 0xA9, 0x32, 0xDF, 0x8C,
780e5b75505Sopenharmony_ci	0xD8, 0xBE, 0xC4, 0xD0, 0x73, 0xB9, 0x31, 0xBA,
781e5b75505Sopenharmony_ci	0x3B, 0xC8, 0x32, 0xB6, 0x8D, 0x9D, 0xD3, 0x00,
782e5b75505Sopenharmony_ci	0x74, 0x1F, 0xA7, 0xBF, 0x8A, 0xFC, 0x47, 0xED,
783e5b75505Sopenharmony_ci	0x25, 0x76, 0xF6, 0x93, 0x6B, 0xA4, 0x24, 0x66,
784e5b75505Sopenharmony_ci	0x3A, 0xAB, 0x63, 0x9C, 0x5A, 0xE4, 0xF5, 0x68,
785e5b75505Sopenharmony_ci	0x34, 0x23, 0xB4, 0x74, 0x2B, 0xF1, 0xC9, 0x78,
786e5b75505Sopenharmony_ci	0x23, 0x8F, 0x16, 0xCB, 0xE3, 0x9D, 0x65, 0x2D,
787e5b75505Sopenharmony_ci	0xE3, 0xFD, 0xB8, 0xBE, 0xFC, 0x84, 0x8A, 0xD9,
788e5b75505Sopenharmony_ci	0x22, 0x22, 0x2E, 0x04, 0xA4, 0x03, 0x7C, 0x07,
789e5b75505Sopenharmony_ci	0x13, 0xEB, 0x57, 0xA8, 0x1A, 0x23, 0xF0, 0xC7,
790e5b75505Sopenharmony_ci	0x34, 0x73, 0xFC, 0x64, 0x6C, 0xEA, 0x30, 0x6B,
791e5b75505Sopenharmony_ci	0x4B, 0xCB, 0xC8, 0x86, 0x2F, 0x83, 0x85, 0xDD,
792e5b75505Sopenharmony_ci	0xFA, 0x9D, 0x4B, 0x7F, 0xA2, 0xC0, 0x87, 0xE8,
793e5b75505Sopenharmony_ci	0x79, 0x68, 0x33, 0x03, 0xED, 0x5B, 0xDD, 0x3A,
794e5b75505Sopenharmony_ci	0x06, 0x2B, 0x3C, 0xF5, 0xB3, 0xA2, 0x78, 0xA6,
795e5b75505Sopenharmony_ci	0x6D, 0x2A, 0x13, 0xF8, 0x3F, 0x44, 0xF8, 0x2D,
796e5b75505Sopenharmony_ci	0xDF, 0x31, 0x0E, 0xE0, 0x74, 0xAB, 0x6A, 0x36,
797e5b75505Sopenharmony_ci	0x45, 0x97, 0xE8, 0x99, 0xA0, 0x25, 0x5D, 0xC1,
798e5b75505Sopenharmony_ci	0x64, 0xF3, 0x1C, 0xC5, 0x08, 0x46, 0x85, 0x1D,
799e5b75505Sopenharmony_ci	0xF9, 0xAB, 0x48, 0x19, 0x5D, 0xED, 0x7E, 0xA1,
800e5b75505Sopenharmony_ci	0xB1, 0xD5, 0x10, 0xBD, 0x7E, 0xE7, 0x4D, 0x73,
801e5b75505Sopenharmony_ci	0xFA, 0xF3, 0x6B, 0xC3, 0x1E, 0xCF, 0xA2, 0x68,
802e5b75505Sopenharmony_ci	0x35, 0x90, 0x46, 0xF4, 0xEB, 0x87, 0x9F, 0x92,
803e5b75505Sopenharmony_ci	0x40, 0x09, 0x43, 0x8B, 0x48, 0x1C, 0x6C, 0xD7,
804e5b75505Sopenharmony_ci	0x88, 0x9A, 0x00, 0x2E, 0xD5, 0xEE, 0x38, 0x2B,
805e5b75505Sopenharmony_ci	0xC9, 0x19, 0x0D, 0xA6, 0xFC, 0x02, 0x6E, 0x47,
806e5b75505Sopenharmony_ci	0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA,
807e5b75505Sopenharmony_ci	0x9E, 0x30, 0x50, 0xE2, 0x76, 0x56, 0x94, 0xDF,
808e5b75505Sopenharmony_ci	0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
809e5b75505Sopenharmony_ci	0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF,
810e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
811e5b75505Sopenharmony_ci};
812e5b75505Sopenharmony_cistatic const u8 dh_group18_order[1024] = {
813e5b75505Sopenharmony_ci	0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
814e5b75505Sopenharmony_ci	0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
815e5b75505Sopenharmony_ci	0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
816e5b75505Sopenharmony_ci	0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
817e5b75505Sopenharmony_ci	0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
818e5b75505Sopenharmony_ci	0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
819e5b75505Sopenharmony_ci	0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
820e5b75505Sopenharmony_ci	0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
821e5b75505Sopenharmony_ci	0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
822e5b75505Sopenharmony_ci	0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
823e5b75505Sopenharmony_ci	0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
824e5b75505Sopenharmony_ci	0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
825e5b75505Sopenharmony_ci	0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
826e5b75505Sopenharmony_ci	0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
827e5b75505Sopenharmony_ci	0x24, 0x94, 0x33, 0x28, 0xF6, 0x72, 0x2D, 0x9E,
828e5b75505Sopenharmony_ci	0xE1, 0x00, 0x3E, 0x5C, 0x50, 0xB1, 0xDF, 0x82,
829e5b75505Sopenharmony_ci	0xCC, 0x6D, 0x24, 0x1B, 0x0E, 0x2A, 0xE9, 0xCD,
830e5b75505Sopenharmony_ci	0x34, 0x8B, 0x1F, 0xD4, 0x7E, 0x92, 0x67, 0xAF,
831e5b75505Sopenharmony_ci	0xC1, 0xB2, 0xAE, 0x91, 0xEE, 0x51, 0xD6, 0xCB,
832e5b75505Sopenharmony_ci	0x0E, 0x31, 0x79, 0xAB, 0x10, 0x42, 0xA9, 0x5D,
833e5b75505Sopenharmony_ci	0xCF, 0x6A, 0x94, 0x83, 0xB8, 0x4B, 0x4B, 0x36,
834e5b75505Sopenharmony_ci	0xB3, 0x86, 0x1A, 0xA7, 0x25, 0x5E, 0x4C, 0x02,
835e5b75505Sopenharmony_ci	0x78, 0xBA, 0x36, 0x04, 0x65, 0x0C, 0x10, 0xBE,
836e5b75505Sopenharmony_ci	0x19, 0x48, 0x2F, 0x23, 0x17, 0x1B, 0x67, 0x1D,
837e5b75505Sopenharmony_ci	0xF1, 0xCF, 0x3B, 0x96, 0x0C, 0x07, 0x43, 0x01,
838e5b75505Sopenharmony_ci	0xCD, 0x93, 0xC1, 0xD1, 0x76, 0x03, 0xD1, 0x47,
839e5b75505Sopenharmony_ci	0xDA, 0xE2, 0xAE, 0xF8, 0x37, 0xA6, 0x29, 0x64,
840e5b75505Sopenharmony_ci	0xEF, 0x15, 0xE5, 0xFB, 0x4A, 0xAC, 0x0B, 0x8C,
841e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xA4, 0xBE, 0x75, 0x4A, 0xB5, 0x72,
842e5b75505Sopenharmony_ci	0x8A, 0xE9, 0x13, 0x0C, 0x4C, 0x7D, 0x02, 0x88,
843e5b75505Sopenharmony_ci	0x0A, 0xB9, 0x47, 0x2D, 0x45, 0x55, 0x62, 0x16,
844e5b75505Sopenharmony_ci	0xD6, 0x99, 0x8B, 0x86, 0x82, 0x28, 0x3D, 0x19,
845e5b75505Sopenharmony_ci	0xD4, 0x2A, 0x90, 0xD5, 0xEF, 0x8E, 0x5D, 0x32,
846e5b75505Sopenharmony_ci	0x76, 0x7D, 0xC2, 0x82, 0x2C, 0x6D, 0xF7, 0x85,
847e5b75505Sopenharmony_ci	0x45, 0x75, 0x38, 0xAB, 0xAE, 0x83, 0x06, 0x3E,
848e5b75505Sopenharmony_ci	0xD9, 0xCB, 0x87, 0xC2, 0xD3, 0x70, 0xF2, 0x63,
849e5b75505Sopenharmony_ci	0xD5, 0xFA, 0xD7, 0x46, 0x6D, 0x84, 0x99, 0xEB,
850e5b75505Sopenharmony_ci	0x8F, 0x46, 0x4A, 0x70, 0x25, 0x12, 0xB0, 0xCE,
851e5b75505Sopenharmony_ci	0xE7, 0x71, 0xE9, 0x13, 0x0D, 0x69, 0x77, 0x35,
852e5b75505Sopenharmony_ci	0xF8, 0x97, 0xFD, 0x03, 0x6C, 0xC5, 0x04, 0x32,
853e5b75505Sopenharmony_ci	0x6C, 0x3B, 0x01, 0x39, 0x9F, 0x64, 0x35, 0x32,
854e5b75505Sopenharmony_ci	0x29, 0x0F, 0x95, 0x8C, 0x0B, 0xBD, 0x90, 0x06,
855e5b75505Sopenharmony_ci	0x5D, 0xF0, 0x8B, 0xAB, 0xBD, 0x30, 0xAE, 0xB6,
856e5b75505Sopenharmony_ci	0x3B, 0x84, 0xC4, 0x60, 0x5D, 0x6C, 0xA3, 0x71,
857e5b75505Sopenharmony_ci	0x04, 0x71, 0x27, 0xD0, 0x3A, 0x72, 0xD5, 0x98,
858e5b75505Sopenharmony_ci	0xA1, 0xED, 0xAD, 0xFE, 0x70, 0x7E, 0x88, 0x47,
859e5b75505Sopenharmony_ci	0x25, 0xC1, 0x68, 0x90, 0x54, 0x90, 0x84, 0x00,
860e5b75505Sopenharmony_ci	0x8D, 0x39, 0x1E, 0x09, 0x53, 0xC3, 0xF3, 0x6B,
861e5b75505Sopenharmony_ci	0xC4, 0x38, 0xCD, 0x08, 0x5E, 0xDD, 0x2D, 0x93,
862e5b75505Sopenharmony_ci	0x4C, 0xE1, 0x93, 0x8C, 0x35, 0x7A, 0x71, 0x1E,
863e5b75505Sopenharmony_ci	0x0D, 0x4A, 0x34, 0x1A, 0x5B, 0x0A, 0x85, 0xED,
864e5b75505Sopenharmony_ci	0x12, 0xC1, 0xF4, 0xE5, 0x15, 0x6A, 0x26, 0x74,
865e5b75505Sopenharmony_ci	0x6D, 0xDD, 0xE1, 0x6D, 0x82, 0x6F, 0x47, 0x7C,
866e5b75505Sopenharmony_ci	0x97, 0x47, 0x7E, 0x0A, 0x0F, 0xDF, 0x65, 0x53,
867e5b75505Sopenharmony_ci	0x14, 0x3E, 0x2C, 0xA3, 0xA7, 0x35, 0xE0, 0x2E,
868e5b75505Sopenharmony_ci	0xCC, 0xD9, 0x4B, 0x27, 0xD0, 0x48, 0x61, 0xD1,
869e5b75505Sopenharmony_ci	0x11, 0x9D, 0xD0, 0xC3, 0x28, 0xAD, 0xF3, 0xF6,
870e5b75505Sopenharmony_ci	0x8F, 0xB0, 0x94, 0xB8, 0x67, 0x71, 0x6B, 0xD7,
871e5b75505Sopenharmony_ci	0xDC, 0x0D, 0xEE, 0xBB, 0x10, 0xB8, 0x24, 0x0E,
872e5b75505Sopenharmony_ci	0x68, 0x03, 0x48, 0x93, 0xEA, 0xD8, 0x2D, 0x54,
873e5b75505Sopenharmony_ci	0xC9, 0xDA, 0x75, 0x4C, 0x46, 0xC7, 0xEE, 0xE0,
874e5b75505Sopenharmony_ci	0xC3, 0x7F, 0xDB, 0xEE, 0x48, 0x53, 0x60, 0x47,
875e5b75505Sopenharmony_ci	0xA6, 0xFA, 0x1A, 0xE4, 0x9A, 0x01, 0x42, 0x49,
876e5b75505Sopenharmony_ci	0x1B, 0x61, 0xFD, 0x5A, 0x69, 0x3E, 0x38, 0x13,
877e5b75505Sopenharmony_ci	0x60, 0xEA, 0x6E, 0x59, 0x30, 0x13, 0x23, 0x6F,
878e5b75505Sopenharmony_ci	0x64, 0xBA, 0x8F, 0x3B, 0x1E, 0xDD, 0x1B, 0xDE,
879e5b75505Sopenharmony_ci	0xFC, 0x7F, 0xCA, 0x03, 0x56, 0xCF, 0x29, 0x87,
880e5b75505Sopenharmony_ci	0x72, 0xED, 0x9C, 0x17, 0xA0, 0x98, 0x00, 0xD7,
881e5b75505Sopenharmony_ci	0x58, 0x35, 0x29, 0xF6, 0xC8, 0x13, 0xEC, 0x18,
882e5b75505Sopenharmony_ci	0x8B, 0xCB, 0x93, 0xD8, 0x43, 0x2D, 0x44, 0x8C,
883e5b75505Sopenharmony_ci	0x6D, 0x1F, 0x6D, 0xF5, 0xE7, 0xCD, 0x8A, 0x76,
884e5b75505Sopenharmony_ci	0xA2, 0x67, 0x36, 0x5D, 0x67, 0x6A, 0x5D, 0x8D,
885e5b75505Sopenharmony_ci	0xED, 0xBF, 0x8A, 0x23, 0xF3, 0x66, 0x12, 0xA5,
886e5b75505Sopenharmony_ci	0x99, 0x90, 0x28, 0xA8, 0x95, 0xEB, 0xD7, 0xA1,
887e5b75505Sopenharmony_ci	0x37, 0xDC, 0x7A, 0x00, 0x9B, 0xC6, 0x69, 0x5F,
888e5b75505Sopenharmony_ci	0xAC, 0xC1, 0xE5, 0x00, 0xE3, 0x25, 0xC9, 0x76,
889e5b75505Sopenharmony_ci	0x78, 0x19, 0x75, 0x0A, 0xE8, 0xB9, 0x0E, 0x81,
890e5b75505Sopenharmony_ci	0xFA, 0x41, 0x6B, 0xE7, 0x37, 0x3A, 0x7F, 0x7B,
891e5b75505Sopenharmony_ci	0x6A, 0xAF, 0x38, 0x17, 0xA3, 0x4C, 0x06, 0x41,
892e5b75505Sopenharmony_ci	0x5A, 0xD4, 0x20, 0x18, 0xC8, 0x05, 0x8E, 0x4F,
893e5b75505Sopenharmony_ci	0x2C, 0xF3, 0xE4, 0xBF, 0xDF, 0x63, 0xF4, 0x79,
894e5b75505Sopenharmony_ci	0x91, 0xD4, 0xBD, 0x3F, 0x1B, 0x66, 0x44, 0x5F,
895e5b75505Sopenharmony_ci	0x07, 0x8E, 0xA2, 0xDB, 0xFF, 0xAC, 0x2D, 0x62,
896e5b75505Sopenharmony_ci	0xA5, 0xEA, 0x03, 0xD9, 0x15, 0xA0, 0xAA, 0x55,
897e5b75505Sopenharmony_ci	0x66, 0x47, 0xB6, 0xBF, 0x5F, 0xA4, 0x70, 0xEC,
898e5b75505Sopenharmony_ci	0x0A, 0x66, 0x2F, 0x69, 0x07, 0xC0, 0x1B, 0xF0,
899e5b75505Sopenharmony_ci	0x53, 0xCB, 0x8A, 0xF7, 0x79, 0x4D, 0xF1, 0x94,
900e5b75505Sopenharmony_ci	0x03, 0x50, 0xEA, 0xC5, 0xDB, 0xE2, 0xED, 0x3B,
901e5b75505Sopenharmony_ci	0x7A, 0xA8, 0x55, 0x1E, 0xC5, 0x0F, 0xDF, 0xF8,
902e5b75505Sopenharmony_ci	0x75, 0x8C, 0xE6, 0x58, 0xD1, 0x89, 0xEA, 0xAE,
903e5b75505Sopenharmony_ci	0x6D, 0x2B, 0x64, 0xF6, 0x17, 0x79, 0x4B, 0x19,
904e5b75505Sopenharmony_ci	0x1C, 0x3F, 0xF4, 0x6B, 0xB7, 0x1E, 0x02, 0x34,
905e5b75505Sopenharmony_ci	0x02, 0x1F, 0x47, 0xB3, 0x1F, 0xA4, 0x30, 0x77,
906e5b75505Sopenharmony_ci	0x09, 0x5F, 0x96, 0xAD, 0x85, 0xBA, 0x3A, 0x6B,
907e5b75505Sopenharmony_ci	0x73, 0x4A, 0x7C, 0x8F, 0x36, 0xDF, 0x08, 0xAC,
908e5b75505Sopenharmony_ci	0xBA, 0x51, 0xC9, 0x37, 0x89, 0x7F, 0x72, 0xF2,
909e5b75505Sopenharmony_ci	0x1C, 0x3B, 0xBE, 0x5B, 0x54, 0x99, 0x6F, 0xC6,
910e5b75505Sopenharmony_ci	0x6C, 0x5F, 0x62, 0x68, 0x39, 0xDC, 0x98, 0xDD,
911e5b75505Sopenharmony_ci	0x1D, 0xE4, 0x19, 0x5B, 0x46, 0xCE, 0xE9, 0x80,
912e5b75505Sopenharmony_ci	0x3A, 0x0F, 0xD3, 0xDF, 0xC5, 0x7E, 0x23, 0xF6,
913e5b75505Sopenharmony_ci	0x92, 0xBB, 0x7B, 0x49, 0xB5, 0xD2, 0x12, 0x33,
914e5b75505Sopenharmony_ci	0x1D, 0x55, 0xB1, 0xCE, 0x2D, 0x72, 0x7A, 0xB4,
915e5b75505Sopenharmony_ci	0x1A, 0x11, 0xDA, 0x3A, 0x15, 0xF8, 0xE4, 0xBC,
916e5b75505Sopenharmony_ci	0x11, 0xC7, 0x8B, 0x65, 0xF1, 0xCE, 0xB2, 0x96,
917e5b75505Sopenharmony_ci	0xF1, 0xFE, 0xDC, 0x5F, 0x7E, 0x42, 0x45, 0x6C,
918e5b75505Sopenharmony_ci	0x91, 0x11, 0x17, 0x02, 0x52, 0x01, 0xBE, 0x03,
919e5b75505Sopenharmony_ci	0x89, 0xF5, 0xAB, 0xD4, 0x0D, 0x11, 0xF8, 0x63,
920e5b75505Sopenharmony_ci	0x9A, 0x39, 0xFE, 0x32, 0x36, 0x75, 0x18, 0x35,
921e5b75505Sopenharmony_ci	0xA5, 0xE5, 0xE4, 0x43, 0x17, 0xC1, 0xC2, 0xEE,
922e5b75505Sopenharmony_ci	0xFD, 0x4E, 0xA5, 0xBF, 0xD1, 0x60, 0x43, 0xF4,
923e5b75505Sopenharmony_ci	0x3C, 0xB4, 0x19, 0x81, 0xF6, 0xAD, 0xEE, 0x9D,
924e5b75505Sopenharmony_ci	0x03, 0x15, 0x9E, 0x7A, 0xD9, 0xD1, 0x3C, 0x53,
925e5b75505Sopenharmony_ci	0x36, 0x95, 0x09, 0xFC, 0x1F, 0xA2, 0x7C, 0x16,
926e5b75505Sopenharmony_ci	0xEF, 0x98, 0x87, 0x70, 0x3A, 0x55, 0xB5, 0x1B,
927e5b75505Sopenharmony_ci	0x22, 0xCB, 0xF4, 0x4C, 0xD0, 0x12, 0xAE, 0xE0,
928e5b75505Sopenharmony_ci	0xB2, 0x79, 0x8E, 0x62, 0x84, 0x23, 0x42, 0x8E,
929e5b75505Sopenharmony_ci	0xFC, 0xD5, 0xA4, 0x0C, 0xAE, 0xF6, 0xBF, 0x50,
930e5b75505Sopenharmony_ci	0xD8, 0xEA, 0x88, 0x5E, 0xBF, 0x73, 0xA6, 0xB9,
931e5b75505Sopenharmony_ci	0xFD, 0x79, 0xB5, 0xE1, 0x8F, 0x67, 0xD1, 0x34,
932e5b75505Sopenharmony_ci	0x1A, 0xC8, 0x23, 0x7A, 0x75, 0xC3, 0xCF, 0xC9,
933e5b75505Sopenharmony_ci	0x20, 0x04, 0xA1, 0xC5, 0xA4, 0x0E, 0x36, 0x6B,
934e5b75505Sopenharmony_ci	0xC4, 0x4D, 0x00, 0x17, 0x6A, 0xF7, 0x1C, 0x15,
935e5b75505Sopenharmony_ci	0xE4, 0x8C, 0x86, 0xD3, 0x7E, 0x01, 0x37, 0x23,
936e5b75505Sopenharmony_ci	0xCA, 0xAC, 0x72, 0x23, 0xAB, 0x3B, 0xF4, 0xD5,
937e5b75505Sopenharmony_ci	0x4F, 0x18, 0x28, 0x71, 0x3B, 0x2B, 0x4A, 0x6F,
938e5b75505Sopenharmony_ci	0xE4, 0x0F, 0xAB, 0x74, 0x40, 0x5C, 0xB7, 0x38,
939e5b75505Sopenharmony_ci	0xB0, 0x64, 0xC0, 0x6E, 0xCC, 0x76, 0xE9, 0xEF,
940e5b75505Sopenharmony_ci	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
941e5b75505Sopenharmony_ci};
942e5b75505Sopenharmony_ci
943e5b75505Sopenharmony_ci/*
944e5b75505Sopenharmony_ci * RFC 5114, 2.1.
945e5b75505Sopenharmony_ci * Group 22 - 1024-bit MODP Group with 160-bit Prime Order Subgroup
946e5b75505Sopenharmony_ci */
947e5b75505Sopenharmony_cistatic const u8 dh_group22_generator[] = {
948e5b75505Sopenharmony_ci	0xA4, 0xD1, 0xCB, 0xD5, 0xC3, 0xFD, 0x34, 0x12,
949e5b75505Sopenharmony_ci	0x67, 0x65, 0xA4, 0x42, 0xEF, 0xB9, 0x99, 0x05,
950e5b75505Sopenharmony_ci	0xF8, 0x10, 0x4D, 0xD2, 0x58, 0xAC, 0x50, 0x7F,
951e5b75505Sopenharmony_ci	0xD6, 0x40, 0x6C, 0xFF, 0x14, 0x26, 0x6D, 0x31,
952e5b75505Sopenharmony_ci	0x26, 0x6F, 0xEA, 0x1E, 0x5C, 0x41, 0x56, 0x4B,
953e5b75505Sopenharmony_ci	0x77, 0x7E, 0x69, 0x0F, 0x55, 0x04, 0xF2, 0x13,
954e5b75505Sopenharmony_ci	0x16, 0x02, 0x17, 0xB4, 0xB0, 0x1B, 0x88, 0x6A,
955e5b75505Sopenharmony_ci	0x5E, 0x91, 0x54, 0x7F, 0x9E, 0x27, 0x49, 0xF4,
956e5b75505Sopenharmony_ci	0xD7, 0xFB, 0xD7, 0xD3, 0xB9, 0xA9, 0x2E, 0xE1,
957e5b75505Sopenharmony_ci	0x90, 0x9D, 0x0D, 0x22, 0x63, 0xF8, 0x0A, 0x76,
958e5b75505Sopenharmony_ci	0xA6, 0xA2, 0x4C, 0x08, 0x7A, 0x09, 0x1F, 0x53,
959e5b75505Sopenharmony_ci	0x1D, 0xBF, 0x0A, 0x01, 0x69, 0xB6, 0xA2, 0x8A,
960e5b75505Sopenharmony_ci	0xD6, 0x62, 0xA4, 0xD1, 0x8E, 0x73, 0xAF, 0xA3,
961e5b75505Sopenharmony_ci	0x2D, 0x77, 0x9D, 0x59, 0x18, 0xD0, 0x8B, 0xC8,
962e5b75505Sopenharmony_ci	0x85, 0x8F, 0x4D, 0xCE, 0xF9, 0x7C, 0x2A, 0x24,
963e5b75505Sopenharmony_ci	0x85, 0x5E, 0x6E, 0xEB, 0x22, 0xB3, 0xB2, 0xE5
964e5b75505Sopenharmony_ci};
965e5b75505Sopenharmony_cistatic const u8 dh_group22_prime[] = {
966e5b75505Sopenharmony_ci	0xB1, 0x0B, 0x8F, 0x96, 0xA0, 0x80, 0xE0, 0x1D,
967e5b75505Sopenharmony_ci	0xDE, 0x92, 0xDE, 0x5E, 0xAE, 0x5D, 0x54, 0xEC,
968e5b75505Sopenharmony_ci	0x52, 0xC9, 0x9F, 0xBC, 0xFB, 0x06, 0xA3, 0xC6,
969e5b75505Sopenharmony_ci	0x9A, 0x6A, 0x9D, 0xCA, 0x52, 0xD2, 0x3B, 0x61,
970e5b75505Sopenharmony_ci	0x60, 0x73, 0xE2, 0x86, 0x75, 0xA2, 0x3D, 0x18,
971e5b75505Sopenharmony_ci	0x98, 0x38, 0xEF, 0x1E, 0x2E, 0xE6, 0x52, 0xC0,
972e5b75505Sopenharmony_ci	0x13, 0xEC, 0xB4, 0xAE, 0xA9, 0x06, 0x11, 0x23,
973e5b75505Sopenharmony_ci	0x24, 0x97, 0x5C, 0x3C, 0xD4, 0x9B, 0x83, 0xBF,
974e5b75505Sopenharmony_ci	0xAC, 0xCB, 0xDD, 0x7D, 0x90, 0xC4, 0xBD, 0x70,
975e5b75505Sopenharmony_ci	0x98, 0x48, 0x8E, 0x9C, 0x21, 0x9A, 0x73, 0x72,
976e5b75505Sopenharmony_ci	0x4E, 0xFF, 0xD6, 0xFA, 0xE5, 0x64, 0x47, 0x38,
977e5b75505Sopenharmony_ci	0xFA, 0xA3, 0x1A, 0x4F, 0xF5, 0x5B, 0xCC, 0xC0,
978e5b75505Sopenharmony_ci	0xA1, 0x51, 0xAF, 0x5F, 0x0D, 0xC8, 0xB4, 0xBD,
979e5b75505Sopenharmony_ci	0x45, 0xBF, 0x37, 0xDF, 0x36, 0x5C, 0x1A, 0x65,
980e5b75505Sopenharmony_ci	0xE6, 0x8C, 0xFD, 0xA7, 0x6D, 0x4D, 0xA7, 0x08,
981e5b75505Sopenharmony_ci	0xDF, 0x1F, 0xB2, 0xBC, 0x2E, 0x4A, 0x43, 0x71
982e5b75505Sopenharmony_ci};
983e5b75505Sopenharmony_cistatic const u8 dh_group22_order[] = {
984e5b75505Sopenharmony_ci	0xF5, 0x18, 0xAA, 0x87, 0x81, 0xA8, 0xDF, 0x27,
985e5b75505Sopenharmony_ci	0x8A, 0xBA, 0x4E, 0x7D, 0x64, 0xB7, 0xCB, 0x9D,
986e5b75505Sopenharmony_ci	0x49, 0x46, 0x23, 0x53
987e5b75505Sopenharmony_ci};
988e5b75505Sopenharmony_ci
989e5b75505Sopenharmony_ci/*
990e5b75505Sopenharmony_ci * RFC 5114, 2.2.
991e5b75505Sopenharmony_ci * Group 23 - 2048-bit MODP Group with 224-bit Prime Order Subgroup
992e5b75505Sopenharmony_ci */
993e5b75505Sopenharmony_cistatic const u8 dh_group23_generator[] = {
994e5b75505Sopenharmony_ci	0xAC, 0x40, 0x32, 0xEF, 0x4F, 0x2D, 0x9A, 0xE3,
995e5b75505Sopenharmony_ci	0x9D, 0xF3, 0x0B, 0x5C, 0x8F, 0xFD, 0xAC, 0x50,
996e5b75505Sopenharmony_ci	0x6C, 0xDE, 0xBE, 0x7B, 0x89, 0x99, 0x8C, 0xAF,
997e5b75505Sopenharmony_ci	0x74, 0x86, 0x6A, 0x08, 0xCF, 0xE4, 0xFF, 0xE3,
998e5b75505Sopenharmony_ci	0xA6, 0x82, 0x4A, 0x4E, 0x10, 0xB9, 0xA6, 0xF0,
999e5b75505Sopenharmony_ci	0xDD, 0x92, 0x1F, 0x01, 0xA7, 0x0C, 0x4A, 0xFA,
1000e5b75505Sopenharmony_ci	0xAB, 0x73, 0x9D, 0x77, 0x00, 0xC2, 0x9F, 0x52,
1001e5b75505Sopenharmony_ci	0xC5, 0x7D, 0xB1, 0x7C, 0x62, 0x0A, 0x86, 0x52,
1002e5b75505Sopenharmony_ci	0xBE, 0x5E, 0x90, 0x01, 0xA8, 0xD6, 0x6A, 0xD7,
1003e5b75505Sopenharmony_ci	0xC1, 0x76, 0x69, 0x10, 0x19, 0x99, 0x02, 0x4A,
1004e5b75505Sopenharmony_ci	0xF4, 0xD0, 0x27, 0x27, 0x5A, 0xC1, 0x34, 0x8B,
1005e5b75505Sopenharmony_ci	0xB8, 0xA7, 0x62, 0xD0, 0x52, 0x1B, 0xC9, 0x8A,
1006e5b75505Sopenharmony_ci	0xE2, 0x47, 0x15, 0x04, 0x22, 0xEA, 0x1E, 0xD4,
1007e5b75505Sopenharmony_ci	0x09, 0x93, 0x9D, 0x54, 0xDA, 0x74, 0x60, 0xCD,
1008e5b75505Sopenharmony_ci	0xB5, 0xF6, 0xC6, 0xB2, 0x50, 0x71, 0x7C, 0xBE,
1009e5b75505Sopenharmony_ci	0xF1, 0x80, 0xEB, 0x34, 0x11, 0x8E, 0x98, 0xD1,
1010e5b75505Sopenharmony_ci	0x19, 0x52, 0x9A, 0x45, 0xD6, 0xF8, 0x34, 0x56,
1011e5b75505Sopenharmony_ci	0x6E, 0x30, 0x25, 0xE3, 0x16, 0xA3, 0x30, 0xEF,
1012e5b75505Sopenharmony_ci	0xBB, 0x77, 0xA8, 0x6F, 0x0C, 0x1A, 0xB1, 0x5B,
1013e5b75505Sopenharmony_ci	0x05, 0x1A, 0xE3, 0xD4, 0x28, 0xC8, 0xF8, 0xAC,
1014e5b75505Sopenharmony_ci	0xB7, 0x0A, 0x81, 0x37, 0x15, 0x0B, 0x8E, 0xEB,
1015e5b75505Sopenharmony_ci	0x10, 0xE1, 0x83, 0xED, 0xD1, 0x99, 0x63, 0xDD,
1016e5b75505Sopenharmony_ci	0xD9, 0xE2, 0x63, 0xE4, 0x77, 0x05, 0x89, 0xEF,
1017e5b75505Sopenharmony_ci	0x6A, 0xA2, 0x1E, 0x7F, 0x5F, 0x2F, 0xF3, 0x81,
1018e5b75505Sopenharmony_ci	0xB5, 0x39, 0xCC, 0xE3, 0x40, 0x9D, 0x13, 0xCD,
1019e5b75505Sopenharmony_ci	0x56, 0x6A, 0xFB, 0xB4, 0x8D, 0x6C, 0x01, 0x91,
1020e5b75505Sopenharmony_ci	0x81, 0xE1, 0xBC, 0xFE, 0x94, 0xB3, 0x02, 0x69,
1021e5b75505Sopenharmony_ci	0xED, 0xFE, 0x72, 0xFE, 0x9B, 0x6A, 0xA4, 0xBD,
1022e5b75505Sopenharmony_ci	0x7B, 0x5A, 0x0F, 0x1C, 0x71, 0xCF, 0xFF, 0x4C,
1023e5b75505Sopenharmony_ci	0x19, 0xC4, 0x18, 0xE1, 0xF6, 0xEC, 0x01, 0x79,
1024e5b75505Sopenharmony_ci	0x81, 0xBC, 0x08, 0x7F, 0x2A, 0x70, 0x65, 0xB3,
1025e5b75505Sopenharmony_ci	0x84, 0xB8, 0x90, 0xD3, 0x19, 0x1F, 0x2B, 0xFA
1026e5b75505Sopenharmony_ci};
1027e5b75505Sopenharmony_cistatic const u8 dh_group23_prime[] = {
1028e5b75505Sopenharmony_ci	0xAD, 0x10, 0x7E, 0x1E, 0x91, 0x23, 0xA9, 0xD0,
1029e5b75505Sopenharmony_ci	0xD6, 0x60, 0xFA, 0xA7, 0x95, 0x59, 0xC5, 0x1F,
1030e5b75505Sopenharmony_ci	0xA2, 0x0D, 0x64, 0xE5, 0x68, 0x3B, 0x9F, 0xD1,
1031e5b75505Sopenharmony_ci	0xB5, 0x4B, 0x15, 0x97, 0xB6, 0x1D, 0x0A, 0x75,
1032e5b75505Sopenharmony_ci	0xE6, 0xFA, 0x14, 0x1D, 0xF9, 0x5A, 0x56, 0xDB,
1033e5b75505Sopenharmony_ci	0xAF, 0x9A, 0x3C, 0x40, 0x7B, 0xA1, 0xDF, 0x15,
1034e5b75505Sopenharmony_ci	0xEB, 0x3D, 0x68, 0x8A, 0x30, 0x9C, 0x18, 0x0E,
1035e5b75505Sopenharmony_ci	0x1D, 0xE6, 0xB8, 0x5A, 0x12, 0x74, 0xA0, 0xA6,
1036e5b75505Sopenharmony_ci	0x6D, 0x3F, 0x81, 0x52, 0xAD, 0x6A, 0xC2, 0x12,
1037e5b75505Sopenharmony_ci	0x90, 0x37, 0xC9, 0xED, 0xEF, 0xDA, 0x4D, 0xF8,
1038e5b75505Sopenharmony_ci	0xD9, 0x1E, 0x8F, 0xEF, 0x55, 0xB7, 0x39, 0x4B,
1039e5b75505Sopenharmony_ci	0x7A, 0xD5, 0xB7, 0xD0, 0xB6, 0xC1, 0x22, 0x07,
1040e5b75505Sopenharmony_ci	0xC9, 0xF9, 0x8D, 0x11, 0xED, 0x34, 0xDB, 0xF6,
1041e5b75505Sopenharmony_ci	0xC6, 0xBA, 0x0B, 0x2C, 0x8B, 0xBC, 0x27, 0xBE,
1042e5b75505Sopenharmony_ci	0x6A, 0x00, 0xE0, 0xA0, 0xB9, 0xC4, 0x97, 0x08,
1043e5b75505Sopenharmony_ci	0xB3, 0xBF, 0x8A, 0x31, 0x70, 0x91, 0x88, 0x36,
1044e5b75505Sopenharmony_ci	0x81, 0x28, 0x61, 0x30, 0xBC, 0x89, 0x85, 0xDB,
1045e5b75505Sopenharmony_ci	0x16, 0x02, 0xE7, 0x14, 0x41, 0x5D, 0x93, 0x30,
1046e5b75505Sopenharmony_ci	0x27, 0x82, 0x73, 0xC7, 0xDE, 0x31, 0xEF, 0xDC,
1047e5b75505Sopenharmony_ci	0x73, 0x10, 0xF7, 0x12, 0x1F, 0xD5, 0xA0, 0x74,
1048e5b75505Sopenharmony_ci	0x15, 0x98, 0x7D, 0x9A, 0xDC, 0x0A, 0x48, 0x6D,
1049e5b75505Sopenharmony_ci	0xCD, 0xF9, 0x3A, 0xCC, 0x44, 0x32, 0x83, 0x87,
1050e5b75505Sopenharmony_ci	0x31, 0x5D, 0x75, 0xE1, 0x98, 0xC6, 0x41, 0xA4,
1051e5b75505Sopenharmony_ci	0x80, 0xCD, 0x86, 0xA1, 0xB9, 0xE5, 0x87, 0xE8,
1052e5b75505Sopenharmony_ci	0xBE, 0x60, 0xE6, 0x9C, 0xC9, 0x28, 0xB2, 0xB9,
1053e5b75505Sopenharmony_ci	0xC5, 0x21, 0x72, 0xE4, 0x13, 0x04, 0x2E, 0x9B,
1054e5b75505Sopenharmony_ci	0x23, 0xF1, 0x0B, 0x0E, 0x16, 0xE7, 0x97, 0x63,
1055e5b75505Sopenharmony_ci	0xC9, 0xB5, 0x3D, 0xCF, 0x4B, 0xA8, 0x0A, 0x29,
1056e5b75505Sopenharmony_ci	0xE3, 0xFB, 0x73, 0xC1, 0x6B, 0x8E, 0x75, 0xB9,
1057e5b75505Sopenharmony_ci	0x7E, 0xF3, 0x63, 0xE2, 0xFF, 0xA3, 0x1F, 0x71,
1058e5b75505Sopenharmony_ci	0xCF, 0x9D, 0xE5, 0x38, 0x4E, 0x71, 0xB8, 0x1C,
1059e5b75505Sopenharmony_ci	0x0A, 0xC4, 0xDF, 0xFE, 0x0C, 0x10, 0xE6, 0x4F
1060e5b75505Sopenharmony_ci};
1061e5b75505Sopenharmony_cistatic const u8 dh_group23_order[] = {
1062e5b75505Sopenharmony_ci	0x80, 0x1C, 0x0D, 0x34, 0xC5, 0x8D, 0x93, 0xFE,
1063e5b75505Sopenharmony_ci	0x99, 0x71, 0x77, 0x10, 0x1F, 0x80, 0x53, 0x5A,
1064e5b75505Sopenharmony_ci	0x47, 0x38, 0xCE, 0xBC, 0xBF, 0x38, 0x9A, 0x99,
1065e5b75505Sopenharmony_ci	0xB3, 0x63, 0x71, 0xEB
1066e5b75505Sopenharmony_ci};
1067e5b75505Sopenharmony_ci
1068e5b75505Sopenharmony_ci/*
1069e5b75505Sopenharmony_ci * RFC 5114, 2.3.
1070e5b75505Sopenharmony_ci * Group 24 - 2048-bit MODP Group with 256-bit Prime Order Subgroup
1071e5b75505Sopenharmony_ci */
1072e5b75505Sopenharmony_cistatic const u8 dh_group24_generator[] = {
1073e5b75505Sopenharmony_ci	0x3F, 0xB3, 0x2C, 0x9B, 0x73, 0x13, 0x4D, 0x0B,
1074e5b75505Sopenharmony_ci	0x2E, 0x77, 0x50, 0x66, 0x60, 0xED, 0xBD, 0x48,
1075e5b75505Sopenharmony_ci	0x4C, 0xA7, 0xB1, 0x8F, 0x21, 0xEF, 0x20, 0x54,
1076e5b75505Sopenharmony_ci	0x07, 0xF4, 0x79, 0x3A, 0x1A, 0x0B, 0xA1, 0x25,
1077e5b75505Sopenharmony_ci	0x10, 0xDB, 0xC1, 0x50, 0x77, 0xBE, 0x46, 0x3F,
1078e5b75505Sopenharmony_ci	0xFF, 0x4F, 0xED, 0x4A, 0xAC, 0x0B, 0xB5, 0x55,
1079e5b75505Sopenharmony_ci	0xBE, 0x3A, 0x6C, 0x1B, 0x0C, 0x6B, 0x47, 0xB1,
1080e5b75505Sopenharmony_ci	0xBC, 0x37, 0x73, 0xBF, 0x7E, 0x8C, 0x6F, 0x62,
1081e5b75505Sopenharmony_ci	0x90, 0x12, 0x28, 0xF8, 0xC2, 0x8C, 0xBB, 0x18,
1082e5b75505Sopenharmony_ci	0xA5, 0x5A, 0xE3, 0x13, 0x41, 0x00, 0x0A, 0x65,
1083e5b75505Sopenharmony_ci	0x01, 0x96, 0xF9, 0x31, 0xC7, 0x7A, 0x57, 0xF2,
1084e5b75505Sopenharmony_ci	0xDD, 0xF4, 0x63, 0xE5, 0xE9, 0xEC, 0x14, 0x4B,
1085e5b75505Sopenharmony_ci	0x77, 0x7D, 0xE6, 0x2A, 0xAA, 0xB8, 0xA8, 0x62,
1086e5b75505Sopenharmony_ci	0x8A, 0xC3, 0x76, 0xD2, 0x82, 0xD6, 0xED, 0x38,
1087e5b75505Sopenharmony_ci	0x64, 0xE6, 0x79, 0x82, 0x42, 0x8E, 0xBC, 0x83,
1088e5b75505Sopenharmony_ci	0x1D, 0x14, 0x34, 0x8F, 0x6F, 0x2F, 0x91, 0x93,
1089e5b75505Sopenharmony_ci	0xB5, 0x04, 0x5A, 0xF2, 0x76, 0x71, 0x64, 0xE1,
1090e5b75505Sopenharmony_ci	0xDF, 0xC9, 0x67, 0xC1, 0xFB, 0x3F, 0x2E, 0x55,
1091e5b75505Sopenharmony_ci	0xA4, 0xBD, 0x1B, 0xFF, 0xE8, 0x3B, 0x9C, 0x80,
1092e5b75505Sopenharmony_ci	0xD0, 0x52, 0xB9, 0x85, 0xD1, 0x82, 0xEA, 0x0A,
1093e5b75505Sopenharmony_ci	0xDB, 0x2A, 0x3B, 0x73, 0x13, 0xD3, 0xFE, 0x14,
1094e5b75505Sopenharmony_ci	0xC8, 0x48, 0x4B, 0x1E, 0x05, 0x25, 0x88, 0xB9,
1095e5b75505Sopenharmony_ci	0xB7, 0xD2, 0xBB, 0xD2, 0xDF, 0x01, 0x61, 0x99,
1096e5b75505Sopenharmony_ci	0xEC, 0xD0, 0x6E, 0x15, 0x57, 0xCD, 0x09, 0x15,
1097e5b75505Sopenharmony_ci	0xB3, 0x35, 0x3B, 0xBB, 0x64, 0xE0, 0xEC, 0x37,
1098e5b75505Sopenharmony_ci	0x7F, 0xD0, 0x28, 0x37, 0x0D, 0xF9, 0x2B, 0x52,
1099e5b75505Sopenharmony_ci	0xC7, 0x89, 0x14, 0x28, 0xCD, 0xC6, 0x7E, 0xB6,
1100e5b75505Sopenharmony_ci	0x18, 0x4B, 0x52, 0x3D, 0x1D, 0xB2, 0x46, 0xC3,
1101e5b75505Sopenharmony_ci	0x2F, 0x63, 0x07, 0x84, 0x90, 0xF0, 0x0E, 0xF8,
1102e5b75505Sopenharmony_ci	0xD6, 0x47, 0xD1, 0x48, 0xD4, 0x79, 0x54, 0x51,
1103e5b75505Sopenharmony_ci	0x5E, 0x23, 0x27, 0xCF, 0xEF, 0x98, 0xC5, 0x82,
1104e5b75505Sopenharmony_ci	0x66, 0x4B, 0x4C, 0x0F, 0x6C, 0xC4, 0x16, 0x59
1105e5b75505Sopenharmony_ci};
1106e5b75505Sopenharmony_cistatic const u8 dh_group24_prime[] = {
1107e5b75505Sopenharmony_ci	0x87, 0xA8, 0xE6, 0x1D, 0xB4, 0xB6, 0x66, 0x3C,
1108e5b75505Sopenharmony_ci	0xFF, 0xBB, 0xD1, 0x9C, 0x65, 0x19, 0x59, 0x99,
1109e5b75505Sopenharmony_ci	0x8C, 0xEE, 0xF6, 0x08, 0x66, 0x0D, 0xD0, 0xF2,
1110e5b75505Sopenharmony_ci	0x5D, 0x2C, 0xEE, 0xD4, 0x43, 0x5E, 0x3B, 0x00,
1111e5b75505Sopenharmony_ci	0xE0, 0x0D, 0xF8, 0xF1, 0xD6, 0x19, 0x57, 0xD4,
1112e5b75505Sopenharmony_ci	0xFA, 0xF7, 0xDF, 0x45, 0x61, 0xB2, 0xAA, 0x30,
1113e5b75505Sopenharmony_ci	0x16, 0xC3, 0xD9, 0x11, 0x34, 0x09, 0x6F, 0xAA,
1114e5b75505Sopenharmony_ci	0x3B, 0xF4, 0x29, 0x6D, 0x83, 0x0E, 0x9A, 0x7C,
1115e5b75505Sopenharmony_ci	0x20, 0x9E, 0x0C, 0x64, 0x97, 0x51, 0x7A, 0xBD,
1116e5b75505Sopenharmony_ci	0x5A, 0x8A, 0x9D, 0x30, 0x6B, 0xCF, 0x67, 0xED,
1117e5b75505Sopenharmony_ci	0x91, 0xF9, 0xE6, 0x72, 0x5B, 0x47, 0x58, 0xC0,
1118e5b75505Sopenharmony_ci	0x22, 0xE0, 0xB1, 0xEF, 0x42, 0x75, 0xBF, 0x7B,
1119e5b75505Sopenharmony_ci	0x6C, 0x5B, 0xFC, 0x11, 0xD4, 0x5F, 0x90, 0x88,
1120e5b75505Sopenharmony_ci	0xB9, 0x41, 0xF5, 0x4E, 0xB1, 0xE5, 0x9B, 0xB8,
1121e5b75505Sopenharmony_ci	0xBC, 0x39, 0xA0, 0xBF, 0x12, 0x30, 0x7F, 0x5C,
1122e5b75505Sopenharmony_ci	0x4F, 0xDB, 0x70, 0xC5, 0x81, 0xB2, 0x3F, 0x76,
1123e5b75505Sopenharmony_ci	0xB6, 0x3A, 0xCA, 0xE1, 0xCA, 0xA6, 0xB7, 0x90,
1124e5b75505Sopenharmony_ci	0x2D, 0x52, 0x52, 0x67, 0x35, 0x48, 0x8A, 0x0E,
1125e5b75505Sopenharmony_ci	0xF1, 0x3C, 0x6D, 0x9A, 0x51, 0xBF, 0xA4, 0xAB,
1126e5b75505Sopenharmony_ci	0x3A, 0xD8, 0x34, 0x77, 0x96, 0x52, 0x4D, 0x8E,
1127e5b75505Sopenharmony_ci	0xF6, 0xA1, 0x67, 0xB5, 0xA4, 0x18, 0x25, 0xD9,
1128e5b75505Sopenharmony_ci	0x67, 0xE1, 0x44, 0xE5, 0x14, 0x05, 0x64, 0x25,
1129e5b75505Sopenharmony_ci	0x1C, 0xCA, 0xCB, 0x83, 0xE6, 0xB4, 0x86, 0xF6,
1130e5b75505Sopenharmony_ci	0xB3, 0xCA, 0x3F, 0x79, 0x71, 0x50, 0x60, 0x26,
1131e5b75505Sopenharmony_ci	0xC0, 0xB8, 0x57, 0xF6, 0x89, 0x96, 0x28, 0x56,
1132e5b75505Sopenharmony_ci	0xDE, 0xD4, 0x01, 0x0A, 0xBD, 0x0B, 0xE6, 0x21,
1133e5b75505Sopenharmony_ci	0xC3, 0xA3, 0x96, 0x0A, 0x54, 0xE7, 0x10, 0xC3,
1134e5b75505Sopenharmony_ci	0x75, 0xF2, 0x63, 0x75, 0xD7, 0x01, 0x41, 0x03,
1135e5b75505Sopenharmony_ci	0xA4, 0xB5, 0x43, 0x30, 0xC1, 0x98, 0xAF, 0x12,
1136e5b75505Sopenharmony_ci	0x61, 0x16, 0xD2, 0x27, 0x6E, 0x11, 0x71, 0x5F,
1137e5b75505Sopenharmony_ci	0x69, 0x38, 0x77, 0xFA, 0xD7, 0xEF, 0x09, 0xCA,
1138e5b75505Sopenharmony_ci	0xDB, 0x09, 0x4A, 0xE9, 0x1E, 0x1A, 0x15, 0x97
1139e5b75505Sopenharmony_ci};
1140e5b75505Sopenharmony_cistatic const u8 dh_group24_order[] = {
1141e5b75505Sopenharmony_ci	0x8C, 0xF8, 0x36, 0x42, 0xA7, 0x09, 0xA0, 0x97,
1142e5b75505Sopenharmony_ci	0xB4, 0x47, 0x99, 0x76, 0x40, 0x12, 0x9D, 0xA2,
1143e5b75505Sopenharmony_ci	0x99, 0xB1, 0xA4, 0x7D, 0x1E, 0xB3, 0x75, 0x0B,
1144e5b75505Sopenharmony_ci	0xA3, 0x08, 0xB0, 0xFE, 0x64, 0xF5, 0xFB, 0xD3
1145e5b75505Sopenharmony_ci};
1146e5b75505Sopenharmony_ci
1147e5b75505Sopenharmony_ci#endif /* ALL_DH_GROUPS */
1148e5b75505Sopenharmony_ci
1149e5b75505Sopenharmony_ci
1150e5b75505Sopenharmony_ci#define DH_GROUP(id,safe) \
1151e5b75505Sopenharmony_ci{ id, dh_group ## id ## _generator, sizeof(dh_group ## id ## _generator), \
1152e5b75505Sopenharmony_cidh_group ## id ## _prime, sizeof(dh_group ## id ## _prime), \
1153e5b75505Sopenharmony_cidh_group ## id ## _order, sizeof(dh_group ## id ## _order), safe }
1154e5b75505Sopenharmony_ci
1155e5b75505Sopenharmony_ci
1156e5b75505Sopenharmony_cistatic const struct dh_group dh_groups[] = {
1157e5b75505Sopenharmony_ci	DH_GROUP(5, 1),
1158e5b75505Sopenharmony_ci#ifdef ALL_DH_GROUPS
1159e5b75505Sopenharmony_ci	DH_GROUP(1, 1),
1160e5b75505Sopenharmony_ci	DH_GROUP(2, 1),
1161e5b75505Sopenharmony_ci	DH_GROUP(14, 1),
1162e5b75505Sopenharmony_ci	DH_GROUP(15, 1),
1163e5b75505Sopenharmony_ci	DH_GROUP(16, 1),
1164e5b75505Sopenharmony_ci	DH_GROUP(17, 1),
1165e5b75505Sopenharmony_ci	DH_GROUP(18, 1),
1166e5b75505Sopenharmony_ci	DH_GROUP(22, 0),
1167e5b75505Sopenharmony_ci	DH_GROUP(23, 0),
1168e5b75505Sopenharmony_ci	DH_GROUP(24, 0)
1169e5b75505Sopenharmony_ci#endif /* ALL_DH_GROUPS */
1170e5b75505Sopenharmony_ci};
1171e5b75505Sopenharmony_ci
1172e5b75505Sopenharmony_ci#define NUM_DH_GROUPS ARRAY_SIZE(dh_groups)
1173e5b75505Sopenharmony_ci
1174e5b75505Sopenharmony_ci
1175e5b75505Sopenharmony_ciconst struct dh_group * dh_groups_get(int id)
1176e5b75505Sopenharmony_ci{
1177e5b75505Sopenharmony_ci	size_t i;
1178e5b75505Sopenharmony_ci
1179e5b75505Sopenharmony_ci	for (i = 0; i < NUM_DH_GROUPS; i++) {
1180e5b75505Sopenharmony_ci		if (dh_groups[i].id == id)
1181e5b75505Sopenharmony_ci			return &dh_groups[i];
1182e5b75505Sopenharmony_ci	}
1183e5b75505Sopenharmony_ci	return NULL;
1184e5b75505Sopenharmony_ci}
1185e5b75505Sopenharmony_ci
1186e5b75505Sopenharmony_ci
1187e5b75505Sopenharmony_ci/**
1188e5b75505Sopenharmony_ci * dh_init - Initialize Diffie-Hellman handshake
1189e5b75505Sopenharmony_ci * @dh: Selected Diffie-Hellman group
1190e5b75505Sopenharmony_ci * @priv: Pointer for returning Diffie-Hellman private key
1191e5b75505Sopenharmony_ci * Returns: Diffie-Hellman public value
1192e5b75505Sopenharmony_ci */
1193e5b75505Sopenharmony_cistruct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv)
1194e5b75505Sopenharmony_ci{
1195e5b75505Sopenharmony_ci	struct wpabuf *pv;
1196e5b75505Sopenharmony_ci	size_t pv_len;
1197e5b75505Sopenharmony_ci
1198e5b75505Sopenharmony_ci	if (dh == NULL)
1199e5b75505Sopenharmony_ci		return NULL;
1200e5b75505Sopenharmony_ci
1201e5b75505Sopenharmony_ci	wpabuf_clear_free(*priv);
1202e5b75505Sopenharmony_ci	*priv = wpabuf_alloc(dh->prime_len);
1203e5b75505Sopenharmony_ci	if (*priv == NULL)
1204e5b75505Sopenharmony_ci		return NULL;
1205e5b75505Sopenharmony_ci
1206e5b75505Sopenharmony_ci	pv_len = dh->prime_len;
1207e5b75505Sopenharmony_ci	pv = wpabuf_alloc(pv_len);
1208e5b75505Sopenharmony_ci	if (pv == NULL) {
1209e5b75505Sopenharmony_ci		wpabuf_clear_free(*priv);
1210e5b75505Sopenharmony_ci		*priv = NULL;
1211e5b75505Sopenharmony_ci		return NULL;
1212e5b75505Sopenharmony_ci	}
1213e5b75505Sopenharmony_ci	if (crypto_dh_init(*dh->generator, dh->prime, dh->prime_len,
1214e5b75505Sopenharmony_ci			   wpabuf_mhead(*priv), wpabuf_mhead(pv)) < 0) {
1215e5b75505Sopenharmony_ci		wpabuf_clear_free(pv);
1216e5b75505Sopenharmony_ci		wpa_printf(MSG_INFO, "DH: crypto_dh_init failed");
1217e5b75505Sopenharmony_ci		wpabuf_clear_free(*priv);
1218e5b75505Sopenharmony_ci		*priv = NULL;
1219e5b75505Sopenharmony_ci		return NULL;
1220e5b75505Sopenharmony_ci	}
1221e5b75505Sopenharmony_ci	wpabuf_put(*priv, dh->prime_len);
1222e5b75505Sopenharmony_ci	wpabuf_put(pv, dh->prime_len);
1223e5b75505Sopenharmony_ci	wpa_hexdump_buf_key(MSG_DEBUG, "DH: private value", *priv);
1224e5b75505Sopenharmony_ci	wpa_hexdump_buf(MSG_DEBUG, "DH: public value", pv);
1225e5b75505Sopenharmony_ci
1226e5b75505Sopenharmony_ci	return pv;
1227e5b75505Sopenharmony_ci}
1228e5b75505Sopenharmony_ci
1229e5b75505Sopenharmony_ci
1230e5b75505Sopenharmony_ci/**
1231e5b75505Sopenharmony_ci * dh_derive_shared - Derive shared Diffie-Hellman key
1232e5b75505Sopenharmony_ci * @peer_public: Diffie-Hellman public value from peer
1233e5b75505Sopenharmony_ci * @own_private: Diffie-Hellman private key from dh_init()
1234e5b75505Sopenharmony_ci * @dh: Selected Diffie-Hellman group
1235e5b75505Sopenharmony_ci * Returns: Diffie-Hellman shared key
1236e5b75505Sopenharmony_ci */
1237e5b75505Sopenharmony_cistruct wpabuf * dh_derive_shared(const struct wpabuf *peer_public,
1238e5b75505Sopenharmony_ci				 const struct wpabuf *own_private,
1239e5b75505Sopenharmony_ci				 const struct dh_group *dh)
1240e5b75505Sopenharmony_ci{
1241e5b75505Sopenharmony_ci	struct wpabuf *shared;
1242e5b75505Sopenharmony_ci	size_t shared_len;
1243e5b75505Sopenharmony_ci
1244e5b75505Sopenharmony_ci	if (dh == NULL || peer_public == NULL || own_private == NULL)
1245e5b75505Sopenharmony_ci		return NULL;
1246e5b75505Sopenharmony_ci
1247e5b75505Sopenharmony_ci	shared_len = dh->prime_len;
1248e5b75505Sopenharmony_ci	shared = wpabuf_alloc(shared_len);
1249e5b75505Sopenharmony_ci	if (shared == NULL)
1250e5b75505Sopenharmony_ci		return NULL;
1251e5b75505Sopenharmony_ci	if (crypto_dh_derive_secret(*dh->generator, dh->prime, dh->prime_len,
1252e5b75505Sopenharmony_ci				    dh->order, dh->order_len,
1253e5b75505Sopenharmony_ci				    wpabuf_head(own_private),
1254e5b75505Sopenharmony_ci				    wpabuf_len(own_private),
1255e5b75505Sopenharmony_ci				    wpabuf_head(peer_public),
1256e5b75505Sopenharmony_ci				    wpabuf_len(peer_public),
1257e5b75505Sopenharmony_ci				    wpabuf_mhead(shared), &shared_len) < 0) {
1258e5b75505Sopenharmony_ci		wpabuf_clear_free(shared);
1259e5b75505Sopenharmony_ci		wpa_printf(MSG_INFO, "DH: crypto_dh_derive_secret failed");
1260e5b75505Sopenharmony_ci		return NULL;
1261e5b75505Sopenharmony_ci	}
1262e5b75505Sopenharmony_ci	wpabuf_put(shared, shared_len);
1263e5b75505Sopenharmony_ci	wpa_hexdump_buf_key(MSG_DEBUG, "DH: shared key", shared);
1264e5b75505Sopenharmony_ci
1265e5b75505Sopenharmony_ci	return shared;
1266e5b75505Sopenharmony_ci}
1267