1 /* crypto/bn/knownprimes.c */
2 /* Insert boilerplate */
6 /* "First Oakley Default Group" from RFC2409, section 6.1.
8 * The prime is: 2^768 - 2 ^704 - 1 + 2^64 * { [2^638 pi] + 149686 }
10 * RFC2409 specifies a generator of 2.
11 * RFC2412 specifies a generator of of 22.
13 static const char RFC2409_PRIME_768[] =
14 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
15 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
16 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
17 "E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF";
19 /* "Second Oakley Default Group" from RFC2409, section 6.2.
21 * The prime is: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
23 * RFC2409 specifies a generator of 2.
24 * RFC2412 specifies a generator of 22.
26 static const char RFC2409_PRIME_1024[] =
27 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
28 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
29 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
30 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
31 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381"
34 /* "1536-bit MODP Group" from RFC3526, Section 2.
36 * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
38 * RFC3526 specifies a generator of 2.
39 * RFC2312 specifies a generator of 22.
41 static const char RFC3526_PRIME_1536[] =
42 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
43 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
44 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
45 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
46 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
47 "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
48 "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
49 "670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF";
51 /* "2048-bit MODP Group" from RFC3526, Section 3.
53 * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
55 * RFC3526 specifies a generator of 2.
57 static const char RFC3526_PRIME_2048[] =
58 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
59 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
60 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
61 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
62 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
63 "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
64 "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
65 "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"
66 "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"
67 "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
68 "15728E5A8AACAA68FFFFFFFFFFFFFFFF";
70 /* "3072-bit MODP Group" from RFC3526, Section 4.
72 * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
74 * RFC3526 specifies a generator of 2.
76 static const char RFC3526_PRIME_3072[] =
77 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
78 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
79 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
80 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
81 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
82 "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
83 "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
84 "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"
85 "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"
86 "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
87 "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64"
88 "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7"
89 "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B"
90 "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C"
91 "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31"
92 "43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
94 /* "4096-bit MODP Group" from RFC3526, Section 5.
96 * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
98 * RFC3526 specifies a generator of 2.
100 static const char RFC3526_PRIME_4096[] =
101 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
102 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
103 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
104 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
105 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
106 "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
107 "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
108 "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"
109 "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"
110 "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
111 "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64"
112 "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7"
113 "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B"
114 "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C"
115 "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31"
116 "43DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D7"
117 "88719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA"
118 "2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6"
119 "287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED"
120 "1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA9"
121 "93B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199"
124 /* "6144-bit MODP Group" from RFC3526, Section 6.
126 * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
128 * RFC3526 specifies a generator of 2.
130 static const char RFC3526_PRIME_6144[] =
131 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E08"
132 "8A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B"
133 "302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9"
134 "A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE6"
135 "49286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8"
136 "FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D"
137 "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C"
138 "180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF695581718"
139 "3995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D"
140 "04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7D"
141 "B3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D226"
142 "1AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200C"
143 "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFC"
144 "E0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B26"
145 "99C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB"
146 "04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2"
147 "233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127"
148 "D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934028492"
149 "36C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406"
150 "AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918"
151 "DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B33205151"
152 "2BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03"
153 "F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97F"
154 "BEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AA"
155 "CC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58B"
156 "B7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632"
157 "387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E"
158 "6DCC4024FFFFFFFFFFFFFFFF";
160 /* "8192-bit MODP Group" from RFC3526, Section 7.
162 * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
164 * RFC3526 specifies a generator of 2.
166 static const char RFC3526_PRIME_8192[] =
167 "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
168 "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
169 "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
170 "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
171 "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
172 "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
173 "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
174 "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"
175 "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"
176 "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
177 "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64"
178 "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7"
179 "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B"
180 "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C"
181 "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31"
182 "43DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D7"
183 "88719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA"
184 "2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6"
185 "287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED"
186 "1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA9"
187 "93B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934028492"
188 "36C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BD"
189 "F8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831"
190 "179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1B"
191 "DB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF"
192 "5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6"
193 "D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F3"
194 "23A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AA"
195 "CC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE328"
196 "06A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55C"
197 "DA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE"
198 "12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E4"
199 "38777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300"
200 "741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F568"
201 "3423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD9"
202 "22222E04A4037C0713EB57A81A23F0C73473FC646CEA306B"
203 "4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A"
204 "062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A36"
205 "4597E899A0255DC164F31CC50846851DF9AB48195DED7EA1"
206 "B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F92"
207 "4009438B481C6CD7889A002ED5EE382BC9190DA6FC026E47"
208 "9558E4475677E9AA9E3050E2765694DFC81F56E880B96E71"
209 "60C980DD98EDD3DFFFFFFFFFFFFFFFFF";
211 int get_rfc2409_prime_768(BIGNUM **bn)
213 return BN_hex2bn(bn,RFC2409_PRIME_768);
216 int get_rfc2409_prime_1024(BIGNUM **bn)
218 return BN_hex2bn(bn,RFC2409_PRIME_1024);
221 int get_rfc3526_prime_1536(BIGNUM **bn)
223 return BN_hex2bn(bn,RFC3526_PRIME_1536);
226 int get_rfc3526_prime_2048(BIGNUM **bn)
228 return BN_hex2bn(bn,RFC3526_PRIME_2048);
231 int get_rfc3526_prime_3072(BIGNUM **bn)
233 return BN_hex2bn(bn,RFC3526_PRIME_3072);
236 int get_rfc3526_prime_4096(BIGNUM **bn)
238 return BN_hex2bn(bn,RFC3526_PRIME_4096);
241 int get_rfc3526_prime_6144(BIGNUM **bn)
243 return BN_hex2bn(bn,RFC3526_PRIME_6144);
246 int get_rfc3526_prime_8192(BIGNUM **bn)
248 return BN_hex2bn(bn,RFC3526_PRIME_8192);