Coverage Report

Created: 2024-11-21 07:03

/src/nss-nspr/nss/lib/softoken/sftkdhverify.c
Line
Count
Source (jump to first uncovered line)
1
2
/* This Source Code Form is subject to the terms of the Mozilla Public
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
/*
6
 * This file makes sure a prime given to us matches one of the known
7
 * approved primes for diffie-helman.
8
 *
9
 * It also checks if a prime is a safe prime for the case
10
 * where we don't match an approved prime.
11
 */
12
#include "seccomon.h"
13
#include "secitem.h"
14
#include "secerr.h"
15
#include "blapi.h"
16
17
/* IKE 1536 prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 } */
18
static const unsigned char prime_ike_1536[] = {
19
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
20
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
21
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
22
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
23
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
24
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
25
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
26
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
27
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
28
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
29
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
30
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
31
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
32
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
33
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
34
    0xCA, 0x23, 0x73, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
35
};
36
37
/* IKE 2048 prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 */
38
static const unsigned char prime_ike_2048[] = {
39
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
40
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
41
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
42
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
43
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
44
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
45
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
46
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
47
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
48
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
49
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
50
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
51
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
52
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
53
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
54
    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
55
    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
56
    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
57
    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
58
    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
59
    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF,
60
    0xFF, 0xFF, 0xFF, 0xFF
61
};
62
63
/* TLS 2048 prime is: 2^2048 - 2^1984 + {[2^1918 * e] + 560316 } * 2^64 - 1 */
64
static const unsigned char prime_tls_2048[] = {
65
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
66
    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
67
    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
68
    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
69
    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
70
    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
71
    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
72
    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
73
    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
74
    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
75
    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
76
    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
77
    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
78
    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
79
    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
80
    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
81
    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
82
    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
83
    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
84
    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
85
    0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF,
86
    0xFF, 0xFF, 0xFF, 0xFF
87
};
88
89
/* IKE 3072 prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 } */
90
static const unsigned char prime_ike_3072[] = {
91
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
92
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
93
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
94
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
95
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
96
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
97
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
98
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
99
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
100
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
101
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
102
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
103
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
104
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
105
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
106
    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
107
    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
108
    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
109
    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
110
    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
111
    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
112
    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
113
    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
114
    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
115
    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
116
    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
117
    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
118
    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
119
    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
120
    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
121
    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
122
    0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
123
};
124
125
/* TLS 3072 prime is: 2^3072 - 2^3008 + {[2^2942 * e] + 2625351} * 2^64 - 1 */
126
static const unsigned char prime_tls_3072[] = {
127
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
128
    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
129
    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
130
    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
131
    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
132
    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
133
    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
134
    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
135
    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
136
    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
137
    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
138
    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
139
    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
140
    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
141
    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
142
    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
143
    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
144
    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
145
    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
146
    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
147
    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
148
    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
149
    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
150
    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
151
    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
152
    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
153
    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
154
    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
155
    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
156
    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
157
    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
158
    0x66, 0xC6, 0x2E, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
159
};
160
161
/* IKE 4096 prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 } */
162
static const unsigned char prime_ike_4096[] = {
163
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
164
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
165
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
166
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
167
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
168
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
169
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
170
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
171
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
172
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
173
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
174
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
175
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
176
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
177
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
178
    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
179
    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
180
    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
181
    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
182
    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
183
    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
184
    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
185
    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
186
    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
187
    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
188
    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
189
    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
190
    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
191
    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
192
    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
193
    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
194
    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
195
    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
196
    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
197
    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
198
    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
199
    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
200
    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
201
    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
202
    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
203
    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
204
    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
205
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
206
};
207
208
/* TLS 4096 prime is: 2^4096 - 2^4032 + {[2^3966 * e] + 5736041} * 2^64 - 1 */
209
static const unsigned char prime_tls_4096[] = {
210
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
211
    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
212
    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
213
    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
214
    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
215
    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
216
    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
217
    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
218
    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
219
    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
220
    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
221
    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
222
    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
223
    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
224
    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
225
    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
226
    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
227
    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
228
    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
229
    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
230
    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
231
    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
232
    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
233
    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
234
    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
235
    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
236
    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
237
    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
238
    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
239
    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
240
    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
241
    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
242
    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
243
    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
244
    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
245
    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
246
    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
247
    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
248
    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
249
    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
250
    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
251
    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A,
252
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
253
};
254
255
/* IKE 6144 prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 } */
256
static const unsigned char prime_ike_6144[] = {
257
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
258
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
259
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
260
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
261
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
262
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
263
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
264
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
265
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
266
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
267
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
268
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
269
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
270
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
271
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
272
    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
273
    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
274
    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
275
    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
276
    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
277
    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
278
    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
279
    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
280
    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
281
    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
282
    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
283
    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
284
    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
285
    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
286
    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
287
    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
288
    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
289
    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
290
    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
291
    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
292
    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
293
    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
294
    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
295
    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
296
    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
297
    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
298
    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
299
    0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26, 0xC1, 0xD4, 0xDC, 0xB2,
300
    0x60, 0x26, 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
301
    0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38, 0x2F,
302
    0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
303
    0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18, 0xDA, 0x3E, 0xDB, 0xEB,
304
    0xCF, 0x9B, 0x14, 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
305
    0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
306
    0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
307
    0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0, 0x32, 0xEA, 0x15,
308
    0xD1, 0x72, 0x1D, 0x03, 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
309
    0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31,
310
    0x90, 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
311
    0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D, 0x45, 0xB7,
312
    0xFF, 0x58, 0x5A, 0xC5, 0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
313
    0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8, 0x14, 0xCC, 0x5E, 0xD2,
314
    0x0F, 0x80, 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
315
    0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA, 0x3D,
316
    0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
317
    0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
318
    0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
319
    0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
320
    0x6D, 0xCC, 0x40, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
321
};
322
323
/* TLS 6144 prime is: 2^6144 - 2^6080 + {[2^6014 * e] + 15705020} * 2^64 - 1 */
324
static const unsigned char prime_tls_6144[] = {
325
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
326
    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
327
    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
328
    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
329
    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
330
    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
331
    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
332
    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
333
    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
334
    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
335
    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
336
    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
337
    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
338
    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
339
    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
340
    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
341
    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
342
    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
343
    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
344
    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
345
    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
346
    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
347
    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
348
    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
349
    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
350
    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
351
    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
352
    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
353
    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
354
    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
355
    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
356
    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
357
    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
358
    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
359
    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
360
    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
361
    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
362
    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
363
    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
364
    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
365
    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
366
    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
367
    0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, 0x4E, 0x67, 0x7D, 0x2C,
368
    0x38, 0x53, 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6,
369
    0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD, 0x64,
370
    0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A,
371
    0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, 0x9B, 0x1F, 0x5C, 0x3E,
372
    0x4E, 0x46, 0x04, 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77,
373
    0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
374
    0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3,
375
    0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F, 0xB2, 0x9F, 0x8C,
376
    0x18, 0x30, 0x23, 0xC3, 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4,
377
    0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E,
378
    0x77, 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6,
379
    0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8, 0xDB, 0x58,
380
    0x47, 0xA6, 0x7C, 0xBE, 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
381
    0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, 0x62, 0x29, 0x2C, 0x31,
382
    0x15, 0x62, 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A,
383
    0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D, 0xD5,
384
    0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04,
385
    0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, 0x3F, 0xDD, 0x4A, 0x8E,
386
    0x9A, 0xDB, 0x1E, 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1,
387
    0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
388
    0xD0, 0xE4, 0x0E, 0x65, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
389
};
390
391
/* IKE 8192 prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 } */
392
static const unsigned char prime_ike_8192[] = {
393
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
394
    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
395
    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
396
    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
397
    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
398
    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
399
    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
400
    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
401
    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
402
    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
403
    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
404
    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
405
    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
406
    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
407
    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
408
    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
409
    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
410
    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
411
    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
412
    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
413
    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
414
    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
415
    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
416
    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
417
    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
418
    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
419
    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
420
    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
421
    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
422
    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
423
    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
424
    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
425
    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
426
    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
427
    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
428
    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
429
    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
430
    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
431
    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
432
    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
433
    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
434
    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
435
    0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26, 0xC1, 0xD4, 0xDC, 0xB2,
436
    0x60, 0x26, 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
437
    0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38, 0x2F,
438
    0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
439
    0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18, 0xDA, 0x3E, 0xDB, 0xEB,
440
    0xCF, 0x9B, 0x14, 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
441
    0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
442
    0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
443
    0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0, 0x32, 0xEA, 0x15,
444
    0xD1, 0x72, 0x1D, 0x03, 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
445
    0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31,
446
    0x90, 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
447
    0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D, 0x45, 0xB7,
448
    0xFF, 0x58, 0x5A, 0xC5, 0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
449
    0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8, 0x14, 0xCC, 0x5E, 0xD2,
450
    0x0F, 0x80, 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
451
    0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA, 0x3D,
452
    0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
453
    0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
454
    0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
455
    0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
456
    0x6D, 0xBE, 0x11, 0x59, 0x74, 0xA3, 0x92, 0x6F, 0x12, 0xFE, 0xE5, 0xE4,
457
    0x38, 0x77, 0x7C, 0xB6, 0xA9, 0x32, 0xDF, 0x8C, 0xD8, 0xBE, 0xC4, 0xD0,
458
    0x73, 0xB9, 0x31, 0xBA, 0x3B, 0xC8, 0x32, 0xB6, 0x8D, 0x9D, 0xD3, 0x00,
459
    0x74, 0x1F, 0xA7, 0xBF, 0x8A, 0xFC, 0x47, 0xED, 0x25, 0x76, 0xF6, 0x93,
460
    0x6B, 0xA4, 0x24, 0x66, 0x3A, 0xAB, 0x63, 0x9C, 0x5A, 0xE4, 0xF5, 0x68,
461
    0x34, 0x23, 0xB4, 0x74, 0x2B, 0xF1, 0xC9, 0x78, 0x23, 0x8F, 0x16, 0xCB,
462
    0xE3, 0x9D, 0x65, 0x2D, 0xE3, 0xFD, 0xB8, 0xBE, 0xFC, 0x84, 0x8A, 0xD9,
463
    0x22, 0x22, 0x2E, 0x04, 0xA4, 0x03, 0x7C, 0x07, 0x13, 0xEB, 0x57, 0xA8,
464
    0x1A, 0x23, 0xF0, 0xC7, 0x34, 0x73, 0xFC, 0x64, 0x6C, 0xEA, 0x30, 0x6B,
465
    0x4B, 0xCB, 0xC8, 0x86, 0x2F, 0x83, 0x85, 0xDD, 0xFA, 0x9D, 0x4B, 0x7F,
466
    0xA2, 0xC0, 0x87, 0xE8, 0x79, 0x68, 0x33, 0x03, 0xED, 0x5B, 0xDD, 0x3A,
467
    0x06, 0x2B, 0x3C, 0xF5, 0xB3, 0xA2, 0x78, 0xA6, 0x6D, 0x2A, 0x13, 0xF8,
468
    0x3F, 0x44, 0xF8, 0x2D, 0xDF, 0x31, 0x0E, 0xE0, 0x74, 0xAB, 0x6A, 0x36,
469
    0x45, 0x97, 0xE8, 0x99, 0xA0, 0x25, 0x5D, 0xC1, 0x64, 0xF3, 0x1C, 0xC5,
470
    0x08, 0x46, 0x85, 0x1D, 0xF9, 0xAB, 0x48, 0x19, 0x5D, 0xED, 0x7E, 0xA1,
471
    0xB1, 0xD5, 0x10, 0xBD, 0x7E, 0xE7, 0x4D, 0x73, 0xFA, 0xF3, 0x6B, 0xC3,
472
    0x1E, 0xCF, 0xA2, 0x68, 0x35, 0x90, 0x46, 0xF4, 0xEB, 0x87, 0x9F, 0x92,
473
    0x40, 0x09, 0x43, 0x8B, 0x48, 0x1C, 0x6C, 0xD7, 0x88, 0x9A, 0x00, 0x2E,
474
    0xD5, 0xEE, 0x38, 0x2B, 0xC9, 0x19, 0x0D, 0xA6, 0xFC, 0x02, 0x6E, 0x47,
475
    0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA, 0x9E, 0x30, 0x50, 0xE2,
476
    0x76, 0x56, 0x94, 0xDF, 0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
477
    0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
478
    0xFF, 0xFF, 0xFF, 0xFF
479
};
480
481
/* TLS 8192 prime is: 2^8192 - 2^8128 + {[2^8062 * e] + 10965728} * 2^64 - 1 */
482
static const unsigned char prime_tls_8192[] = {
483
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
484
    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
485
    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
486
    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
487
    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
488
    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
489
    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
490
    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
491
    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
492
    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
493
    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
494
    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
495
    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
496
    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
497
    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
498
    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
499
    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
500
    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
501
    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
502
    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
503
    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
504
    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
505
    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
506
    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
507
    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
508
    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
509
    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
510
    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
511
    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
512
    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
513
    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
514
    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
515
    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
516
    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
517
    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
518
    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
519
    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
520
    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
521
    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
522
    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
523
    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
524
    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
525
    0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, 0x4E, 0x67, 0x7D, 0x2C,
526
    0x38, 0x53, 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6,
527
    0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD, 0x64,
528
    0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A,
529
    0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, 0x9B, 0x1F, 0x5C, 0x3E,
530
    0x4E, 0x46, 0x04, 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77,
531
    0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
532
    0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3,
533
    0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F, 0xB2, 0x9F, 0x8C,
534
    0x18, 0x30, 0x23, 0xC3, 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4,
535
    0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E,
536
    0x77, 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6,
537
    0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8, 0xDB, 0x58,
538
    0x47, 0xA6, 0x7C, 0xBE, 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
539
    0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, 0x62, 0x29, 0x2C, 0x31,
540
    0x15, 0x62, 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A,
541
    0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D, 0xD5,
542
    0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04,
543
    0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, 0x3F, 0xDD, 0x4A, 0x8E,
544
    0x9A, 0xDB, 0x1E, 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1,
545
    0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
546
    0xCF, 0xF4, 0x6A, 0xAA, 0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38,
547
    0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, 0xFD, 0xB2, 0x3F, 0xCE,
548
    0xC9, 0x50, 0x9D, 0x43, 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E,
549
    0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, 0x86, 0xB6, 0x31, 0x42,
550
    0xA3, 0xAB, 0x88, 0x29, 0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65,
551
    0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, 0x29, 0x38, 0x88, 0x39,
552
    0xD2, 0xAF, 0x05, 0xE4, 0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82,
553
    0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, 0x59, 0x16, 0x0C, 0xC0,
554
    0x46, 0xFD, 0x82, 0x51, 0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22,
555
    0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, 0x51, 0xA8, 0xA9, 0x31,
556
    0x09, 0x70, 0x3F, 0xEE, 0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C,
557
    0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, 0x99, 0xE9, 0xE3, 0x16,
558
    0x50, 0xC1, 0x21, 0x7B, 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9,
559
    0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, 0xA1, 0xFE, 0x30, 0x75,
560
    0xA5, 0x77, 0xE2, 0x31, 0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57,
561
    0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, 0xB6, 0x85, 0x5D, 0xFE,
562
    0x72, 0xB0, 0xA6, 0x6E, 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30,
563
    0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, 0x2F, 0x74, 0x1E, 0xF8,
564
    0xC1, 0xFE, 0x86, 0xFE, 0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D,
565
    0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, 0x08, 0x22, 0xE5, 0x06,
566
    0xA9, 0xF4, 0x61, 0x4E, 0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C,
567
    0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF,
568
    0xFF, 0xFF, 0xFF, 0xFF
569
};
570
571
/* q=(p-1)/2 for prime prime_ike_1536 */
572
static const unsigned char subprime_ike_1536_data[] = {
573
    0x7f,
574
    0xff,
575
    0xff,
576
    0xff,
577
    0xff,
578
    0xff,
579
    0xff,
580
    0xff,
581
    0xe4,
582
    0x87,
583
    0xed,
584
    0x51,
585
    0x10,
586
    0xb4,
587
    0x61,
588
    0x1a,
589
    0x62,
590
    0x63,
591
    0x31,
592
    0x45,
593
    0xc0,
594
    0x6e,
595
    0x0e,
596
    0x68,
597
    0x94,
598
    0x81,
599
    0x27,
600
    0x04,
601
    0x45,
602
    0x33,
603
    0xe6,
604
    0x3a,
605
    0x01,
606
    0x05,
607
    0xdf,
608
    0x53,
609
    0x1d,
610
    0x89,
611
    0xcd,
612
    0x91,
613
    0x28,
614
    0xa5,
615
    0x04,
616
    0x3c,
617
    0xc7,
618
    0x1a,
619
    0x02,
620
    0x6e,
621
    0xf7,
622
    0xca,
623
    0x8c,
624
    0xd9,
625
    0xe6,
626
    0x9d,
627
    0x21,
628
    0x8d,
629
    0x98,
630
    0x15,
631
    0x85,
632
    0x36,
633
    0xf9,
634
    0x2f,
635
    0x8a,
636
    0x1b,
637
    0xa7,
638
    0xf0,
639
    0x9a,
640
    0xb6,
641
    0xb6,
642
    0xa8,
643
    0xe1,
644
    0x22,
645
    0xf2,
646
    0x42,
647
    0xda,
648
    0xbb,
649
    0x31,
650
    0x2f,
651
    0x3f,
652
    0x63,
653
    0x7a,
654
    0x26,
655
    0x21,
656
    0x74,
657
    0xd3,
658
    0x1b,
659
    0xf6,
660
    0xb5,
661
    0x85,
662
    0xff,
663
    0xae,
664
    0x5b,
665
    0x7a,
666
    0x03,
667
    0x5b,
668
    0xf6,
669
    0xf7,
670
    0x1c,
671
    0x35,
672
    0xfd,
673
    0xad,
674
    0x44,
675
    0xcf,
676
    0xd2,
677
    0xd7,
678
    0x4f,
679
    0x92,
680
    0x08,
681
    0xbe,
682
    0x25,
683
    0x8f,
684
    0xf3,
685
    0x24,
686
    0x94,
687
    0x33,
688
    0x28,
689
    0xf6,
690
    0x72,
691
    0x2d,
692
    0x9e,
693
    0xe1,
694
    0x00,
695
    0x3e,
696
    0x5c,
697
    0x50,
698
    0xb1,
699
    0xdf,
700
    0x82,
701
    0xcc,
702
    0x6d,
703
    0x24,
704
    0x1b,
705
    0x0e,
706
    0x2a,
707
    0xe9,
708
    0xcd,
709
    0x34,
710
    0x8b,
711
    0x1f,
712
    0xd4,
713
    0x7e,
714
    0x92,
715
    0x67,
716
    0xaf,
717
    0xc1,
718
    0xb2,
719
    0xae,
720
    0x91,
721
    0xee,
722
    0x51,
723
    0xd6,
724
    0xcb,
725
    0x0e,
726
    0x31,
727
    0x79,
728
    0xab,
729
    0x10,
730
    0x42,
731
    0xa9,
732
    0x5d,
733
    0xcf,
734
    0x6a,
735
    0x94,
736
    0x83,
737
    0xb8,
738
    0x4b,
739
    0x4b,
740
    0x36,
741
    0xb3,
742
    0x86,
743
    0x1a,
744
    0xa7,
745
    0x25,
746
    0x5e,
747
    0x4c,
748
    0x02,
749
    0x78,
750
    0xba,
751
    0x36,
752
    0x04,
753
    0x65,
754
    0x11,
755
    0xb9,
756
    0x93,
757
    0xff,
758
    0xff,
759
    0xff,
760
    0xff,
761
    0xff,
762
    0xff,
763
    0xff,
764
    0xff,
765
};
766
767
/* q=(p-1)/2 for prime prime_ike_2048 */
768
static const unsigned char subprime_ike_2048_data[] = {
769
    0x7f,
770
    0xff,
771
    0xff,
772
    0xff,
773
    0xff,
774
    0xff,
775
    0xff,
776
    0xff,
777
    0xe4,
778
    0x87,
779
    0xed,
780
    0x51,
781
    0x10,
782
    0xb4,
783
    0x61,
784
    0x1a,
785
    0x62,
786
    0x63,
787
    0x31,
788
    0x45,
789
    0xc0,
790
    0x6e,
791
    0x0e,
792
    0x68,
793
    0x94,
794
    0x81,
795
    0x27,
796
    0x04,
797
    0x45,
798
    0x33,
799
    0xe6,
800
    0x3a,
801
    0x01,
802
    0x05,
803
    0xdf,
804
    0x53,
805
    0x1d,
806
    0x89,
807
    0xcd,
808
    0x91,
809
    0x28,
810
    0xa5,
811
    0x04,
812
    0x3c,
813
    0xc7,
814
    0x1a,
815
    0x02,
816
    0x6e,
817
    0xf7,
818
    0xca,
819
    0x8c,
820
    0xd9,
821
    0xe6,
822
    0x9d,
823
    0x21,
824
    0x8d,
825
    0x98,
826
    0x15,
827
    0x85,
828
    0x36,
829
    0xf9,
830
    0x2f,
831
    0x8a,
832
    0x1b,
833
    0xa7,
834
    0xf0,
835
    0x9a,
836
    0xb6,
837
    0xb6,
838
    0xa8,
839
    0xe1,
840
    0x22,
841
    0xf2,
842
    0x42,
843
    0xda,
844
    0xbb,
845
    0x31,
846
    0x2f,
847
    0x3f,
848
    0x63,
849
    0x7a,
850
    0x26,
851
    0x21,
852
    0x74,
853
    0xd3,
854
    0x1b,
855
    0xf6,
856
    0xb5,
857
    0x85,
858
    0xff,
859
    0xae,
860
    0x5b,
861
    0x7a,
862
    0x03,
863
    0x5b,
864
    0xf6,
865
    0xf7,
866
    0x1c,
867
    0x35,
868
    0xfd,
869
    0xad,
870
    0x44,
871
    0xcf,
872
    0xd2,
873
    0xd7,
874
    0x4f,
875
    0x92,
876
    0x08,
877
    0xbe,
878
    0x25,
879
    0x8f,
880
    0xf3,
881
    0x24,
882
    0x94,
883
    0x33,
884
    0x28,
885
    0xf6,
886
    0x72,
887
    0x2d,
888
    0x9e,
889
    0xe1,
890
    0x00,
891
    0x3e,
892
    0x5c,
893
    0x50,
894
    0xb1,
895
    0xdf,
896
    0x82,
897
    0xcc,
898
    0x6d,
899
    0x24,
900
    0x1b,
901
    0x0e,
902
    0x2a,
903
    0xe9,
904
    0xcd,
905
    0x34,
906
    0x8b,
907
    0x1f,
908
    0xd4,
909
    0x7e,
910
    0x92,
911
    0x67,
912
    0xaf,
913
    0xc1,
914
    0xb2,
915
    0xae,
916
    0x91,
917
    0xee,
918
    0x51,
919
    0xd6,
920
    0xcb,
921
    0x0e,
922
    0x31,
923
    0x79,
924
    0xab,
925
    0x10,
926
    0x42,
927
    0xa9,
928
    0x5d,
929
    0xcf,
930
    0x6a,
931
    0x94,
932
    0x83,
933
    0xb8,
934
    0x4b,
935
    0x4b,
936
    0x36,
937
    0xb3,
938
    0x86,
939
    0x1a,
940
    0xa7,
941
    0x25,
942
    0x5e,
943
    0x4c,
944
    0x02,
945
    0x78,
946
    0xba,
947
    0x36,
948
    0x04,
949
    0x65,
950
    0x0c,
951
    0x10,
952
    0xbe,
953
    0x19,
954
    0x48,
955
    0x2f,
956
    0x23,
957
    0x17,
958
    0x1b,
959
    0x67,
960
    0x1d,
961
    0xf1,
962
    0xcf,
963
    0x3b,
964
    0x96,
965
    0x0c,
966
    0x07,
967
    0x43,
968
    0x01,
969
    0xcd,
970
    0x93,
971
    0xc1,
972
    0xd1,
973
    0x76,
974
    0x03,
975
    0xd1,
976
    0x47,
977
    0xda,
978
    0xe2,
979
    0xae,
980
    0xf8,
981
    0x37,
982
    0xa6,
983
    0x29,
984
    0x64,
985
    0xef,
986
    0x15,
987
    0xe5,
988
    0xfb,
989
    0x4a,
990
    0xac,
991
    0x0b,
992
    0x8c,
993
    0x1c,
994
    0xca,
995
    0xa4,
996
    0xbe,
997
    0x75,
998
    0x4a,
999
    0xb5,
1000
    0x72,
1001
    0x8a,
1002
    0xe9,
1003
    0x13,
1004
    0x0c,
1005
    0x4c,
1006
    0x7d,
1007
    0x02,
1008
    0x88,
1009
    0x0a,
1010
    0xb9,
1011
    0x47,
1012
    0x2d,
1013
    0x45,
1014
    0x56,
1015
    0x55,
1016
    0x34,
1017
    0x7f,
1018
    0xff,
1019
    0xff,
1020
    0xff,
1021
    0xff,
1022
    0xff,
1023
    0xff,
1024
    0xff,
1025
};
1026
1027
/* q=(p-1)/2 for prime prime_tls_2048 */
1028
static const unsigned char subprime_tls_2048_data[] = {
1029
    0x7f,
1030
    0xff,
1031
    0xff,
1032
    0xff,
1033
    0xff,
1034
    0xff,
1035
    0xff,
1036
    0xff,
1037
    0xd6,
1038
    0xfc,
1039
    0x2a,
1040
    0x2c,
1041
    0x51,
1042
    0x5d,
1043
    0xa5,
1044
    0x4d,
1045
    0x57,
1046
    0xee,
1047
    0x2b,
1048
    0x10,
1049
    0x13,
1050
    0x9e,
1051
    0x9e,
1052
    0x78,
1053
    0xec,
1054
    0x5c,
1055
    0xe2,
1056
    0xc1,
1057
    0xe7,
1058
    0x16,
1059
    0x9b,
1060
    0x4a,
1061
    0xd4,
1062
    0xf0,
1063
    0x9b,
1064
    0x20,
1065
    0x8a,
1066
    0x32,
1067
    0x19,
1068
    0xfd,
1069
    0xe6,
1070
    0x49,
1071
    0xce,
1072
    0xe7,
1073
    0x12,
1074
    0x4d,
1075
    0x9f,
1076
    0x7c,
1077
    0xbe,
1078
    0x97,
1079
    0xf1,
1080
    0xb1,
1081
    0xb1,
1082
    0x86,
1083
    0x3a,
1084
    0xec,
1085
    0x7b,
1086
    0x40,
1087
    0xd9,
1088
    0x01,
1089
    0x57,
1090
    0x62,
1091
    0x30,
1092
    0xbd,
1093
    0x69,
1094
    0xef,
1095
    0x8f,
1096
    0x6a,
1097
    0xea,
1098
    0xfe,
1099
    0xb2,
1100
    0xb0,
1101
    0x92,
1102
    0x19,
1103
    0xfa,
1104
    0x8f,
1105
    0xaf,
1106
    0x83,
1107
    0x37,
1108
    0x68,
1109
    0x42,
1110
    0xb1,
1111
    0xb2,
1112
    0xaa,
1113
    0x9e,
1114
    0xf6,
1115
    0x8d,
1116
    0x79,
1117
    0xda,
1118
    0xab,
1119
    0x89,
1120
    0xaf,
1121
    0x3f,
1122
    0xab,
1123
    0xe4,
1124
    0x9a,
1125
    0xcc,
1126
    0x27,
1127
    0x86,
1128
    0x38,
1129
    0x70,
1130
    0x73,
1131
    0x45,
1132
    0xbb,
1133
    0xf1,
1134
    0x53,
1135
    0x44,
1136
    0xed,
1137
    0x79,
1138
    0xf7,
1139
    0xf4,
1140
    0x39,
1141
    0x0e,
1142
    0xf8,
1143
    0xac,
1144
    0x50,
1145
    0x9b,
1146
    0x56,
1147
    0xf3,
1148
    0x9a,
1149
    0x98,
1150
    0x56,
1151
    0x65,
1152
    0x27,
1153
    0xa4,
1154
    0x1d,
1155
    0x3c,
1156
    0xbd,
1157
    0x5e,
1158
    0x05,
1159
    0x58,
1160
    0xc1,
1161
    0x59,
1162
    0x92,
1163
    0x7d,
1164
    0xb0,
1165
    0xe8,
1166
    0x84,
1167
    0x54,
1168
    0xa5,
1169
    0xd9,
1170
    0x64,
1171
    0x71,
1172
    0xfd,
1173
    0xdc,
1174
    0xb5,
1175
    0x6d,
1176
    0x5b,
1177
    0xb0,
1178
    0x6b,
1179
    0xfa,
1180
    0x34,
1181
    0x0e,
1182
    0xa7,
1183
    0xa1,
1184
    0x51,
1185
    0xef,
1186
    0x1c,
1187
    0xa6,
1188
    0xfa,
1189
    0x57,
1190
    0x2b,
1191
    0x76,
1192
    0xf3,
1193
    0xb1,
1194
    0xb9,
1195
    0x5d,
1196
    0x8c,
1197
    0x85,
1198
    0x83,
1199
    0xd3,
1200
    0xe4,
1201
    0x77,
1202
    0x05,
1203
    0x36,
1204
    0xb8,
1205
    0x4f,
1206
    0x01,
1207
    0x7e,
1208
    0x70,
1209
    0xe6,
1210
    0xfb,
1211
    0xf1,
1212
    0x76,
1213
    0x60,
1214
    0x1a,
1215
    0x02,
1216
    0x66,
1217
    0x94,
1218
    0x1a,
1219
    0x17,
1220
    0xb0,
1221
    0xc8,
1222
    0xb9,
1223
    0x7f,
1224
    0x4e,
1225
    0x74,
1226
    0xc2,
1227
    0xc1,
1228
    0xff,
1229
    0xc7,
1230
    0x27,
1231
    0x89,
1232
    0x19,
1233
    0x77,
1234
    0x79,
1235
    0x40,
1236
    0xc1,
1237
    0xe1,
1238
    0xff,
1239
    0x1d,
1240
    0x8d,
1241
    0xa6,
1242
    0x37,
1243
    0xd6,
1244
    0xb9,
1245
    0x9d,
1246
    0xda,
1247
    0xfe,
1248
    0x5e,
1249
    0x17,
1250
    0x61,
1251
    0x10,
1252
    0x02,
1253
    0xe2,
1254
    0xc7,
1255
    0x78,
1256
    0xc1,
1257
    0xbe,
1258
    0x8b,
1259
    0x41,
1260
    0xd9,
1261
    0x63,
1262
    0x79,
1263
    0xa5,
1264
    0x13,
1265
    0x60,
1266
    0xd9,
1267
    0x77,
1268
    0xfd,
1269
    0x44,
1270
    0x35,
1271
    0xa1,
1272
    0x1c,
1273
    0x30,
1274
    0x94,
1275
    0x2e,
1276
    0x4b,
1277
    0xff,
1278
    0xff,
1279
    0xff,
1280
    0xff,
1281
    0xff,
1282
    0xff,
1283
    0xff,
1284
    0xff,
1285
};
1286
1287
/* q=(p-1)/2 for prime prime_ike_3072 */
1288
static const unsigned char subprime_ike_3072_data[] = {
1289
    0x7f,
1290
    0xff,
1291
    0xff,
1292
    0xff,
1293
    0xff,
1294
    0xff,
1295
    0xff,
1296
    0xff,
1297
    0xe4,
1298
    0x87,
1299
    0xed,
1300
    0x51,
1301
    0x10,
1302
    0xb4,
1303
    0x61,
1304
    0x1a,
1305
    0x62,
1306
    0x63,
1307
    0x31,
1308
    0x45,
1309
    0xc0,
1310
    0x6e,
1311
    0x0e,
1312
    0x68,
1313
    0x94,
1314
    0x81,
1315
    0x27,
1316
    0x04,
1317
    0x45,
1318
    0x33,
1319
    0xe6,
1320
    0x3a,
1321
    0x01,
1322
    0x05,
1323
    0xdf,
1324
    0x53,
1325
    0x1d,
1326
    0x89,
1327
    0xcd,
1328
    0x91,
1329
    0x28,
1330
    0xa5,
1331
    0x04,
1332
    0x3c,
1333
    0xc7,
1334
    0x1a,
1335
    0x02,
1336
    0x6e,
1337
    0xf7,
1338
    0xca,
1339
    0x8c,
1340
    0xd9,
1341
    0xe6,
1342
    0x9d,
1343
    0x21,
1344
    0x8d,
1345
    0x98,
1346
    0x15,
1347
    0x85,
1348
    0x36,
1349
    0xf9,
1350
    0x2f,
1351
    0x8a,
1352
    0x1b,
1353
    0xa7,
1354
    0xf0,
1355
    0x9a,
1356
    0xb6,
1357
    0xb6,
1358
    0xa8,
1359
    0xe1,
1360
    0x22,
1361
    0xf2,
1362
    0x42,
1363
    0xda,
1364
    0xbb,
1365
    0x31,
1366
    0x2f,
1367
    0x3f,
1368
    0x63,
1369
    0x7a,
1370
    0x26,
1371
    0x21,
1372
    0x74,
1373
    0xd3,
1374
    0x1b,
1375
    0xf6,
1376
    0xb5,
1377
    0x85,
1378
    0xff,
1379
    0xae,
1380
    0x5b,
1381
    0x7a,
1382
    0x03,
1383
    0x5b,
1384
    0xf6,
1385
    0xf7,
1386
    0x1c,
1387
    0x35,
1388
    0xfd,
1389
    0xad,
1390
    0x44,
1391
    0xcf,
1392
    0xd2,
1393
    0xd7,
1394
    0x4f,
1395
    0x92,
1396
    0x08,
1397
    0xbe,
1398
    0x25,
1399
    0x8f,
1400
    0xf3,
1401
    0x24,
1402
    0x94,
1403
    0x33,
1404
    0x28,
1405
    0xf6,
1406
    0x72,
1407
    0x2d,
1408
    0x9e,
1409
    0xe1,
1410
    0x00,
1411
    0x3e,
1412
    0x5c,
1413
    0x50,
1414
    0xb1,
1415
    0xdf,
1416
    0x82,
1417
    0xcc,
1418
    0x6d,
1419
    0x24,
1420
    0x1b,
1421
    0x0e,
1422
    0x2a,
1423
    0xe9,
1424
    0xcd,
1425
    0x34,
1426
    0x8b,
1427
    0x1f,
1428
    0xd4,
1429
    0x7e,
1430
    0x92,
1431
    0x67,
1432
    0xaf,
1433
    0xc1,
1434
    0xb2,
1435
    0xae,
1436
    0x91,
1437
    0xee,
1438
    0x51,
1439
    0xd6,
1440
    0xcb,
1441
    0x0e,
1442
    0x31,
1443
    0x79,
1444
    0xab,
1445
    0x10,
1446
    0x42,
1447
    0xa9,
1448
    0x5d,
1449
    0xcf,
1450
    0x6a,
1451
    0x94,
1452
    0x83,
1453
    0xb8,
1454
    0x4b,
1455
    0x4b,
1456
    0x36,
1457
    0xb3,
1458
    0x86,
1459
    0x1a,
1460
    0xa7,
1461
    0x25,
1462
    0x5e,
1463
    0x4c,
1464
    0x02,
1465
    0x78,
1466
    0xba,
1467
    0x36,
1468
    0x04,
1469
    0x65,
1470
    0x0c,
1471
    0x10,
1472
    0xbe,
1473
    0x19,
1474
    0x48,
1475
    0x2f,
1476
    0x23,
1477
    0x17,
1478
    0x1b,
1479
    0x67,
1480
    0x1d,
1481
    0xf1,
1482
    0xcf,
1483
    0x3b,
1484
    0x96,
1485
    0x0c,
1486
    0x07,
1487
    0x43,
1488
    0x01,
1489
    0xcd,
1490
    0x93,
1491
    0xc1,
1492
    0xd1,
1493
    0x76,
1494
    0x03,
1495
    0xd1,
1496
    0x47,
1497
    0xda,
1498
    0xe2,
1499
    0xae,
1500
    0xf8,
1501
    0x37,
1502
    0xa6,
1503
    0x29,
1504
    0x64,
1505
    0xef,
1506
    0x15,
1507
    0xe5,
1508
    0xfb,
1509
    0x4a,
1510
    0xac,
1511
    0x0b,
1512
    0x8c,
1513
    0x1c,
1514
    0xca,
1515
    0xa4,
1516
    0xbe,
1517
    0x75,
1518
    0x4a,
1519
    0xb5,
1520
    0x72,
1521
    0x8a,
1522
    0xe9,
1523
    0x13,
1524
    0x0c,
1525
    0x4c,
1526
    0x7d,
1527
    0x02,
1528
    0x88,
1529
    0x0a,
1530
    0xb9,
1531
    0x47,
1532
    0x2d,
1533
    0x45,
1534
    0x55,
1535
    0x62,
1536
    0x16,
1537
    0xd6,
1538
    0x99,
1539
    0x8b,
1540
    0x86,
1541
    0x82,
1542
    0x28,
1543
    0x3d,
1544
    0x19,
1545
    0xd4,
1546
    0x2a,
1547
    0x90,
1548
    0xd5,
1549
    0xef,
1550
    0x8e,
1551
    0x5d,
1552
    0x32,
1553
    0x76,
1554
    0x7d,
1555
    0xc2,
1556
    0x82,
1557
    0x2c,
1558
    0x6d,
1559
    0xf7,
1560
    0x85,
1561
    0x45,
1562
    0x75,
1563
    0x38,
1564
    0xab,
1565
    0xae,
1566
    0x83,
1567
    0x06,
1568
    0x3e,
1569
    0xd9,
1570
    0xcb,
1571
    0x87,
1572
    0xc2,
1573
    0xd3,
1574
    0x70,
1575
    0xf2,
1576
    0x63,
1577
    0xd5,
1578
    0xfa,
1579
    0xd7,
1580
    0x46,
1581
    0x6d,
1582
    0x84,
1583
    0x99,
1584
    0xeb,
1585
    0x8f,
1586
    0x46,
1587
    0x4a,
1588
    0x70,
1589
    0x25,
1590
    0x12,
1591
    0xb0,
1592
    0xce,
1593
    0xe7,
1594
    0x71,
1595
    0xe9,
1596
    0x13,
1597
    0x0d,
1598
    0x69,
1599
    0x77,
1600
    0x35,
1601
    0xf8,
1602
    0x97,
1603
    0xfd,
1604
    0x03,
1605
    0x6c,
1606
    0xc5,
1607
    0x04,
1608
    0x32,
1609
    0x6c,
1610
    0x3b,
1611
    0x01,
1612
    0x39,
1613
    0x9f,
1614
    0x64,
1615
    0x35,
1616
    0x32,
1617
    0x29,
1618
    0x0f,
1619
    0x95,
1620
    0x8c,
1621
    0x0b,
1622
    0xbd,
1623
    0x90,
1624
    0x06,
1625
    0x5d,
1626
    0xf0,
1627
    0x8b,
1628
    0xab,
1629
    0xbd,
1630
    0x30,
1631
    0xae,
1632
    0xb6,
1633
    0x3b,
1634
    0x84,
1635
    0xc4,
1636
    0x60,
1637
    0x5d,
1638
    0x6c,
1639
    0xa3,
1640
    0x71,
1641
    0x04,
1642
    0x71,
1643
    0x27,
1644
    0xd0,
1645
    0x3a,
1646
    0x72,
1647
    0xd5,
1648
    0x98,
1649
    0xa1,
1650
    0xed,
1651
    0xad,
1652
    0xfe,
1653
    0x70,
1654
    0x7e,
1655
    0x88,
1656
    0x47,
1657
    0x25,
1658
    0xc1,
1659
    0x68,
1660
    0x90,
1661
    0x54,
1662
    0x9d,
1663
    0x69,
1664
    0x65,
1665
    0x7f,
1666
    0xff,
1667
    0xff,
1668
    0xff,
1669
    0xff,
1670
    0xff,
1671
    0xff,
1672
    0xff,
1673
};
1674
1675
/* q=(p-1)/2 for prime prime_tls_3072 */
1676
static const unsigned char subprime_tls_3072_data[] = {
1677
    0x7f,
1678
    0xff,
1679
    0xff,
1680
    0xff,
1681
    0xff,
1682
    0xff,
1683
    0xff,
1684
    0xff,
1685
    0xd6,
1686
    0xfc,
1687
    0x2a,
1688
    0x2c,
1689
    0x51,
1690
    0x5d,
1691
    0xa5,
1692
    0x4d,
1693
    0x57,
1694
    0xee,
1695
    0x2b,
1696
    0x10,
1697
    0x13,
1698
    0x9e,
1699
    0x9e,
1700
    0x78,
1701
    0xec,
1702
    0x5c,
1703
    0xe2,
1704
    0xc1,
1705
    0xe7,
1706
    0x16,
1707
    0x9b,
1708
    0x4a,
1709
    0xd4,
1710
    0xf0,
1711
    0x9b,
1712
    0x20,
1713
    0x8a,
1714
    0x32,
1715
    0x19,
1716
    0xfd,
1717
    0xe6,
1718
    0x49,
1719
    0xce,
1720
    0xe7,
1721
    0x12,
1722
    0x4d,
1723
    0x9f,
1724
    0x7c,
1725
    0xbe,
1726
    0x97,
1727
    0xf1,
1728
    0xb1,
1729
    0xb1,
1730
    0x86,
1731
    0x3a,
1732
    0xec,
1733
    0x7b,
1734
    0x40,
1735
    0xd9,
1736
    0x01,
1737
    0x57,
1738
    0x62,
1739
    0x30,
1740
    0xbd,
1741
    0x69,
1742
    0xef,
1743
    0x8f,
1744
    0x6a,
1745
    0xea,
1746
    0xfe,
1747
    0xb2,
1748
    0xb0,
1749
    0x92,
1750
    0x19,
1751
    0xfa,
1752
    0x8f,
1753
    0xaf,
1754
    0x83,
1755
    0x37,
1756
    0x68,
1757
    0x42,
1758
    0xb1,
1759
    0xb2,
1760
    0xaa,
1761
    0x9e,
1762
    0xf6,
1763
    0x8d,
1764
    0x79,
1765
    0xda,
1766
    0xab,
1767
    0x89,
1768
    0xaf,
1769
    0x3f,
1770
    0xab,
1771
    0xe4,
1772
    0x9a,
1773
    0xcc,
1774
    0x27,
1775
    0x86,
1776
    0x38,
1777
    0x70,
1778
    0x73,
1779
    0x45,
1780
    0xbb,
1781
    0xf1,
1782
    0x53,
1783
    0x44,
1784
    0xed,
1785
    0x79,
1786
    0xf7,
1787
    0xf4,
1788
    0x39,
1789
    0x0e,
1790
    0xf8,
1791
    0xac,
1792
    0x50,
1793
    0x9b,
1794
    0x56,
1795
    0xf3,
1796
    0x9a,
1797
    0x98,
1798
    0x56,
1799
    0x65,
1800
    0x27,
1801
    0xa4,
1802
    0x1d,
1803
    0x3c,
1804
    0xbd,
1805
    0x5e,
1806
    0x05,
1807
    0x58,
1808
    0xc1,
1809
    0x59,
1810
    0x92,
1811
    0x7d,
1812
    0xb0,
1813
    0xe8,
1814
    0x84,
1815
    0x54,
1816
    0xa5,
1817
    0xd9,
1818
    0x64,
1819
    0x71,
1820
    0xfd,
1821
    0xdc,
1822
    0xb5,
1823
    0x6d,
1824
    0x5b,
1825
    0xb0,
1826
    0x6b,
1827
    0xfa,
1828
    0x34,
1829
    0x0e,
1830
    0xa7,
1831
    0xa1,
1832
    0x51,
1833
    0xef,
1834
    0x1c,
1835
    0xa6,
1836
    0xfa,
1837
    0x57,
1838
    0x2b,
1839
    0x76,
1840
    0xf3,
1841
    0xb1,
1842
    0xb9,
1843
    0x5d,
1844
    0x8c,
1845
    0x85,
1846
    0x83,
1847
    0xd3,
1848
    0xe4,
1849
    0x77,
1850
    0x05,
1851
    0x36,
1852
    0xb8,
1853
    0x4f,
1854
    0x01,
1855
    0x7e,
1856
    0x70,
1857
    0xe6,
1858
    0xfb,
1859
    0xf1,
1860
    0x76,
1861
    0x60,
1862
    0x1a,
1863
    0x02,
1864
    0x66,
1865
    0x94,
1866
    0x1a,
1867
    0x17,
1868
    0xb0,
1869
    0xc8,
1870
    0xb9,
1871
    0x7f,
1872
    0x4e,
1873
    0x74,
1874
    0xc2,
1875
    0xc1,
1876
    0xff,
1877
    0xc7,
1878
    0x27,
1879
    0x89,
1880
    0x19,
1881
    0x77,
1882
    0x79,
1883
    0x40,
1884
    0xc1,
1885
    0xe1,
1886
    0xff,
1887
    0x1d,
1888
    0x8d,
1889
    0xa6,
1890
    0x37,
1891
    0xd6,
1892
    0xb9,
1893
    0x9d,
1894
    0xda,
1895
    0xfe,
1896
    0x5e,
1897
    0x17,
1898
    0x61,
1899
    0x10,
1900
    0x02,
1901
    0xe2,
1902
    0xc7,
1903
    0x78,
1904
    0xc1,
1905
    0xbe,
1906
    0x8b,
1907
    0x41,
1908
    0xd9,
1909
    0x63,
1910
    0x79,
1911
    0xa5,
1912
    0x13,
1913
    0x60,
1914
    0xd9,
1915
    0x77,
1916
    0xfd,
1917
    0x44,
1918
    0x35,
1919
    0xa1,
1920
    0x1c,
1921
    0x30,
1922
    0x8f,
1923
    0xe7,
1924
    0xee,
1925
    0x6f,
1926
    0x1a,
1927
    0xad,
1928
    0x9d,
1929
    0xb2,
1930
    0x8c,
1931
    0x81,
1932
    0xad,
1933
    0xde,
1934
    0x1a,
1935
    0x7a,
1936
    0x6f,
1937
    0x7c,
1938
    0xce,
1939
    0x01,
1940
    0x1c,
1941
    0x30,
1942
    0xda,
1943
    0x37,
1944
    0xe4,
1945
    0xeb,
1946
    0x73,
1947
    0x64,
1948
    0x83,
1949
    0xbd,
1950
    0x6c,
1951
    0x8e,
1952
    0x93,
1953
    0x48,
1954
    0xfb,
1955
    0xfb,
1956
    0xf7,
1957
    0x2c,
1958
    0xc6,
1959
    0x58,
1960
    0x7d,
1961
    0x60,
1962
    0xc3,
1963
    0x6c,
1964
    0x8e,
1965
    0x57,
1966
    0x7f,
1967
    0x09,
1968
    0x84,
1969
    0xc2,
1970
    0x89,
1971
    0xc9,
1972
    0x38,
1973
    0x5a,
1974
    0x09,
1975
    0x86,
1976
    0x49,
1977
    0xde,
1978
    0x21,
1979
    0xbc,
1980
    0xa2,
1981
    0x7a,
1982
    0x7e,
1983
    0xa2,
1984
    0x29,
1985
    0x71,
1986
    0x6b,
1987
    0xa6,
1988
    0xe9,
1989
    0xb2,
1990
    0x79,
1991
    0x71,
1992
    0x0f,
1993
    0x38,
1994
    0xfa,
1995
    0xa5,
1996
    0xff,
1997
    0xae,
1998
    0x57,
1999
    0x41,
2000
    0x55,
2001
    0xce,
2002
    0x4e,
2003
    0xfb,
2004
    0x4f,
2005
    0x74,
2006
    0x36,
2007
    0x95,
2008
    0xe2,
2009
    0x91,
2010
    0x1b,
2011
    0x1d,
2012
    0x06,
2013
    0xd5,
2014
    0xe2,
2015
    0x90,
2016
    0xcb,
2017
    0xcd,
2018
    0x86,
2019
    0xf5,
2020
    0x6d,
2021
    0x0e,
2022
    0xdf,
2023
    0xcd,
2024
    0x21,
2025
    0x6a,
2026
    0xe2,
2027
    0x24,
2028
    0x27,
2029
    0x05,
2030
    0x5e,
2031
    0x68,
2032
    0x35,
2033
    0xfd,
2034
    0x29,
2035
    0xee,
2036
    0xf7,
2037
    0x9e,
2038
    0x0d,
2039
    0x90,
2040
    0x77,
2041
    0x1f,
2042
    0xea,
2043
    0xce,
2044
    0xbe,
2045
    0x12,
2046
    0xf2,
2047
    0x0e,
2048
    0x95,
2049
    0xb3,
2050
    0x63,
2051
    0x17,
2052
    0x1b,
2053
    0xff,
2054
    0xff,
2055
    0xff,
2056
    0xff,
2057
    0xff,
2058
    0xff,
2059
    0xff,
2060
    0xff,
2061
};
2062
2063
/* q=(p-1)/2 for prime prime_ike_4096 */
2064
static const unsigned char subprime_ike_4096_data[] = {
2065
    0x7f,
2066
    0xff,
2067
    0xff,
2068
    0xff,
2069
    0xff,
2070
    0xff,
2071
    0xff,
2072
    0xff,
2073
    0xe4,
2074
    0x87,
2075
    0xed,
2076
    0x51,
2077
    0x10,
2078
    0xb4,
2079
    0x61,
2080
    0x1a,
2081
    0x62,
2082
    0x63,
2083
    0x31,
2084
    0x45,
2085
    0xc0,
2086
    0x6e,
2087
    0x0e,
2088
    0x68,
2089
    0x94,
2090
    0x81,
2091
    0x27,
2092
    0x04,
2093
    0x45,
2094
    0x33,
2095
    0xe6,
2096
    0x3a,
2097
    0x01,
2098
    0x05,
2099
    0xdf,
2100
    0x53,
2101
    0x1d,
2102
    0x89,
2103
    0xcd,
2104
    0x91,
2105
    0x28,
2106
    0xa5,
2107
    0x04,
2108
    0x3c,
2109
    0xc7,
2110
    0x1a,
2111
    0x02,
2112
    0x6e,
2113
    0xf7,
2114
    0xca,
2115
    0x8c,
2116
    0xd9,
2117
    0xe6,
2118
    0x9d,
2119
    0x21,
2120
    0x8d,
2121
    0x98,
2122
    0x15,
2123
    0x85,
2124
    0x36,
2125
    0xf9,
2126
    0x2f,
2127
    0x8a,
2128
    0x1b,
2129
    0xa7,
2130
    0xf0,
2131
    0x9a,
2132
    0xb6,
2133
    0xb6,
2134
    0xa8,
2135
    0xe1,
2136
    0x22,
2137
    0xf2,
2138
    0x42,
2139
    0xda,
2140
    0xbb,
2141
    0x31,
2142
    0x2f,
2143
    0x3f,
2144
    0x63,
2145
    0x7a,
2146
    0x26,
2147
    0x21,
2148
    0x74,
2149
    0xd3,
2150
    0x1b,
2151
    0xf6,
2152
    0xb5,
2153
    0x85,
2154
    0xff,
2155
    0xae,
2156
    0x5b,
2157
    0x7a,
2158
    0x03,
2159
    0x5b,
2160
    0xf6,
2161
    0xf7,
2162
    0x1c,
2163
    0x35,
2164
    0xfd,
2165
    0xad,
2166
    0x44,
2167
    0xcf,
2168
    0xd2,
2169
    0xd7,
2170
    0x4f,
2171
    0x92,
2172
    0x08,
2173
    0xbe,
2174
    0x25,
2175
    0x8f,
2176
    0xf3,
2177
    0x24,
2178
    0x94,
2179
    0x33,
2180
    0x28,
2181
    0xf6,
2182
    0x72,
2183
    0x2d,
2184
    0x9e,
2185
    0xe1,
2186
    0x00,
2187
    0x3e,
2188
    0x5c,
2189
    0x50,
2190
    0xb1,
2191
    0xdf,
2192
    0x82,
2193
    0xcc,
2194
    0x6d,
2195
    0x24,
2196
    0x1b,
2197
    0x0e,
2198
    0x2a,
2199
    0xe9,
2200
    0xcd,
2201
    0x34,
2202
    0x8b,
2203
    0x1f,
2204
    0xd4,
2205
    0x7e,
2206
    0x92,
2207
    0x67,
2208
    0xaf,
2209
    0xc1,
2210
    0xb2,
2211
    0xae,
2212
    0x91,
2213
    0xee,
2214
    0x51,
2215
    0xd6,
2216
    0xcb,
2217
    0x0e,
2218
    0x31,
2219
    0x79,
2220
    0xab,
2221
    0x10,
2222
    0x42,
2223
    0xa9,
2224
    0x5d,
2225
    0xcf,
2226
    0x6a,
2227
    0x94,
2228
    0x83,
2229
    0xb8,
2230
    0x4b,
2231
    0x4b,
2232
    0x36,
2233
    0xb3,
2234
    0x86,
2235
    0x1a,
2236
    0xa7,
2237
    0x25,
2238
    0x5e,
2239
    0x4c,
2240
    0x02,
2241
    0x78,
2242
    0xba,
2243
    0x36,
2244
    0x04,
2245
    0x65,
2246
    0x0c,
2247
    0x10,
2248
    0xbe,
2249
    0x19,
2250
    0x48,
2251
    0x2f,
2252
    0x23,
2253
    0x17,
2254
    0x1b,
2255
    0x67,
2256
    0x1d,
2257
    0xf1,
2258
    0xcf,
2259
    0x3b,
2260
    0x96,
2261
    0x0c,
2262
    0x07,
2263
    0x43,
2264
    0x01,
2265
    0xcd,
2266
    0x93,
2267
    0xc1,
2268
    0xd1,
2269
    0x76,
2270
    0x03,
2271
    0xd1,
2272
    0x47,
2273
    0xda,
2274
    0xe2,
2275
    0xae,
2276
    0xf8,
2277
    0x37,
2278
    0xa6,
2279
    0x29,
2280
    0x64,
2281
    0xef,
2282
    0x15,
2283
    0xe5,
2284
    0xfb,
2285
    0x4a,
2286
    0xac,
2287
    0x0b,
2288
    0x8c,
2289
    0x1c,
2290
    0xca,
2291
    0xa4,
2292
    0xbe,
2293
    0x75,
2294
    0x4a,
2295
    0xb5,
2296
    0x72,
2297
    0x8a,
2298
    0xe9,
2299
    0x13,
2300
    0x0c,
2301
    0x4c,
2302
    0x7d,
2303
    0x02,
2304
    0x88,
2305
    0x0a,
2306
    0xb9,
2307
    0x47,
2308
    0x2d,
2309
    0x45,
2310
    0x55,
2311
    0x62,
2312
    0x16,
2313
    0xd6,
2314
    0x99,
2315
    0x8b,
2316
    0x86,
2317
    0x82,
2318
    0x28,
2319
    0x3d,
2320
    0x19,
2321
    0xd4,
2322
    0x2a,
2323
    0x90,
2324
    0xd5,
2325
    0xef,
2326
    0x8e,
2327
    0x5d,
2328
    0x32,
2329
    0x76,
2330
    0x7d,
2331
    0xc2,
2332
    0x82,
2333
    0x2c,
2334
    0x6d,
2335
    0xf7,
2336
    0x85,
2337
    0x45,
2338
    0x75,
2339
    0x38,
2340
    0xab,
2341
    0xae,
2342
    0x83,
2343
    0x06,
2344
    0x3e,
2345
    0xd9,
2346
    0xcb,
2347
    0x87,
2348
    0xc2,
2349
    0xd3,
2350
    0x70,
2351
    0xf2,
2352
    0x63,
2353
    0xd5,
2354
    0xfa,
2355
    0xd7,
2356
    0x46,
2357
    0x6d,
2358
    0x84,
2359
    0x99,
2360
    0xeb,
2361
    0x8f,
2362
    0x46,
2363
    0x4a,
2364
    0x70,
2365
    0x25,
2366
    0x12,
2367
    0xb0,
2368
    0xce,
2369
    0xe7,
2370
    0x71,
2371
    0xe9,
2372
    0x13,
2373
    0x0d,
2374
    0x69,
2375
    0x77,
2376
    0x35,
2377
    0xf8,
2378
    0x97,
2379
    0xfd,
2380
    0x03,
2381
    0x6c,
2382
    0xc5,
2383
    0x04,
2384
    0x32,
2385
    0x6c,
2386
    0x3b,
2387
    0x01,
2388
    0x39,
2389
    0x9f,
2390
    0x64,
2391
    0x35,
2392
    0x32,
2393
    0x29,
2394
    0x0f,
2395
    0x95,
2396
    0x8c,
2397
    0x0b,
2398
    0xbd,
2399
    0x90,
2400
    0x06,
2401
    0x5d,
2402
    0xf0,
2403
    0x8b,
2404
    0xab,
2405
    0xbd,
2406
    0x30,
2407
    0xae,
2408
    0xb6,
2409
    0x3b,
2410
    0x84,
2411
    0xc4,
2412
    0x60,
2413
    0x5d,
2414
    0x6c,
2415
    0xa3,
2416
    0x71,
2417
    0x04,
2418
    0x71,
2419
    0x27,
2420
    0xd0,
2421
    0x3a,
2422
    0x72,
2423
    0xd5,
2424
    0x98,
2425
    0xa1,
2426
    0xed,
2427
    0xad,
2428
    0xfe,
2429
    0x70,
2430
    0x7e,
2431
    0x88,
2432
    0x47,
2433
    0x25,
2434
    0xc1,
2435
    0x68,
2436
    0x90,
2437
    0x54,
2438
    0x90,
2439
    0x84,
2440
    0x00,
2441
    0x8d,
2442
    0x39,
2443
    0x1e,
2444
    0x09,
2445
    0x53,
2446
    0xc3,
2447
    0xf3,
2448
    0x6b,
2449
    0xc4,
2450
    0x38,
2451
    0xcd,
2452
    0x08,
2453
    0x5e,
2454
    0xdd,
2455
    0x2d,
2456
    0x93,
2457
    0x4c,
2458
    0xe1,
2459
    0x93,
2460
    0x8c,
2461
    0x35,
2462
    0x7a,
2463
    0x71,
2464
    0x1e,
2465
    0x0d,
2466
    0x4a,
2467
    0x34,
2468
    0x1a,
2469
    0x5b,
2470
    0x0a,
2471
    0x85,
2472
    0xed,
2473
    0x12,
2474
    0xc1,
2475
    0xf4,
2476
    0xe5,
2477
    0x15,
2478
    0x6a,
2479
    0x26,
2480
    0x74,
2481
    0x6d,
2482
    0xdd,
2483
    0xe1,
2484
    0x6d,
2485
    0x82,
2486
    0x6f,
2487
    0x47,
2488
    0x7c,
2489
    0x97,
2490
    0x47,
2491
    0x7e,
2492
    0x0a,
2493
    0x0f,
2494
    0xdf,
2495
    0x65,
2496
    0x53,
2497
    0x14,
2498
    0x3e,
2499
    0x2c,
2500
    0xa3,
2501
    0xa7,
2502
    0x35,
2503
    0xe0,
2504
    0x2e,
2505
    0xcc,
2506
    0xd9,
2507
    0x4b,
2508
    0x27,
2509
    0xd0,
2510
    0x48,
2511
    0x61,
2512
    0xd1,
2513
    0x11,
2514
    0x9d,
2515
    0xd0,
2516
    0xc3,
2517
    0x28,
2518
    0xad,
2519
    0xf3,
2520
    0xf6,
2521
    0x8f,
2522
    0xb0,
2523
    0x94,
2524
    0xb8,
2525
    0x67,
2526
    0x71,
2527
    0x6b,
2528
    0xd7,
2529
    0xdc,
2530
    0x0d,
2531
    0xee,
2532
    0xbb,
2533
    0x10,
2534
    0xb8,
2535
    0x24,
2536
    0x0e,
2537
    0x68,
2538
    0x03,
2539
    0x48,
2540
    0x93,
2541
    0xea,
2542
    0xd8,
2543
    0x2d,
2544
    0x54,
2545
    0xc9,
2546
    0xda,
2547
    0x75,
2548
    0x4c,
2549
    0x46,
2550
    0xc7,
2551
    0xee,
2552
    0xe0,
2553
    0xc3,
2554
    0x7f,
2555
    0xdb,
2556
    0xee,
2557
    0x48,
2558
    0x53,
2559
    0x60,
2560
    0x47,
2561
    0xa6,
2562
    0xfa,
2563
    0x1a,
2564
    0xe4,
2565
    0x9a,
2566
    0x03,
2567
    0x18,
2568
    0xcc,
2569
    0xff,
2570
    0xff,
2571
    0xff,
2572
    0xff,
2573
    0xff,
2574
    0xff,
2575
    0xff,
2576
    0xff,
2577
};
2578
2579
/* q=(p-1)/2 for prime prime_tls_4096 */
2580
static const unsigned char subprime_tls_4096_data[] = {
2581
    0x7f,
2582
    0xff,
2583
    0xff,
2584
    0xff,
2585
    0xff,
2586
    0xff,
2587
    0xff,
2588
    0xff,
2589
    0xd6,
2590
    0xfc,
2591
    0x2a,
2592
    0x2c,
2593
    0x51,
2594
    0x5d,
2595
    0xa5,
2596
    0x4d,
2597
    0x57,
2598
    0xee,
2599
    0x2b,
2600
    0x10,
2601
    0x13,
2602
    0x9e,
2603
    0x9e,
2604
    0x78,
2605
    0xec,
2606
    0x5c,
2607
    0xe2,
2608
    0xc1,
2609
    0xe7,
2610
    0x16,
2611
    0x9b,
2612
    0x4a,
2613
    0xd4,
2614
    0xf0,
2615
    0x9b,
2616
    0x20,
2617
    0x8a,
2618
    0x32,
2619
    0x19,
2620
    0xfd,
2621
    0xe6,
2622
    0x49,
2623
    0xce,
2624
    0xe7,
2625
    0x12,
2626
    0x4d,
2627
    0x9f,
2628
    0x7c,
2629
    0xbe,
2630
    0x97,
2631
    0xf1,
2632
    0xb1,
2633
    0xb1,
2634
    0x86,
2635
    0x3a,
2636
    0xec,
2637
    0x7b,
2638
    0x40,
2639
    0xd9,
2640
    0x01,
2641
    0x57,
2642
    0x62,
2643
    0x30,
2644
    0xbd,
2645
    0x69,
2646
    0xef,
2647
    0x8f,
2648
    0x6a,
2649
    0xea,
2650
    0xfe,
2651
    0xb2,
2652
    0xb0,
2653
    0x92,
2654
    0x19,
2655
    0xfa,
2656
    0x8f,
2657
    0xaf,
2658
    0x83,
2659
    0x37,
2660
    0x68,
2661
    0x42,
2662
    0xb1,
2663
    0xb2,
2664
    0xaa,
2665
    0x9e,
2666
    0xf6,
2667
    0x8d,
2668
    0x79,
2669
    0xda,
2670
    0xab,
2671
    0x89,
2672
    0xaf,
2673
    0x3f,
2674
    0xab,
2675
    0xe4,
2676
    0x9a,
2677
    0xcc,
2678
    0x27,
2679
    0x86,
2680
    0x38,
2681
    0x70,
2682
    0x73,
2683
    0x45,
2684
    0xbb,
2685
    0xf1,
2686
    0x53,
2687
    0x44,
2688
    0xed,
2689
    0x79,
2690
    0xf7,
2691
    0xf4,
2692
    0x39,
2693
    0x0e,
2694
    0xf8,
2695
    0xac,
2696
    0x50,
2697
    0x9b,
2698
    0x56,
2699
    0xf3,
2700
    0x9a,
2701
    0x98,
2702
    0x56,
2703
    0x65,
2704
    0x27,
2705
    0xa4,
2706
    0x1d,
2707
    0x3c,
2708
    0xbd,
2709
    0x5e,
2710
    0x05,
2711
    0x58,
2712
    0xc1,
2713
    0x59,
2714
    0x92,
2715
    0x7d,
2716
    0xb0,
2717
    0xe8,
2718
    0x84,
2719
    0x54,
2720
    0xa5,
2721
    0xd9,
2722
    0x64,
2723
    0x71,
2724
    0xfd,
2725
    0xdc,
2726
    0xb5,
2727
    0x6d,
2728
    0x5b,
2729
    0xb0,
2730
    0x6b,
2731
    0xfa,
2732
    0x34,
2733
    0x0e,
2734
    0xa7,
2735
    0xa1,
2736
    0x51,
2737
    0xef,
2738
    0x1c,
2739
    0xa6,
2740
    0xfa,
2741
    0x57,
2742
    0x2b,
2743
    0x76,
2744
    0xf3,
2745
    0xb1,
2746
    0xb9,
2747
    0x5d,
2748
    0x8c,
2749
    0x85,
2750
    0x83,
2751
    0xd3,
2752
    0xe4,
2753
    0x77,
2754
    0x05,
2755
    0x36,
2756
    0xb8,
2757
    0x4f,
2758
    0x01,
2759
    0x7e,
2760
    0x70,
2761
    0xe6,
2762
    0xfb,
2763
    0xf1,
2764
    0x76,
2765
    0x60,
2766
    0x1a,
2767
    0x02,
2768
    0x66,
2769
    0x94,
2770
    0x1a,
2771
    0x17,
2772
    0xb0,
2773
    0xc8,
2774
    0xb9,
2775
    0x7f,
2776
    0x4e,
2777
    0x74,
2778
    0xc2,
2779
    0xc1,
2780
    0xff,
2781
    0xc7,
2782
    0x27,
2783
    0x89,
2784
    0x19,
2785
    0x77,
2786
    0x79,
2787
    0x40,
2788
    0xc1,
2789
    0xe1,
2790
    0xff,
2791
    0x1d,
2792
    0x8d,
2793
    0xa6,
2794
    0x37,
2795
    0xd6,
2796
    0xb9,
2797
    0x9d,
2798
    0xda,
2799
    0xfe,
2800
    0x5e,
2801
    0x17,
2802
    0x61,
2803
    0x10,
2804
    0x02,
2805
    0xe2,
2806
    0xc7,
2807
    0x78,
2808
    0xc1,
2809
    0xbe,
2810
    0x8b,
2811
    0x41,
2812
    0xd9,
2813
    0x63,
2814
    0x79,
2815
    0xa5,
2816
    0x13,
2817
    0x60,
2818
    0xd9,
2819
    0x77,
2820
    0xfd,
2821
    0x44,
2822
    0x35,
2823
    0xa1,
2824
    0x1c,
2825
    0x30,
2826
    0x8f,
2827
    0xe7,
2828
    0xee,
2829
    0x6f,
2830
    0x1a,
2831
    0xad,
2832
    0x9d,
2833
    0xb2,
2834
    0x8c,
2835
    0x81,
2836
    0xad,
2837
    0xde,
2838
    0x1a,
2839
    0x7a,
2840
    0x6f,
2841
    0x7c,
2842
    0xce,
2843
    0x01,
2844
    0x1c,
2845
    0x30,
2846
    0xda,
2847
    0x37,
2848
    0xe4,
2849
    0xeb,
2850
    0x73,
2851
    0x64,
2852
    0x83,
2853
    0xbd,
2854
    0x6c,
2855
    0x8e,
2856
    0x93,
2857
    0x48,
2858
    0xfb,
2859
    0xfb,
2860
    0xf7,
2861
    0x2c,
2862
    0xc6,
2863
    0x58,
2864
    0x7d,
2865
    0x60,
2866
    0xc3,
2867
    0x6c,
2868
    0x8e,
2869
    0x57,
2870
    0x7f,
2871
    0x09,
2872
    0x84,
2873
    0xc2,
2874
    0x89,
2875
    0xc9,
2876
    0x38,
2877
    0x5a,
2878
    0x09,
2879
    0x86,
2880
    0x49,
2881
    0xde,
2882
    0x21,
2883
    0xbc,
2884
    0xa2,
2885
    0x7a,
2886
    0x7e,
2887
    0xa2,
2888
    0x29,
2889
    0x71,
2890
    0x6b,
2891
    0xa6,
2892
    0xe9,
2893
    0xb2,
2894
    0x79,
2895
    0x71,
2896
    0x0f,
2897
    0x38,
2898
    0xfa,
2899
    0xa5,
2900
    0xff,
2901
    0xae,
2902
    0x57,
2903
    0x41,
2904
    0x55,
2905
    0xce,
2906
    0x4e,
2907
    0xfb,
2908
    0x4f,
2909
    0x74,
2910
    0x36,
2911
    0x95,
2912
    0xe2,
2913
    0x91,
2914
    0x1b,
2915
    0x1d,
2916
    0x06,
2917
    0xd5,
2918
    0xe2,
2919
    0x90,
2920
    0xcb,
2921
    0xcd,
2922
    0x86,
2923
    0xf5,
2924
    0x6d,
2925
    0x0e,
2926
    0xdf,
2927
    0xcd,
2928
    0x21,
2929
    0x6a,
2930
    0xe2,
2931
    0x24,
2932
    0x27,
2933
    0x05,
2934
    0x5e,
2935
    0x68,
2936
    0x35,
2937
    0xfd,
2938
    0x29,
2939
    0xee,
2940
    0xf7,
2941
    0x9e,
2942
    0x0d,
2943
    0x90,
2944
    0x77,
2945
    0x1f,
2946
    0xea,
2947
    0xce,
2948
    0xbe,
2949
    0x12,
2950
    0xf2,
2951
    0x0e,
2952
    0x95,
2953
    0xb3,
2954
    0x4f,
2955
    0x0f,
2956
    0x78,
2957
    0xb7,
2958
    0x37,
2959
    0xa9,
2960
    0x61,
2961
    0x8b,
2962
    0x26,
2963
    0xfa,
2964
    0x7d,
2965
    0xbc,
2966
    0x98,
2967
    0x74,
2968
    0xf2,
2969
    0x72,
2970
    0xc4,
2971
    0x2b,
2972
    0xdb,
2973
    0x56,
2974
    0x3e,
2975
    0xaf,
2976
    0xa1,
2977
    0x6b,
2978
    0x4f,
2979
    0xb6,
2980
    0x8c,
2981
    0x3b,
2982
    0xb1,
2983
    0xe7,
2984
    0x8e,
2985
    0xaa,
2986
    0x81,
2987
    0xa0,
2988
    0x02,
2989
    0x43,
2990
    0xfa,
2991
    0xad,
2992
    0xd2,
2993
    0xbf,
2994
    0x18,
2995
    0xe6,
2996
    0x3d,
2997
    0x38,
2998
    0x9a,
2999
    0xe4,
3000
    0x43,
3001
    0x77,
3002
    0xda,
3003
    0x18,
3004
    0xc5,
3005
    0x76,
3006
    0xb5,
3007
    0x0f,
3008
    0x00,
3009
    0x96,
3010
    0xcf,
3011
    0x34,
3012
    0x19,
3013
    0x54,
3014
    0x83,
3015
    0xb0,
3016
    0x05,
3017
    0x48,
3018
    0xc0,
3019
    0x98,
3020
    0x62,
3021
    0x36,
3022
    0xe3,
3023
    0xbc,
3024
    0x7c,
3025
    0xb8,
3026
    0xd6,
3027
    0x80,
3028
    0x1c,
3029
    0x04,
3030
    0x94,
3031
    0xcc,
3032
    0xd1,
3033
    0x99,
3034
    0xe5,
3035
    0xc5,
3036
    0xbd,
3037
    0x0d,
3038
    0x0e,
3039
    0xdc,
3040
    0x9e,
3041
    0xb8,
3042
    0xa0,
3043
    0x00,
3044
    0x1e,
3045
    0x15,
3046
    0x27,
3047
    0x67,
3048
    0x54,
3049
    0xfc,
3050
    0xc6,
3051
    0x85,
3052
    0x66,
3053
    0x05,
3054
    0x41,
3055
    0x48,
3056
    0xe6,
3057
    0xe7,
3058
    0x64,
3059
    0xbe,
3060
    0xe7,
3061
    0xc7,
3062
    0x64,
3063
    0xda,
3064
    0xad,
3065
    0x3f,
3066
    0xc4,
3067
    0x52,
3068
    0x35,
3069
    0xa6,
3070
    0xda,
3071
    0xd4,
3072
    0x28,
3073
    0xfa,
3074
    0x20,
3075
    0xc1,
3076
    0x70,
3077
    0xe3,
3078
    0x45,
3079
    0x00,
3080
    0x3f,
3081
    0x2f,
3082
    0x32,
3083
    0xaf,
3084
    0xb5,
3085
    0x7f,
3086
    0xff,
3087
    0xff,
3088
    0xff,
3089
    0xff,
3090
    0xff,
3091
    0xff,
3092
    0xff,
3093
};
3094
3095
/* q=(p-1)/2 for prime prime_ike_6144 */
3096
static const unsigned char subprime_ike_6144_data[] = {
3097
    0x7f,
3098
    0xff,
3099
    0xff,
3100
    0xff,
3101
    0xff,
3102
    0xff,
3103
    0xff,
3104
    0xff,
3105
    0xe4,
3106
    0x87,
3107
    0xed,
3108
    0x51,
3109
    0x10,
3110
    0xb4,
3111
    0x61,
3112
    0x1a,
3113
    0x62,
3114
    0x63,
3115
    0x31,
3116
    0x45,
3117
    0xc0,
3118
    0x6e,
3119
    0x0e,
3120
    0x68,
3121
    0x94,
3122
    0x81,
3123
    0x27,
3124
    0x04,
3125
    0x45,
3126
    0x33,
3127
    0xe6,
3128
    0x3a,
3129
    0x01,
3130
    0x05,
3131
    0xdf,
3132
    0x53,
3133
    0x1d,
3134
    0x89,
3135
    0xcd,
3136
    0x91,
3137
    0x28,
3138
    0xa5,
3139
    0x04,
3140
    0x3c,
3141
    0xc7,
3142
    0x1a,
3143
    0x02,
3144
    0x6e,
3145
    0xf7,
3146
    0xca,
3147
    0x8c,
3148
    0xd9,
3149
    0xe6,
3150
    0x9d,
3151
    0x21,
3152
    0x8d,
3153
    0x98,
3154
    0x15,
3155
    0x85,
3156
    0x36,
3157
    0xf9,
3158
    0x2f,
3159
    0x8a,
3160
    0x1b,
3161
    0xa7,
3162
    0xf0,
3163
    0x9a,
3164
    0xb6,
3165
    0xb6,
3166
    0xa8,
3167
    0xe1,
3168
    0x22,
3169
    0xf2,
3170
    0x42,
3171
    0xda,
3172
    0xbb,
3173
    0x31,
3174
    0x2f,
3175
    0x3f,
3176
    0x63,
3177
    0x7a,
3178
    0x26,
3179
    0x21,
3180
    0x74,
3181
    0xd3,
3182
    0x1b,
3183
    0xf6,
3184
    0xb5,
3185
    0x85,
3186
    0xff,
3187
    0xae,
3188
    0x5b,
3189
    0x7a,
3190
    0x03,
3191
    0x5b,
3192
    0xf6,
3193
    0xf7,
3194
    0x1c,
3195
    0x35,
3196
    0xfd,
3197
    0xad,
3198
    0x44,
3199
    0xcf,
3200
    0xd2,
3201
    0xd7,
3202
    0x4f,
3203
    0x92,
3204
    0x08,
3205
    0xbe,
3206
    0x25,
3207
    0x8f,
3208
    0xf3,
3209
    0x24,
3210
    0x94,
3211
    0x33,
3212
    0x28,
3213
    0xf6,
3214
    0x72,
3215
    0x2d,
3216
    0x9e,
3217
    0xe1,
3218
    0x00,
3219
    0x3e,
3220
    0x5c,
3221
    0x50,
3222
    0xb1,
3223
    0xdf,
3224
    0x82,
3225
    0xcc,
3226
    0x6d,
3227
    0x24,
3228
    0x1b,
3229
    0x0e,
3230
    0x2a,
3231
    0xe9,
3232
    0xcd,
3233
    0x34,
3234
    0x8b,
3235
    0x1f,
3236
    0xd4,
3237
    0x7e,
3238
    0x92,
3239
    0x67,
3240
    0xaf,
3241
    0xc1,
3242
    0xb2,
3243
    0xae,
3244
    0x91,
3245
    0xee,
3246
    0x51,
3247
    0xd6,
3248
    0xcb,
3249
    0x0e,
3250
    0x31,
3251
    0x79,
3252
    0xab,
3253
    0x10,
3254
    0x42,
3255
    0xa9,
3256
    0x5d,
3257
    0xcf,
3258
    0x6a,
3259
    0x94,
3260
    0x83,
3261
    0xb8,
3262
    0x4b,
3263
    0x4b,
3264
    0x36,
3265
    0xb3,
3266
    0x86,
3267
    0x1a,
3268
    0xa7,
3269
    0x25,
3270
    0x5e,
3271
    0x4c,
3272
    0x02,
3273
    0x78,
3274
    0xba,
3275
    0x36,
3276
    0x04,
3277
    0x65,
3278
    0x0c,
3279
    0x10,
3280
    0xbe,
3281
    0x19,
3282
    0x48,
3283
    0x2f,
3284
    0x23,
3285
    0x17,
3286
    0x1b,
3287
    0x67,
3288
    0x1d,
3289
    0xf1,
3290
    0xcf,
3291
    0x3b,
3292
    0x96,
3293
    0x0c,
3294
    0x07,
3295
    0x43,
3296
    0x01,
3297
    0xcd,
3298
    0x93,
3299
    0xc1,
3300
    0xd1,
3301
    0x76,
3302
    0x03,
3303
    0xd1,
3304
    0x47,
3305
    0xda,
3306
    0xe2,
3307
    0xae,
3308
    0xf8,
3309
    0x37,
3310
    0xa6,
3311
    0x29,
3312
    0x64,
3313
    0xef,
3314
    0x15,
3315
    0xe5,
3316
    0xfb,
3317
    0x4a,
3318
    0xac,
3319
    0x0b,
3320
    0x8c,
3321
    0x1c,
3322
    0xca,
3323
    0xa4,
3324
    0xbe,
3325
    0x75,
3326
    0x4a,
3327
    0xb5,
3328
    0x72,
3329
    0x8a,
3330
    0xe9,
3331
    0x13,
3332
    0x0c,
3333
    0x4c,
3334
    0x7d,
3335
    0x02,
3336
    0x88,
3337
    0x0a,
3338
    0xb9,
3339
    0x47,
3340
    0x2d,
3341
    0x45,
3342
    0x55,
3343
    0x62,
3344
    0x16,
3345
    0xd6,
3346
    0x99,
3347
    0x8b,
3348
    0x86,
3349
    0x82,
3350
    0x28,
3351
    0x3d,
3352
    0x19,
3353
    0xd4,
3354
    0x2a,
3355
    0x90,
3356
    0xd5,
3357
    0xef,
3358
    0x8e,
3359
    0x5d,
3360
    0x32,
3361
    0x76,
3362
    0x7d,
3363
    0xc2,
3364
    0x82,
3365
    0x2c,
3366
    0x6d,
3367
    0xf7,
3368
    0x85,
3369
    0x45,
3370
    0x75,
3371
    0x38,
3372
    0xab,
3373
    0xae,
3374
    0x83,
3375
    0x06,
3376
    0x3e,
3377
    0xd9,
3378
    0xcb,
3379
    0x87,
3380
    0xc2,
3381
    0xd3,
3382
    0x70,
3383
    0xf2,
3384
    0x63,
3385
    0xd5,
3386
    0xfa,
3387
    0xd7,
3388
    0x46,
3389
    0x6d,
3390
    0x84,
3391
    0x99,
3392
    0xeb,
3393
    0x8f,
3394
    0x46,
3395
    0x4a,
3396
    0x70,
3397
    0x25,
3398
    0x12,
3399
    0xb0,
3400
    0xce,
3401
    0xe7,
3402
    0x71,
3403
    0xe9,
3404
    0x13,
3405
    0x0d,
3406
    0x69,
3407
    0x77,
3408
    0x35,
3409
    0xf8,
3410
    0x97,
3411
    0xfd,
3412
    0x03,
3413
    0x6c,
3414
    0xc5,
3415
    0x04,
3416
    0x32,
3417
    0x6c,
3418
    0x3b,
3419
    0x01,
3420
    0x39,
3421
    0x9f,
3422
    0x64,
3423
    0x35,
3424
    0x32,
3425
    0x29,
3426
    0x0f,
3427
    0x95,
3428
    0x8c,
3429
    0x0b,
3430
    0xbd,
3431
    0x90,
3432
    0x06,
3433
    0x5d,
3434
    0xf0,
3435
    0x8b,
3436
    0xab,
3437
    0xbd,
3438
    0x30,
3439
    0xae,
3440
    0xb6,
3441
    0x3b,
3442
    0x84,
3443
    0xc4,
3444
    0x60,
3445
    0x5d,
3446
    0x6c,
3447
    0xa3,
3448
    0x71,
3449
    0x04,
3450
    0x71,
3451
    0x27,
3452
    0xd0,
3453
    0x3a,
3454
    0x72,
3455
    0xd5,
3456
    0x98,
3457
    0xa1,
3458
    0xed,
3459
    0xad,
3460
    0xfe,
3461
    0x70,
3462
    0x7e,
3463
    0x88,
3464
    0x47,
3465
    0x25,
3466
    0xc1,
3467
    0x68,
3468
    0x90,
3469
    0x54,
3470
    0x90,
3471
    0x84,
3472
    0x00,
3473
    0x8d,
3474
    0x39,
3475
    0x1e,
3476
    0x09,
3477
    0x53,
3478
    0xc3,
3479
    0xf3,
3480
    0x6b,
3481
    0xc4,
3482
    0x38,
3483
    0xcd,
3484
    0x08,
3485
    0x5e,
3486
    0xdd,
3487
    0x2d,
3488
    0x93,
3489
    0x4c,
3490
    0xe1,
3491
    0x93,
3492
    0x8c,
3493
    0x35,
3494
    0x7a,
3495
    0x71,
3496
    0x1e,
3497
    0x0d,
3498
    0x4a,
3499
    0x34,
3500
    0x1a,
3501
    0x5b,
3502
    0x0a,
3503
    0x85,
3504
    0xed,
3505
    0x12,
3506
    0xc1,
3507
    0xf4,
3508
    0xe5,
3509
    0x15,
3510
    0x6a,
3511
    0x26,
3512
    0x74,
3513
    0x6d,
3514
    0xdd,
3515
    0xe1,
3516
    0x6d,
3517
    0x82,
3518
    0x6f,
3519
    0x47,
3520
    0x7c,
3521
    0x97,
3522
    0x47,
3523
    0x7e,
3524
    0x0a,
3525
    0x0f,
3526
    0xdf,
3527
    0x65,
3528
    0x53,
3529
    0x14,
3530
    0x3e,
3531
    0x2c,
3532
    0xa3,
3533
    0xa7,
3534
    0x35,
3535
    0xe0,
3536
    0x2e,
3537
    0xcc,
3538
    0xd9,
3539
    0x4b,
3540
    0x27,
3541
    0xd0,
3542
    0x48,
3543
    0x61,
3544
    0xd1,
3545
    0x11,
3546
    0x9d,
3547
    0xd0,
3548
    0xc3,
3549
    0x28,
3550
    0xad,
3551
    0xf3,
3552
    0xf6,
3553
    0x8f,
3554
    0xb0,
3555
    0x94,
3556
    0xb8,
3557
    0x67,
3558
    0x71,
3559
    0x6b,
3560
    0xd7,
3561
    0xdc,
3562
    0x0d,
3563
    0xee,
3564
    0xbb,
3565
    0x10,
3566
    0xb8,
3567
    0x24,
3568
    0x0e,
3569
    0x68,
3570
    0x03,
3571
    0x48,
3572
    0x93,
3573
    0xea,
3574
    0xd8,
3575
    0x2d,
3576
    0x54,
3577
    0xc9,
3578
    0xda,
3579
    0x75,
3580
    0x4c,
3581
    0x46,
3582
    0xc7,
3583
    0xee,
3584
    0xe0,
3585
    0xc3,
3586
    0x7f,
3587
    0xdb,
3588
    0xee,
3589
    0x48,
3590
    0x53,
3591
    0x60,
3592
    0x47,
3593
    0xa6,
3594
    0xfa,
3595
    0x1a,
3596
    0xe4,
3597
    0x9a,
3598
    0x01,
3599
    0x42,
3600
    0x49,
3601
    0x1b,
3602
    0x61,
3603
    0xfd,
3604
    0x5a,
3605
    0x69,
3606
    0x3e,
3607
    0x38,
3608
    0x13,
3609
    0x60,
3610
    0xea,
3611
    0x6e,
3612
    0x59,
3613
    0x30,
3614
    0x13,
3615
    0x23,
3616
    0x6f,
3617
    0x64,
3618
    0xba,
3619
    0x8f,
3620
    0x3b,
3621
    0x1e,
3622
    0xdd,
3623
    0x1b,
3624
    0xde,
3625
    0xfc,
3626
    0x7f,
3627
    0xca,
3628
    0x03,
3629
    0x56,
3630
    0xcf,
3631
    0x29,
3632
    0x87,
3633
    0x72,
3634
    0xed,
3635
    0x9c,
3636
    0x17,
3637
    0xa0,
3638
    0x98,
3639
    0x00,
3640
    0xd7,
3641
    0x58,
3642
    0x35,
3643
    0x29,
3644
    0xf6,
3645
    0xc8,
3646
    0x13,
3647
    0xec,
3648
    0x18,
3649
    0x8b,
3650
    0xcb,
3651
    0x93,
3652
    0xd8,
3653
    0x43,
3654
    0x2d,
3655
    0x44,
3656
    0x8c,
3657
    0x6d,
3658
    0x1f,
3659
    0x6d,
3660
    0xf5,
3661
    0xe7,
3662
    0xcd,
3663
    0x8a,
3664
    0x76,
3665
    0xa2,
3666
    0x67,
3667
    0x36,
3668
    0x5d,
3669
    0x67,
3670
    0x6a,
3671
    0x5d,
3672
    0x8d,
3673
    0xed,
3674
    0xbf,
3675
    0x8a,
3676
    0x23,
3677
    0xf3,
3678
    0x66,
3679
    0x12,
3680
    0xa5,
3681
    0x99,
3682
    0x90,
3683
    0x28,
3684
    0xa8,
3685
    0x95,
3686
    0xeb,
3687
    0xd7,
3688
    0xa1,
3689
    0x37,
3690
    0xdc,
3691
    0x7a,
3692
    0x00,
3693
    0x9b,
3694
    0xc6,
3695
    0x69,
3696
    0x5f,
3697
    0xac,
3698
    0xc1,
3699
    0xe5,
3700
    0x00,
3701
    0xe3,
3702
    0x25,
3703
    0xc9,
3704
    0x76,
3705
    0x78,
3706
    0x19,
3707
    0x75,
3708
    0x0a,
3709
    0xe8,
3710
    0xb9,
3711
    0x0e,
3712
    0x81,
3713
    0xfa,
3714
    0x41,
3715
    0x6b,
3716
    0xe7,
3717
    0x37,
3718
    0x3a,
3719
    0x7f,
3720
    0x7b,
3721
    0x6a,
3722
    0xaf,
3723
    0x38,
3724
    0x17,
3725
    0xa3,
3726
    0x4c,
3727
    0x06,
3728
    0x41,
3729
    0x5a,
3730
    0xd4,
3731
    0x20,
3732
    0x18,
3733
    0xc8,
3734
    0x05,
3735
    0x8e,
3736
    0x4f,
3737
    0x2c,
3738
    0xf3,
3739
    0xe4,
3740
    0xbf,
3741
    0xdf,
3742
    0x63,
3743
    0xf4,
3744
    0x79,
3745
    0x91,
3746
    0xd4,
3747
    0xbd,
3748
    0x3f,
3749
    0x1b,
3750
    0x66,
3751
    0x44,
3752
    0x5f,
3753
    0x07,
3754
    0x8e,
3755
    0xa2,
3756
    0xdb,
3757
    0xff,
3758
    0xac,
3759
    0x2d,
3760
    0x62,
3761
    0xa5,
3762
    0xea,
3763
    0x03,
3764
    0xd9,
3765
    0x15,
3766
    0xa0,
3767
    0xaa,
3768
    0x55,
3769
    0x66,
3770
    0x47,
3771
    0xb6,
3772
    0xbf,
3773
    0x5f,
3774
    0xa4,
3775
    0x70,
3776
    0xec,
3777
    0x0a,
3778
    0x66,
3779
    0x2f,
3780
    0x69,
3781
    0x07,
3782
    0xc0,
3783
    0x1b,
3784
    0xf0,
3785
    0x53,
3786
    0xcb,
3787
    0x8a,
3788
    0xf7,
3789
    0x79,
3790
    0x4d,
3791
    0xf1,
3792
    0x94,
3793
    0x03,
3794
    0x50,
3795
    0xea,
3796
    0xc5,
3797
    0xdb,
3798
    0xe2,
3799
    0xed,
3800
    0x3b,
3801
    0x7a,
3802
    0xa8,
3803
    0x55,
3804
    0x1e,
3805
    0xc5,
3806
    0x0f,
3807
    0xdf,
3808
    0xf8,
3809
    0x75,
3810
    0x8c,
3811
    0xe6,
3812
    0x58,
3813
    0xd1,
3814
    0x89,
3815
    0xea,
3816
    0xae,
3817
    0x6d,
3818
    0x2b,
3819
    0x64,
3820
    0xf6,
3821
    0x17,
3822
    0x79,
3823
    0x4b,
3824
    0x19,
3825
    0x1c,
3826
    0x3f,
3827
    0xf4,
3828
    0x6b,
3829
    0xb7,
3830
    0x1e,
3831
    0x02,
3832
    0x34,
3833
    0x02,
3834
    0x1f,
3835
    0x47,
3836
    0xb3,
3837
    0x1f,
3838
    0xa4,
3839
    0x30,
3840
    0x77,
3841
    0x09,
3842
    0x5f,
3843
    0x96,
3844
    0xad,
3845
    0x85,
3846
    0xba,
3847
    0x3a,
3848
    0x6b,
3849
    0x73,
3850
    0x4a,
3851
    0x7c,
3852
    0x8f,
3853
    0x36,
3854
    0xe6,
3855
    0x20,
3856
    0x12,
3857
    0x7f,
3858
    0xff,
3859
    0xff,
3860
    0xff,
3861
    0xff,
3862
    0xff,
3863
    0xff,
3864
    0xff,
3865
};
3866
3867
/* q=(p-1)/2 for prime prime_tls_6144 */
3868
static const unsigned char subprime_tls_6144_data[] = {
3869
    0x7f,
3870
    0xff,
3871
    0xff,
3872
    0xff,
3873
    0xff,
3874
    0xff,
3875
    0xff,
3876
    0xff,
3877
    0xd6,
3878
    0xfc,
3879
    0x2a,
3880
    0x2c,
3881
    0x51,
3882
    0x5d,
3883
    0xa5,
3884
    0x4d,
3885
    0x57,
3886
    0xee,
3887
    0x2b,
3888
    0x10,
3889
    0x13,
3890
    0x9e,
3891
    0x9e,
3892
    0x78,
3893
    0xec,
3894
    0x5c,
3895
    0xe2,
3896
    0xc1,
3897
    0xe7,
3898
    0x16,
3899
    0x9b,
3900
    0x4a,
3901
    0xd4,
3902
    0xf0,
3903
    0x9b,
3904
    0x20,
3905
    0x8a,
3906
    0x32,
3907
    0x19,
3908
    0xfd,
3909
    0xe6,
3910
    0x49,
3911
    0xce,
3912
    0xe7,
3913
    0x12,
3914
    0x4d,
3915
    0x9f,
3916
    0x7c,
3917
    0xbe,
3918
    0x97,
3919
    0xf1,
3920
    0xb1,
3921
    0xb1,
3922
    0x86,
3923
    0x3a,
3924
    0xec,
3925
    0x7b,
3926
    0x40,
3927
    0xd9,
3928
    0x01,
3929
    0x57,
3930
    0x62,
3931
    0x30,
3932
    0xbd,
3933
    0x69,
3934
    0xef,
3935
    0x8f,
3936
    0x6a,
3937
    0xea,
3938
    0xfe,
3939
    0xb2,
3940
    0xb0,
3941
    0x92,
3942
    0x19,
3943
    0xfa,
3944
    0x8f,
3945
    0xaf,
3946
    0x83,
3947
    0x37,
3948
    0x68,
3949
    0x42,
3950
    0xb1,
3951
    0xb2,
3952
    0xaa,
3953
    0x9e,
3954
    0xf6,
3955
    0x8d,
3956
    0x79,
3957
    0xda,
3958
    0xab,
3959
    0x89,
3960
    0xaf,
3961
    0x3f,
3962
    0xab,
3963
    0xe4,
3964
    0x9a,
3965
    0xcc,
3966
    0x27,
3967
    0x86,
3968
    0x38,
3969
    0x70,
3970
    0x73,
3971
    0x45,
3972
    0xbb,
3973
    0xf1,
3974
    0x53,
3975
    0x44,
3976
    0xed,
3977
    0x79,
3978
    0xf7,
3979
    0xf4,
3980
    0x39,
3981
    0x0e,
3982
    0xf8,
3983
    0xac,
3984
    0x50,
3985
    0x9b,
3986
    0x56,
3987
    0xf3,
3988
    0x9a,
3989
    0x98,
3990
    0x56,
3991
    0x65,
3992
    0x27,
3993
    0xa4,
3994
    0x1d,
3995
    0x3c,
3996
    0xbd,
3997
    0x5e,
3998
    0x05,
3999
    0x58,
4000
    0xc1,
4001
    0x59,
4002
    0x92,
4003
    0x7d,
4004
    0xb0,
4005
    0xe8,
4006
    0x84,
4007
    0x54,
4008
    0xa5,
4009
    0xd9,
4010
    0x64,
4011
    0x71,
4012
    0xfd,
4013
    0xdc,
4014
    0xb5,
4015
    0x6d,
4016
    0x5b,
4017
    0xb0,
4018
    0x6b,
4019
    0xfa,
4020
    0x34,
4021
    0x0e,
4022
    0xa7,
4023
    0xa1,
4024
    0x51,
4025
    0xef,
4026
    0x1c,
4027
    0xa6,
4028
    0xfa,
4029
    0x57,
4030
    0x2b,
4031
    0x76,
4032
    0xf3,
4033
    0xb1,
4034
    0xb9,
4035
    0x5d,
4036
    0x8c,
4037
    0x85,
4038
    0x83,
4039
    0xd3,
4040
    0xe4,
4041
    0x77,
4042
    0x05,
4043
    0x36,
4044
    0xb8,
4045
    0x4f,
4046
    0x01,
4047
    0x7e,
4048
    0x70,
4049
    0xe6,
4050
    0xfb,
4051
    0xf1,
4052
    0x76,
4053
    0x60,
4054
    0x1a,
4055
    0x02,
4056
    0x66,
4057
    0x94,
4058
    0x1a,
4059
    0x17,
4060
    0xb0,
4061
    0xc8,
4062
    0xb9,
4063
    0x7f,
4064
    0x4e,
4065
    0x74,
4066
    0xc2,
4067
    0xc1,
4068
    0xff,
4069
    0xc7,
4070
    0x27,
4071
    0x89,
4072
    0x19,
4073
    0x77,
4074
    0x79,
4075
    0x40,
4076
    0xc1,
4077
    0xe1,
4078
    0xff,
4079
    0x1d,
4080
    0x8d,
4081
    0xa6,
4082
    0x37,
4083
    0xd6,
4084
    0xb9,
4085
    0x9d,
4086
    0xda,
4087
    0xfe,
4088
    0x5e,
4089
    0x17,
4090
    0x61,
4091
    0x10,
4092
    0x02,
4093
    0xe2,
4094
    0xc7,
4095
    0x78,
4096
    0xc1,
4097
    0xbe,
4098
    0x8b,
4099
    0x41,
4100
    0xd9,
4101
    0x63,
4102
    0x79,
4103
    0xa5,
4104
    0x13,
4105
    0x60,
4106
    0xd9,
4107
    0x77,
4108
    0xfd,
4109
    0x44,
4110
    0x35,
4111
    0xa1,
4112
    0x1c,
4113
    0x30,
4114
    0x8f,
4115
    0xe7,
4116
    0xee,
4117
    0x6f,
4118
    0x1a,
4119
    0xad,
4120
    0x9d,
4121
    0xb2,
4122
    0x8c,
4123
    0x81,
4124
    0xad,
4125
    0xde,
4126
    0x1a,
4127
    0x7a,
4128
    0x6f,
4129
    0x7c,
4130
    0xce,
4131
    0x01,
4132
    0x1c,
4133
    0x30,
4134
    0xda,
4135
    0x37,
4136
    0xe4,
4137
    0xeb,
4138
    0x73,
4139
    0x64,
4140
    0x83,
4141
    0xbd,
4142
    0x6c,
4143
    0x8e,
4144
    0x93,
4145
    0x48,
4146
    0xfb,
4147
    0xfb,
4148
    0xf7,
4149
    0x2c,
4150
    0xc6,
4151
    0x58,
4152
    0x7d,
4153
    0x60,
4154
    0xc3,
4155
    0x6c,
4156
    0x8e,
4157
    0x57,
4158
    0x7f,
4159
    0x09,
4160
    0x84,
4161
    0xc2,
4162
    0x89,
4163
    0xc9,
4164
    0x38,
4165
    0x5a,
4166
    0x09,
4167
    0x86,
4168
    0x49,
4169
    0xde,
4170
    0x21,
4171
    0xbc,
4172
    0xa2,
4173
    0x7a,
4174
    0x7e,
4175
    0xa2,
4176
    0x29,
4177
    0x71,
4178
    0x6b,
4179
    0xa6,
4180
    0xe9,
4181
    0xb2,
4182
    0x79,
4183
    0x71,
4184
    0x0f,
4185
    0x38,
4186
    0xfa,
4187
    0xa5,
4188
    0xff,
4189
    0xae,
4190
    0x57,
4191
    0x41,
4192
    0x55,
4193
    0xce,
4194
    0x4e,
4195
    0xfb,
4196
    0x4f,
4197
    0x74,
4198
    0x36,
4199
    0x95,
4200
    0xe2,
4201
    0x91,
4202
    0x1b,
4203
    0x1d,
4204
    0x06,
4205
    0xd5,
4206
    0xe2,
4207
    0x90,
4208
    0xcb,
4209
    0xcd,
4210
    0x86,
4211
    0xf5,
4212
    0x6d,
4213
    0x0e,
4214
    0xdf,
4215
    0xcd,
4216
    0x21,
4217
    0x6a,
4218
    0xe2,
4219
    0x24,
4220
    0x27,
4221
    0x05,
4222
    0x5e,
4223
    0x68,
4224
    0x35,
4225
    0xfd,
4226
    0x29,
4227
    0xee,
4228
    0xf7,
4229
    0x9e,
4230
    0x0d,
4231
    0x90,
4232
    0x77,
4233
    0x1f,
4234
    0xea,
4235
    0xce,
4236
    0xbe,
4237
    0x12,
4238
    0xf2,
4239
    0x0e,
4240
    0x95,
4241
    0xb3,
4242
    0x4f,
4243
    0x0f,
4244
    0x78,
4245
    0xb7,
4246
    0x37,
4247
    0xa9,
4248
    0x61,
4249
    0x8b,
4250
    0x26,
4251
    0xfa,
4252
    0x7d,
4253
    0xbc,
4254
    0x98,
4255
    0x74,
4256
    0xf2,
4257
    0x72,
4258
    0xc4,
4259
    0x2b,
4260
    0xdb,
4261
    0x56,
4262
    0x3e,
4263
    0xaf,
4264
    0xa1,
4265
    0x6b,
4266
    0x4f,
4267
    0xb6,
4268
    0x8c,
4269
    0x3b,
4270
    0xb1,
4271
    0xe7,
4272
    0x8e,
4273
    0xaa,
4274
    0x81,
4275
    0xa0,
4276
    0x02,
4277
    0x43,
4278
    0xfa,
4279
    0xad,
4280
    0xd2,
4281
    0xbf,
4282
    0x18,
4283
    0xe6,
4284
    0x3d,
4285
    0x38,
4286
    0x9a,
4287
    0xe4,
4288
    0x43,
4289
    0x77,
4290
    0xda,
4291
    0x18,
4292
    0xc5,
4293
    0x76,
4294
    0xb5,
4295
    0x0f,
4296
    0x00,
4297
    0x96,
4298
    0xcf,
4299
    0x34,
4300
    0x19,
4301
    0x54,
4302
    0x83,
4303
    0xb0,
4304
    0x05,
4305
    0x48,
4306
    0xc0,
4307
    0x98,
4308
    0x62,
4309
    0x36,
4310
    0xe3,
4311
    0xbc,
4312
    0x7c,
4313
    0xb8,
4314
    0xd6,
4315
    0x80,
4316
    0x1c,
4317
    0x04,
4318
    0x94,
4319
    0xcc,
4320
    0xd1,
4321
    0x99,
4322
    0xe5,
4323
    0xc5,
4324
    0xbd,
4325
    0x0d,
4326
    0x0e,
4327
    0xdc,
4328
    0x9e,
4329
    0xb8,
4330
    0xa0,
4331
    0x00,
4332
    0x1e,
4333
    0x15,
4334
    0x27,
4335
    0x67,
4336
    0x54,
4337
    0xfc,
4338
    0xc6,
4339
    0x85,
4340
    0x66,
4341
    0x05,
4342
    0x41,
4343
    0x48,
4344
    0xe6,
4345
    0xe7,
4346
    0x64,
4347
    0xbe,
4348
    0xe7,
4349
    0xc7,
4350
    0x64,
4351
    0xda,
4352
    0xad,
4353
    0x3f,
4354
    0xc4,
4355
    0x52,
4356
    0x35,
4357
    0xa6,
4358
    0xda,
4359
    0xd4,
4360
    0x28,
4361
    0xfa,
4362
    0x20,
4363
    0xc1,
4364
    0x70,
4365
    0xe3,
4366
    0x45,
4367
    0x00,
4368
    0x3f,
4369
    0x2f,
4370
    0x06,
4371
    0xec,
4372
    0x81,
4373
    0x05,
4374
    0xfe,
4375
    0xb2,
4376
    0x5b,
4377
    0x22,
4378
    0x81,
4379
    0xb6,
4380
    0x3d,
4381
    0x27,
4382
    0x33,
4383
    0xbe,
4384
    0x96,
4385
    0x1c,
4386
    0x29,
4387
    0x95,
4388
    0x1d,
4389
    0x11,
4390
    0xdd,
4391
    0x22,
4392
    0x21,
4393
    0x65,
4394
    0x7a,
4395
    0x9f,
4396
    0x53,
4397
    0x1d,
4398
    0xda,
4399
    0x2a,
4400
    0x19,
4401
    0x4d,
4402
    0xbb,
4403
    0x12,
4404
    0x64,
4405
    0x48,
4406
    0xbd,
4407
    0xee,
4408
    0xb2,
4409
    0x58,
4410
    0xe0,
4411
    0x7e,
4412
    0xa6,
4413
    0x59,
4414
    0xc7,
4415
    0x46,
4416
    0x19,
4417
    0xa6,
4418
    0x38,
4419
    0x0e,
4420
    0x1d,
4421
    0x66,
4422
    0xd6,
4423
    0x83,
4424
    0x2b,
4425
    0xfe,
4426
    0x67,
4427
    0xf6,
4428
    0x38,
4429
    0xcd,
4430
    0x8f,
4431
    0xae,
4432
    0x1f,
4433
    0x27,
4434
    0x23,
4435
    0x02,
4436
    0x0f,
4437
    0x9c,
4438
    0x40,
4439
    0xa3,
4440
    0xfd,
4441
    0xa6,
4442
    0x7e,
4443
    0xda,
4444
    0x3b,
4445
    0xd2,
4446
    0x92,
4447
    0x38,
4448
    0xfb,
4449
    0xd4,
4450
    0xd4,
4451
    0xb4,
4452
    0x88,
4453
    0x5c,
4454
    0x2a,
4455
    0x99,
4456
    0x17,
4457
    0x6d,
4458
    0xb1,
4459
    0xa0,
4460
    0x6c,
4461
    0x50,
4462
    0x07,
4463
    0x78,
4464
    0x49,
4465
    0x1a,
4466
    0x82,
4467
    0x88,
4468
    0xf1,
4469
    0x85,
4470
    0x5f,
4471
    0x60,
4472
    0xff,
4473
    0xfc,
4474
    0xf1,
4475
    0xd1,
4476
    0x37,
4477
    0x3f,
4478
    0xd9,
4479
    0x4f,
4480
    0xc6,
4481
    0x0c,
4482
    0x18,
4483
    0x11,
4484
    0xe1,
4485
    0xac,
4486
    0x3f,
4487
    0x1c,
4488
    0x6d,
4489
    0x00,
4490
    0x3b,
4491
    0xec,
4492
    0xda,
4493
    0x3b,
4494
    0x1f,
4495
    0x27,
4496
    0x25,
4497
    0xca,
4498
    0x59,
4499
    0x5d,
4500
    0xe0,
4501
    0xca,
4502
    0x63,
4503
    0x32,
4504
    0x8f,
4505
    0x3b,
4506
    0xe5,
4507
    0x7c,
4508
    0xc9,
4509
    0x77,
4510
    0x55,
4511
    0x60,
4512
    0x11,
4513
    0x95,
4514
    0x14,
4515
    0x0d,
4516
    0xfb,
4517
    0x59,
4518
    0xd3,
4519
    0x9c,
4520
    0xe0,
4521
    0x91,
4522
    0x30,
4523
    0x8b,
4524
    0x41,
4525
    0x05,
4526
    0x74,
4527
    0x6d,
4528
    0xac,
4529
    0x23,
4530
    0xd3,
4531
    0x3e,
4532
    0x5f,
4533
    0x7c,
4534
    0xe4,
4535
    0x84,
4536
    0x8d,
4537
    0xa3,
4538
    0x16,
4539
    0xa9,
4540
    0xc6,
4541
    0x6b,
4542
    0x95,
4543
    0x81,
4544
    0xba,
4545
    0x35,
4546
    0x73,
4547
    0xbf,
4548
    0xaf,
4549
    0x31,
4550
    0x14,
4551
    0x96,
4552
    0x18,
4553
    0x8a,
4554
    0xb1,
4555
    0x54,
4556
    0x23,
4557
    0x28,
4558
    0x2e,
4559
    0xe4,
4560
    0x16,
4561
    0xdc,
4562
    0x2a,
4563
    0x19,
4564
    0xc5,
4565
    0x72,
4566
    0x4f,
4567
    0xa9,
4568
    0x1a,
4569
    0xe4,
4570
    0xad,
4571
    0xc8,
4572
    0x8b,
4573
    0xc6,
4574
    0x67,
4575
    0x96,
4576
    0xea,
4577
    0xe5,
4578
    0x67,
4579
    0x7a,
4580
    0x01,
4581
    0xf6,
4582
    0x4e,
4583
    0x8c,
4584
    0x08,
4585
    0x63,
4586
    0x13,
4587
    0x95,
4588
    0x82,
4589
    0x2d,
4590
    0x9d,
4591
    0xb8,
4592
    0xfc,
4593
    0xee,
4594
    0x35,
4595
    0xc0,
4596
    0x6b,
4597
    0x1f,
4598
    0xee,
4599
    0xa5,
4600
    0x47,
4601
    0x4d,
4602
    0x6d,
4603
    0x8f,
4604
    0x34,
4605
    0xb1,
4606
    0x53,
4607
    0x4a,
4608
    0x93,
4609
    0x6a,
4610
    0x18,
4611
    0xb0,
4612
    0xe0,
4613
    0xd2,
4614
    0x0e,
4615
    0xab,
4616
    0x86,
4617
    0xbc,
4618
    0x9c,
4619
    0x6d,
4620
    0x6a,
4621
    0x52,
4622
    0x07,
4623
    0x19,
4624
    0x4e,
4625
    0x68,
4626
    0x72,
4627
    0x07,
4628
    0x32,
4629
    0xff,
4630
    0xff,
4631
    0xff,
4632
    0xff,
4633
    0xff,
4634
    0xff,
4635
    0xff,
4636
    0xff,
4637
};
4638
4639
/* q=(p-1)/2 for prime prime_ike_8192 */
4640
static const unsigned char subprime_ike_8192_data[] = {
4641
    0x7f,
4642
    0xff,
4643
    0xff,
4644
    0xff,
4645
    0xff,
4646
    0xff,
4647
    0xff,
4648
    0xff,
4649
    0xe4,
4650
    0x87,
4651
    0xed,
4652
    0x51,
4653
    0x10,
4654
    0xb4,
4655
    0x61,
4656
    0x1a,
4657
    0x62,
4658
    0x63,
4659
    0x31,
4660
    0x45,
4661
    0xc0,
4662
    0x6e,
4663
    0x0e,
4664
    0x68,
4665
    0x94,
4666
    0x81,
4667
    0x27,
4668
    0x04,
4669
    0x45,
4670
    0x33,
4671
    0xe6,
4672
    0x3a,
4673
    0x01,
4674
    0x05,
4675
    0xdf,
4676
    0x53,
4677
    0x1d,
4678
    0x89,
4679
    0xcd,
4680
    0x91,
4681
    0x28,
4682
    0xa5,
4683
    0x04,
4684
    0x3c,
4685
    0xc7,
4686
    0x1a,
4687
    0x02,
4688
    0x6e,
4689
    0xf7,
4690
    0xca,
4691
    0x8c,
4692
    0xd9,
4693
    0xe6,
4694
    0x9d,
4695
    0x21,
4696
    0x8d,
4697
    0x98,
4698
    0x15,
4699
    0x85,
4700
    0x36,
4701
    0xf9,
4702
    0x2f,
4703
    0x8a,
4704
    0x1b,
4705
    0xa7,
4706
    0xf0,
4707
    0x9a,
4708
    0xb6,
4709
    0xb6,
4710
    0xa8,
4711
    0xe1,
4712
    0x22,
4713
    0xf2,
4714
    0x42,
4715
    0xda,
4716
    0xbb,
4717
    0x31,
4718
    0x2f,
4719
    0x3f,
4720
    0x63,
4721
    0x7a,
4722
    0x26,
4723
    0x21,
4724
    0x74,
4725
    0xd3,
4726
    0x1b,
4727
    0xf6,
4728
    0xb5,
4729
    0x85,
4730
    0xff,
4731
    0xae,
4732
    0x5b,
4733
    0x7a,
4734
    0x03,
4735
    0x5b,
4736
    0xf6,
4737
    0xf7,
4738
    0x1c,
4739
    0x35,
4740
    0xfd,
4741
    0xad,
4742
    0x44,
4743
    0xcf,
4744
    0xd2,
4745
    0xd7,
4746
    0x4f,
4747
    0x92,
4748
    0x08,
4749
    0xbe,
4750
    0x25,
4751
    0x8f,
4752
    0xf3,
4753
    0x24,
4754
    0x94,
4755
    0x33,
4756
    0x28,
4757
    0xf6,
4758
    0x72,
4759
    0x2d,
4760
    0x9e,
4761
    0xe1,
4762
    0x00,
4763
    0x3e,
4764
    0x5c,
4765
    0x50,
4766
    0xb1,
4767
    0xdf,
4768
    0x82,
4769
    0xcc,
4770
    0x6d,
4771
    0x24,
4772
    0x1b,
4773
    0x0e,
4774
    0x2a,
4775
    0xe9,
4776
    0xcd,
4777
    0x34,
4778
    0x8b,
4779
    0x1f,
4780
    0xd4,
4781
    0x7e,
4782
    0x92,
4783
    0x67,
4784
    0xaf,
4785
    0xc1,
4786
    0xb2,
4787
    0xae,
4788
    0x91,
4789
    0xee,
4790
    0x51,
4791
    0xd6,
4792
    0xcb,
4793
    0x0e,
4794
    0x31,
4795
    0x79,
4796
    0xab,
4797
    0x10,
4798
    0x42,
4799
    0xa9,
4800
    0x5d,
4801
    0xcf,
4802
    0x6a,
4803
    0x94,
4804
    0x83,
4805
    0xb8,
4806
    0x4b,
4807
    0x4b,
4808
    0x36,
4809
    0xb3,
4810
    0x86,
4811
    0x1a,
4812
    0xa7,
4813
    0x25,
4814
    0x5e,
4815
    0x4c,
4816
    0x02,
4817
    0x78,
4818
    0xba,
4819
    0x36,
4820
    0x04,
4821
    0x65,
4822
    0x0c,
4823
    0x10,
4824
    0xbe,
4825
    0x19,
4826
    0x48,
4827
    0x2f,
4828
    0x23,
4829
    0x17,
4830
    0x1b,
4831
    0x67,
4832
    0x1d,
4833
    0xf1,
4834
    0xcf,
4835
    0x3b,
4836
    0x96,
4837
    0x0c,
4838
    0x07,
4839
    0x43,
4840
    0x01,
4841
    0xcd,
4842
    0x93,
4843
    0xc1,
4844
    0xd1,
4845
    0x76,
4846
    0x03,
4847
    0xd1,
4848
    0x47,
4849
    0xda,
4850
    0xe2,
4851
    0xae,
4852
    0xf8,
4853
    0x37,
4854
    0xa6,
4855
    0x29,
4856
    0x64,
4857
    0xef,
4858
    0x15,
4859
    0xe5,
4860
    0xfb,
4861
    0x4a,
4862
    0xac,
4863
    0x0b,
4864
    0x8c,
4865
    0x1c,
4866
    0xca,
4867
    0xa4,
4868
    0xbe,
4869
    0x75,
4870
    0x4a,
4871
    0xb5,
4872
    0x72,
4873
    0x8a,
4874
    0xe9,
4875
    0x13,
4876
    0x0c,
4877
    0x4c,
4878
    0x7d,
4879
    0x02,
4880
    0x88,
4881
    0x0a,
4882
    0xb9,
4883
    0x47,
4884
    0x2d,
4885
    0x45,
4886
    0x55,
4887
    0x62,
4888
    0x16,
4889
    0xd6,
4890
    0x99,
4891
    0x8b,
4892
    0x86,
4893
    0x82,
4894
    0x28,
4895
    0x3d,
4896
    0x19,
4897
    0xd4,
4898
    0x2a,
4899
    0x90,
4900
    0xd5,
4901
    0xef,
4902
    0x8e,
4903
    0x5d,
4904
    0x32,
4905
    0x76,
4906
    0x7d,
4907
    0xc2,
4908
    0x82,
4909
    0x2c,
4910
    0x6d,
4911
    0xf7,
4912
    0x85,
4913
    0x45,
4914
    0x75,
4915
    0x38,
4916
    0xab,
4917
    0xae,
4918
    0x83,
4919
    0x06,
4920
    0x3e,
4921
    0xd9,
4922
    0xcb,
4923
    0x87,
4924
    0xc2,
4925
    0xd3,
4926
    0x70,
4927
    0xf2,
4928
    0x63,
4929
    0xd5,
4930
    0xfa,
4931
    0xd7,
4932
    0x46,
4933
    0x6d,
4934
    0x84,
4935
    0x99,
4936
    0xeb,
4937
    0x8f,
4938
    0x46,
4939
    0x4a,
4940
    0x70,
4941
    0x25,
4942
    0x12,
4943
    0xb0,
4944
    0xce,
4945
    0xe7,
4946
    0x71,
4947
    0xe9,
4948
    0x13,
4949
    0x0d,
4950
    0x69,
4951
    0x77,
4952
    0x35,
4953
    0xf8,
4954
    0x97,
4955
    0xfd,
4956
    0x03,
4957
    0x6c,
4958
    0xc5,
4959
    0x04,
4960
    0x32,
4961
    0x6c,
4962
    0x3b,
4963
    0x01,
4964
    0x39,
4965
    0x9f,
4966
    0x64,
4967
    0x35,
4968
    0x32,
4969
    0x29,
4970
    0x0f,
4971
    0x95,
4972
    0x8c,
4973
    0x0b,
4974
    0xbd,
4975
    0x90,
4976
    0x06,
4977
    0x5d,
4978
    0xf0,
4979
    0x8b,
4980
    0xab,
4981
    0xbd,
4982
    0x30,
4983
    0xae,
4984
    0xb6,
4985
    0x3b,
4986
    0x84,
4987
    0xc4,
4988
    0x60,
4989
    0x5d,
4990
    0x6c,
4991
    0xa3,
4992
    0x71,
4993
    0x04,
4994
    0x71,
4995
    0x27,
4996
    0xd0,
4997
    0x3a,
4998
    0x72,
4999
    0xd5,
5000
    0x98,
5001
    0xa1,
5002
    0xed,
5003
    0xad,
5004
    0xfe,
5005
    0x70,
5006
    0x7e,
5007
    0x88,
5008
    0x47,
5009
    0x25,
5010
    0xc1,
5011
    0x68,
5012
    0x90,
5013
    0x54,
5014
    0x90,
5015
    0x84,
5016
    0x00,
5017
    0x8d,
5018
    0x39,
5019
    0x1e,
5020
    0x09,
5021
    0x53,
5022
    0xc3,
5023
    0xf3,
5024
    0x6b,
5025
    0xc4,
5026
    0x38,
5027
    0xcd,
5028
    0x08,
5029
    0x5e,
5030
    0xdd,
5031
    0x2d,
5032
    0x93,
5033
    0x4c,
5034
    0xe1,
5035
    0x93,
5036
    0x8c,
5037
    0x35,
5038
    0x7a,
5039
    0x71,
5040
    0x1e,
5041
    0x0d,
5042
    0x4a,
5043
    0x34,
5044
    0x1a,
5045
    0x5b,
5046
    0x0a,
5047
    0x85,
5048
    0xed,
5049
    0x12,
5050
    0xc1,
5051
    0xf4,
5052
    0xe5,
5053
    0x15,
5054
    0x6a,
5055
    0x26,
5056
    0x74,
5057
    0x6d,
5058
    0xdd,
5059
    0xe1,
5060
    0x6d,
5061
    0x82,
5062
    0x6f,
5063
    0x47,
5064
    0x7c,
5065
    0x97,
5066
    0x47,
5067
    0x7e,
5068
    0x0a,
5069
    0x0f,
5070
    0xdf,
5071
    0x65,
5072
    0x53,
5073
    0x14,
5074
    0x3e,
5075
    0x2c,
5076
    0xa3,
5077
    0xa7,
5078
    0x35,
5079
    0xe0,
5080
    0x2e,
5081
    0xcc,
5082
    0xd9,
5083
    0x4b,
5084
    0x27,
5085
    0xd0,
5086
    0x48,
5087
    0x61,
5088
    0xd1,
5089
    0x11,
5090
    0x9d,
5091
    0xd0,
5092
    0xc3,
5093
    0x28,
5094
    0xad,
5095
    0xf3,
5096
    0xf6,
5097
    0x8f,
5098
    0xb0,
5099
    0x94,
5100
    0xb8,
5101
    0x67,
5102
    0x71,
5103
    0x6b,
5104
    0xd7,
5105
    0xdc,
5106
    0x0d,
5107
    0xee,
5108
    0xbb,
5109
    0x10,
5110
    0xb8,
5111
    0x24,
5112
    0x0e,
5113
    0x68,
5114
    0x03,
5115
    0x48,
5116
    0x93,
5117
    0xea,
5118
    0xd8,
5119
    0x2d,
5120
    0x54,
5121
    0xc9,
5122
    0xda,
5123
    0x75,
5124
    0x4c,
5125
    0x46,
5126
    0xc7,
5127
    0xee,
5128
    0xe0,
5129
    0xc3,
5130
    0x7f,
5131
    0xdb,
5132
    0xee,
5133
    0x48,
5134
    0x53,
5135
    0x60,
5136
    0x47,
5137
    0xa6,
5138
    0xfa,
5139
    0x1a,
5140
    0xe4,
5141
    0x9a,
5142
    0x01,
5143
    0x42,
5144
    0x49,
5145
    0x1b,
5146
    0x61,
5147
    0xfd,
5148
    0x5a,
5149
    0x69,
5150
    0x3e,
5151
    0x38,
5152
    0x13,
5153
    0x60,
5154
    0xea,
5155
    0x6e,
5156
    0x59,
5157
    0x30,
5158
    0x13,
5159
    0x23,
5160
    0x6f,
5161
    0x64,
5162
    0xba,
5163
    0x8f,
5164
    0x3b,
5165
    0x1e,
5166
    0xdd,
5167
    0x1b,
5168
    0xde,
5169
    0xfc,
5170
    0x7f,
5171
    0xca,
5172
    0x03,
5173
    0x56,
5174
    0xcf,
5175
    0x29,
5176
    0x87,
5177
    0x72,
5178
    0xed,
5179
    0x9c,
5180
    0x17,
5181
    0xa0,
5182
    0x98,
5183
    0x00,
5184
    0xd7,
5185
    0x58,
5186
    0x35,
5187
    0x29,
5188
    0xf6,
5189
    0xc8,
5190
    0x13,
5191
    0xec,
5192
    0x18,
5193
    0x8b,
5194
    0xcb,
5195
    0x93,
5196
    0xd8,
5197
    0x43,
5198
    0x2d,
5199
    0x44,
5200
    0x8c,
5201
    0x6d,
5202
    0x1f,
5203
    0x6d,
5204
    0xf5,
5205
    0xe7,
5206
    0xcd,
5207
    0x8a,
5208
    0x76,
5209
    0xa2,
5210
    0x67,
5211
    0x36,
5212
    0x5d,
5213
    0x67,
5214
    0x6a,
5215
    0x5d,
5216
    0x8d,
5217
    0xed,
5218
    0xbf,
5219
    0x8a,
5220
    0x23,
5221
    0xf3,
5222
    0x66,
5223
    0x12,
5224
    0xa5,
5225
    0x99,
5226
    0x90,
5227
    0x28,
5228
    0xa8,
5229
    0x95,
5230
    0xeb,
5231
    0xd7,
5232
    0xa1,
5233
    0x37,
5234
    0xdc,
5235
    0x7a,
5236
    0x00,
5237
    0x9b,
5238
    0xc6,
5239
    0x69,
5240
    0x5f,
5241
    0xac,
5242
    0xc1,
5243
    0xe5,
5244
    0x00,
5245
    0xe3,
5246
    0x25,
5247
    0xc9,
5248
    0x76,
5249
    0x78,
5250
    0x19,
5251
    0x75,
5252
    0x0a,
5253
    0xe8,
5254
    0xb9,
5255
    0x0e,
5256
    0x81,
5257
    0xfa,
5258
    0x41,
5259
    0x6b,
5260
    0xe7,
5261
    0x37,
5262
    0x3a,
5263
    0x7f,
5264
    0x7b,
5265
    0x6a,
5266
    0xaf,
5267
    0x38,
5268
    0x17,
5269
    0xa3,
5270
    0x4c,
5271
    0x06,
5272
    0x41,
5273
    0x5a,
5274
    0xd4,
5275
    0x20,
5276
    0x18,
5277
    0xc8,
5278
    0x05,
5279
    0x8e,
5280
    0x4f,
5281
    0x2c,
5282
    0xf3,
5283
    0xe4,
5284
    0xbf,
5285
    0xdf,
5286
    0x63,
5287
    0xf4,
5288
    0x79,
5289
    0x91,
5290
    0xd4,
5291
    0xbd,
5292
    0x3f,
5293
    0x1b,
5294
    0x66,
5295
    0x44,
5296
    0x5f,
5297
    0x07,
5298
    0x8e,
5299
    0xa2,
5300
    0xdb,
5301
    0xff,
5302
    0xac,
5303
    0x2d,
5304
    0x62,
5305
    0xa5,
5306
    0xea,
5307
    0x03,
5308
    0xd9,
5309
    0x15,
5310
    0xa0,
5311
    0xaa,
5312
    0x55,
5313
    0x66,
5314
    0x47,
5315
    0xb6,
5316
    0xbf,
5317
    0x5f,
5318
    0xa4,
5319
    0x70,
5320
    0xec,
5321
    0x0a,
5322
    0x66,
5323
    0x2f,
5324
    0x69,
5325
    0x07,
5326
    0xc0,
5327
    0x1b,
5328
    0xf0,
5329
    0x53,
5330
    0xcb,
5331
    0x8a,
5332
    0xf7,
5333
    0x79,
5334
    0x4d,
5335
    0xf1,
5336
    0x94,
5337
    0x03,
5338
    0x50,
5339
    0xea,
5340
    0xc5,
5341
    0xdb,
5342
    0xe2,
5343
    0xed,
5344
    0x3b,
5345
    0x7a,
5346
    0xa8,
5347
    0x55,
5348
    0x1e,
5349
    0xc5,
5350
    0x0f,
5351
    0xdf,
5352
    0xf8,
5353
    0x75,
5354
    0x8c,
5355
    0xe6,
5356
    0x58,
5357
    0xd1,
5358
    0x89,
5359
    0xea,
5360
    0xae,
5361
    0x6d,
5362
    0x2b,
5363
    0x64,
5364
    0xf6,
5365
    0x17,
5366
    0x79,
5367
    0x4b,
5368
    0x19,
5369
    0x1c,
5370
    0x3f,
5371
    0xf4,
5372
    0x6b,
5373
    0xb7,
5374
    0x1e,
5375
    0x02,
5376
    0x34,
5377
    0x02,
5378
    0x1f,
5379
    0x47,
5380
    0xb3,
5381
    0x1f,
5382
    0xa4,
5383
    0x30,
5384
    0x77,
5385
    0x09,
5386
    0x5f,
5387
    0x96,
5388
    0xad,
5389
    0x85,
5390
    0xba,
5391
    0x3a,
5392
    0x6b,
5393
    0x73,
5394
    0x4a,
5395
    0x7c,
5396
    0x8f,
5397
    0x36,
5398
    0xdf,
5399
    0x08,
5400
    0xac,
5401
    0xba,
5402
    0x51,
5403
    0xc9,
5404
    0x37,
5405
    0x89,
5406
    0x7f,
5407
    0x72,
5408
    0xf2,
5409
    0x1c,
5410
    0x3b,
5411
    0xbe,
5412
    0x5b,
5413
    0x54,
5414
    0x99,
5415
    0x6f,
5416
    0xc6,
5417
    0x6c,
5418
    0x5f,
5419
    0x62,
5420
    0x68,
5421
    0x39,
5422
    0xdc,
5423
    0x98,
5424
    0xdd,
5425
    0x1d,
5426
    0xe4,
5427
    0x19,
5428
    0x5b,
5429
    0x46,
5430
    0xce,
5431
    0xe9,
5432
    0x80,
5433
    0x3a,
5434
    0x0f,
5435
    0xd3,
5436
    0xdf,
5437
    0xc5,
5438
    0x7e,
5439
    0x23,
5440
    0xf6,
5441
    0x92,
5442
    0xbb,
5443
    0x7b,
5444
    0x49,
5445
    0xb5,
5446
    0xd2,
5447
    0x12,
5448
    0x33,
5449
    0x1d,
5450
    0x55,
5451
    0xb1,
5452
    0xce,
5453
    0x2d,
5454
    0x72,
5455
    0x7a,
5456
    0xb4,
5457
    0x1a,
5458
    0x11,
5459
    0xda,
5460
    0x3a,
5461
    0x15,
5462
    0xf8,
5463
    0xe4,
5464
    0xbc,
5465
    0x11,
5466
    0xc7,
5467
    0x8b,
5468
    0x65,
5469
    0xf1,
5470
    0xce,
5471
    0xb2,
5472
    0x96,
5473
    0xf1,
5474
    0xfe,
5475
    0xdc,
5476
    0x5f,
5477
    0x7e,
5478
    0x42,
5479
    0x45,
5480
    0x6c,
5481
    0x91,
5482
    0x11,
5483
    0x17,
5484
    0x02,
5485
    0x52,
5486
    0x01,
5487
    0xbe,
5488
    0x03,
5489
    0x89,
5490
    0xf5,
5491
    0xab,
5492
    0xd4,
5493
    0x0d,
5494
    0x11,
5495
    0xf8,
5496
    0x63,
5497
    0x9a,
5498
    0x39,
5499
    0xfe,
5500
    0x32,
5501
    0x36,
5502
    0x75,
5503
    0x18,
5504
    0x35,
5505
    0xa5,
5506
    0xe5,
5507
    0xe4,
5508
    0x43,
5509
    0x17,
5510
    0xc1,
5511
    0xc2,
5512
    0xee,
5513
    0xfd,
5514
    0x4e,
5515
    0xa5,
5516
    0xbf,
5517
    0xd1,
5518
    0x60,
5519
    0x43,
5520
    0xf4,
5521
    0x3c,
5522
    0xb4,
5523
    0x19,
5524
    0x81,
5525
    0xf6,
5526
    0xad,
5527
    0xee,
5528
    0x9d,
5529
    0x03,
5530
    0x15,
5531
    0x9e,
5532
    0x7a,
5533
    0xd9,
5534
    0xd1,
5535
    0x3c,
5536
    0x53,
5537
    0x36,
5538
    0x95,
5539
    0x09,
5540
    0xfc,
5541
    0x1f,
5542
    0xa2,
5543
    0x7c,
5544
    0x16,
5545
    0xef,
5546
    0x98,
5547
    0x87,
5548
    0x70,
5549
    0x3a,
5550
    0x55,
5551
    0xb5,
5552
    0x1b,
5553
    0x22,
5554
    0xcb,
5555
    0xf4,
5556
    0x4c,
5557
    0xd0,
5558
    0x12,
5559
    0xae,
5560
    0xe0,
5561
    0xb2,
5562
    0x79,
5563
    0x8e,
5564
    0x62,
5565
    0x84,
5566
    0x23,
5567
    0x42,
5568
    0x8e,
5569
    0xfc,
5570
    0xd5,
5571
    0xa4,
5572
    0x0c,
5573
    0xae,
5574
    0xf6,
5575
    0xbf,
5576
    0x50,
5577
    0xd8,
5578
    0xea,
5579
    0x88,
5580
    0x5e,
5581
    0xbf,
5582
    0x73,
5583
    0xa6,
5584
    0xb9,
5585
    0xfd,
5586
    0x79,
5587
    0xb5,
5588
    0xe1,
5589
    0x8f,
5590
    0x67,
5591
    0xd1,
5592
    0x34,
5593
    0x1a,
5594
    0xc8,
5595
    0x23,
5596
    0x7a,
5597
    0x75,
5598
    0xc3,
5599
    0xcf,
5600
    0xc9,
5601
    0x20,
5602
    0x04,
5603
    0xa1,
5604
    0xc5,
5605
    0xa4,
5606
    0x0e,
5607
    0x36,
5608
    0x6b,
5609
    0xc4,
5610
    0x4d,
5611
    0x00,
5612
    0x17,
5613
    0x6a,
5614
    0xf7,
5615
    0x1c,
5616
    0x15,
5617
    0xe4,
5618
    0x8c,
5619
    0x86,
5620
    0xd3,
5621
    0x7e,
5622
    0x01,
5623
    0x37,
5624
    0x23,
5625
    0xca,
5626
    0xac,
5627
    0x72,
5628
    0x23,
5629
    0xab,
5630
    0x3b,
5631
    0xf4,
5632
    0xd5,
5633
    0x4f,
5634
    0x18,
5635
    0x28,
5636
    0x71,
5637
    0x3b,
5638
    0x2b,
5639
    0x4a,
5640
    0x6f,
5641
    0xe4,
5642
    0x0f,
5643
    0xab,
5644
    0x74,
5645
    0x40,
5646
    0x5c,
5647
    0xb7,
5648
    0x38,
5649
    0xb0,
5650
    0x64,
5651
    0xc0,
5652
    0x6e,
5653
    0xcc,
5654
    0x76,
5655
    0xe9,
5656
    0xef,
5657
    0xff,
5658
    0xff,
5659
    0xff,
5660
    0xff,
5661
    0xff,
5662
    0xff,
5663
    0xff,
5664
    0xff,
5665
};
5666
5667
/* q=(p-1)/2 for prime prime_tls_8192 */
5668
static const unsigned char subprime_tls_8192_data[] = {
5669
    0x7f,
5670
    0xff,
5671
    0xff,
5672
    0xff,
5673
    0xff,
5674
    0xff,
5675
    0xff,
5676
    0xff,
5677
    0xd6,
5678
    0xfc,
5679
    0x2a,
5680
    0x2c,
5681
    0x51,
5682
    0x5d,
5683
    0xa5,
5684
    0x4d,
5685
    0x57,
5686
    0xee,
5687
    0x2b,
5688
    0x10,
5689
    0x13,
5690
    0x9e,
5691
    0x9e,
5692
    0x78,
5693
    0xec,
5694
    0x5c,
5695
    0xe2,
5696
    0xc1,
5697
    0xe7,
5698
    0x16,
5699
    0x9b,
5700
    0x4a,
5701
    0xd4,
5702
    0xf0,
5703
    0x9b,
5704
    0x20,
5705
    0x8a,
5706
    0x32,
5707
    0x19,
5708
    0xfd,
5709
    0xe6,
5710
    0x49,
5711
    0xce,
5712
    0xe7,
5713
    0x12,
5714
    0x4d,
5715
    0x9f,
5716
    0x7c,
5717
    0xbe,
5718
    0x97,
5719
    0xf1,
5720
    0xb1,
5721
    0xb1,
5722
    0x86,
5723
    0x3a,
5724
    0xec,
5725
    0x7b,
5726
    0x40,
5727
    0xd9,
5728
    0x01,
5729
    0x57,
5730
    0x62,
5731
    0x30,
5732
    0xbd,
5733
    0x69,
5734
    0xef,
5735
    0x8f,
5736
    0x6a,
5737
    0xea,
5738
    0xfe,
5739
    0xb2,
5740
    0xb0,
5741
    0x92,
5742
    0x19,
5743
    0xfa,
5744
    0x8f,
5745
    0xaf,
5746
    0x83,
5747
    0x37,
5748
    0x68,
5749
    0x42,
5750
    0xb1,
5751
    0xb2,
5752
    0xaa,
5753
    0x9e,
5754
    0xf6,
5755
    0x8d,
5756
    0x79,
5757
    0xda,
5758
    0xab,
5759
    0x89,
5760
    0xaf,
5761
    0x3f,
5762
    0xab,
5763
    0xe4,
5764
    0x9a,
5765
    0xcc,
5766
    0x27,
5767
    0x86,
5768
    0x38,
5769
    0x70,
5770
    0x73,
5771
    0x45,
5772
    0xbb,
5773
    0xf1,
5774
    0x53,
5775
    0x44,
5776
    0xed,
5777
    0x79,
5778
    0xf7,
5779
    0xf4,
5780
    0x39,
5781
    0x0e,
5782
    0xf8,
5783
    0xac,
5784
    0x50,
5785
    0x9b,
5786
    0x56,
5787
    0xf3,
5788
    0x9a,
5789
    0x98,
5790
    0x56,
5791
    0x65,
5792
    0x27,
5793
    0xa4,
5794
    0x1d,
5795
    0x3c,
5796
    0xbd,
5797
    0x5e,
5798
    0x05,
5799
    0x58,
5800
    0xc1,
5801
    0x59,
5802
    0x92,
5803
    0x7d,
5804
    0xb0,
5805
    0xe8,
5806
    0x84,
5807
    0x54,
5808
    0xa5,
5809
    0xd9,
5810
    0x64,
5811
    0x71,
5812
    0xfd,
5813
    0xdc,
5814
    0xb5,
5815
    0x6d,
5816
    0x5b,
5817
    0xb0,
5818
    0x6b,
5819
    0xfa,
5820
    0x34,
5821
    0x0e,
5822
    0xa7,
5823
    0xa1,
5824
    0x51,
5825
    0xef,
5826
    0x1c,
5827
    0xa6,
5828
    0xfa,
5829
    0x57,
5830
    0x2b,
5831
    0x76,
5832
    0xf3,
5833
    0xb1,
5834
    0xb9,
5835
    0x5d,
5836
    0x8c,
5837
    0x85,
5838
    0x83,
5839
    0xd3,
5840
    0xe4,
5841
    0x77,
5842
    0x05,
5843
    0x36,
5844
    0xb8,
5845
    0x4f,
5846
    0x01,
5847
    0x7e,
5848
    0x70,
5849
    0xe6,
5850
    0xfb,
5851
    0xf1,
5852
    0x76,
5853
    0x60,
5854
    0x1a,
5855
    0x02,
5856
    0x66,
5857
    0x94,
5858
    0x1a,
5859
    0x17,
5860
    0xb0,
5861
    0xc8,
5862
    0xb9,
5863
    0x7f,
5864
    0x4e,
5865
    0x74,
5866
    0xc2,
5867
    0xc1,
5868
    0xff,
5869
    0xc7,
5870
    0x27,
5871
    0x89,
5872
    0x19,
5873
    0x77,
5874
    0x79,
5875
    0x40,
5876
    0xc1,
5877
    0xe1,
5878
    0xff,
5879
    0x1d,
5880
    0x8d,
5881
    0xa6,
5882
    0x37,
5883
    0xd6,
5884
    0xb9,
5885
    0x9d,
5886
    0xda,
5887
    0xfe,
5888
    0x5e,
5889
    0x17,
5890
    0x61,
5891
    0x10,
5892
    0x02,
5893
    0xe2,
5894
    0xc7,
5895
    0x78,
5896
    0xc1,
5897
    0xbe,
5898
    0x8b,
5899
    0x41,
5900
    0xd9,
5901
    0x63,
5902
    0x79,
5903
    0xa5,
5904
    0x13,
5905
    0x60,
5906
    0xd9,
5907
    0x77,
5908
    0xfd,
5909
    0x44,
5910
    0x35,
5911
    0xa1,
5912
    0x1c,
5913
    0x30,
5914
    0x8f,
5915
    0xe7,
5916
    0xee,
5917
    0x6f,
5918
    0x1a,
5919
    0xad,
5920
    0x9d,
5921
    0xb2,
5922
    0x8c,
5923
    0x81,
5924
    0xad,
5925
    0xde,
5926
    0x1a,
5927
    0x7a,
5928
    0x6f,
5929
    0x7c,
5930
    0xce,
5931
    0x01,
5932
    0x1c,
5933
    0x30,
5934
    0xda,
5935
    0x37,
5936
    0xe4,
5937
    0xeb,
5938
    0x73,
5939
    0x64,
5940
    0x83,
5941
    0xbd,
5942
    0x6c,
5943
    0x8e,
5944
    0x93,
5945
    0x48,
5946
    0xfb,
5947
    0xfb,
5948
    0xf7,
5949
    0x2c,
5950
    0xc6,
5951
    0x58,
5952
    0x7d,
5953
    0x60,
5954
    0xc3,
5955
    0x6c,
5956
    0x8e,
5957
    0x57,
5958
    0x7f,
5959
    0x09,
5960
    0x84,
5961
    0xc2,
5962
    0x89,
5963
    0xc9,
5964
    0x38,
5965
    0x5a,
5966
    0x09,
5967
    0x86,
5968
    0x49,
5969
    0xde,
5970
    0x21,
5971
    0xbc,
5972
    0xa2,
5973
    0x7a,
5974
    0x7e,
5975
    0xa2,
5976
    0x29,
5977
    0x71,
5978
    0x6b,
5979
    0xa6,
5980
    0xe9,
5981
    0xb2,
5982
    0x79,
5983
    0x71,
5984
    0x0f,
5985
    0x38,
5986
    0xfa,
5987
    0xa5,
5988
    0xff,
5989
    0xae,
5990
    0x57,
5991
    0x41,
5992
    0x55,
5993
    0xce,
5994
    0x4e,
5995
    0xfb,
5996
    0x4f,
5997
    0x74,
5998
    0x36,
5999
    0x95,
6000
    0xe2,
6001
    0x91,
6002
    0x1b,
6003
    0x1d,
6004
    0x06,
6005
    0xd5,
6006
    0xe2,
6007
    0x90,
6008
    0xcb,
6009
    0xcd,
6010
    0x86,
6011
    0xf5,
6012
    0x6d,
6013
    0x0e,
6014
    0xdf,
6015
    0xcd,
6016
    0x21,
6017
    0x6a,
6018
    0xe2,
6019
    0x24,
6020
    0x27,
6021
    0x05,
6022
    0x5e,
6023
    0x68,
6024
    0x35,
6025
    0xfd,
6026
    0x29,
6027
    0xee,
6028
    0xf7,
6029
    0x9e,
6030
    0x0d,
6031
    0x90,
6032
    0x77,
6033
    0x1f,
6034
    0xea,
6035
    0xce,
6036
    0xbe,
6037
    0x12,
6038
    0xf2,
6039
    0x0e,
6040
    0x95,
6041
    0xb3,
6042
    0x4f,
6043
    0x0f,
6044
    0x78,
6045
    0xb7,
6046
    0x37,
6047
    0xa9,
6048
    0x61,
6049
    0x8b,
6050
    0x26,
6051
    0xfa,
6052
    0x7d,
6053
    0xbc,
6054
    0x98,
6055
    0x74,
6056
    0xf2,
6057
    0x72,
6058
    0xc4,
6059
    0x2b,
6060
    0xdb,
6061
    0x56,
6062
    0x3e,
6063
    0xaf,
6064
    0xa1,
6065
    0x6b,
6066
    0x4f,
6067
    0xb6,
6068
    0x8c,
6069
    0x3b,
6070
    0xb1,
6071
    0xe7,
6072
    0x8e,
6073
    0xaa,
6074
    0x81,
6075
    0xa0,
6076
    0x02,
6077
    0x43,
6078
    0xfa,
6079
    0xad,
6080
    0xd2,
6081
    0xbf,
6082
    0x18,
6083
    0xe6,
6084
    0x3d,
6085
    0x38,
6086
    0x9a,
6087
    0xe4,
6088
    0x43,
6089
    0x77,
6090
    0xda,
6091
    0x18,
6092
    0xc5,
6093
    0x76,
6094
    0xb5,
6095
    0x0f,
6096
    0x00,
6097
    0x96,
6098
    0xcf,
6099
    0x34,
6100
    0x19,
6101
    0x54,
6102
    0x83,
6103
    0xb0,
6104
    0x05,
6105
    0x48,
6106
    0xc0,
6107
    0x98,
6108
    0x62,
6109
    0x36,
6110
    0xe3,
6111
    0xbc,
6112
    0x7c,
6113
    0xb8,
6114
    0xd6,
6115
    0x80,
6116
    0x1c,
6117
    0x04,
6118
    0x94,
6119
    0xcc,
6120
    0xd1,
6121
    0x99,
6122
    0xe5,
6123
    0xc5,
6124
    0xbd,
6125
    0x0d,
6126
    0x0e,
6127
    0xdc,
6128
    0x9e,
6129
    0xb8,
6130
    0xa0,
6131
    0x00,
6132
    0x1e,
6133
    0x15,
6134
    0x27,
6135
    0x67,
6136
    0x54,
6137
    0xfc,
6138
    0xc6,
6139
    0x85,
6140
    0x66,
6141
    0x05,
6142
    0x41,
6143
    0x48,
6144
    0xe6,
6145
    0xe7,
6146
    0x64,
6147
    0xbe,
6148
    0xe7,
6149
    0xc7,
6150
    0x64,
6151
    0xda,
6152
    0xad,
6153
    0x3f,
6154
    0xc4,
6155
    0x52,
6156
    0x35,
6157
    0xa6,
6158
    0xda,
6159
    0xd4,
6160
    0x28,
6161
    0xfa,
6162
    0x20,
6163
    0xc1,
6164
    0x70,
6165
    0xe3,
6166
    0x45,
6167
    0x00,
6168
    0x3f,
6169
    0x2f,
6170
    0x06,
6171
    0xec,
6172
    0x81,
6173
    0x05,
6174
    0xfe,
6175
    0xb2,
6176
    0x5b,
6177
    0x22,
6178
    0x81,
6179
    0xb6,
6180
    0x3d,
6181
    0x27,
6182
    0x33,
6183
    0xbe,
6184
    0x96,
6185
    0x1c,
6186
    0x29,
6187
    0x95,
6188
    0x1d,
6189
    0x11,
6190
    0xdd,
6191
    0x22,
6192
    0x21,
6193
    0x65,
6194
    0x7a,
6195
    0x9f,
6196
    0x53,
6197
    0x1d,
6198
    0xda,
6199
    0x2a,
6200
    0x19,
6201
    0x4d,
6202
    0xbb,
6203
    0x12,
6204
    0x64,
6205
    0x48,
6206
    0xbd,
6207
    0xee,
6208
    0xb2,
6209
    0x58,
6210
    0xe0,
6211
    0x7e,
6212
    0xa6,
6213
    0x59,
6214
    0xc7,
6215
    0x46,
6216
    0x19,
6217
    0xa6,
6218
    0x38,
6219
    0x0e,
6220
    0x1d,
6221
    0x66,
6222
    0xd6,
6223
    0x83,
6224
    0x2b,
6225
    0xfe,
6226
    0x67,
6227
    0xf6,
6228
    0x38,
6229
    0xcd,
6230
    0x8f,
6231
    0xae,
6232
    0x1f,
6233
    0x27,
6234
    0x23,
6235
    0x02,
6236
    0x0f,
6237
    0x9c,
6238
    0x40,
6239
    0xa3,
6240
    0xfd,
6241
    0xa6,
6242
    0x7e,
6243
    0xda,
6244
    0x3b,
6245
    0xd2,
6246
    0x92,
6247
    0x38,
6248
    0xfb,
6249
    0xd4,
6250
    0xd4,
6251
    0xb4,
6252
    0x88,
6253
    0x5c,
6254
    0x2a,
6255
    0x99,
6256
    0x17,
6257
    0x6d,
6258
    0xb1,
6259
    0xa0,
6260
    0x6c,
6261
    0x50,
6262
    0x07,
6263
    0x78,
6264
    0x49,
6265
    0x1a,
6266
    0x82,
6267
    0x88,
6268
    0xf1,
6269
    0x85,
6270
    0x5f,
6271
    0x60,
6272
    0xff,
6273
    0xfc,
6274
    0xf1,
6275
    0xd1,
6276
    0x37,
6277
    0x3f,
6278
    0xd9,
6279
    0x4f,
6280
    0xc6,
6281
    0x0c,
6282
    0x18,
6283
    0x11,
6284
    0xe1,
6285
    0xac,
6286
    0x3f,
6287
    0x1c,
6288
    0x6d,
6289
    0x00,
6290
    0x3b,
6291
    0xec,
6292
    0xda,
6293
    0x3b,
6294
    0x1f,
6295
    0x27,
6296
    0x25,
6297
    0xca,
6298
    0x59,
6299
    0x5d,
6300
    0xe0,
6301
    0xca,
6302
    0x63,
6303
    0x32,
6304
    0x8f,
6305
    0x3b,
6306
    0xe5,
6307
    0x7c,
6308
    0xc9,
6309
    0x77,
6310
    0x55,
6311
    0x60,
6312
    0x11,
6313
    0x95,
6314
    0x14,
6315
    0x0d,
6316
    0xfb,
6317
    0x59,
6318
    0xd3,
6319
    0x9c,
6320
    0xe0,
6321
    0x91,
6322
    0x30,
6323
    0x8b,
6324
    0x41,
6325
    0x05,
6326
    0x74,
6327
    0x6d,
6328
    0xac,
6329
    0x23,
6330
    0xd3,
6331
    0x3e,
6332
    0x5f,
6333
    0x7c,
6334
    0xe4,
6335
    0x84,
6336
    0x8d,
6337
    0xa3,
6338
    0x16,
6339
    0xa9,
6340
    0xc6,
6341
    0x6b,
6342
    0x95,
6343
    0x81,
6344
    0xba,
6345
    0x35,
6346
    0x73,
6347
    0xbf,
6348
    0xaf,
6349
    0x31,
6350
    0x14,
6351
    0x96,
6352
    0x18,
6353
    0x8a,
6354
    0xb1,
6355
    0x54,
6356
    0x23,
6357
    0x28,
6358
    0x2e,
6359
    0xe4,
6360
    0x16,
6361
    0xdc,
6362
    0x2a,
6363
    0x19,
6364
    0xc5,
6365
    0x72,
6366
    0x4f,
6367
    0xa9,
6368
    0x1a,
6369
    0xe4,
6370
    0xad,
6371
    0xc8,
6372
    0x8b,
6373
    0xc6,
6374
    0x67,
6375
    0x96,
6376
    0xea,
6377
    0xe5,
6378
    0x67,
6379
    0x7a,
6380
    0x01,
6381
    0xf6,
6382
    0x4e,
6383
    0x8c,
6384
    0x08,
6385
    0x63,
6386
    0x13,
6387
    0x95,
6388
    0x82,
6389
    0x2d,
6390
    0x9d,
6391
    0xb8,
6392
    0xfc,
6393
    0xee,
6394
    0x35,
6395
    0xc0,
6396
    0x6b,
6397
    0x1f,
6398
    0xee,
6399
    0xa5,
6400
    0x47,
6401
    0x4d,
6402
    0x6d,
6403
    0x8f,
6404
    0x34,
6405
    0xb1,
6406
    0x53,
6407
    0x4a,
6408
    0x93,
6409
    0x6a,
6410
    0x18,
6411
    0xb0,
6412
    0xe0,
6413
    0xd2,
6414
    0x0e,
6415
    0xab,
6416
    0x86,
6417
    0xbc,
6418
    0x9c,
6419
    0x6d,
6420
    0x6a,
6421
    0x52,
6422
    0x07,
6423
    0x19,
6424
    0x4e,
6425
    0x67,
6426
    0xfa,
6427
    0x35,
6428
    0x55,
6429
    0x1b,
6430
    0x56,
6431
    0x80,
6432
    0x26,
6433
    0x7b,
6434
    0x00,
6435
    0x64,
6436
    0x1c,
6437
    0x0f,
6438
    0x21,
6439
    0x2d,
6440
    0x18,
6441
    0xec,
6442
    0xa8,
6443
    0xd7,
6444
    0x32,
6445
    0x7e,
6446
    0xd9,
6447
    0x1f,
6448
    0xe7,
6449
    0x64,
6450
    0xa8,
6451
    0x4e,
6452
    0xa1,
6453
    0xb4,
6454
    0x3f,
6455
    0xf5,
6456
    0xb4,
6457
    0xf6,
6458
    0xe8,
6459
    0xe6,
6460
    0x2f,
6461
    0x05,
6462
    0xc6,
6463
    0x61,
6464
    0xde,
6465
    0xfb,
6466
    0x25,
6467
    0x88,
6468
    0x77,
6469
    0xc3,
6470
    0x5b,
6471
    0x18,
6472
    0xa1,
6473
    0x51,
6474
    0xd5,
6475
    0xc4,
6476
    0x14,
6477
    0xaa,
6478
    0xad,
6479
    0x97,
6480
    0xba,
6481
    0x3e,
6482
    0x49,
6483
    0x93,
6484
    0x32,
6485
    0xe5,
6486
    0x96,
6487
    0x07,
6488
    0x8e,
6489
    0x60,
6490
    0x0d,
6491
    0xeb,
6492
    0x81,
6493
    0x14,
6494
    0x9c,
6495
    0x44,
6496
    0x1c,
6497
    0xe9,
6498
    0x57,
6499
    0x82,
6500
    0xf2,
6501
    0x2a,
6502
    0x28,
6503
    0x25,
6504
    0x63,
6505
    0xc5,
6506
    0xba,
6507
    0xc1,
6508
    0x41,
6509
    0x14,
6510
    0x23,
6511
    0x60,
6512
    0x5d,
6513
    0x1a,
6514
    0xe1,
6515
    0xaf,
6516
    0xae,
6517
    0x2c,
6518
    0x8b,
6519
    0x06,
6520
    0x60,
6521
    0x23,
6522
    0x7e,
6523
    0xc1,
6524
    0x28,
6525
    0xaa,
6526
    0x0f,
6527
    0xe3,
6528
    0x46,
6529
    0x4e,
6530
    0x43,
6531
    0x58,
6532
    0x11,
6533
    0x5d,
6534
    0xb8,
6535
    0x4c,
6536
    0xc3,
6537
    0xb5,
6538
    0x23,
6539
    0x07,
6540
    0x3a,
6541
    0x28,
6542
    0xd4,
6543
    0x54,
6544
    0x98,
6545
    0x84,
6546
    0xb8,
6547
    0x1f,
6548
    0xf7,
6549
    0x0e,
6550
    0x10,
6551
    0xbf,
6552
    0x36,
6553
    0x1c,
6554
    0x13,
6555
    0x72,
6556
    0x96,
6557
    0x28,
6558
    0xd5,
6559
    0x34,
6560
    0x8f,
6561
    0x07,
6562
    0x21,
6563
    0x1e,
6564
    0x7e,
6565
    0x4c,
6566
    0xf4,
6567
    0xf1,
6568
    0x8b,
6569
    0x28,
6570
    0x60,
6571
    0x90,
6572
    0xbd,
6573
    0xb1,
6574
    0x24,
6575
    0x0b,
6576
    0x66,
6577
    0xd6,
6578
    0xcd,
6579
    0x4a,
6580
    0xfc,
6581
    0xea,
6582
    0xdc,
6583
    0x00,
6584
    0xca,
6585
    0x44,
6586
    0x6c,
6587
    0xe0,
6588
    0x50,
6589
    0x50,
6590
    0xff,
6591
    0x18,
6592
    0x3a,
6593
    0xd2,
6594
    0xbb,
6595
    0xf1,
6596
    0x18,
6597
    0xc1,
6598
    0xfc,
6599
    0x0e,
6600
    0xa5,
6601
    0x1f,
6602
    0x97,
6603
    0xd2,
6604
    0x2b,
6605
    0x8f,
6606
    0x7e,
6607
    0x46,
6608
    0x70,
6609
    0x5d,
6610
    0x45,
6611
    0x27,
6612
    0xf4,
6613
    0x5b,
6614
    0x42,
6615
    0xae,
6616
    0xff,
6617
    0x39,
6618
    0x58,
6619
    0x53,
6620
    0x37,
6621
    0x6f,
6622
    0x69,
6623
    0x7d,
6624
    0xd5,
6625
    0xfd,
6626
    0xf2,
6627
    0xc5,
6628
    0x18,
6629
    0x7d,
6630
    0x7d,
6631
    0x5f,
6632
    0x0e,
6633
    0x2e,
6634
    0xb8,
6635
    0xd4,
6636
    0x3f,
6637
    0x17,
6638
    0xba,
6639
    0x0f,
6640
    0x7c,
6641
    0x60,
6642
    0xff,
6643
    0x43,
6644
    0x7f,
6645
    0x53,
6646
    0x5d,
6647
    0xfe,
6648
    0xf2,
6649
    0x98,
6650
    0x33,
6651
    0xbf,
6652
    0x86,
6653
    0xcb,
6654
    0xe8,
6655
    0x8e,
6656
    0xa4,
6657
    0xfb,
6658
    0xd4,
6659
    0x22,
6660
    0x1e,
6661
    0x84,
6662
    0x11,
6663
    0x72,
6664
    0x83,
6665
    0x54,
6666
    0xfa,
6667
    0x30,
6668
    0xa7,
6669
    0x00,
6670
    0x8f,
6671
    0x15,
6672
    0x4a,
6673
    0x41,
6674
    0xc7,
6675
    0xfc,
6676
    0x46,
6677
    0x6b,
6678
    0x46,
6679
    0x45,
6680
    0xdb,
6681
    0xe2,
6682
    0xe3,
6683
    0x21,
6684
    0x26,
6685
    0x7f,
6686
    0xff,
6687
    0xff,
6688
    0xff,
6689
    0xff,
6690
    0xff,
6691
    0xff,
6692
    0xff,
6693
};
6694
6695
static const SECItem subprime_ike_1536 = { siBuffer,
6696
                                           (unsigned char *)subprime_ike_1536_data,
6697
                                           sizeof(subprime_ike_1536_data) };
6698
static const SECItem subprime_ike_2048 = { siBuffer,
6699
                                           (unsigned char *)subprime_ike_2048_data,
6700
                                           sizeof(subprime_ike_2048_data) };
6701
static const SECItem subprime_ike_3072 = { siBuffer,
6702
                                           (unsigned char *)subprime_ike_3072_data,
6703
                                           sizeof(subprime_ike_3072_data) };
6704
static const SECItem subprime_ike_4096 = { siBuffer,
6705
                                           (unsigned char *)subprime_ike_4096_data,
6706
                                           sizeof(subprime_ike_4096_data) };
6707
static const SECItem subprime_ike_6144 = { siBuffer,
6708
                                           (unsigned char *)subprime_ike_6144_data,
6709
                                           sizeof(subprime_ike_6144_data) };
6710
static const SECItem subprime_ike_8192 = { siBuffer,
6711
                                           (unsigned char *)subprime_ike_8192_data,
6712
                                           sizeof(subprime_ike_8192_data) };
6713
static const SECItem subprime_tls_2048 = { siBuffer,
6714
                                           (unsigned char *)subprime_tls_2048_data,
6715
                                           sizeof(subprime_tls_2048_data) };
6716
static const SECItem subprime_tls_3072 = { siBuffer,
6717
                                           (unsigned char *)subprime_tls_3072_data,
6718
                                           sizeof(subprime_tls_3072_data) };
6719
static const SECItem subprime_tls_4096 = { siBuffer,
6720
                                           (unsigned char *)subprime_tls_4096_data,
6721
                                           sizeof(subprime_tls_4096_data) };
6722
static const SECItem subprime_tls_6144 = { siBuffer,
6723
                                           (unsigned char *)subprime_tls_6144_data,
6724
                                           sizeof(subprime_tls_6144_data) };
6725
static const SECItem subprime_tls_8192 = { siBuffer,
6726
                                           (unsigned char *)subprime_tls_8192_data,
6727
                                           sizeof(subprime_tls_8192_data) };
6728
6729
/*
6730
 * verify that dhPrime matches one of our known primes
6731
 */
6732
const SECItem *
6733
sftk_VerifyDH_Prime(SECItem *dhPrime, PRBool isFIPS)
6734
0
{
6735
    /* use the length to decide which primes to check */
6736
0
    switch (dhPrime->len) {
6737
0
        case 1536 / PR_BITS_PER_BYTE:
6738
            /* don't accept 1536 bit primes in FIPS mode */
6739
0
            if (isFIPS) {
6740
0
                break;
6741
0
            }
6742
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_1536,
6743
0
                            sizeof(prime_ike_1536)) == 0) {
6744
0
                return &subprime_ike_1536;
6745
0
            }
6746
0
            break;
6747
0
        case 2048 / PR_BITS_PER_BYTE:
6748
0
            if (PORT_Memcmp(dhPrime->data, prime_tls_2048,
6749
0
                            sizeof(prime_tls_2048)) == 0) {
6750
0
                return &subprime_tls_2048;
6751
0
            }
6752
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_2048,
6753
0
                            sizeof(prime_ike_2048)) == 0) {
6754
0
                return &subprime_ike_2048;
6755
0
            }
6756
0
            break;
6757
0
        case 3072 / PR_BITS_PER_BYTE:
6758
0
            if (PORT_Memcmp(dhPrime->data, prime_tls_3072,
6759
0
                            sizeof(prime_tls_3072)) == 0) {
6760
0
                return &subprime_tls_3072;
6761
0
            }
6762
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_3072,
6763
0
                            sizeof(prime_ike_3072)) == 0) {
6764
0
                return &subprime_ike_3072;
6765
0
            }
6766
0
            break;
6767
0
        case 4096 / PR_BITS_PER_BYTE:
6768
0
            if (PORT_Memcmp(dhPrime->data, prime_tls_4096,
6769
0
                            sizeof(prime_tls_4096)) == 0) {
6770
0
                return &subprime_tls_4096;
6771
0
            }
6772
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_4096,
6773
0
                            sizeof(prime_ike_4096)) == 0) {
6774
0
                return &subprime_ike_4096;
6775
0
            }
6776
0
            break;
6777
0
        case 6144 / PR_BITS_PER_BYTE:
6778
0
            if (PORT_Memcmp(dhPrime->data, prime_tls_6144,
6779
0
                            sizeof(prime_tls_6144)) == 0) {
6780
0
                return &subprime_tls_6144;
6781
0
            }
6782
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_6144,
6783
0
                            sizeof(prime_ike_6144)) == 0) {
6784
0
                return &subprime_ike_6144;
6785
0
            }
6786
0
            break;
6787
0
        case 8192 / PR_BITS_PER_BYTE:
6788
0
            if (PORT_Memcmp(dhPrime->data, prime_tls_8192,
6789
0
                            sizeof(prime_tls_8192)) == 0) {
6790
0
                return &subprime_tls_8192;
6791
0
            }
6792
0
            if (PORT_Memcmp(dhPrime->data, prime_ike_8192,
6793
0
                            sizeof(prime_ike_8192)) == 0) {
6794
0
                return &subprime_ike_8192;
6795
0
            }
6796
0
            break;
6797
0
    }
6798
    /* no match found, return an error */
6799
0
    PORT_SetError(SEC_ERROR_INVALID_ARGS);
6800
0
    return NULL;
6801
0
}
6802
6803
/* Use the provided subPrime to see if dhPrime is a safe prime. We'll check
6804
 * primality of those values later. */
6805
SECStatus
6806
sftk_IsSafePrime(const SECItem *dhPrime, const SECItem *dhSubPrime, PRBool *isSafe)
6807
0
{
6808
0
    int i;
6809
0
    unsigned char carry = 0;
6810
0
    int offset = 0, subPrimeLen = dhPrime->len;
6811
0
    *isSafe = PR_FALSE;
6812
6813
    /* Both dhPrime and dhSubPrime should be odd */
6814
0
    if (((dhPrime->data[dhPrime->len - 1] & 0x1) != 1) && ((dhSubPrime->data[dhSubPrime->len - 1] & 0x1) != 1)) {
6815
0
        PORT_SetError(SEC_ERROR_INVALID_ARGS);
6816
0
        return SECFailure;
6817
0
    }
6818
6819
    /* subPrime is p-1/2, which means subPrime is 1 bit shorter than p.
6820
     * It's length in bytes is the same unless the high byte of p == 1 or 0.
6821
     */
6822
0
    if (dhPrime->data[0] <= 1) {
6823
0
        subPrimeLen--;
6824
0
        offset++;
6825
0
        carry = (dhPrime->data[0]) << 7;
6826
0
    }
6827
6828
    /* if subprime len is not long enough it is not a strong prime */
6829
0
    if (dhSubPrime->len != subPrimeLen) {
6830
0
        return SECSuccess;
6831
0
    }
6832
6833
    /* does the subprime match q == (p-1)/2 */
6834
0
    for (i = 0; i < subPrimeLen; i++) {
6835
0
        if (dhSubPrime->data[i] !=
6836
0
            (carry | ((dhPrime->data[i + offset] >> 1) & 0x7f))) {
6837
0
            return SECSuccess;
6838
0
        }
6839
0
        carry = ((dhPrime->data[i + offset] & 1) << 7) & 0x80;
6840
0
    }
6841
    /* subPrime for p claims to be q=(p-1)/2. So the caller thinks p
6842
     * is a strong prime, just need to check primality of p and q to verify */
6843
0
    *isSafe = PR_TRUE;
6844
0
    return SECSuccess;
6845
0
}