OpenCoverage

ec_curve.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ec_curve.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.-
3 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved-
4 *-
5 * Licensed under the OpenSSL license (the "License"). You may not use-
6 * this file except in compliance with the License. You can obtain a copy-
7 * in the file LICENSE in the source distribution or at-
8 * https://www.openssl.org/source/license.html-
9 */-
10-
11#include <string.h>-
12#include "ec_lcl.h"-
13#include <openssl/err.h>-
14#include <openssl/obj_mac.h>-
15#include <openssl/opensslconf.h>-
16#include "internal/nelem.h"-
17-
18typedef struct {-
19 int field_type, /* either NID_X9_62_prime_field or-
20 * NID_X9_62_characteristic_two_field */-
21 seed_len, param_len;-
22 unsigned int cofactor; /* promoted to BN_ULONG */-
23} EC_CURVE_DATA;-
24-
25/* the nist prime curves */-
26static const struct {-
27 EC_CURVE_DATA h;-
28 unsigned char data[20 + 24 * 6];-
29} _EC_NIST_PRIME_192 = {-
30 {-
31 NID_X9_62_prime_field, 20, 24, 1-
32 },-
33 {-
34 /* seed */-
35 0x30, 0x45, 0xAE, 0x6F, 0xC8, 0x42, 0x2F, 0x64, 0xED, 0x57, 0x95, 0x28,-
36 0xD3, 0x81, 0x20, 0xEA, 0xE1, 0x21, 0x96, 0xD5,-
37 /* p */-
38 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
39 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
40 /* a */-
41 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
42 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
43 /* b */-
44 0x64, 0x21, 0x05, 0x19, 0xE5, 0x9C, 0x80, 0xE7, 0x0F, 0xA7, 0xE9, 0xAB,-
45 0x72, 0x24, 0x30, 0x49, 0xFE, 0xB8, 0xDE, 0xEC, 0xC1, 0x46, 0xB9, 0xB1,-
46 /* x */-
47 0x18, 0x8D, 0xA8, 0x0E, 0xB0, 0x30, 0x90, 0xF6, 0x7C, 0xBF, 0x20, 0xEB,-
48 0x43, 0xA1, 0x88, 0x00, 0xF4, 0xFF, 0x0A, 0xFD, 0x82, 0xFF, 0x10, 0x12,-
49 /* y */-
50 0x07, 0x19, 0x2b, 0x95, 0xff, 0xc8, 0xda, 0x78, 0x63, 0x10, 0x11, 0xed,-
51 0x6b, 0x24, 0xcd, 0xd5, 0x73, 0xf9, 0x77, 0xa1, 0x1e, 0x79, 0x48, 0x11,-
52 /* order */-
53 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
54 0x99, 0xDE, 0xF8, 0x36, 0x14, 0x6B, 0xC9, 0xB1, 0xB4, 0xD2, 0x28, 0x31-
55 }-
56};-
57-
58static const struct {-
59 EC_CURVE_DATA h;-
60 unsigned char data[20 + 28 * 6];-
61} _EC_NIST_PRIME_224 = {-
62 {-
63 NID_X9_62_prime_field, 20, 28, 1-
64 },-
65 {-
66 /* seed */-
67 0xBD, 0x71, 0x34, 0x47, 0x99, 0xD5, 0xC7, 0xFC, 0xDC, 0x45, 0xB5, 0x9F,-
68 0xA3, 0xB9, 0xAB, 0x8F, 0x6A, 0x94, 0x8B, 0xC5,-
69 /* p */-
70 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
71 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
72 0x00, 0x00, 0x00, 0x01,-
73 /* a */-
74 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
75 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
76 0xFF, 0xFF, 0xFF, 0xFE,-
77 /* b */-
78 0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5, 0x41, 0x32, 0x56,-
79 0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA, 0x27, 0x0B, 0x39, 0x43,-
80 0x23, 0x55, 0xFF, 0xB4,-
81 /* x */-
82 0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90, 0xB9,-
83 0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xD6,-
84 0x11, 0x5C, 0x1D, 0x21,-
85 /* y */-
86 0xbd, 0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,-
87 0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5, 0x81, 0x99,-
88 0x85, 0x00, 0x7e, 0x34,-
89 /* order */-
90 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
91 0xFF, 0xFF, 0x16, 0xA2, 0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,-
92 0x5C, 0x5C, 0x2A, 0x3D-
93 }-
94};-
95-
96static const struct {-
97 EC_CURVE_DATA h;-
98 unsigned char data[20 + 48 * 6];-
99} _EC_NIST_PRIME_384 = {-
100 {-
101 NID_X9_62_prime_field, 20, 48, 1-
102 },-
103 {-
104 /* seed */-
105 0xA3, 0x35, 0x92, 0x6A, 0xA3, 0x19, 0xA2, 0x7A, 0x1D, 0x00, 0x89, 0x6A,-
106 0x67, 0x73, 0xA4, 0x82, 0x7A, 0xCD, 0xAC, 0x73,-
107 /* p */-
108 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
109 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
110 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,-
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,-
112 /* a */-
113 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
114 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
115 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,-
116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFC,-
117 /* b */-
118 0xB3, 0x31, 0x2F, 0xA7, 0xE2, 0x3E, 0xE7, 0xE4, 0x98, 0x8E, 0x05, 0x6B,-
119 0xE3, 0xF8, 0x2D, 0x19, 0x18, 0x1D, 0x9C, 0x6E, 0xFE, 0x81, 0x41, 0x12,-
120 0x03, 0x14, 0x08, 0x8F, 0x50, 0x13, 0x87, 0x5A, 0xC6, 0x56, 0x39, 0x8D,-
121 0x8A, 0x2E, 0xD1, 0x9D, 0x2A, 0x85, 0xC8, 0xED, 0xD3, 0xEC, 0x2A, 0xEF,-
122 /* x */-
123 0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37, 0x8E, 0xB1, 0xC7, 0x1E,-
124 0xF3, 0x20, 0xAD, 0x74, 0x6E, 0x1D, 0x3B, 0x62, 0x8B, 0xA7, 0x9B, 0x98,-
125 0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38, 0x55, 0x02, 0xF2, 0x5D,-
126 0xBF, 0x55, 0x29, 0x6C, 0x3A, 0x54, 0x5E, 0x38, 0x72, 0x76, 0x0A, 0xB7,-
127 /* y */-
128 0x36, 0x17, 0xde, 0x4a, 0x96, 0x26, 0x2c, 0x6f, 0x5d, 0x9e, 0x98, 0xbf,-
129 0x92, 0x92, 0xdc, 0x29, 0xf8, 0xf4, 0x1d, 0xbd, 0x28, 0x9a, 0x14, 0x7c,-
130 0xe9, 0xda, 0x31, 0x13, 0xb5, 0xf0, 0xb8, 0xc0, 0x0a, 0x60, 0xb1, 0xce,-
131 0x1d, 0x7e, 0x81, 0x9d, 0x7a, 0x43, 0x1d, 0x7c, 0x90, 0xea, 0x0e, 0x5f,-
132 /* order */-
133 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
134 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
135 0xC7, 0x63, 0x4D, 0x81, 0xF4, 0x37, 0x2D, 0xDF, 0x58, 0x1A, 0x0D, 0xB2,-
136 0x48, 0xB0, 0xA7, 0x7A, 0xEC, 0xEC, 0x19, 0x6A, 0xCC, 0xC5, 0x29, 0x73-
137 }-
138};-
139-
140static const struct {-
141 EC_CURVE_DATA h;-
142 unsigned char data[20 + 66 * 6];-
143} _EC_NIST_PRIME_521 = {-
144 {-
145 NID_X9_62_prime_field, 20, 66, 1-
146 },-
147 {-
148 /* seed */-
149 0xD0, 0x9E, 0x88, 0x00, 0x29, 0x1C, 0xB8, 0x53, 0x96, 0xCC, 0x67, 0x17,-
150 0x39, 0x32, 0x84, 0xAA, 0xA0, 0xDA, 0x64, 0xBA,-
151 /* p */-
152 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
153 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
154 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
155 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
156 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
157 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
158 /* a */-
159 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
160 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
161 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
162 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
163 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
164 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
165 /* b */-
166 0x00, 0x51, 0x95, 0x3E, 0xB9, 0x61, 0x8E, 0x1C, 0x9A, 0x1F, 0x92, 0x9A,-
167 0x21, 0xA0, 0xB6, 0x85, 0x40, 0xEE, 0xA2, 0xDA, 0x72, 0x5B, 0x99, 0xB3,-
168 0x15, 0xF3, 0xB8, 0xB4, 0x89, 0x91, 0x8E, 0xF1, 0x09, 0xE1, 0x56, 0x19,-
169 0x39, 0x51, 0xEC, 0x7E, 0x93, 0x7B, 0x16, 0x52, 0xC0, 0xBD, 0x3B, 0xB1,-
170 0xBF, 0x07, 0x35, 0x73, 0xDF, 0x88, 0x3D, 0x2C, 0x34, 0xF1, 0xEF, 0x45,-
171 0x1F, 0xD4, 0x6B, 0x50, 0x3F, 0x00,-
172 /* x */-
173 0x00, 0xC6, 0x85, 0x8E, 0x06, 0xB7, 0x04, 0x04, 0xE9, 0xCD, 0x9E, 0x3E,-
174 0xCB, 0x66, 0x23, 0x95, 0xB4, 0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x3F,-
175 0xB5, 0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D, 0xBA, 0xA1, 0x4B,-
176 0x5E, 0x77, 0xEF, 0xE7, 0x59, 0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0xFF,-
177 0xA8, 0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42, 0x9B, 0xF9, 0x7E,-
178 0x7E, 0x31, 0xC2, 0xE5, 0xBD, 0x66,-
179 /* y */-
180 0x01, 0x18, 0x39, 0x29, 0x6a, 0x78, 0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x8a,-
181 0x5f, 0xb4, 0x2c, 0x7d, 0x1b, 0xd9, 0x98, 0xf5, 0x44, 0x49, 0x57, 0x9b,-
182 0x44, 0x68, 0x17, 0xaf, 0xbd, 0x17, 0x27, 0x3e, 0x66, 0x2c, 0x97, 0xee,-
183 0x72, 0x99, 0x5e, 0xf4, 0x26, 0x40, 0xc5, 0x50, 0xb9, 0x01, 0x3f, 0xad,-
184 0x07, 0x61, 0x35, 0x3c, 0x70, 0x86, 0xa2, 0x72, 0xc2, 0x40, 0x88, 0xbe,-
185 0x94, 0x76, 0x9f, 0xd1, 0x66, 0x50,-
186 /* order */-
187 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
188 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
189 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x51, 0x86,-
190 0x87, 0x83, 0xBF, 0x2F, 0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09,-
191 0xA5, 0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C, 0x47, 0xAE, 0xBB, 0x6F,-
192 0xB7, 0x1E, 0x91, 0x38, 0x64, 0x09-
193 }-
194};-
195-
196/* the x9.62 prime curves (minus the nist prime curves) */-
197static const struct {-
198 EC_CURVE_DATA h;-
199 unsigned char data[20 + 24 * 6];-
200} _EC_X9_62_PRIME_192V2 = {-
201 {-
202 NID_X9_62_prime_field, 20, 24, 1-
203 },-
204 {-
205 /* seed */-
206 0x31, 0xA9, 0x2E, 0xE2, 0x02, 0x9F, 0xD1, 0x0D, 0x90, 0x1B, 0x11, 0x3E,-
207 0x99, 0x07, 0x10, 0xF0, 0xD2, 0x1A, 0xC6, 0xB6,-
208 /* p */-
209 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
210 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
211 /* a */-
212 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
213 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
214 /* b */-
215 0xCC, 0x22, 0xD6, 0xDF, 0xB9, 0x5C, 0x6B, 0x25, 0xE4, 0x9C, 0x0D, 0x63,-
216 0x64, 0xA4, 0xE5, 0x98, 0x0C, 0x39, 0x3A, 0xA2, 0x16, 0x68, 0xD9, 0x53,-
217 /* x */-
218 0xEE, 0xA2, 0xBA, 0xE7, 0xE1, 0x49, 0x78, 0x42, 0xF2, 0xDE, 0x77, 0x69,-
219 0xCF, 0xE9, 0xC9, 0x89, 0xC0, 0x72, 0xAD, 0x69, 0x6F, 0x48, 0x03, 0x4A,-
220 /* y */-
221 0x65, 0x74, 0xd1, 0x1d, 0x69, 0xb6, 0xec, 0x7a, 0x67, 0x2b, 0xb8, 0x2a,-
222 0x08, 0x3d, 0xf2, 0xf2, 0xb0, 0x84, 0x7d, 0xe9, 0x70, 0xb2, 0xde, 0x15,-
223 /* order */-
224 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,-
225 0x5F, 0xB1, 0xA7, 0x24, 0xDC, 0x80, 0x41, 0x86, 0x48, 0xD8, 0xDD, 0x31-
226 }-
227};-
228-
229static const struct {-
230 EC_CURVE_DATA h;-
231 unsigned char data[20 + 24 * 6];-
232} _EC_X9_62_PRIME_192V3 = {-
233 {-
234 NID_X9_62_prime_field, 20, 24, 1-
235 },-
236 {-
237 /* seed */-
238 0xC4, 0x69, 0x68, 0x44, 0x35, 0xDE, 0xB3, 0x78, 0xC4, 0xB6, 0x5C, 0xA9,-
239 0x59, 0x1E, 0x2A, 0x57, 0x63, 0x05, 0x9A, 0x2E,-
240 /* p */-
241 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
242 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
243 /* a */-
244 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
245 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
246 /* b */-
247 0x22, 0x12, 0x3D, 0xC2, 0x39, 0x5A, 0x05, 0xCA, 0xA7, 0x42, 0x3D, 0xAE,-
248 0xCC, 0xC9, 0x47, 0x60, 0xA7, 0xD4, 0x62, 0x25, 0x6B, 0xD5, 0x69, 0x16,-
249 /* x */-
250 0x7D, 0x29, 0x77, 0x81, 0x00, 0xC6, 0x5A, 0x1D, 0xA1, 0x78, 0x37, 0x16,-
251 0x58, 0x8D, 0xCE, 0x2B, 0x8B, 0x4A, 0xEE, 0x8E, 0x22, 0x8F, 0x18, 0x96,-
252 /* y */-
253 0x38, 0xa9, 0x0f, 0x22, 0x63, 0x73, 0x37, 0x33, 0x4b, 0x49, 0xdc, 0xb6,-
254 0x6a, 0x6d, 0xc8, 0xf9, 0x97, 0x8a, 0xca, 0x76, 0x48, 0xa9, 0x43, 0xb0,-
255 /* order */-
256 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
257 0x7A, 0x62, 0xD0, 0x31, 0xC8, 0x3F, 0x42, 0x94, 0xF6, 0x40, 0xEC, 0x13-
258 }-
259};-
260-
261static const struct {-
262 EC_CURVE_DATA h;-
263 unsigned char data[20 + 30 * 6];-
264} _EC_X9_62_PRIME_239V1 = {-
265 {-
266 NID_X9_62_prime_field, 20, 30, 1-
267 },-
268 {-
269 /* seed */-
270 0xE4, 0x3B, 0xB4, 0x60, 0xF0, 0xB8, 0x0C, 0xC0, 0xC0, 0xB0, 0x75, 0x79,-
271 0x8E, 0x94, 0x80, 0x60, 0xF8, 0x32, 0x1B, 0x7D,-
272 /* p */-
273 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
274 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
275 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
276 /* a */-
277 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
278 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
279 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
280 /* b */-
281 0x6B, 0x01, 0x6C, 0x3B, 0xDC, 0xF1, 0x89, 0x41, 0xD0, 0xD6, 0x54, 0x92,-
282 0x14, 0x75, 0xCA, 0x71, 0xA9, 0xDB, 0x2F, 0xB2, 0x7D, 0x1D, 0x37, 0x79,-
283 0x61, 0x85, 0xC2, 0x94, 0x2C, 0x0A,-
284 /* x */-
285 0x0F, 0xFA, 0x96, 0x3C, 0xDC, 0xA8, 0x81, 0x6C, 0xCC, 0x33, 0xB8, 0x64,-
286 0x2B, 0xED, 0xF9, 0x05, 0xC3, 0xD3, 0x58, 0x57, 0x3D, 0x3F, 0x27, 0xFB,-
287 0xBD, 0x3B, 0x3C, 0xB9, 0xAA, 0xAF,-
288 /* y */-
289 0x7d, 0xeb, 0xe8, 0xe4, 0xe9, 0x0a, 0x5d, 0xae, 0x6e, 0x40, 0x54, 0xca,-
290 0x53, 0x0b, 0xa0, 0x46, 0x54, 0xb3, 0x68, 0x18, 0xce, 0x22, 0x6b, 0x39,-
291 0xfc, 0xcb, 0x7b, 0x02, 0xf1, 0xae,-
292 /* order */-
293 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
294 0x7F, 0xFF, 0xFF, 0x9E, 0x5E, 0x9A, 0x9F, 0x5D, 0x90, 0x71, 0xFB, 0xD1,-
295 0x52, 0x26, 0x88, 0x90, 0x9D, 0x0B-
296 }-
297};-
298-
299static const struct {-
300 EC_CURVE_DATA h;-
301 unsigned char data[20 + 30 * 6];-
302} _EC_X9_62_PRIME_239V2 = {-
303 {-
304 NID_X9_62_prime_field, 20, 30, 1-
305 },-
306 {-
307 /* seed */-
308 0xE8, 0xB4, 0x01, 0x16, 0x04, 0x09, 0x53, 0x03, 0xCA, 0x3B, 0x80, 0x99,-
309 0x98, 0x2B, 0xE0, 0x9F, 0xCB, 0x9A, 0xE6, 0x16,-
310 /* p */-
311 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
312 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
313 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
314 /* a */-
315 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
316 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
317 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
318 /* b */-
319 0x61, 0x7F, 0xAB, 0x68, 0x32, 0x57, 0x6C, 0xBB, 0xFE, 0xD5, 0x0D, 0x99,-
320 0xF0, 0x24, 0x9C, 0x3F, 0xEE, 0x58, 0xB9, 0x4B, 0xA0, 0x03, 0x8C, 0x7A,-
321 0xE8, 0x4C, 0x8C, 0x83, 0x2F, 0x2C,-
322 /* x */-
323 0x38, 0xAF, 0x09, 0xD9, 0x87, 0x27, 0x70, 0x51, 0x20, 0xC9, 0x21, 0xBB,-
324 0x5E, 0x9E, 0x26, 0x29, 0x6A, 0x3C, 0xDC, 0xF2, 0xF3, 0x57, 0x57, 0xA0,-
325 0xEA, 0xFD, 0x87, 0xB8, 0x30, 0xE7,-
326 /* y */-
327 0x5b, 0x01, 0x25, 0xe4, 0xdb, 0xea, 0x0e, 0xc7, 0x20, 0x6d, 0xa0, 0xfc,-
328 0x01, 0xd9, 0xb0, 0x81, 0x32, 0x9f, 0xb5, 0x55, 0xde, 0x6e, 0xf4, 0x60,-
329 0x23, 0x7d, 0xff, 0x8b, 0xe4, 0xba,-
330 /* order */-
331 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
332 0x80, 0x00, 0x00, 0xCF, 0xA7, 0xE8, 0x59, 0x43, 0x77, 0xD4, 0x14, 0xC0,-
333 0x38, 0x21, 0xBC, 0x58, 0x20, 0x63-
334 }-
335};-
336-
337static const struct {-
338 EC_CURVE_DATA h;-
339 unsigned char data[20 + 30 * 6];-
340} _EC_X9_62_PRIME_239V3 = {-
341 {-
342 NID_X9_62_prime_field, 20, 30, 1-
343 },-
344 {-
345 /* seed */-
346 0x7D, 0x73, 0x74, 0x16, 0x8F, 0xFE, 0x34, 0x71, 0xB6, 0x0A, 0x85, 0x76,-
347 0x86, 0xA1, 0x94, 0x75, 0xD3, 0xBF, 0xA2, 0xFF,-
348 /* p */-
349 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
350 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
351 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
352 /* a */-
353 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
354 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,-
355 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
356 /* b */-
357 0x25, 0x57, 0x05, 0xFA, 0x2A, 0x30, 0x66, 0x54, 0xB1, 0xF4, 0xCB, 0x03,-
358 0xD6, 0xA7, 0x50, 0xA3, 0x0C, 0x25, 0x01, 0x02, 0xD4, 0x98, 0x87, 0x17,-
359 0xD9, 0xBA, 0x15, 0xAB, 0x6D, 0x3E,-
360 /* x */-
361 0x67, 0x68, 0xAE, 0x8E, 0x18, 0xBB, 0x92, 0xCF, 0xCF, 0x00, 0x5C, 0x94,-
362 0x9A, 0xA2, 0xC6, 0xD9, 0x48, 0x53, 0xD0, 0xE6, 0x60, 0xBB, 0xF8, 0x54,-
363 0xB1, 0xC9, 0x50, 0x5F, 0xE9, 0x5A,-
364 /* y */-
365 0x16, 0x07, 0xe6, 0x89, 0x8f, 0x39, 0x0c, 0x06, 0xbc, 0x1d, 0x55, 0x2b,-
366 0xad, 0x22, 0x6f, 0x3b, 0x6f, 0xcf, 0xe4, 0x8b, 0x6e, 0x81, 0x84, 0x99,-
367 0xaf, 0x18, 0xe3, 0xed, 0x6c, 0xf3,-
368 /* order */-
369 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
370 0x7F, 0xFF, 0xFF, 0x97, 0x5D, 0xEB, 0x41, 0xB3, 0xA6, 0x05, 0x7C, 0x3C,-
371 0x43, 0x21, 0x46, 0x52, 0x65, 0x51-
372 }-
373};-
374-
375static const struct {-
376 EC_CURVE_DATA h;-
377 unsigned char data[20 + 32 * 6];-
378} _EC_X9_62_PRIME_256V1 = {-
379 {-
380 NID_X9_62_prime_field, 20, 32, 1-
381 },-
382 {-
383 /* seed */-
384 0xC4, 0x9D, 0x36, 0x08, 0x86, 0xE7, 0x04, 0x93, 0x6A, 0x66, 0x78, 0xE1,-
385 0x13, 0x9D, 0x26, 0xB7, 0x81, 0x9F, 0x7E, 0x90,-
386 /* p */-
387 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,-
388 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,-
389 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
390 /* a */-
391 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,-
392 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,-
393 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,-
394 /* b */-
395 0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,-
396 0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,-
397 0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B,-
398 /* x */-
399 0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,-
400 0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,-
401 0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96,-
402 /* y */-
403 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x4a,-
404 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce,-
405 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5,-
406 /* order */-
407 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,-
408 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,-
409 0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51-
410 }-
411};-
412-
413/* the secg prime curves (minus the nist and x9.62 prime curves) */-
414static const struct {-
415 EC_CURVE_DATA h;-
416 unsigned char data[20 + 14 * 6];-
417} _EC_SECG_PRIME_112R1 = {-
418 {-
419 NID_X9_62_prime_field, 20, 14, 1-
420 },-
421 {-
422 /* seed */-
423 0x00, 0xF5, 0x0B, 0x02, 0x8E, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,-
424 0x51, 0x75, 0x29, 0x04, 0x72, 0x78, 0x3F, 0xB1,-
425 /* p */-
426 0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76, 0xBE, 0xAD,-
427 0x20, 0x8B,-
428 /* a */-
429 0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76, 0xBE, 0xAD,-
430 0x20, 0x88,-
431 /* b */-
432 0x65, 0x9E, 0xF8, 0xBA, 0x04, 0x39, 0x16, 0xEE, 0xDE, 0x89, 0x11, 0x70,-
433 0x2B, 0x22,-
434 /* x */-
435 0x09, 0x48, 0x72, 0x39, 0x99, 0x5A, 0x5E, 0xE7, 0x6B, 0x55, 0xF9, 0xC2,-
436 0xF0, 0x98,-
437 /* y */-
438 0xa8, 0x9c, 0xe5, 0xaf, 0x87, 0x24, 0xc0, 0xa2, 0x3e, 0x0e, 0x0f, 0xf7,-
439 0x75, 0x00,-
440 /* order */-
441 0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x76, 0x28, 0xDF, 0xAC, 0x65,-
442 0x61, 0xC5-
443 }-
444};-
445-
446static const struct {-
447 EC_CURVE_DATA h;-
448 unsigned char data[20 + 14 * 6];-
449} _EC_SECG_PRIME_112R2 = {-
450 {-
451 NID_X9_62_prime_field, 20, 14, 4-
452 },-
453 {-
454 /* seed */-
455 0x00, 0x27, 0x57, 0xA1, 0x11, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,-
456 0x51, 0x75, 0x53, 0x16, 0xC0, 0x5E, 0x0B, 0xD4,-
457 /* p */-
458 0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x66, 0x80, 0x76, 0xBE, 0xAD,-
459 0x20, 0x8B,-
460 /* a */-
461 0x61, 0x27, 0xC2, 0x4C, 0x05, 0xF3, 0x8A, 0x0A, 0xAA, 0xF6, 0x5C, 0x0E,-
462 0xF0, 0x2C,-
463 /* b */-
464 0x51, 0xDE, 0xF1, 0x81, 0x5D, 0xB5, 0xED, 0x74, 0xFC, 0xC3, 0x4C, 0x85,-
465 0xD7, 0x09,-
466 /* x */-
467 0x4B, 0xA3, 0x0A, 0xB5, 0xE8, 0x92, 0xB4, 0xE1, 0x64, 0x9D, 0xD0, 0x92,-
468 0x86, 0x43,-
469 /* y */-
470 0xad, 0xcd, 0x46, 0xf5, 0x88, 0x2e, 0x37, 0x47, 0xde, 0xf3, 0x6e, 0x95,-
471 0x6e, 0x97,-
472 /* order */-
473 0x36, 0xDF, 0x0A, 0xAF, 0xD8, 0xB8, 0xD7, 0x59, 0x7C, 0xA1, 0x05, 0x20,-
474 0xD0, 0x4B-
475 }-
476};-
477-
478static const struct {-
479 EC_CURVE_DATA h;-
480 unsigned char data[20 + 16 * 6];-
481} _EC_SECG_PRIME_128R1 = {-
482 {-
483 NID_X9_62_prime_field, 20, 16, 1-
484 },-
485 {-
486 /* seed */-
487 0x00, 0x0E, 0x0D, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,-
488 0x0C, 0xC0, 0x3A, 0x44, 0x73, 0xD0, 0x36, 0x79,-
489 /* p */-
490 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
491 0xFF, 0xFF, 0xFF, 0xFF,-
492 /* a */-
493 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
494 0xFF, 0xFF, 0xFF, 0xFC,-
495 /* b */-
496 0xE8, 0x75, 0x79, 0xC1, 0x10, 0x79, 0xF4, 0x3D, 0xD8, 0x24, 0x99, 0x3C,-
497 0x2C, 0xEE, 0x5E, 0xD3,-
498 /* x */-
499 0x16, 0x1F, 0xF7, 0x52, 0x8B, 0x89, 0x9B, 0x2D, 0x0C, 0x28, 0x60, 0x7C,-
500 0xA5, 0x2C, 0x5B, 0x86,-
501 /* y */-
502 0xcf, 0x5a, 0xc8, 0x39, 0x5b, 0xaf, 0xeb, 0x13, 0xc0, 0x2d, 0xa2, 0x92,-
503 0xdd, 0xed, 0x7a, 0x83,-
504 /* order */-
505 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x75, 0xA3, 0x0D, 0x1B,-
506 0x90, 0x38, 0xA1, 0x15-
507 }-
508};-
509-
510static const struct {-
511 EC_CURVE_DATA h;-
512 unsigned char data[20 + 16 * 6];-
513} _EC_SECG_PRIME_128R2 = {-
514 {-
515 NID_X9_62_prime_field, 20, 16, 4-
516 },-
517 {-
518 /* seed */-
519 0x00, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75, 0x12, 0xD8,-
520 0xF0, 0x34, 0x31, 0xFC, 0xE6, 0x3B, 0x88, 0xF4,-
521 /* p */-
522 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
523 0xFF, 0xFF, 0xFF, 0xFF,-
524 /* a */-
525 0xD6, 0x03, 0x19, 0x98, 0xD1, 0xB3, 0xBB, 0xFE, 0xBF, 0x59, 0xCC, 0x9B,-
526 0xBF, 0xF9, 0xAE, 0xE1,-
527 /* b */-
528 0x5E, 0xEE, 0xFC, 0xA3, 0x80, 0xD0, 0x29, 0x19, 0xDC, 0x2C, 0x65, 0x58,-
529 0xBB, 0x6D, 0x8A, 0x5D,-
530 /* x */-
531 0x7B, 0x6A, 0xA5, 0xD8, 0x5E, 0x57, 0x29, 0x83, 0xE6, 0xFB, 0x32, 0xA7,-
532 0xCD, 0xEB, 0xC1, 0x40,-
533 /* y */-
534 0x27, 0xb6, 0x91, 0x6a, 0x89, 0x4d, 0x3a, 0xee, 0x71, 0x06, 0xfe, 0x80,-
535 0x5f, 0xc3, 0x4b, 0x44,-
536 /* order */-
537 0x3F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xBE, 0x00, 0x24, 0x72,-
538 0x06, 0x13, 0xB5, 0xA3-
539 }-
540};-
541-
542static const struct {-
543 EC_CURVE_DATA h;-
544 unsigned char data[0 + 21 * 6];-
545} _EC_SECG_PRIME_160K1 = {-
546 {-
547 NID_X9_62_prime_field, 0, 21, 1-
548 },-
549 {-
550 /* no seed */-
551 /* p */-
552 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
553 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x73,-
554 /* a */-
555 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
557 /* b */-
558 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
559 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,-
560 /* x */-
561 0x00, 0x3B, 0x4C, 0x38, 0x2C, 0xE3, 0x7A, 0xA1, 0x92, 0xA4, 0x01, 0x9E,-
562 0x76, 0x30, 0x36, 0xF4, 0xF5, 0xDD, 0x4D, 0x7E, 0xBB,-
563 /* y */-
564 0x00, 0x93, 0x8c, 0xf9, 0x35, 0x31, 0x8f, 0xdc, 0xed, 0x6b, 0xc2, 0x82,-
565 0x86, 0x53, 0x17, 0x33, 0xc3, 0xf0, 0x3c, 0x4f, 0xee,-
566 /* order */-
567 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xB8,-
568 0xFA, 0x16, 0xDF, 0xAB, 0x9A, 0xCA, 0x16, 0xB6, 0xB3-
569 }-
570};-
571-
572static const struct {-
573 EC_CURVE_DATA h;-
574 unsigned char data[20 + 21 * 6];-
575} _EC_SECG_PRIME_160R1 = {-
576 {-
577 NID_X9_62_prime_field, 20, 21, 1-
578 },-
579 {-
580 /* seed */-
581 0x10, 0x53, 0xCD, 0xE4, 0x2C, 0x14, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
582 0x15, 0x17, 0x53, 0x3B, 0xF3, 0xF8, 0x33, 0x45,-
583 /* p */-
584 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
585 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF,-
586 /* a */-
587 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
588 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFC,-
589 /* b */-
590 0x00, 0x1C, 0x97, 0xBE, 0xFC, 0x54, 0xBD, 0x7A, 0x8B, 0x65, 0xAC, 0xF8,-
591 0x9F, 0x81, 0xD4, 0xD4, 0xAD, 0xC5, 0x65, 0xFA, 0x45,-
592 /* x */-
593 0x00, 0x4A, 0x96, 0xB5, 0x68, 0x8E, 0xF5, 0x73, 0x28, 0x46, 0x64, 0x69,-
594 0x89, 0x68, 0xC3, 0x8B, 0xB9, 0x13, 0xCB, 0xFC, 0x82,-
595 /* y */-
596 0x00, 0x23, 0xa6, 0x28, 0x55, 0x31, 0x68, 0x94, 0x7d, 0x59, 0xdc, 0xc9,-
597 0x12, 0x04, 0x23, 0x51, 0x37, 0x7a, 0xc5, 0xfb, 0x32,-
598 /* order */-
599 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF4,-
600 0xC8, 0xF9, 0x27, 0xAE, 0xD3, 0xCA, 0x75, 0x22, 0x57-
601 }-
602};-
603-
604static const struct {-
605 EC_CURVE_DATA h;-
606 unsigned char data[20 + 21 * 6];-
607} _EC_SECG_PRIME_160R2 = {-
608 {-
609 NID_X9_62_prime_field, 20, 21, 1-
610 },-
611 {-
612 /* seed */-
613 0xB9, 0x9B, 0x99, 0xB0, 0x99, 0xB3, 0x23, 0xE0, 0x27, 0x09, 0xA4, 0xD6,-
614 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x51,-
615 /* p */-
616 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
617 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x73,-
618 /* a */-
619 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
620 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x70,-
621 /* b */-
622 0x00, 0xB4, 0xE1, 0x34, 0xD3, 0xFB, 0x59, 0xEB, 0x8B, 0xAB, 0x57, 0x27,-
623 0x49, 0x04, 0x66, 0x4D, 0x5A, 0xF5, 0x03, 0x88, 0xBA,-
624 /* x */-
625 0x00, 0x52, 0xDC, 0xB0, 0x34, 0x29, 0x3A, 0x11, 0x7E, 0x1F, 0x4F, 0xF1,-
626 0x1B, 0x30, 0xF7, 0x19, 0x9D, 0x31, 0x44, 0xCE, 0x6D,-
627 /* y */-
628 0x00, 0xfe, 0xaf, 0xfe, 0xf2, 0xe3, 0x31, 0xf2, 0x96, 0xe0, 0x71, 0xfa,-
629 0x0d, 0xf9, 0x98, 0x2c, 0xfe, 0xa7, 0xd4, 0x3f, 0x2e,-
630 /* order */-
631 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35,-
632 0x1E, 0xE7, 0x86, 0xA8, 0x18, 0xF3, 0xA1, 0xA1, 0x6B-
633 }-
634};-
635-
636static const struct {-
637 EC_CURVE_DATA h;-
638 unsigned char data[0 + 24 * 6];-
639} _EC_SECG_PRIME_192K1 = {-
640 {-
641 NID_X9_62_prime_field, 0, 24, 1-
642 },-
643 {-
644 /* no seed */-
645 /* p */-
646 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
647 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEE, 0x37,-
648 /* a */-
649 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
650 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
651 /* b */-
652 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
653 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,-
654 /* x */-
655 0xDB, 0x4F, 0xF1, 0x0E, 0xC0, 0x57, 0xE9, 0xAE, 0x26, 0xB0, 0x7D, 0x02,-
656 0x80, 0xB7, 0xF4, 0x34, 0x1D, 0xA5, 0xD1, 0xB1, 0xEA, 0xE0, 0x6C, 0x7D,-
657 /* y */-
658 0x9b, 0x2f, 0x2f, 0x6d, 0x9c, 0x56, 0x28, 0xa7, 0x84, 0x41, 0x63, 0xd0,-
659 0x15, 0xbe, 0x86, 0x34, 0x40, 0x82, 0xaa, 0x88, 0xd9, 0x5e, 0x2f, 0x9d,-
660 /* order */-
661 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,-
662 0x26, 0xF2, 0xFC, 0x17, 0x0F, 0x69, 0x46, 0x6A, 0x74, 0xDE, 0xFD, 0x8D-
663 }-
664};-
665-
666static const struct {-
667 EC_CURVE_DATA h;-
668 unsigned char data[0 + 29 * 6];-
669} _EC_SECG_PRIME_224K1 = {-
670 {-
671 NID_X9_62_prime_field, 0, 29, 1-
672 },-
673 {-
674 /* no seed */-
675 /* p */-
676 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
677 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
678 0xFE, 0xFF, 0xFF, 0xE5, 0x6D,-
679 /* a */-
680 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
681 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
682 0x00, 0x00, 0x00, 0x00, 0x00,-
683 /* b */-
684 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
685 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
686 0x00, 0x00, 0x00, 0x00, 0x05,-
687 /* x */-
688 0x00, 0xA1, 0x45, 0x5B, 0x33, 0x4D, 0xF0, 0x99, 0xDF, 0x30, 0xFC, 0x28,-
689 0xA1, 0x69, 0xA4, 0x67, 0xE9, 0xE4, 0x70, 0x75, 0xA9, 0x0F, 0x7E, 0x65,-
690 0x0E, 0xB6, 0xB7, 0xA4, 0x5C,-
691 /* y */-
692 0x00, 0x7e, 0x08, 0x9f, 0xed, 0x7f, 0xba, 0x34, 0x42, 0x82, 0xca, 0xfb,-
693 0xd6, 0xf7, 0xe3, 0x19, 0xf7, 0xc0, 0xb0, 0xbd, 0x59, 0xe2, 0xca, 0x4b,-
694 0xdb, 0x55, 0x6d, 0x61, 0xa5,-
695 /* order */-
696 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
697 0x00, 0x00, 0x01, 0xDC, 0xE8, 0xD2, 0xEC, 0x61, 0x84, 0xCA, 0xF0, 0xA9,-
698 0x71, 0x76, 0x9F, 0xB1, 0xF7-
699 }-
700};-
701-
702static const struct {-
703 EC_CURVE_DATA h;-
704 unsigned char data[0 + 32 * 6];-
705} _EC_SECG_PRIME_256K1 = {-
706 {-
707 NID_X9_62_prime_field, 0, 32, 1-
708 },-
709 {-
710 /* no seed */-
711 /* p */-
712 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
713 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
714 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x2F,-
715 /* a */-
716 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
717 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
718 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
719 /* b */-
720 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
721 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
722 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,-
723 /* x */-
724 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95,-
725 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9,-
726 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98,-
727 /* y */-
728 0x48, 0x3a, 0xda, 0x77, 0x26, 0xa3, 0xc4, 0x65, 0x5d, 0xa4, 0xfb, 0xfc,-
729 0x0e, 0x11, 0x08, 0xa8, 0xfd, 0x17, 0xb4, 0x48, 0xa6, 0x85, 0x54, 0x19,-
730 0x9c, 0x47, 0xd0, 0x8f, 0xfb, 0x10, 0xd4, 0xb8,-
731 /* order */-
732 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
733 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B,-
734 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41-
735 }-
736};-
737-
738/* some wap/wtls curves */-
739static const struct {-
740 EC_CURVE_DATA h;-
741 unsigned char data[0 + 15 * 6];-
742} _EC_WTLS_8 = {-
743 {-
744 NID_X9_62_prime_field, 0, 15, 1-
745 },-
746 {-
747 /* no seed */-
748 /* p */-
749 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
750 0xFF, 0xFD, 0xE7,-
751 /* a */-
752 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
753 0x00, 0x00, 0x00,-
754 /* b */-
755 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
756 0x00, 0x00, 0x03,-
757 /* x */-
758 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
759 0x00, 0x00, 0x01,-
760 /* y */-
761 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
762 0x00, 0x00, 0x02,-
763 /* order */-
764 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEC, 0xEA, 0x55, 0x1A,-
765 0xD8, 0x37, 0xE9-
766 }-
767};-
768-
769static const struct {-
770 EC_CURVE_DATA h;-
771 unsigned char data[0 + 21 * 6];-
772} _EC_WTLS_9 = {-
773 {-
774 NID_X9_62_prime_field, 0, 21, 1-
775 },-
776 {-
777 /* no seed */-
778 /* p */-
779 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
780 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x80, 0x8F,-
781 /* a */-
782 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
783 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
784 /* b */-
785 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
786 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,-
787 /* x */-
788 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
789 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
790 /* y */-
791 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
792 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,-
793 /* order */-
794 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCD,-
795 0xC9, 0x8A, 0xE0, 0xE2, 0xDE, 0x57, 0x4A, 0xBF, 0x33-
796 }-
797};-
798-
799static const struct {-
800 EC_CURVE_DATA h;-
801 unsigned char data[0 + 28 * 6];-
802} _EC_WTLS_12 = {-
803 {-
804 NID_X9_62_prime_field, 0, 28, 1-
805 },-
806 {-
807 /* no seed */-
808 /* p */-
809 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
810 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
811 0x00, 0x00, 0x00, 0x01,-
812 /* a */-
813 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
814 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
815 0xFF, 0xFF, 0xFF, 0xFE,-
816 /* b */-
817 0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5, 0x41, 0x32, 0x56,-
818 0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA, 0x27, 0x0B, 0x39, 0x43,-
819 0x23, 0x55, 0xFF, 0xB4,-
820 /* x */-
821 0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90, 0xB9,-
822 0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xD6,-
823 0x11, 0x5C, 0x1D, 0x21,-
824 /* y */-
825 0xbd, 0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,-
826 0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5, 0x81, 0x99,-
827 0x85, 0x00, 0x7e, 0x34,-
828 /* order */-
829 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
830 0xFF, 0xFF, 0x16, 0xA2, 0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,-
831 0x5C, 0x5C, 0x2A, 0x3D-
832 }-
833};-
834-
835#ifndef OPENSSL_NO_EC2M-
836-
837/* characteristic two curves */-
838static const struct {-
839 EC_CURVE_DATA h;-
840 unsigned char data[20 + 15 * 6];-
841} _EC_SECG_CHAR2_113R1 = {-
842 {-
843 NID_X9_62_characteristic_two_field, 20, 15, 2-
844 },-
845 {-
846 /* seed */-
847 0x10, 0xE7, 0x23, 0xAB, 0x14, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15,-
848 0x17, 0x56, 0xFE, 0xBF, 0x8F, 0xCB, 0x49, 0xA9,-
849 /* p */-
850 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
851 0x00, 0x02, 0x01,-
852 /* a */-
853 0x00, 0x30, 0x88, 0x25, 0x0C, 0xA6, 0xE7, 0xC7, 0xFE, 0x64, 0x9C, 0xE8,-
854 0x58, 0x20, 0xF7,-
855 /* b */-
856 0x00, 0xE8, 0xBE, 0xE4, 0xD3, 0xE2, 0x26, 0x07, 0x44, 0x18, 0x8B, 0xE0,-
857 0xE9, 0xC7, 0x23,-
858 /* x */-
859 0x00, 0x9D, 0x73, 0x61, 0x6F, 0x35, 0xF4, 0xAB, 0x14, 0x07, 0xD7, 0x35,-
860 0x62, 0xC1, 0x0F,-
861 /* y */-
862 0x00, 0xA5, 0x28, 0x30, 0x27, 0x79, 0x58, 0xEE, 0x84, 0xD1, 0x31, 0x5E,-
863 0xD3, 0x18, 0x86,-
864 /* order */-
865 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xCC, 0xEC, 0x8A,-
866 0x39, 0xE5, 0x6F-
867 }-
868};-
869-
870static const struct {-
871 EC_CURVE_DATA h;-
872 unsigned char data[20 + 15 * 6];-
873} _EC_SECG_CHAR2_113R2 = {-
874 {-
875 NID_X9_62_characteristic_two_field, 20, 15, 2-
876 },-
877 {-
878 /* seed */-
879 0x10, 0xC0, 0xFB, 0x15, 0x76, 0x08, 0x60, 0xDE, 0xF1, 0xEE, 0xF4, 0xD6,-
880 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x5D,-
881 /* p */-
882 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
883 0x00, 0x02, 0x01,-
884 /* a */-
885 0x00, 0x68, 0x99, 0x18, 0xDB, 0xEC, 0x7E, 0x5A, 0x0D, 0xD6, 0xDF, 0xC0,-
886 0xAA, 0x55, 0xC7,-
887 /* b */-
888 0x00, 0x95, 0xE9, 0xA9, 0xEC, 0x9B, 0x29, 0x7B, 0xD4, 0xBF, 0x36, 0xE0,-
889 0x59, 0x18, 0x4F,-
890 /* x */-
891 0x01, 0xA5, 0x7A, 0x6A, 0x7B, 0x26, 0xCA, 0x5E, 0xF5, 0x2F, 0xCD, 0xB8,-
892 0x16, 0x47, 0x97,-
893 /* y */-
894 0x00, 0xB3, 0xAD, 0xC9, 0x4E, 0xD1, 0xFE, 0x67, 0x4C, 0x06, 0xE6, 0x95,-
895 0xBA, 0xBA, 0x1D,-
896 /* order */-
897 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x78, 0x9B, 0x24,-
898 0x96, 0xAF, 0x93-
899 }-
900};-
901-
902static const struct {-
903 EC_CURVE_DATA h;-
904 unsigned char data[20 + 17 * 6];-
905} _EC_SECG_CHAR2_131R1 = {-
906 {-
907 NID_X9_62_characteristic_two_field, 20, 17, 2-
908 },-
909 {-
910 /* seed */-
911 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75, 0x98, 0x5B, 0xD3,-
912 0xAD, 0xBA, 0xDA, 0x21, 0xB4, 0x3A, 0x97, 0xE2,-
913 /* p */-
914 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
915 0x00, 0x00, 0x00, 0x01, 0x0D,-
916 /* a */-
917 0x07, 0xA1, 0x1B, 0x09, 0xA7, 0x6B, 0x56, 0x21, 0x44, 0x41, 0x8F, 0xF3,-
918 0xFF, 0x8C, 0x25, 0x70, 0xB8,-
919 /* b */-
920 0x02, 0x17, 0xC0, 0x56, 0x10, 0x88, 0x4B, 0x63, 0xB9, 0xC6, 0xC7, 0x29,-
921 0x16, 0x78, 0xF9, 0xD3, 0x41,-
922 /* x */-
923 0x00, 0x81, 0xBA, 0xF9, 0x1F, 0xDF, 0x98, 0x33, 0xC4, 0x0F, 0x9C, 0x18,-
924 0x13, 0x43, 0x63, 0x83, 0x99,-
925 /* y */-
926 0x07, 0x8C, 0x6E, 0x7E, 0xA3, 0x8C, 0x00, 0x1F, 0x73, 0xC8, 0x13, 0x4B,-
927 0x1B, 0x4E, 0xF9, 0xE1, 0x50,-
928 /* order */-
929 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x31, 0x23, 0x95,-
930 0x3A, 0x94, 0x64, 0xB5, 0x4D-
931 }-
932};-
933-
934static const struct {-
935 EC_CURVE_DATA h;-
936 unsigned char data[20 + 17 * 6];-
937} _EC_SECG_CHAR2_131R2 = {-
938 {-
939 NID_X9_62_characteristic_two_field, 20, 17, 2-
940 },-
941 {-
942 /* seed */-
943 0x98, 0x5B, 0xD3, 0xAD, 0xBA, 0xD4, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
944 0x15, 0x17, 0x5A, 0x21, 0xB4, 0x3A, 0x97, 0xE3,-
945 /* p */-
946 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
947 0x00, 0x00, 0x00, 0x01, 0x0D,-
948 /* a */-
949 0x03, 0xE5, 0xA8, 0x89, 0x19, 0xD7, 0xCA, 0xFC, 0xBF, 0x41, 0x5F, 0x07,-
950 0xC2, 0x17, 0x65, 0x73, 0xB2,-
951 /* b */-
952 0x04, 0xB8, 0x26, 0x6A, 0x46, 0xC5, 0x56, 0x57, 0xAC, 0x73, 0x4C, 0xE3,-
953 0x8F, 0x01, 0x8F, 0x21, 0x92,-
954 /* x */-
955 0x03, 0x56, 0xDC, 0xD8, 0xF2, 0xF9, 0x50, 0x31, 0xAD, 0x65, 0x2D, 0x23,-
956 0x95, 0x1B, 0xB3, 0x66, 0xA8,-
957 /* y */-
958 0x06, 0x48, 0xF0, 0x6D, 0x86, 0x79, 0x40, 0xA5, 0x36, 0x6D, 0x9E, 0x26,-
959 0x5D, 0xE9, 0xEB, 0x24, 0x0F,-
960 /* order */-
961 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x69, 0x54, 0xA2,-
962 0x33, 0x04, 0x9B, 0xA9, 0x8F-
963 }-
964};-
965-
966static const struct {-
967 EC_CURVE_DATA h;-
968 unsigned char data[0 + 21 * 6];-
969} _EC_NIST_CHAR2_163K = {-
970 {-
971 NID_X9_62_characteristic_two_field, 0, 21, 2-
972 },-
973 {-
974 /* no seed */-
975 /* p */-
976 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
977 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,-
978 /* a */-
979 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
980 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
981 /* b */-
982 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
983 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
984 /* x */-
985 0x02, 0xFE, 0x13, 0xC0, 0x53, 0x7B, 0xBC, 0x11, 0xAC, 0xAA, 0x07, 0xD7,-
986 0x93, 0xDE, 0x4E, 0x6D, 0x5E, 0x5C, 0x94, 0xEE, 0xE8,-
987 /* y */-
988 0x02, 0x89, 0x07, 0x0F, 0xB0, 0x5D, 0x38, 0xFF, 0x58, 0x32, 0x1F, 0x2E,-
989 0x80, 0x05, 0x36, 0xD5, 0x38, 0xCC, 0xDA, 0xA3, 0xD9,-
990 /* order */-
991 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,-
992 0x08, 0xA2, 0xE0, 0xCC, 0x0D, 0x99, 0xF8, 0xA5, 0xEF-
993 }-
994};-
995-
996static const struct {-
997 EC_CURVE_DATA h;-
998 unsigned char data[0 + 21 * 6];-
999} _EC_SECG_CHAR2_163R1 = {-
1000 {-
1001 NID_X9_62_characteristic_two_field, 0, 21, 2-
1002 },-
1003 {-
1004 /* p */-
1005 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1006 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,-
1007 /* a */-
1008 0x07, 0xB6, 0x88, 0x2C, 0xAA, 0xEF, 0xA8, 0x4F, 0x95, 0x54, 0xFF, 0x84,-
1009 0x28, 0xBD, 0x88, 0xE2, 0x46, 0xD2, 0x78, 0x2A, 0xE2,-
1010 /* b */-
1011 0x07, 0x13, 0x61, 0x2D, 0xCD, 0xDC, 0xB4, 0x0A, 0xAB, 0x94, 0x6B, 0xDA,-
1012 0x29, 0xCA, 0x91, 0xF7, 0x3A, 0xF9, 0x58, 0xAF, 0xD9,-
1013 /* x */-
1014 0x03, 0x69, 0x97, 0x96, 0x97, 0xAB, 0x43, 0x89, 0x77, 0x89, 0x56, 0x67,-
1015 0x89, 0x56, 0x7F, 0x78, 0x7A, 0x78, 0x76, 0xA6, 0x54,-
1016 /* y */-
1017 0x00, 0x43, 0x5E, 0xDB, 0x42, 0xEF, 0xAF, 0xB2, 0x98, 0x9D, 0x51, 0xFE,-
1018 0xFC, 0xE3, 0xC8, 0x09, 0x88, 0xF4, 0x1F, 0xF8, 0x83,-
1019 /* order */-
1020 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x48,-
1021 0xAA, 0xB6, 0x89, 0xC2, 0x9C, 0xA7, 0x10, 0x27, 0x9B-
1022 }-
1023};-
1024-
1025static const struct {-
1026 EC_CURVE_DATA h;-
1027 unsigned char data[0 + 21 * 6];-
1028} _EC_NIST_CHAR2_163B = {-
1029 {-
1030 NID_X9_62_characteristic_two_field, 0, 21, 2-
1031 },-
1032 {-
1033 /* p */-
1034 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1035 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9,-
1036 /* a */-
1037 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1038 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1039 /* b */-
1040 0x02, 0x0A, 0x60, 0x19, 0x07, 0xB8, 0xC9, 0x53, 0xCA, 0x14, 0x81, 0xEB,-
1041 0x10, 0x51, 0x2F, 0x78, 0x74, 0x4A, 0x32, 0x05, 0xFD,-
1042 /* x */-
1043 0x03, 0xF0, 0xEB, 0xA1, 0x62, 0x86, 0xA2, 0xD5, 0x7E, 0xA0, 0x99, 0x11,-
1044 0x68, 0xD4, 0x99, 0x46, 0x37, 0xE8, 0x34, 0x3E, 0x36,-
1045 /* y */-
1046 0x00, 0xD5, 0x1F, 0xBC, 0x6C, 0x71, 0xA0, 0x09, 0x4F, 0xA2, 0xCD, 0xD5,-
1047 0x45, 0xB1, 0x1C, 0x5C, 0x0C, 0x79, 0x73, 0x24, 0xF1,-
1048 /* order */-
1049 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x92,-
1050 0xFE, 0x77, 0xE7, 0x0C, 0x12, 0xA4, 0x23, 0x4C, 0x33-
1051 }-
1052};-
1053-
1054static const struct {-
1055 EC_CURVE_DATA h;-
1056 unsigned char data[20 + 25 * 6];-
1057} _EC_SECG_CHAR2_193R1 = {-
1058 {-
1059 NID_X9_62_characteristic_two_field, 20, 25, 2-
1060 },-
1061 {-
1062 /* seed */-
1063 0x10, 0x3F, 0xAE, 0xC7, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51,-
1064 0x75, 0x77, 0x7F, 0xC5, 0xB1, 0x91, 0xEF, 0x30,-
1065 /* p */-
1066 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1067 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,-
1068 0x01,-
1069 /* a */-
1070 0x00, 0x17, 0x85, 0x8F, 0xEB, 0x7A, 0x98, 0x97, 0x51, 0x69, 0xE1, 0x71,-
1071 0xF7, 0x7B, 0x40, 0x87, 0xDE, 0x09, 0x8A, 0xC8, 0xA9, 0x11, 0xDF, 0x7B,-
1072 0x01,-
1073 /* b */-
1074 0x00, 0xFD, 0xFB, 0x49, 0xBF, 0xE6, 0xC3, 0xA8, 0x9F, 0xAC, 0xAD, 0xAA,-
1075 0x7A, 0x1E, 0x5B, 0xBC, 0x7C, 0xC1, 0xC2, 0xE5, 0xD8, 0x31, 0x47, 0x88,-
1076 0x14,-
1077 /* x */-
1078 0x01, 0xF4, 0x81, 0xBC, 0x5F, 0x0F, 0xF8, 0x4A, 0x74, 0xAD, 0x6C, 0xDF,-
1079 0x6F, 0xDE, 0xF4, 0xBF, 0x61, 0x79, 0x62, 0x53, 0x72, 0xD8, 0xC0, 0xC5,-
1080 0xE1,-
1081 /* y */-
1082 0x00, 0x25, 0xE3, 0x99, 0xF2, 0x90, 0x37, 0x12, 0xCC, 0xF3, 0xEA, 0x9E,-
1083 0x3A, 0x1A, 0xD1, 0x7F, 0xB0, 0xB3, 0x20, 0x1B, 0x6A, 0xF7, 0xCE, 0x1B,-
1084 0x05,-
1085 /* order */-
1086 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1087 0x00, 0xC7, 0xF3, 0x4A, 0x77, 0x8F, 0x44, 0x3A, 0xCC, 0x92, 0x0E, 0xBA,-
1088 0x49-
1089 }-
1090};-
1091-
1092static const struct {-
1093 EC_CURVE_DATA h;-
1094 unsigned char data[20 + 25 * 6];-
1095} _EC_SECG_CHAR2_193R2 = {-
1096 {-
1097 NID_X9_62_characteristic_two_field, 20, 25, 2-
1098 },-
1099 {-
1100 /* seed */-
1101 0x10, 0xB7, 0xB4, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x51,-
1102 0x37, 0xC8, 0xA1, 0x6F, 0xD0, 0xDA, 0x22, 0x11,-
1103 /* p */-
1104 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,-
1106 0x01,-
1107 /* a */-
1108 0x01, 0x63, 0xF3, 0x5A, 0x51, 0x37, 0xC2, 0xCE, 0x3E, 0xA6, 0xED, 0x86,-
1109 0x67, 0x19, 0x0B, 0x0B, 0xC4, 0x3E, 0xCD, 0x69, 0x97, 0x77, 0x02, 0x70,-
1110 0x9B,-
1111 /* b */-
1112 0x00, 0xC9, 0xBB, 0x9E, 0x89, 0x27, 0xD4, 0xD6, 0x4C, 0x37, 0x7E, 0x2A,-
1113 0xB2, 0x85, 0x6A, 0x5B, 0x16, 0xE3, 0xEF, 0xB7, 0xF6, 0x1D, 0x43, 0x16,-
1114 0xAE,-
1115 /* x */-
1116 0x00, 0xD9, 0xB6, 0x7D, 0x19, 0x2E, 0x03, 0x67, 0xC8, 0x03, 0xF3, 0x9E,-
1117 0x1A, 0x7E, 0x82, 0xCA, 0x14, 0xA6, 0x51, 0x35, 0x0A, 0xAE, 0x61, 0x7E,-
1118 0x8F,-
1119 /* y */-
1120 0x01, 0xCE, 0x94, 0x33, 0x56, 0x07, 0xC3, 0x04, 0xAC, 0x29, 0xE7, 0xDE,-
1121 0xFB, 0xD9, 0xCA, 0x01, 0xF5, 0x96, 0xF9, 0x27, 0x22, 0x4C, 0xDE, 0xCF,-
1122 0x6C,-
1123 /* order */-
1124 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1125 0x01, 0x5A, 0xAB, 0x56, 0x1B, 0x00, 0x54, 0x13, 0xCC, 0xD4, 0xEE, 0x99,-
1126 0xD5-
1127 }-
1128};-
1129-
1130static const struct {-
1131 EC_CURVE_DATA h;-
1132 unsigned char data[0 + 30 * 6];-
1133} _EC_NIST_CHAR2_233K = {-
1134 {-
1135 NID_X9_62_characteristic_two_field, 0, 30, 4-
1136 },-
1137 {-
1138 /* no seed */-
1139 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,-
1141 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1142 /* a */-
1143 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1146 /* b */-
1147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1149 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1150 /* x */-
1151 0x01, 0x72, 0x32, 0xBA, 0x85, 0x3A, 0x7E, 0x73, 0x1A, 0xF1, 0x29, 0xF2,-
1152 0x2F, 0xF4, 0x14, 0x95, 0x63, 0xA4, 0x19, 0xC2, 0x6B, 0xF5, 0x0A, 0x4C,-
1153 0x9D, 0x6E, 0xEF, 0xAD, 0x61, 0x26,-
1154 /* y */-
1155 0x01, 0xDB, 0x53, 0x7D, 0xEC, 0xE8, 0x19, 0xB7, 0xF7, 0x0F, 0x55, 0x5A,-
1156 0x67, 0xC4, 0x27, 0xA8, 0xCD, 0x9B, 0xF1, 0x8A, 0xEB, 0x9B, 0x56, 0xE0,-
1157 0xC1, 0x10, 0x56, 0xFA, 0xE6, 0xA3,-
1158 /* order */-
1159 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1160 0x00, 0x00, 0x00, 0x06, 0x9D, 0x5B, 0xB9, 0x15, 0xBC, 0xD4, 0x6E, 0xFB,-
1161 0x1A, 0xD5, 0xF1, 0x73, 0xAB, 0xDF-
1162 }-
1163};-
1164-
1165static const struct {-
1166 EC_CURVE_DATA h;-
1167 unsigned char data[20 + 30 * 6];-
1168} _EC_NIST_CHAR2_233B = {-
1169 {-
1170 NID_X9_62_characteristic_two_field, 20, 30, 2-
1171 },-
1172 {-
1173 /* seed */-
1174 0x74, 0xD5, 0x9F, 0xF0, 0x7F, 0x6B, 0x41, 0x3D, 0x0E, 0xA1, 0x4B, 0x34,-
1175 0x4B, 0x20, 0xA2, 0xDB, 0x04, 0x9B, 0x50, 0xC3,-
1176 /* p */-
1177 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,-
1179 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1180 /* a */-
1181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1183 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1184 /* b */-
1185 0x00, 0x66, 0x64, 0x7E, 0xDE, 0x6C, 0x33, 0x2C, 0x7F, 0x8C, 0x09, 0x23,-
1186 0xBB, 0x58, 0x21, 0x3B, 0x33, 0x3B, 0x20, 0xE9, 0xCE, 0x42, 0x81, 0xFE,-
1187 0x11, 0x5F, 0x7D, 0x8F, 0x90, 0xAD,-
1188 /* x */-
1189 0x00, 0xFA, 0xC9, 0xDF, 0xCB, 0xAC, 0x83, 0x13, 0xBB, 0x21, 0x39, 0xF1,-
1190 0xBB, 0x75, 0x5F, 0xEF, 0x65, 0xBC, 0x39, 0x1F, 0x8B, 0x36, 0xF8, 0xF8,-
1191 0xEB, 0x73, 0x71, 0xFD, 0x55, 0x8B,-
1192 /* y */-
1193 0x01, 0x00, 0x6A, 0x08, 0xA4, 0x19, 0x03, 0x35, 0x06, 0x78, 0xE5, 0x85,-
1194 0x28, 0xBE, 0xBF, 0x8A, 0x0B, 0xEF, 0xF8, 0x67, 0xA7, 0xCA, 0x36, 0x71,-
1195 0x6F, 0x7E, 0x01, 0xF8, 0x10, 0x52,-
1196 /* order */-
1197 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1198 0x00, 0x00, 0x00, 0x13, 0xE9, 0x74, 0xE7, 0x2F, 0x8A, 0x69, 0x22, 0x03,-
1199 0x1D, 0x26, 0x03, 0xCF, 0xE0, 0xD7-
1200 }-
1201};-
1202-
1203static const struct {-
1204 EC_CURVE_DATA h;-
1205 unsigned char data[0 + 30 * 6];-
1206} _EC_SECG_CHAR2_239K1 = {-
1207 {-
1208 NID_X9_62_characteristic_two_field, 0, 30, 4-
1209 },-
1210 {-
1211 /* no seed */-
1212 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,-
1213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1214 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1215 /* a */-
1216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1219 /* b */-
1220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1222 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1223 /* x */-
1224 0x29, 0xA0, 0xB6, 0xA8, 0x87, 0xA9, 0x83, 0xE9, 0x73, 0x09, 0x88, 0xA6,-
1225 0x87, 0x27, 0xA8, 0xB2, 0xD1, 0x26, 0xC4, 0x4C, 0xC2, 0xCC, 0x7B, 0x2A,-
1226 0x65, 0x55, 0x19, 0x30, 0x35, 0xDC,-
1227 /* y */-
1228 0x76, 0x31, 0x08, 0x04, 0xF1, 0x2E, 0x54, 0x9B, 0xDB, 0x01, 0x1C, 0x10,-
1229 0x30, 0x89, 0xE7, 0x35, 0x10, 0xAC, 0xB2, 0x75, 0xFC, 0x31, 0x2A, 0x5D,-
1230 0xC6, 0xB7, 0x65, 0x53, 0xF0, 0xCA,-
1231 /* order */-
1232 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1233 0x00, 0x00, 0x00, 0x5A, 0x79, 0xFE, 0xC6, 0x7C, 0xB6, 0xE9, 0x1F, 0x1C,-
1234 0x1D, 0xA8, 0x00, 0xE4, 0x78, 0xA5-
1235 }-
1236};-
1237-
1238static const struct {-
1239 EC_CURVE_DATA h;-
1240 unsigned char data[0 + 36 * 6];-
1241} _EC_NIST_CHAR2_283K = {-
1242 {-
1243 NID_X9_62_characteristic_two_field, 0, 36, 4-
1244 },-
1245 {-
1246 /* no seed */-
1247 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1248 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1,-
1250 /* a */-
1251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1254 /* b */-
1255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1257 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1258 /* x */-
1259 0x05, 0x03, 0x21, 0x3F, 0x78, 0xCA, 0x44, 0x88, 0x3F, 0x1A, 0x3B, 0x81,-
1260 0x62, 0xF1, 0x88, 0xE5, 0x53, 0xCD, 0x26, 0x5F, 0x23, 0xC1, 0x56, 0x7A,-
1261 0x16, 0x87, 0x69, 0x13, 0xB0, 0xC2, 0xAC, 0x24, 0x58, 0x49, 0x28, 0x36,-
1262 /* y */-
1263 0x01, 0xCC, 0xDA, 0x38, 0x0F, 0x1C, 0x9E, 0x31, 0x8D, 0x90, 0xF9, 0x5D,-
1264 0x07, 0xE5, 0x42, 0x6F, 0xE8, 0x7E, 0x45, 0xC0, 0xE8, 0x18, 0x46, 0x98,-
1265 0xE4, 0x59, 0x62, 0x36, 0x4E, 0x34, 0x11, 0x61, 0x77, 0xDD, 0x22, 0x59,-
1266 /* order */-
1267 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1268 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xAE, 0x2E, 0xD0, 0x75, 0x77,-
1269 0x26, 0x5D, 0xFF, 0x7F, 0x94, 0x45, 0x1E, 0x06, 0x1E, 0x16, 0x3C, 0x61-
1270 }-
1271};-
1272-
1273static const struct {-
1274 EC_CURVE_DATA h;-
1275 unsigned char data[20 + 36 * 6];-
1276} _EC_NIST_CHAR2_283B = {-
1277 {-
1278 NID_X9_62_characteristic_two_field, 20, 36, 2-
1279 },-
1280 {-
1281 /* no seed */-
1282 0x77, 0xE2, 0xB0, 0x73, 0x70, 0xEB, 0x0F, 0x83, 0x2A, 0x6D, 0xD5, 0xB6,-
1283 0x2D, 0xFC, 0x88, 0xCD, 0x06, 0xBB, 0x84, 0xBE,-
1284 /* p */-
1285 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1,-
1288 /* a */-
1289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1291 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1292 /* b */-
1293 0x02, 0x7B, 0x68, 0x0A, 0xC8, 0xB8, 0x59, 0x6D, 0xA5, 0xA4, 0xAF, 0x8A,-
1294 0x19, 0xA0, 0x30, 0x3F, 0xCA, 0x97, 0xFD, 0x76, 0x45, 0x30, 0x9F, 0xA2,-
1295 0xA5, 0x81, 0x48, 0x5A, 0xF6, 0x26, 0x3E, 0x31, 0x3B, 0x79, 0xA2, 0xF5,-
1296 /* x */-
1297 0x05, 0xF9, 0x39, 0x25, 0x8D, 0xB7, 0xDD, 0x90, 0xE1, 0x93, 0x4F, 0x8C,-
1298 0x70, 0xB0, 0xDF, 0xEC, 0x2E, 0xED, 0x25, 0xB8, 0x55, 0x7E, 0xAC, 0x9C,-
1299 0x80, 0xE2, 0xE1, 0x98, 0xF8, 0xCD, 0xBE, 0xCD, 0x86, 0xB1, 0x20, 0x53,-
1300 /* y */-
1301 0x03, 0x67, 0x68, 0x54, 0xFE, 0x24, 0x14, 0x1C, 0xB9, 0x8F, 0xE6, 0xD4,-
1302 0xB2, 0x0D, 0x02, 0xB4, 0x51, 0x6F, 0xF7, 0x02, 0x35, 0x0E, 0xDD, 0xB0,-
1303 0x82, 0x67, 0x79, 0xC8, 0x13, 0xF0, 0xDF, 0x45, 0xBE, 0x81, 0x12, 0xF4,-
1304 /* order */-
1305 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1306 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x90, 0x39, 0x96, 0x60, 0xFC,-
1307 0x93, 0x8A, 0x90, 0x16, 0x5B, 0x04, 0x2A, 0x7C, 0xEF, 0xAD, 0xB3, 0x07-
1308 }-
1309};-
1310-
1311static const struct {-
1312 EC_CURVE_DATA h;-
1313 unsigned char data[0 + 52 * 6];-
1314} _EC_NIST_CHAR2_409K = {-
1315 {-
1316 NID_X9_62_characteristic_two_field, 0, 52, 4-
1317 },-
1318 {-
1319 /* no seed */-
1320 /* p */-
1321 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1323 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1324 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1325 0x00, 0x00, 0x00, 0x01,-
1326 /* a */-
1327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1331 0x00, 0x00, 0x00, 0x00,-
1332 /* b */-
1333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1337 0x00, 0x00, 0x00, 0x01,-
1338 /* x */-
1339 0x00, 0x60, 0xF0, 0x5F, 0x65, 0x8F, 0x49, 0xC1, 0xAD, 0x3A, 0xB1, 0x89,-
1340 0x0F, 0x71, 0x84, 0x21, 0x0E, 0xFD, 0x09, 0x87, 0xE3, 0x07, 0xC8, 0x4C,-
1341 0x27, 0xAC, 0xCF, 0xB8, 0xF9, 0xF6, 0x7C, 0xC2, 0xC4, 0x60, 0x18, 0x9E,-
1342 0xB5, 0xAA, 0xAA, 0x62, 0xEE, 0x22, 0x2E, 0xB1, 0xB3, 0x55, 0x40, 0xCF,-
1343 0xE9, 0x02, 0x37, 0x46,-
1344 /* y */-
1345 0x01, 0xE3, 0x69, 0x05, 0x0B, 0x7C, 0x4E, 0x42, 0xAC, 0xBA, 0x1D, 0xAC,-
1346 0xBF, 0x04, 0x29, 0x9C, 0x34, 0x60, 0x78, 0x2F, 0x91, 0x8E, 0xA4, 0x27,-
1347 0xE6, 0x32, 0x51, 0x65, 0xE9, 0xEA, 0x10, 0xE3, 0xDA, 0x5F, 0x6C, 0x42,-
1348 0xE9, 0xC5, 0x52, 0x15, 0xAA, 0x9C, 0xA2, 0x7A, 0x58, 0x63, 0xEC, 0x48,-
1349 0xD8, 0xE0, 0x28, 0x6B,-
1350 /* order */-
1351 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1352 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1353 0xFF, 0xFF, 0xFE, 0x5F, 0x83, 0xB2, 0xD4, 0xEA, 0x20, 0x40, 0x0E, 0xC4,-
1354 0x55, 0x7D, 0x5E, 0xD3, 0xE3, 0xE7, 0xCA, 0x5B, 0x4B, 0x5C, 0x83, 0xB8,-
1355 0xE0, 0x1E, 0x5F, 0xCF-
1356 }-
1357};-
1358-
1359static const struct {-
1360 EC_CURVE_DATA h;-
1361 unsigned char data[20 + 52 * 6];-
1362} _EC_NIST_CHAR2_409B = {-
1363 {-
1364 NID_X9_62_characteristic_two_field, 20, 52, 2-
1365 },-
1366 {-
1367 /* seed */-
1368 0x40, 0x99, 0xB5, 0xA4, 0x57, 0xF9, 0xD6, 0x9F, 0x79, 0x21, 0x3D, 0x09,-
1369 0x4C, 0x4B, 0xCD, 0x4D, 0x42, 0x62, 0x21, 0x0B,-
1370 /* p */-
1371 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1374 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1375 0x00, 0x00, 0x00, 0x01,-
1376 /* a */-
1377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1378 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1380 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1381 0x00, 0x00, 0x00, 0x01,-
1382 /* b */-
1383 0x00, 0x21, 0xA5, 0xC2, 0xC8, 0xEE, 0x9F, 0xEB, 0x5C, 0x4B, 0x9A, 0x75,-
1384 0x3B, 0x7B, 0x47, 0x6B, 0x7F, 0xD6, 0x42, 0x2E, 0xF1, 0xF3, 0xDD, 0x67,-
1385 0x47, 0x61, 0xFA, 0x99, 0xD6, 0xAC, 0x27, 0xC8, 0xA9, 0xA1, 0x97, 0xB2,-
1386 0x72, 0x82, 0x2F, 0x6C, 0xD5, 0x7A, 0x55, 0xAA, 0x4F, 0x50, 0xAE, 0x31,-
1387 0x7B, 0x13, 0x54, 0x5F,-
1388 /* x */-
1389 0x01, 0x5D, 0x48, 0x60, 0xD0, 0x88, 0xDD, 0xB3, 0x49, 0x6B, 0x0C, 0x60,-
1390 0x64, 0x75, 0x62, 0x60, 0x44, 0x1C, 0xDE, 0x4A, 0xF1, 0x77, 0x1D, 0x4D,-
1391 0xB0, 0x1F, 0xFE, 0x5B, 0x34, 0xE5, 0x97, 0x03, 0xDC, 0x25, 0x5A, 0x86,-
1392 0x8A, 0x11, 0x80, 0x51, 0x56, 0x03, 0xAE, 0xAB, 0x60, 0x79, 0x4E, 0x54,-
1393 0xBB, 0x79, 0x96, 0xA7,-
1394 /* y */-
1395 0x00, 0x61, 0xB1, 0xCF, 0xAB, 0x6B, 0xE5, 0xF3, 0x2B, 0xBF, 0xA7, 0x83,-
1396 0x24, 0xED, 0x10, 0x6A, 0x76, 0x36, 0xB9, 0xC5, 0xA7, 0xBD, 0x19, 0x8D,-
1397 0x01, 0x58, 0xAA, 0x4F, 0x54, 0x88, 0xD0, 0x8F, 0x38, 0x51, 0x4F, 0x1F,-
1398 0xDF, 0x4B, 0x4F, 0x40, 0xD2, 0x18, 0x1B, 0x36, 0x81, 0xC3, 0x64, 0xBA,-
1399 0x02, 0x73, 0xC7, 0x06,-
1400 /* order */-
1401 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1402 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1403 0x00, 0x00, 0x01, 0xE2, 0xAA, 0xD6, 0xA6, 0x12, 0xF3, 0x33, 0x07, 0xBE,-
1404 0x5F, 0xA4, 0x7C, 0x3C, 0x9E, 0x05, 0x2F, 0x83, 0x81, 0x64, 0xCD, 0x37,-
1405 0xD9, 0xA2, 0x11, 0x73-
1406 }-
1407};-
1408-
1409static const struct {-
1410 EC_CURVE_DATA h;-
1411 unsigned char data[0 + 72 * 6];-
1412} _EC_NIST_CHAR2_571K = {-
1413 {-
1414 NID_X9_62_characteristic_two_field, 0, 72, 4-
1415 },-
1416 {-
1417 /* no seed */-
1418 /* p */-
1419 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1420 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1421 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1422 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1423 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1424 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x25,-
1425 /* a */-
1426 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1427 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1428 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1429 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1430 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1431 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1432 /* b */-
1433 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1434 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1435 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1436 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1437 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1438 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1439 /* x */-
1440 0x02, 0x6E, 0xB7, 0xA8, 0x59, 0x92, 0x3F, 0xBC, 0x82, 0x18, 0x96, 0x31,-
1441 0xF8, 0x10, 0x3F, 0xE4, 0xAC, 0x9C, 0xA2, 0x97, 0x00, 0x12, 0xD5, 0xD4,-
1442 0x60, 0x24, 0x80, 0x48, 0x01, 0x84, 0x1C, 0xA4, 0x43, 0x70, 0x95, 0x84,-
1443 0x93, 0xB2, 0x05, 0xE6, 0x47, 0xDA, 0x30, 0x4D, 0xB4, 0xCE, 0xB0, 0x8C,-
1444 0xBB, 0xD1, 0xBA, 0x39, 0x49, 0x47, 0x76, 0xFB, 0x98, 0x8B, 0x47, 0x17,-
1445 0x4D, 0xCA, 0x88, 0xC7, 0xE2, 0x94, 0x52, 0x83, 0xA0, 0x1C, 0x89, 0x72,-
1446 /* y */-
1447 0x03, 0x49, 0xDC, 0x80, 0x7F, 0x4F, 0xBF, 0x37, 0x4F, 0x4A, 0xEA, 0xDE,-
1448 0x3B, 0xCA, 0x95, 0x31, 0x4D, 0xD5, 0x8C, 0xEC, 0x9F, 0x30, 0x7A, 0x54,-
1449 0xFF, 0xC6, 0x1E, 0xFC, 0x00, 0x6D, 0x8A, 0x2C, 0x9D, 0x49, 0x79, 0xC0,-
1450 0xAC, 0x44, 0xAE, 0xA7, 0x4F, 0xBE, 0xBB, 0xB9, 0xF7, 0x72, 0xAE, 0xDC,-
1451 0xB6, 0x20, 0xB0, 0x1A, 0x7B, 0xA7, 0xAF, 0x1B, 0x32, 0x04, 0x30, 0xC8,-
1452 0x59, 0x19, 0x84, 0xF6, 0x01, 0xCD, 0x4C, 0x14, 0x3E, 0xF1, 0xC7, 0xA3,-
1453 /* order */-
1454 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1455 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1456 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1457 0x13, 0x18, 0x50, 0xE1, 0xF1, 0x9A, 0x63, 0xE4, 0xB3, 0x91, 0xA8, 0xDB,-
1458 0x91, 0x7F, 0x41, 0x38, 0xB6, 0x30, 0xD8, 0x4B, 0xE5, 0xD6, 0x39, 0x38,-
1459 0x1E, 0x91, 0xDE, 0xB4, 0x5C, 0xFE, 0x77, 0x8F, 0x63, 0x7C, 0x10, 0x01-
1460 }-
1461};-
1462-
1463static const struct {-
1464 EC_CURVE_DATA h;-
1465 unsigned char data[20 + 72 * 6];-
1466} _EC_NIST_CHAR2_571B = {-
1467 {-
1468 NID_X9_62_characteristic_two_field, 20, 72, 2-
1469 },-
1470 {-
1471 /* seed */-
1472 0x2A, 0xA0, 0x58, 0xF7, 0x3A, 0x0E, 0x33, 0xAB, 0x48, 0x6B, 0x0F, 0x61,-
1473 0x04, 0x10, 0xC5, 0x3A, 0x7F, 0x13, 0x23, 0x10,-
1474 /* p */-
1475 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1476 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1477 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1478 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1479 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1480 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x25,-
1481 /* a */-
1482 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1483 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1484 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1485 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1486 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1487 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1488 /* b */-
1489 0x02, 0xF4, 0x0E, 0x7E, 0x22, 0x21, 0xF2, 0x95, 0xDE, 0x29, 0x71, 0x17,-
1490 0xB7, 0xF3, 0xD6, 0x2F, 0x5C, 0x6A, 0x97, 0xFF, 0xCB, 0x8C, 0xEF, 0xF1,-
1491 0xCD, 0x6B, 0xA8, 0xCE, 0x4A, 0x9A, 0x18, 0xAD, 0x84, 0xFF, 0xAB, 0xBD,-
1492 0x8E, 0xFA, 0x59, 0x33, 0x2B, 0xE7, 0xAD, 0x67, 0x56, 0xA6, 0x6E, 0x29,-
1493 0x4A, 0xFD, 0x18, 0x5A, 0x78, 0xFF, 0x12, 0xAA, 0x52, 0x0E, 0x4D, 0xE7,-
1494 0x39, 0xBA, 0xCA, 0x0C, 0x7F, 0xFE, 0xFF, 0x7F, 0x29, 0x55, 0x72, 0x7A,-
1495 /* x */-
1496 0x03, 0x03, 0x00, 0x1D, 0x34, 0xB8, 0x56, 0x29, 0x6C, 0x16, 0xC0, 0xD4,-
1497 0x0D, 0x3C, 0xD7, 0x75, 0x0A, 0x93, 0xD1, 0xD2, 0x95, 0x5F, 0xA8, 0x0A,-
1498 0xA5, 0xF4, 0x0F, 0xC8, 0xDB, 0x7B, 0x2A, 0xBD, 0xBD, 0xE5, 0x39, 0x50,-
1499 0xF4, 0xC0, 0xD2, 0x93, 0xCD, 0xD7, 0x11, 0xA3, 0x5B, 0x67, 0xFB, 0x14,-
1500 0x99, 0xAE, 0x60, 0x03, 0x86, 0x14, 0xF1, 0x39, 0x4A, 0xBF, 0xA3, 0xB4,-
1501 0xC8, 0x50, 0xD9, 0x27, 0xE1, 0xE7, 0x76, 0x9C, 0x8E, 0xEC, 0x2D, 0x19,-
1502 /* y */-
1503 0x03, 0x7B, 0xF2, 0x73, 0x42, 0xDA, 0x63, 0x9B, 0x6D, 0xCC, 0xFF, 0xFE,-
1504 0xB7, 0x3D, 0x69, 0xD7, 0x8C, 0x6C, 0x27, 0xA6, 0x00, 0x9C, 0xBB, 0xCA,-
1505 0x19, 0x80, 0xF8, 0x53, 0x39, 0x21, 0xE8, 0xA6, 0x84, 0x42, 0x3E, 0x43,-
1506 0xBA, 0xB0, 0x8A, 0x57, 0x62, 0x91, 0xAF, 0x8F, 0x46, 0x1B, 0xB2, 0xA8,-
1507 0xB3, 0x53, 0x1D, 0x2F, 0x04, 0x85, 0xC1, 0x9B, 0x16, 0xE2, 0xF1, 0x51,-
1508 0x6E, 0x23, 0xDD, 0x3C, 0x1A, 0x48, 0x27, 0xAF, 0x1B, 0x8A, 0xC1, 0x5B,-
1509 /* order */-
1510 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1511 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1512 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
1513 0xE6, 0x61, 0xCE, 0x18, 0xFF, 0x55, 0x98, 0x73, 0x08, 0x05, 0x9B, 0x18,-
1514 0x68, 0x23, 0x85, 0x1E, 0xC7, 0xDD, 0x9C, 0xA1, 0x16, 0x1D, 0xE9, 0x3D,-
1515 0x51, 0x74, 0xD6, 0x6E, 0x83, 0x82, 0xE9, 0xBB, 0x2F, 0xE8, 0x4E, 0x47-
1516 }-
1517};-
1518-
1519static const struct {-
1520 EC_CURVE_DATA h;-
1521 unsigned char data[20 + 21 * 6];-
1522} _EC_X9_62_CHAR2_163V1 = {-
1523 {-
1524 NID_X9_62_characteristic_two_field, 20, 21, 2-
1525 },-
1526 {-
1527 /* seed */-
1528 0xD2, 0xC0, 0xFB, 0x15, 0x76, 0x08, 0x60, 0xDE, 0xF1, 0xEE, 0xF4, 0xD6,-
1529 0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x54,-
1530 /* p */-
1531 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1532 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,-
1533 /* a */-
1534 0x07, 0x25, 0x46, 0xB5, 0x43, 0x52, 0x34, 0xA4, 0x22, 0xE0, 0x78, 0x96,-
1535 0x75, 0xF4, 0x32, 0xC8, 0x94, 0x35, 0xDE, 0x52, 0x42,-
1536 /* b */-
1537 0x00, 0xC9, 0x51, 0x7D, 0x06, 0xD5, 0x24, 0x0D, 0x3C, 0xFF, 0x38, 0xC7,-
1538 0x4B, 0x20, 0xB6, 0xCD, 0x4D, 0x6F, 0x9D, 0xD4, 0xD9,-
1539 /* x */-
1540 0x07, 0xAF, 0x69, 0x98, 0x95, 0x46, 0x10, 0x3D, 0x79, 0x32, 0x9F, 0xCC,-
1541 0x3D, 0x74, 0x88, 0x0F, 0x33, 0xBB, 0xE8, 0x03, 0xCB,-
1542 /* y */-
1543 0x01, 0xEC, 0x23, 0x21, 0x1B, 0x59, 0x66, 0xAD, 0xEA, 0x1D, 0x3F, 0x87,-
1544 0xF7, 0xEA, 0x58, 0x48, 0xAE, 0xF0, 0xB7, 0xCA, 0x9F,-
1545 /* order */-
1546 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE6,-
1547 0x0F, 0xC8, 0x82, 0x1C, 0xC7, 0x4D, 0xAE, 0xAF, 0xC1-
1548 }-
1549};-
1550-
1551static const struct {-
1552 EC_CURVE_DATA h;-
1553 unsigned char data[20 + 21 * 6];-
1554} _EC_X9_62_CHAR2_163V2 = {-
1555 {-
1556 NID_X9_62_characteristic_two_field, 20, 21, 2-
1557 },-
1558 {-
1559 /* seed */-
1560 0x53, 0x81, 0x4C, 0x05, 0x0D, 0x44, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1561 0x15, 0x17, 0x58, 0x0C, 0xA4, 0xE2, 0x9F, 0xFD,-
1562 /* p */-
1563 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1564 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,-
1565 /* a */-
1566 0x01, 0x08, 0xB3, 0x9E, 0x77, 0xC4, 0xB1, 0x08, 0xBE, 0xD9, 0x81, 0xED,-
1567 0x0E, 0x89, 0x0E, 0x11, 0x7C, 0x51, 0x1C, 0xF0, 0x72,-
1568 /* b */-
1569 0x06, 0x67, 0xAC, 0xEB, 0x38, 0xAF, 0x4E, 0x48, 0x8C, 0x40, 0x74, 0x33,-
1570 0xFF, 0xAE, 0x4F, 0x1C, 0x81, 0x16, 0x38, 0xDF, 0x20,-
1571 /* x */-
1572 0x00, 0x24, 0x26, 0x6E, 0x4E, 0xB5, 0x10, 0x6D, 0x0A, 0x96, 0x4D, 0x92,-
1573 0xC4, 0x86, 0x0E, 0x26, 0x71, 0xDB, 0x9B, 0x6C, 0xC5,-
1574 /* y */-
1575 0x07, 0x9F, 0x68, 0x4D, 0xDF, 0x66, 0x84, 0xC5, 0xCD, 0x25, 0x8B, 0x38,-
1576 0x90, 0x02, 0x1B, 0x23, 0x86, 0xDF, 0xD1, 0x9F, 0xC5,-
1577 /* order */-
1578 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF6,-
1579 0x4D, 0xE1, 0x15, 0x1A, 0xDB, 0xB7, 0x8F, 0x10, 0xA7-
1580 }-
1581};-
1582-
1583static const struct {-
1584 EC_CURVE_DATA h;-
1585 unsigned char data[20 + 21 * 6];-
1586} _EC_X9_62_CHAR2_163V3 = {-
1587 {-
1588 NID_X9_62_characteristic_two_field, 20, 21, 2-
1589 },-
1590 {-
1591 /* seed */-
1592 0x50, 0xCB, 0xF1, 0xD9, 0x5C, 0xA9, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75,-
1593 0x61, 0x51, 0x75, 0xF1, 0x6A, 0x36, 0xA3, 0xB8,-
1594 /* p */-
1595 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1596 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,-
1597 /* a */-
1598 0x07, 0xA5, 0x26, 0xC6, 0x3D, 0x3E, 0x25, 0xA2, 0x56, 0xA0, 0x07, 0x69,-
1599 0x9F, 0x54, 0x47, 0xE3, 0x2A, 0xE4, 0x56, 0xB5, 0x0E,-
1600 /* b */-
1601 0x03, 0xF7, 0x06, 0x17, 0x98, 0xEB, 0x99, 0xE2, 0x38, 0xFD, 0x6F, 0x1B,-
1602 0xF9, 0x5B, 0x48, 0xFE, 0xEB, 0x48, 0x54, 0x25, 0x2B,-
1603 /* x */-
1604 0x02, 0xF9, 0xF8, 0x7B, 0x7C, 0x57, 0x4D, 0x0B, 0xDE, 0xCF, 0x8A, 0x22,-
1605 0xE6, 0x52, 0x47, 0x75, 0xF9, 0x8C, 0xDE, 0xBD, 0xCB,-
1606 /* y */-
1607 0x05, 0xB9, 0x35, 0x59, 0x0C, 0x15, 0x5E, 0x17, 0xEA, 0x48, 0xEB, 0x3F,-
1608 0xF3, 0x71, 0x8B, 0x89, 0x3D, 0xF5, 0x9A, 0x05, 0xD0,-
1609 /* order */-
1610 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1A,-
1611 0xEE, 0x14, 0x0F, 0x11, 0x0A, 0xFF, 0x96, 0x13, 0x09-
1612 }-
1613};-
1614-
1615static const struct {-
1616 EC_CURVE_DATA h;-
1617 unsigned char data[0 + 23 * 6];-
1618} _EC_X9_62_CHAR2_176V1 = {-
1619 {-
1620 NID_X9_62_characteristic_two_field, 0, 23, 0xFF6E-
1621 },-
1622 {-
1623 /* no seed */-
1624 /* p */-
1625 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1626 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07,-
1627 /* a */-
1628 0x00, 0xE4, 0xE6, 0xDB, 0x29, 0x95, 0x06, 0x5C, 0x40, 0x7D, 0x9D, 0x39,-
1629 0xB8, 0xD0, 0x96, 0x7B, 0x96, 0x70, 0x4B, 0xA8, 0xE9, 0xC9, 0x0B,-
1630 /* b */-
1631 0x00, 0x5D, 0xDA, 0x47, 0x0A, 0xBE, 0x64, 0x14, 0xDE, 0x8E, 0xC1, 0x33,-
1632 0xAE, 0x28, 0xE9, 0xBB, 0xD7, 0xFC, 0xEC, 0x0A, 0xE0, 0xFF, 0xF2,-
1633 /* x */-
1634 0x00, 0x8D, 0x16, 0xC2, 0x86, 0x67, 0x98, 0xB6, 0x00, 0xF9, 0xF0, 0x8B,-
1635 0xB4, 0xA8, 0xE8, 0x60, 0xF3, 0x29, 0x8C, 0xE0, 0x4A, 0x57, 0x98,-
1636 /* y */-
1637 0x00, 0x6F, 0xA4, 0x53, 0x9C, 0x2D, 0xAD, 0xDD, 0xD6, 0xBA, 0xB5, 0x16,-
1638 0x7D, 0x61, 0xB4, 0x36, 0xE1, 0xD9, 0x2B, 0xB1, 0x6A, 0x56, 0x2C,-
1639 /* order */-
1640 0x00, 0x00, 0x01, 0x00, 0x92, 0x53, 0x73, 0x97, 0xEC, 0xA4, 0xF6, 0x14,-
1641 0x57, 0x99, 0xD6, 0x2B, 0x0A, 0x19, 0xCE, 0x06, 0xFE, 0x26, 0xAD-
1642 }-
1643};-
1644-
1645static const struct {-
1646 EC_CURVE_DATA h;-
1647 unsigned char data[20 + 24 * 6];-
1648} _EC_X9_62_CHAR2_191V1 = {-
1649 {-
1650 NID_X9_62_characteristic_two_field, 20, 24, 2-
1651 },-
1652 {-
1653 /* seed */-
1654 0x4E, 0x13, 0xCA, 0x54, 0x27, 0x44, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1655 0x15, 0x17, 0x55, 0x2F, 0x27, 0x9A, 0x8C, 0x84,-
1656 /* p */-
1657 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1658 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,-
1659 /* a */-
1660 0x28, 0x66, 0x53, 0x7B, 0x67, 0x67, 0x52, 0x63, 0x6A, 0x68, 0xF5, 0x65,-
1661 0x54, 0xE1, 0x26, 0x40, 0x27, 0x6B, 0x64, 0x9E, 0xF7, 0x52, 0x62, 0x67,-
1662 /* b */-
1663 0x2E, 0x45, 0xEF, 0x57, 0x1F, 0x00, 0x78, 0x6F, 0x67, 0xB0, 0x08, 0x1B,-
1664 0x94, 0x95, 0xA3, 0xD9, 0x54, 0x62, 0xF5, 0xDE, 0x0A, 0xA1, 0x85, 0xEC,-
1665 /* x */-
1666 0x36, 0xB3, 0xDA, 0xF8, 0xA2, 0x32, 0x06, 0xF9, 0xC4, 0xF2, 0x99, 0xD7,-
1667 0xB2, 0x1A, 0x9C, 0x36, 0x91, 0x37, 0xF2, 0xC8, 0x4A, 0xE1, 0xAA, 0x0D,-
1668 /* y */-
1669 0x76, 0x5B, 0xE7, 0x34, 0x33, 0xB3, 0xF9, 0x5E, 0x33, 0x29, 0x32, 0xE7,-
1670 0x0E, 0xA2, 0x45, 0xCA, 0x24, 0x18, 0xEA, 0x0E, 0xF9, 0x80, 0x18, 0xFB,-
1671 /* order */-
1672 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1673 0x04, 0xA2, 0x0E, 0x90, 0xC3, 0x90, 0x67, 0xC8, 0x93, 0xBB, 0xB9, 0xA5-
1674 }-
1675};-
1676-
1677static const struct {-
1678 EC_CURVE_DATA h;-
1679 unsigned char data[20 + 24 * 6];-
1680} _EC_X9_62_CHAR2_191V2 = {-
1681 {-
1682 NID_X9_62_characteristic_two_field, 20, 24, 4-
1683 },-
1684 {-
1685 /* seed */-
1686 0x08, 0x71, 0xEF, 0x2F, 0xEF, 0x24, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1687 0x15, 0x17, 0x58, 0xBE, 0xE0, 0xD9, 0x5C, 0x15,-
1688 /* p */-
1689 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1690 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,-
1691 /* a */-
1692 0x40, 0x10, 0x28, 0x77, 0x4D, 0x77, 0x77, 0xC7, 0xB7, 0x66, 0x6D, 0x13,-
1693 0x66, 0xEA, 0x43, 0x20, 0x71, 0x27, 0x4F, 0x89, 0xFF, 0x01, 0xE7, 0x18,-
1694 /* b */-
1695 0x06, 0x20, 0x04, 0x8D, 0x28, 0xBC, 0xBD, 0x03, 0xB6, 0x24, 0x9C, 0x99,-
1696 0x18, 0x2B, 0x7C, 0x8C, 0xD1, 0x97, 0x00, 0xC3, 0x62, 0xC4, 0x6A, 0x01,-
1697 /* x */-
1698 0x38, 0x09, 0xB2, 0xB7, 0xCC, 0x1B, 0x28, 0xCC, 0x5A, 0x87, 0x92, 0x6A,-
1699 0xAD, 0x83, 0xFD, 0x28, 0x78, 0x9E, 0x81, 0xE2, 0xC9, 0xE3, 0xBF, 0x10,-
1700 /* y */-
1701 0x17, 0x43, 0x43, 0x86, 0x62, 0x6D, 0x14, 0xF3, 0xDB, 0xF0, 0x17, 0x60,-
1702 0xD9, 0x21, 0x3A, 0x3E, 0x1C, 0xF3, 0x7A, 0xEC, 0x43, 0x7D, 0x66, 0x8A,-
1703 /* order */-
1704 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1705 0x50, 0x50, 0x8C, 0xB8, 0x9F, 0x65, 0x28, 0x24, 0xE0, 0x6B, 0x81, 0x73-
1706 }-
1707};-
1708-
1709static const struct {-
1710 EC_CURVE_DATA h;-
1711 unsigned char data[20 + 24 * 6];-
1712} _EC_X9_62_CHAR2_191V3 = {-
1713 {-
1714 NID_X9_62_characteristic_two_field, 20, 24, 6-
1715 },-
1716 {-
1717 /* seed */-
1718 0xE0, 0x53, 0x51, 0x2D, 0xC6, 0x84, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1719 0x15, 0x17, 0x50, 0x67, 0xAE, 0x78, 0x6D, 0x1F,-
1720 /* p */-
1721 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1722 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,-
1723 /* a */-
1724 0x6C, 0x01, 0x07, 0x47, 0x56, 0x09, 0x91, 0x22, 0x22, 0x10, 0x56, 0x91,-
1725 0x1C, 0x77, 0xD7, 0x7E, 0x77, 0xA7, 0x77, 0xE7, 0xE7, 0xE7, 0x7F, 0xCB,-
1726 /* b */-
1727 0x71, 0xFE, 0x1A, 0xF9, 0x26, 0xCF, 0x84, 0x79, 0x89, 0xEF, 0xEF, 0x8D,-
1728 0xB4, 0x59, 0xF6, 0x63, 0x94, 0xD9, 0x0F, 0x32, 0xAD, 0x3F, 0x15, 0xE8,-
1729 /* x */-
1730 0x37, 0x5D, 0x4C, 0xE2, 0x4F, 0xDE, 0x43, 0x44, 0x89, 0xDE, 0x87, 0x46,-
1731 0xE7, 0x17, 0x86, 0x01, 0x50, 0x09, 0xE6, 0x6E, 0x38, 0xA9, 0x26, 0xDD,-
1732 /* y */-
1733 0x54, 0x5A, 0x39, 0x17, 0x61, 0x96, 0x57, 0x5D, 0x98, 0x59, 0x99, 0x36,-
1734 0x6E, 0x6A, 0xD3, 0x4C, 0xE0, 0xA7, 0x7C, 0xD7, 0x12, 0x7B, 0x06, 0xBE,-
1735 /* order */-
1736 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,-
1737 0x61, 0x0C, 0x0B, 0x19, 0x68, 0x12, 0xBF, 0xB6, 0x28, 0x8A, 0x3E, 0xA3-
1738 }-
1739};-
1740-
1741static const struct {-
1742 EC_CURVE_DATA h;-
1743 unsigned char data[0 + 27 * 6];-
1744} _EC_X9_62_CHAR2_208W1 = {-
1745 {-
1746 NID_X9_62_characteristic_two_field, 0, 27, 0xFE48-
1747 },-
1748 {-
1749 /* no seed */-
1750 /* p */-
1751 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1752 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1753 0x00, 0x00, 0x07,-
1754 /* a */-
1755 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1756 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1757 0x00, 0x00, 0x00,-
1758 /* b */-
1759 0x00, 0xC8, 0x61, 0x9E, 0xD4, 0x5A, 0x62, 0xE6, 0x21, 0x2E, 0x11, 0x60,-
1760 0x34, 0x9E, 0x2B, 0xFA, 0x84, 0x44, 0x39, 0xFA, 0xFC, 0x2A, 0x3F, 0xD1,-
1761 0x63, 0x8F, 0x9E,-
1762 /* x */-
1763 0x00, 0x89, 0xFD, 0xFB, 0xE4, 0xAB, 0xE1, 0x93, 0xDF, 0x95, 0x59, 0xEC,-
1764 0xF0, 0x7A, 0xC0, 0xCE, 0x78, 0x55, 0x4E, 0x27, 0x84, 0xEB, 0x8C, 0x1E,-
1765 0xD1, 0xA5, 0x7A,-
1766 /* y */-
1767 0x00, 0x0F, 0x55, 0xB5, 0x1A, 0x06, 0xE7, 0x8E, 0x9A, 0xC3, 0x8A, 0x03,-
1768 0x5F, 0xF5, 0x20, 0xD8, 0xB0, 0x17, 0x81, 0xBE, 0xB1, 0xA6, 0xBB, 0x08,-
1769 0x61, 0x7D, 0xE3,-
1770 /* order */-
1771 0x00, 0x00, 0x01, 0x01, 0xBA, 0xF9, 0x5C, 0x97, 0x23, 0xC5, 0x7B, 0x6C,-
1772 0x21, 0xDA, 0x2E, 0xFF, 0x2D, 0x5E, 0xD5, 0x88, 0xBD, 0xD5, 0x71, 0x7E,-
1773 0x21, 0x2F, 0x9D-
1774 }-
1775};-
1776-
1777static const struct {-
1778 EC_CURVE_DATA h;-
1779 unsigned char data[20 + 30 * 6];-
1780} _EC_X9_62_CHAR2_239V1 = {-
1781 {-
1782 NID_X9_62_characteristic_two_field, 20, 30, 4-
1783 },-
1784 {-
1785 /* seed */-
1786 0xD3, 0x4B, 0x9A, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,-
1787 0xCA, 0x71, 0xB9, 0x20, 0xBF, 0xEF, 0xB0, 0x5D,-
1788 /* p */-
1789 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1790 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1791 0x00, 0x10, 0x00, 0x00, 0x00, 0x01,-
1792 /* a */-
1793 0x32, 0x01, 0x08, 0x57, 0x07, 0x7C, 0x54, 0x31, 0x12, 0x3A, 0x46, 0xB8,-
1794 0x08, 0x90, 0x67, 0x56, 0xF5, 0x43, 0x42, 0x3E, 0x8D, 0x27, 0x87, 0x75,-
1795 0x78, 0x12, 0x57, 0x78, 0xAC, 0x76,-
1796 /* b */-
1797 0x79, 0x04, 0x08, 0xF2, 0xEE, 0xDA, 0xF3, 0x92, 0xB0, 0x12, 0xED, 0xEF,-
1798 0xB3, 0x39, 0x2F, 0x30, 0xF4, 0x32, 0x7C, 0x0C, 0xA3, 0xF3, 0x1F, 0xC3,-
1799 0x83, 0xC4, 0x22, 0xAA, 0x8C, 0x16,-
1800 /* x */-
1801 0x57, 0x92, 0x70, 0x98, 0xFA, 0x93, 0x2E, 0x7C, 0x0A, 0x96, 0xD3, 0xFD,-
1802 0x5B, 0x70, 0x6E, 0xF7, 0xE5, 0xF5, 0xC1, 0x56, 0xE1, 0x6B, 0x7E, 0x7C,-
1803 0x86, 0x03, 0x85, 0x52, 0xE9, 0x1D,-
1804 /* y */-
1805 0x61, 0xD8, 0xEE, 0x50, 0x77, 0xC3, 0x3F, 0xEC, 0xF6, 0xF1, 0xA1, 0x6B,-
1806 0x26, 0x8D, 0xE4, 0x69, 0xC3, 0xC7, 0x74, 0x4E, 0xA9, 0xA9, 0x71, 0x64,-
1807 0x9F, 0xC7, 0xA9, 0x61, 0x63, 0x05,-
1808 /* order */-
1809 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1810 0x00, 0x00, 0x00, 0x0F, 0x4D, 0x42, 0xFF, 0xE1, 0x49, 0x2A, 0x49, 0x93,-
1811 0xF1, 0xCA, 0xD6, 0x66, 0xE4, 0x47-
1812 }-
1813};-
1814-
1815static const struct {-
1816 EC_CURVE_DATA h;-
1817 unsigned char data[20 + 30 * 6];-
1818} _EC_X9_62_CHAR2_239V2 = {-
1819 {-
1820 NID_X9_62_characteristic_two_field, 20, 30, 6-
1821 },-
1822 {-
1823 /* seed */-
1824 0x2A, 0xA6, 0x98, 0x2F, 0xDF, 0xA4, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1825 0x15, 0x17, 0x5D, 0x26, 0x67, 0x27, 0x27, 0x7D,-
1826 /* p */-
1827 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1828 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1829 0x00, 0x10, 0x00, 0x00, 0x00, 0x01,-
1830 /* a */-
1831 0x42, 0x30, 0x01, 0x77, 0x57, 0xA7, 0x67, 0xFA, 0xE4, 0x23, 0x98, 0x56,-
1832 0x9B, 0x74, 0x63, 0x25, 0xD4, 0x53, 0x13, 0xAF, 0x07, 0x66, 0x26, 0x64,-
1833 0x79, 0xB7, 0x56, 0x54, 0xE6, 0x5F,-
1834 /* b */-
1835 0x50, 0x37, 0xEA, 0x65, 0x41, 0x96, 0xCF, 0xF0, 0xCD, 0x82, 0xB2, 0xC1,-
1836 0x4A, 0x2F, 0xCF, 0x2E, 0x3F, 0xF8, 0x77, 0x52, 0x85, 0xB5, 0x45, 0x72,-
1837 0x2F, 0x03, 0xEA, 0xCD, 0xB7, 0x4B,-
1838 /* x */-
1839 0x28, 0xF9, 0xD0, 0x4E, 0x90, 0x00, 0x69, 0xC8, 0xDC, 0x47, 0xA0, 0x85,-
1840 0x34, 0xFE, 0x76, 0xD2, 0xB9, 0x00, 0xB7, 0xD7, 0xEF, 0x31, 0xF5, 0x70,-
1841 0x9F, 0x20, 0x0C, 0x4C, 0xA2, 0x05,-
1842 /* y */-
1843 0x56, 0x67, 0x33, 0x4C, 0x45, 0xAF, 0xF3, 0xB5, 0xA0, 0x3B, 0xAD, 0x9D,-
1844 0xD7, 0x5E, 0x2C, 0x71, 0xA9, 0x93, 0x62, 0x56, 0x7D, 0x54, 0x53, 0xF7,-
1845 0xFA, 0x6E, 0x22, 0x7E, 0xC8, 0x33,-
1846 /* order */-
1847 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,-
1848 0x55, 0x55, 0x55, 0x3C, 0x6F, 0x28, 0x85, 0x25, 0x9C, 0x31, 0xE3, 0xFC,-
1849 0xDF, 0x15, 0x46, 0x24, 0x52, 0x2D-
1850 }-
1851};-
1852-
1853static const struct {-
1854 EC_CURVE_DATA h;-
1855 unsigned char data[20 + 30 * 6];-
1856} _EC_X9_62_CHAR2_239V3 = {-
1857 {-
1858 NID_X9_62_characteristic_two_field, 20, 30, 0xA-
1859 },-
1860 {-
1861 /* seed */-
1862 0x9E, 0x07, 0x6F, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,-
1863 0xE1, 0x1E, 0x9F, 0xDD, 0x77, 0xF9, 0x20, 0x41,-
1864 /* p */-
1865 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1866 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1867 0x00, 0x10, 0x00, 0x00, 0x00, 0x01,-
1868 /* a */-
1869 0x01, 0x23, 0x87, 0x74, 0x66, 0x6A, 0x67, 0x76, 0x6D, 0x66, 0x76, 0xF7,-
1870 0x78, 0xE6, 0x76, 0xB6, 0x69, 0x99, 0x17, 0x66, 0x66, 0xE6, 0x87, 0x66,-
1871 0x6D, 0x87, 0x66, 0xC6, 0x6A, 0x9F,-
1872 /* b */-
1873 0x6A, 0x94, 0x19, 0x77, 0xBA, 0x9F, 0x6A, 0x43, 0x51, 0x99, 0xAC, 0xFC,-
1874 0x51, 0x06, 0x7E, 0xD5, 0x87, 0xF5, 0x19, 0xC5, 0xEC, 0xB5, 0x41, 0xB8,-
1875 0xE4, 0x41, 0x11, 0xDE, 0x1D, 0x40,-
1876 /* x */-
1877 0x70, 0xF6, 0xE9, 0xD0, 0x4D, 0x28, 0x9C, 0x4E, 0x89, 0x91, 0x3C, 0xE3,-
1878 0x53, 0x0B, 0xFD, 0xE9, 0x03, 0x97, 0x7D, 0x42, 0xB1, 0x46, 0xD5, 0x39,-
1879 0xBF, 0x1B, 0xDE, 0x4E, 0x9C, 0x92,-
1880 /* y */-
1881 0x2E, 0x5A, 0x0E, 0xAF, 0x6E, 0x5E, 0x13, 0x05, 0xB9, 0x00, 0x4D, 0xCE,-
1882 0x5C, 0x0E, 0xD7, 0xFE, 0x59, 0xA3, 0x56, 0x08, 0xF3, 0x38, 0x37, 0xC8,-
1883 0x16, 0xD8, 0x0B, 0x79, 0xF4, 0x61,-
1884 /* order */-
1885 0x0C, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,-
1886 0xCC, 0xCC, 0xCC, 0xAC, 0x49, 0x12, 0xD2, 0xD9, 0xDF, 0x90, 0x3E, 0xF9,-
1887 0x88, 0x8B, 0x8A, 0x0E, 0x4C, 0xFF-
1888 }-
1889};-
1890-
1891static const struct {-
1892 EC_CURVE_DATA h;-
1893 unsigned char data[0 + 35 * 6];-
1894} _EC_X9_62_CHAR2_272W1 = {-
1895 {-
1896 NID_X9_62_characteristic_two_field, 0, 35, 0xFF06-
1897 },-
1898 {-
1899 /* no seed */-
1900 /* p */-
1901 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1902 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1903 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B,-
1904 /* a */-
1905 0x00, 0x91, 0xA0, 0x91, 0xF0, 0x3B, 0x5F, 0xBA, 0x4A, 0xB2, 0xCC, 0xF4,-
1906 0x9C, 0x4E, 0xDD, 0x22, 0x0F, 0xB0, 0x28, 0x71, 0x2D, 0x42, 0xBE, 0x75,-
1907 0x2B, 0x2C, 0x40, 0x09, 0x4D, 0xBA, 0xCD, 0xB5, 0x86, 0xFB, 0x20,-
1908 /* b */-
1909 0x00, 0x71, 0x67, 0xEF, 0xC9, 0x2B, 0xB2, 0xE3, 0xCE, 0x7C, 0x8A, 0xAA,-
1910 0xFF, 0x34, 0xE1, 0x2A, 0x9C, 0x55, 0x70, 0x03, 0xD7, 0xC7, 0x3A, 0x6F,-
1911 0xAF, 0x00, 0x3F, 0x99, 0xF6, 0xCC, 0x84, 0x82, 0xE5, 0x40, 0xF7,-
1912 /* x */-
1913 0x00, 0x61, 0x08, 0xBA, 0xBB, 0x2C, 0xEE, 0xBC, 0xF7, 0x87, 0x05, 0x8A,-
1914 0x05, 0x6C, 0xBE, 0x0C, 0xFE, 0x62, 0x2D, 0x77, 0x23, 0xA2, 0x89, 0xE0,-
1915 0x8A, 0x07, 0xAE, 0x13, 0xEF, 0x0D, 0x10, 0xD1, 0x71, 0xDD, 0x8D,-
1916 /* y */-
1917 0x00, 0x10, 0xC7, 0x69, 0x57, 0x16, 0x85, 0x1E, 0xEF, 0x6B, 0xA7, 0xF6,-
1918 0x87, 0x2E, 0x61, 0x42, 0xFB, 0xD2, 0x41, 0xB8, 0x30, 0xFF, 0x5E, 0xFC,-
1919 0xAC, 0xEC, 0xCA, 0xB0, 0x5E, 0x02, 0x00, 0x5D, 0xDE, 0x9D, 0x23,-
1920 /* order */-
1921 0x00, 0x00, 0x01, 0x00, 0xFA, 0xF5, 0x13, 0x54, 0xE0, 0xE3, 0x9E, 0x48,-
1922 0x92, 0xDF, 0x6E, 0x31, 0x9C, 0x72, 0xC8, 0x16, 0x16, 0x03, 0xFA, 0x45,-
1923 0xAA, 0x7B, 0x99, 0x8A, 0x16, 0x7B, 0x8F, 0x1E, 0x62, 0x95, 0x21-
1924 }-
1925};-
1926-
1927static const struct {-
1928 EC_CURVE_DATA h;-
1929 unsigned char data[0 + 39 * 6];-
1930} _EC_X9_62_CHAR2_304W1 = {-
1931 {-
1932 NID_X9_62_characteristic_two_field, 0, 39, 0xFE2E-
1933 },-
1934 {-
1935 /* no seed */-
1936 /* p */-
1937 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1938 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1939 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1940 0x00, 0x08, 0x07,-
1941 /* a */-
1942 0x00, 0xFD, 0x0D, 0x69, 0x31, 0x49, 0xA1, 0x18, 0xF6, 0x51, 0xE6, 0xDC,-
1943 0xE6, 0x80, 0x20, 0x85, 0x37, 0x7E, 0x5F, 0x88, 0x2D, 0x1B, 0x51, 0x0B,-
1944 0x44, 0x16, 0x00, 0x74, 0xC1, 0x28, 0x80, 0x78, 0x36, 0x5A, 0x03, 0x96,-
1945 0xC8, 0xE6, 0x81,-
1946 /* b */-
1947 0x00, 0xBD, 0xDB, 0x97, 0xE5, 0x55, 0xA5, 0x0A, 0x90, 0x8E, 0x43, 0xB0,-
1948 0x1C, 0x79, 0x8E, 0xA5, 0xDA, 0xA6, 0x78, 0x8F, 0x1E, 0xA2, 0x79, 0x4E,-
1949 0xFC, 0xF5, 0x71, 0x66, 0xB8, 0xC1, 0x40, 0x39, 0x60, 0x1E, 0x55, 0x82,-
1950 0x73, 0x40, 0xBE,-
1951 /* x */-
1952 0x00, 0x19, 0x7B, 0x07, 0x84, 0x5E, 0x9B, 0xE2, 0xD9, 0x6A, 0xDB, 0x0F,-
1953 0x5F, 0x3C, 0x7F, 0x2C, 0xFF, 0xBD, 0x7A, 0x3E, 0xB8, 0xB6, 0xFE, 0xC3,-
1954 0x5C, 0x7F, 0xD6, 0x7F, 0x26, 0xDD, 0xF6, 0x28, 0x5A, 0x64, 0x4F, 0x74,-
1955 0x0A, 0x26, 0x14,-
1956 /* y */-
1957 0x00, 0xE1, 0x9F, 0xBE, 0xB7, 0x6E, 0x0D, 0xA1, 0x71, 0x51, 0x7E, 0xCF,-
1958 0x40, 0x1B, 0x50, 0x28, 0x9B, 0xF0, 0x14, 0x10, 0x32, 0x88, 0x52, 0x7A,-
1959 0x9B, 0x41, 0x6A, 0x10, 0x5E, 0x80, 0x26, 0x0B, 0x54, 0x9F, 0xDC, 0x1B,-
1960 0x92, 0xC0, 0x3B,-
1961 /* order */-
1962 0x00, 0x00, 0x01, 0x01, 0xD5, 0x56, 0x57, 0x2A, 0xAB, 0xAC, 0x80, 0x01,-
1963 0x01, 0xD5, 0x56, 0x57, 0x2A, 0xAB, 0xAC, 0x80, 0x01, 0x02, 0x2D, 0x5C,-
1964 0x91, 0xDD, 0x17, 0x3F, 0x8F, 0xB5, 0x61, 0xDA, 0x68, 0x99, 0x16, 0x44,-
1965 0x43, 0x05, 0x1D-
1966 }-
1967};-
1968-
1969static const struct {-
1970 EC_CURVE_DATA h;-
1971 unsigned char data[20 + 45 * 6];-
1972} _EC_X9_62_CHAR2_359V1 = {-
1973 {-
1974 NID_X9_62_characteristic_two_field, 20, 45, 0x4C-
1975 },-
1976 {-
1977 /* seed */-
1978 0x2B, 0x35, 0x49, 0x20, 0xB7, 0x24, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,-
1979 0x15, 0x17, 0x58, 0x5B, 0xA1, 0x33, 0x2D, 0xC6,-
1980 /* p */-
1981 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1982 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1983 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
1984 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
1985 /* a */-
1986 0x56, 0x67, 0x67, 0x6A, 0x65, 0x4B, 0x20, 0x75, 0x4F, 0x35, 0x6E, 0xA9,-
1987 0x20, 0x17, 0xD9, 0x46, 0x56, 0x7C, 0x46, 0x67, 0x55, 0x56, 0xF1, 0x95,-
1988 0x56, 0xA0, 0x46, 0x16, 0xB5, 0x67, 0xD2, 0x23, 0xA5, 0xE0, 0x56, 0x56,-
1989 0xFB, 0x54, 0x90, 0x16, 0xA9, 0x66, 0x56, 0xA5, 0x57,-
1990 /* b */-
1991 0x24, 0x72, 0xE2, 0xD0, 0x19, 0x7C, 0x49, 0x36, 0x3F, 0x1F, 0xE7, 0xF5,-
1992 0xB6, 0xDB, 0x07, 0x5D, 0x52, 0xB6, 0x94, 0x7D, 0x13, 0x5D, 0x8C, 0xA4,-
1993 0x45, 0x80, 0x5D, 0x39, 0xBC, 0x34, 0x56, 0x26, 0x08, 0x96, 0x87, 0x74,-
1994 0x2B, 0x63, 0x29, 0xE7, 0x06, 0x80, 0x23, 0x19, 0x88,-
1995 /* x */-
1996 0x3C, 0x25, 0x8E, 0xF3, 0x04, 0x77, 0x67, 0xE7, 0xED, 0xE0, 0xF1, 0xFD,-
1997 0xAA, 0x79, 0xDA, 0xEE, 0x38, 0x41, 0x36, 0x6A, 0x13, 0x2E, 0x16, 0x3A,-
1998 0xCE, 0xD4, 0xED, 0x24, 0x01, 0xDF, 0x9C, 0x6B, 0xDC, 0xDE, 0x98, 0xE8,-
1999 0xE7, 0x07, 0xC0, 0x7A, 0x22, 0x39, 0xB1, 0xB0, 0x97,-
2000 /* y */-
2001 0x53, 0xD7, 0xE0, 0x85, 0x29, 0x54, 0x70, 0x48, 0x12, 0x1E, 0x9C, 0x95,-
2002 0xF3, 0x79, 0x1D, 0xD8, 0x04, 0x96, 0x39, 0x48, 0xF3, 0x4F, 0xAE, 0x7B,-
2003 0xF4, 0x4E, 0xA8, 0x23, 0x65, 0xDC, 0x78, 0x68, 0xFE, 0x57, 0xE4, 0xAE,-
2004 0x2D, 0xE2, 0x11, 0x30, 0x5A, 0x40, 0x71, 0x04, 0xBD,-
2005 /* order */-
2006 0x01, 0xAF, 0x28, 0x6B, 0xCA, 0x1A, 0xF2, 0x86, 0xBC, 0xA1, 0xAF, 0x28,-
2007 0x6B, 0xCA, 0x1A, 0xF2, 0x86, 0xBC, 0xA1, 0xAF, 0x28, 0x6B, 0xC9, 0xFB,-
2008 0x8F, 0x6B, 0x85, 0xC5, 0x56, 0x89, 0x2C, 0x20, 0xA7, 0xEB, 0x96, 0x4F,-
2009 0xE7, 0x71, 0x9E, 0x74, 0xF4, 0x90, 0x75, 0x8D, 0x3B-
2010 }-
2011};-
2012-
2013static const struct {-
2014 EC_CURVE_DATA h;-
2015 unsigned char data[0 + 47 * 6];-
2016} _EC_X9_62_CHAR2_368W1 = {-
2017 {-
2018 NID_X9_62_characteristic_two_field, 0, 47, 0xFF70-
2019 },-
2020 {-
2021 /* no seed */-
2022 /* p */-
2023 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2024 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2025 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2026 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,-
2027 /* a */-
2028 0x00, 0xE0, 0xD2, 0xEE, 0x25, 0x09, 0x52, 0x06, 0xF5, 0xE2, 0xA4, 0xF9,-
2029 0xED, 0x22, 0x9F, 0x1F, 0x25, 0x6E, 0x79, 0xA0, 0xE2, 0xB4, 0x55, 0x97,-
2030 0x0D, 0x8D, 0x0D, 0x86, 0x5B, 0xD9, 0x47, 0x78, 0xC5, 0x76, 0xD6, 0x2F,-
2031 0x0A, 0xB7, 0x51, 0x9C, 0xCD, 0x2A, 0x1A, 0x90, 0x6A, 0xE3, 0x0D,-
2032 /* b */-
2033 0x00, 0xFC, 0x12, 0x17, 0xD4, 0x32, 0x0A, 0x90, 0x45, 0x2C, 0x76, 0x0A,-
2034 0x58, 0xED, 0xCD, 0x30, 0xC8, 0xDD, 0x06, 0x9B, 0x3C, 0x34, 0x45, 0x38,-
2035 0x37, 0xA3, 0x4E, 0xD5, 0x0C, 0xB5, 0x49, 0x17, 0xE1, 0xC2, 0x11, 0x2D,-
2036 0x84, 0xD1, 0x64, 0xF4, 0x44, 0xF8, 0xF7, 0x47, 0x86, 0x04, 0x6A,-
2037 /* x */-
2038 0x00, 0x10, 0x85, 0xE2, 0x75, 0x53, 0x81, 0xDC, 0xCC, 0xE3, 0xC1, 0x55,-
2039 0x7A, 0xFA, 0x10, 0xC2, 0xF0, 0xC0, 0xC2, 0x82, 0x56, 0x46, 0xC5, 0xB3,-
2040 0x4A, 0x39, 0x4C, 0xBC, 0xFA, 0x8B, 0xC1, 0x6B, 0x22, 0xE7, 0xE7, 0x89,-
2041 0xE9, 0x27, 0xBE, 0x21, 0x6F, 0x02, 0xE1, 0xFB, 0x13, 0x6A, 0x5F,-
2042 /* y */-
2043 0x00, 0x7B, 0x3E, 0xB1, 0xBD, 0xDC, 0xBA, 0x62, 0xD5, 0xD8, 0xB2, 0x05,-
2044 0x9B, 0x52, 0x57, 0x97, 0xFC, 0x73, 0x82, 0x2C, 0x59, 0x05, 0x9C, 0x62,-
2045 0x3A, 0x45, 0xFF, 0x38, 0x43, 0xCE, 0xE8, 0xF8, 0x7C, 0xD1, 0x85, 0x5A,-
2046 0xDA, 0xA8, 0x1E, 0x2A, 0x07, 0x50, 0xB8, 0x0F, 0xDA, 0x23, 0x10,-
2047 /* order */-
2048 0x00, 0x00, 0x01, 0x00, 0x90, 0x51, 0x2D, 0xA9, 0xAF, 0x72, 0xB0, 0x83,-
2049 0x49, 0xD9, 0x8A, 0x5D, 0xD4, 0xC7, 0xB0, 0x53, 0x2E, 0xCA, 0x51, 0xCE,-
2050 0x03, 0xE2, 0xD1, 0x0F, 0x3B, 0x7A, 0xC5, 0x79, 0xBD, 0x87, 0xE9, 0x09,-
2051 0xAE, 0x40, 0xA6, 0xF1, 0x31, 0xE9, 0xCF, 0xCE, 0x5B, 0xD9, 0x67-
2052 }-
2053};-
2054-
2055static const struct {-
2056 EC_CURVE_DATA h;-
2057 unsigned char data[0 + 54 * 6];-
2058} _EC_X9_62_CHAR2_431R1 = {-
2059 {-
2060 NID_X9_62_characteristic_two_field, 0, 54, 0x2760-
2061 },-
2062 {-
2063 /* no seed */-
2064 /* p */-
2065 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2066 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2067 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2068 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2069 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
2070 /* a */-
2071 0x1A, 0x82, 0x7E, 0xF0, 0x0D, 0xD6, 0xFC, 0x0E, 0x23, 0x4C, 0xAF, 0x04,-
2072 0x6C, 0x6A, 0x5D, 0x8A, 0x85, 0x39, 0x5B, 0x23, 0x6C, 0xC4, 0xAD, 0x2C,-
2073 0xF3, 0x2A, 0x0C, 0xAD, 0xBD, 0xC9, 0xDD, 0xF6, 0x20, 0xB0, 0xEB, 0x99,-
2074 0x06, 0xD0, 0x95, 0x7F, 0x6C, 0x6F, 0xEA, 0xCD, 0x61, 0x54, 0x68, 0xDF,-
2075 0x10, 0x4D, 0xE2, 0x96, 0xCD, 0x8F,-
2076 /* b */-
2077 0x10, 0xD9, 0xB4, 0xA3, 0xD9, 0x04, 0x7D, 0x8B, 0x15, 0x43, 0x59, 0xAB,-
2078 0xFB, 0x1B, 0x7F, 0x54, 0x85, 0xB0, 0x4C, 0xEB, 0x86, 0x82, 0x37, 0xDD,-
2079 0xC9, 0xDE, 0xDA, 0x98, 0x2A, 0x67, 0x9A, 0x5A, 0x91, 0x9B, 0x62, 0x6D,-
2080 0x4E, 0x50, 0xA8, 0xDD, 0x73, 0x1B, 0x10, 0x7A, 0x99, 0x62, 0x38, 0x1F,-
2081 0xB5, 0xD8, 0x07, 0xBF, 0x26, 0x18,-
2082 /* x */-
2083 0x12, 0x0F, 0xC0, 0x5D, 0x3C, 0x67, 0xA9, 0x9D, 0xE1, 0x61, 0xD2, 0xF4,-
2084 0x09, 0x26, 0x22, 0xFE, 0xCA, 0x70, 0x1B, 0xE4, 0xF5, 0x0F, 0x47, 0x58,-
2085 0x71, 0x4E, 0x8A, 0x87, 0xBB, 0xF2, 0xA6, 0x58, 0xEF, 0x8C, 0x21, 0xE7,-
2086 0xC5, 0xEF, 0xE9, 0x65, 0x36, 0x1F, 0x6C, 0x29, 0x99, 0xC0, 0xC2, 0x47,-
2087 0xB0, 0xDB, 0xD7, 0x0C, 0xE6, 0xB7,-
2088 /* y */-
2089 0x20, 0xD0, 0xAF, 0x89, 0x03, 0xA9, 0x6F, 0x8D, 0x5F, 0xA2, 0xC2, 0x55,-
2090 0x74, 0x5D, 0x3C, 0x45, 0x1B, 0x30, 0x2C, 0x93, 0x46, 0xD9, 0xB7, 0xE4,-
2091 0x85, 0xE7, 0xBC, 0xE4, 0x1F, 0x6B, 0x59, 0x1F, 0x3E, 0x8F, 0x6A, 0xDD,-
2092 0xCB, 0xB0, 0xBC, 0x4C, 0x2F, 0x94, 0x7A, 0x7D, 0xE1, 0xA8, 0x9B, 0x62,-
2093 0x5D, 0x6A, 0x59, 0x8B, 0x37, 0x60,-
2094 /* order */-
2095 0x00, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40,-
2096 0x34, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40, 0x34, 0x03, 0x40,-
2097 0x34, 0x03, 0x40, 0x34, 0x03, 0x23, 0xC3, 0x13, 0xFA, 0xB5, 0x05, 0x89,-
2098 0x70, 0x3B, 0x5E, 0xC6, 0x8D, 0x35, 0x87, 0xFE, 0xC6, 0x0D, 0x16, 0x1C,-
2099 0xC1, 0x49, 0xC1, 0xAD, 0x4A, 0x91-
2100 }-
2101};-
2102-
2103static const struct {-
2104 EC_CURVE_DATA h;-
2105 unsigned char data[0 + 15 * 6];-
2106} _EC_WTLS_1 = {-
2107 {-
2108 NID_X9_62_characteristic_two_field, 0, 15, 2-
2109 },-
2110 {-
2111 /* no seed */-
2112 /* p */-
2113 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2114 0x00, 0x02, 0x01,-
2115 /* a */-
2116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2117 0x00, 0x00, 0x01,-
2118 /* b */-
2119 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2120 0x00, 0x00, 0x01,-
2121 /* x */-
2122 0x01, 0x66, 0x79, 0x79, 0xA4, 0x0B, 0xA4, 0x97, 0xE5, 0xD5, 0xC2, 0x70,-
2123 0x78, 0x06, 0x17,-
2124 /* y */-
2125 0x00, 0xF4, 0x4B, 0x4A, 0xF1, 0xEC, 0xC2, 0x63, 0x0E, 0x08, 0x78, 0x5C,-
2126 0xEB, 0xCC, 0x15,-
2127 /* order */-
2128 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF, 0x91, 0xAF,-
2129 0x6D, 0xEA, 0x73-
2130 }-
2131};-
2132-
2133/* IPSec curves */-
2134/*-
2135 * NOTE: The of curves over a extension field of non prime degree is not-
2136 * recommended (Weil-descent). As the group order is not a prime this curve-
2137 * is not suitable for ECDSA.-
2138 */-
2139static const struct {-
2140 EC_CURVE_DATA h;-
2141 unsigned char data[0 + 20 * 6];-
2142} _EC_IPSEC_155_ID3 = {-
2143 {-
2144 NID_X9_62_characteristic_two_field, 0, 20, 3-
2145 },-
2146 {-
2147 /* no seed */-
2148 /* p */-
2149 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2150 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
2151 /* a */-
2152 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2154 /* b */-
2155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2156 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x33, 0x8f,-
2157 /* x */-
2158 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b,-
2160 /* y */-
2161 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8,-
2163 /* order */-
2164 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xC7, 0xF3,-
2165 0xC7, 0x88, 0x1B, 0xD0, 0x86, 0x8F, 0xA8, 0x6C-
2166 }-
2167};-
2168-
2169/*-
2170 * NOTE: The of curves over a extension field of non prime degree is not-
2171 * recommended (Weil-descent). As the group order is not a prime this curve-
2172 * is not suitable for ECDSA.-
2173 */-
2174static const struct {-
2175 EC_CURVE_DATA h;-
2176 unsigned char data[0 + 24 * 6];-
2177} _EC_IPSEC_185_ID4 = {-
2178 {-
2179 NID_X9_62_characteristic_two_field, 0, 24, 2-
2180 },-
2181 {-
2182 /* no seed */-
2183 /* p */-
2184 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2185 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,-
2186 /* a */-
2187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2189 /* b */-
2190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xe9,-
2192 /* x */-
2193 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,-
2195 /* y */-
2196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
2197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,-
2198 /* order */-
2199 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,-
2200 0xED, 0xF9, 0x7C, 0x44, 0xDB, 0x9F, 0x24, 0x20, 0xBA, 0xFC, 0xA7, 0x5E-
2201 }-
2202};-
2203-
2204#endif-
2205-
2206/*-
2207 * These curves were added by Annie Yousar.-
2208 * For the definition of RFC 5639 curves see-
2209 * http://www.ietf.org/rfc/rfc5639.txt These curves are generated verifiable-
2210 * at random, nevertheless the seed is omitted as parameter because the-
2211 * generation mechanism is different from those defined in ANSI X9.62.-
2212 */-
2213-
2214static const struct {-
2215 EC_CURVE_DATA h;-
2216 unsigned char data[0 + 20 * 6];-
2217} _EC_brainpoolP160r1 = {-
2218 {-
2219 NID_X9_62_prime_field, 0, 20, 1-
2220 },-
2221 {-
2222 /* no seed */-
2223 /* p */-
2224 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,-
2225 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,-
2226 /* a */-
2227 0x34, 0x0E, 0x7B, 0xE2, 0xA2, 0x80, 0xEB, 0x74, 0xE2, 0xBE, 0x61, 0xBA,-
2228 0xDA, 0x74, 0x5D, 0x97, 0xE8, 0xF7, 0xC3, 0x00,-
2229 /* b */-
2230 0x1E, 0x58, 0x9A, 0x85, 0x95, 0x42, 0x34, 0x12, 0x13, 0x4F, 0xAA, 0x2D,-
2231 0xBD, 0xEC, 0x95, 0xC8, 0xD8, 0x67, 0x5E, 0x58,-
2232 /* x */-
2233 0xBE, 0xD5, 0xAF, 0x16, 0xEA, 0x3F, 0x6A, 0x4F, 0x62, 0x93, 0x8C, 0x46,-
2234 0x31, 0xEB, 0x5A, 0xF7, 0xBD, 0xBC, 0xDB, 0xC3,-
2235 /* y */-
2236 0x16, 0x67, 0xCB, 0x47, 0x7A, 0x1A, 0x8E, 0xC3, 0x38, 0xF9, 0x47, 0x41,-
2237 0x66, 0x9C, 0x97, 0x63, 0x16, 0xDA, 0x63, 0x21,-
2238 /* order */-
2239 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,-
2240 0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09-
2241 }-
2242};-
2243-
2244static const struct {-
2245 EC_CURVE_DATA h;-
2246 unsigned char data[0 + 20 * 6];-
2247} _EC_brainpoolP160t1 = {-
2248 {-
2249 NID_X9_62_prime_field, 0, 20, 1-
2250 },-
2251 {-
2252 /* no seed */-
2253 /* p */-
2254 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,-
2255 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,-
2256 /* a */-
2257 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,-
2258 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0C,-
2259 /* b */-
2260 0x7A, 0x55, 0x6B, 0x6D, 0xAE, 0x53, 0x5B, 0x7B, 0x51, 0xED, 0x2C, 0x4D,-
2261 0x7D, 0xAA, 0x7A, 0x0B, 0x5C, 0x55, 0xF3, 0x80,-
2262 /* x */-
2263 0xB1, 0x99, 0xB1, 0x3B, 0x9B, 0x34, 0xEF, 0xC1, 0x39, 0x7E, 0x64, 0xBA,-
2264 0xEB, 0x05, 0xAC, 0xC2, 0x65, 0xFF, 0x23, 0x78,-
2265 /* y */-
2266 0xAD, 0xD6, 0x71, 0x8B, 0x7C, 0x7C, 0x19, 0x61, 0xF0, 0x99, 0x1B, 0x84,-
2267 0x24, 0x43, 0x77, 0x21, 0x52, 0xC9, 0xE0, 0xAD,-
2268 /* order */-
2269 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,-
2270 0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09-
2271 }-
2272};-
2273-
2274static const struct {-
2275 EC_CURVE_DATA h;-
2276 unsigned char data[0 + 24 * 6];-
2277} _EC_brainpoolP192r1 = {-
2278 {-
2279 NID_X9_62_prime_field, 0, 24, 1-
2280 },-
2281 {-
2282 /* no seed */-
2283 /* p */-
2284 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,-
2285 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,-
2286 /* a */-
2287 0x6A, 0x91, 0x17, 0x40, 0x76, 0xB1, 0xE0, 0xE1, 0x9C, 0x39, 0xC0, 0x31,-
2288 0xFE, 0x86, 0x85, 0xC1, 0xCA, 0xE0, 0x40, 0xE5, 0xC6, 0x9A, 0x28, 0xEF,-
2289 /* b */-
2290 0x46, 0x9A, 0x28, 0xEF, 0x7C, 0x28, 0xCC, 0xA3, 0xDC, 0x72, 0x1D, 0x04,-
2291 0x4F, 0x44, 0x96, 0xBC, 0xCA, 0x7E, 0xF4, 0x14, 0x6F, 0xBF, 0x25, 0xC9,-
2292 /* x */-
2293 0xC0, 0xA0, 0x64, 0x7E, 0xAA, 0xB6, 0xA4, 0x87, 0x53, 0xB0, 0x33, 0xC5,-
2294 0x6C, 0xB0, 0xF0, 0x90, 0x0A, 0x2F, 0x5C, 0x48, 0x53, 0x37, 0x5F, 0xD6,-
2295 /* y */-
2296 0x14, 0xB6, 0x90, 0x86, 0x6A, 0xBD, 0x5B, 0xB8, 0x8B, 0x5F, 0x48, 0x28,-
2297 0xC1, 0x49, 0x00, 0x02, 0xE6, 0x77, 0x3F, 0xA2, 0xFA, 0x29, 0x9B, 0x8F,-
2298 /* order */-
2299 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,-
2300 0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1-
2301 }-
2302};-
2303-
2304static const struct {-
2305 EC_CURVE_DATA h;-
2306 unsigned char data[0 + 24 * 6];-
2307} _EC_brainpoolP192t1 = {-
2308 {-
2309 NID_X9_62_prime_field, 0, 24, 1-
2310 },-
2311 {-
2312 /* no seed */-
2313 /* p */-
2314 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,-
2315 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,-
2316 /* a */-
2317 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,-
2318 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x94,-
2319 /* b */-
2320 0x13, 0xD5, 0x6F, 0xFA, 0xEC, 0x78, 0x68, 0x1E, 0x68, 0xF9, 0xDE, 0xB4,-
2321 0x3B, 0x35, 0xBE, 0xC2, 0xFB, 0x68, 0x54, 0x2E, 0x27, 0x89, 0x7B, 0x79,-
2322 /* x */-
2323 0x3A, 0xE9, 0xE5, 0x8C, 0x82, 0xF6, 0x3C, 0x30, 0x28, 0x2E, 0x1F, 0xE7,-
2324 0xBB, 0xF4, 0x3F, 0xA7, 0x2C, 0x44, 0x6A, 0xF6, 0xF4, 0x61, 0x81, 0x29,-
2325 /* y */-
2326 0x09, 0x7E, 0x2C, 0x56, 0x67, 0xC2, 0x22, 0x3A, 0x90, 0x2A, 0xB5, 0xCA,-
2327 0x44, 0x9D, 0x00, 0x84, 0xB7, 0xE5, 0xB3, 0xDE, 0x7C, 0xCC, 0x01, 0xC9,-
2328 /* order */-
2329 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,-
2330 0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1-
2331 }-
2332};-
2333-
2334static const struct {-
2335 EC_CURVE_DATA h;-
2336 unsigned char data[0 + 28 * 6];-
2337} _EC_brainpoolP224r1 = {-
2338 {-
2339 NID_X9_62_prime_field, 0, 28, 1-
2340 },-
2341 {-
2342 /* no seed */-
2343 /* p */-
2344 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,-
2345 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,-
2346 0x7E, 0xC8, 0xC0, 0xFF,-
2347 /* a */-
2348 0x68, 0xA5, 0xE6, 0x2C, 0xA9, 0xCE, 0x6C, 0x1C, 0x29, 0x98, 0x03, 0xA6,-
2349 0xC1, 0x53, 0x0B, 0x51, 0x4E, 0x18, 0x2A, 0xD8, 0xB0, 0x04, 0x2A, 0x59,-
2350 0xCA, 0xD2, 0x9F, 0x43,-
2351 /* b */-
2352 0x25, 0x80, 0xF6, 0x3C, 0xCF, 0xE4, 0x41, 0x38, 0x87, 0x07, 0x13, 0xB1,-
2353 0xA9, 0x23, 0x69, 0xE3, 0x3E, 0x21, 0x35, 0xD2, 0x66, 0xDB, 0xB3, 0x72,-
2354 0x38, 0x6C, 0x40, 0x0B,-
2355 /* x */-
2356 0x0D, 0x90, 0x29, 0xAD, 0x2C, 0x7E, 0x5C, 0xF4, 0x34, 0x08, 0x23, 0xB2,-
2357 0xA8, 0x7D, 0xC6, 0x8C, 0x9E, 0x4C, 0xE3, 0x17, 0x4C, 0x1E, 0x6E, 0xFD,-
2358 0xEE, 0x12, 0xC0, 0x7D,-
2359 /* y */-
2360 0x58, 0xAA, 0x56, 0xF7, 0x72, 0xC0, 0x72, 0x6F, 0x24, 0xC6, 0xB8, 0x9E,-
2361 0x4E, 0xCD, 0xAC, 0x24, 0x35, 0x4B, 0x9E, 0x99, 0xCA, 0xA3, 0xF6, 0xD3,-
2362 0x76, 0x14, 0x02, 0xCD,-
2363 /* order */-
2364 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,-
2365 0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,-
2366 0xA5, 0xA7, 0x93, 0x9F-
2367 }-
2368};-
2369-
2370static const struct {-
2371 EC_CURVE_DATA h;-
2372 unsigned char data[0 + 28 * 6];-
2373} _EC_brainpoolP224t1 = {-
2374 {-
2375 NID_X9_62_prime_field, 0, 28, 1-
2376 },-
2377 {-
2378 /* no seed */-
2379 /* p */-
2380 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,-
2381 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,-
2382 0x7E, 0xC8, 0xC0, 0xFF,-
2383 /* a */-
2384 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,-
2385 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,-
2386 0x7E, 0xC8, 0xC0, 0xFC,-
2387 /* b */-
2388 0x4B, 0x33, 0x7D, 0x93, 0x41, 0x04, 0xCD, 0x7B, 0xEF, 0x27, 0x1B, 0xF6,-
2389 0x0C, 0xED, 0x1E, 0xD2, 0x0D, 0xA1, 0x4C, 0x08, 0xB3, 0xBB, 0x64, 0xF1,-
2390 0x8A, 0x60, 0x88, 0x8D,-
2391 /* x */-
2392 0x6A, 0xB1, 0xE3, 0x44, 0xCE, 0x25, 0xFF, 0x38, 0x96, 0x42, 0x4E, 0x7F,-
2393 0xFE, 0x14, 0x76, 0x2E, 0xCB, 0x49, 0xF8, 0x92, 0x8A, 0xC0, 0xC7, 0x60,-
2394 0x29, 0xB4, 0xD5, 0x80,-
2395 /* y */-
2396 0x03, 0x74, 0xE9, 0xF5, 0x14, 0x3E, 0x56, 0x8C, 0xD2, 0x3F, 0x3F, 0x4D,-
2397 0x7C, 0x0D, 0x4B, 0x1E, 0x41, 0xC8, 0xCC, 0x0D, 0x1C, 0x6A, 0xBD, 0x5F,-
2398 0x1A, 0x46, 0xDB, 0x4C,-
2399 /* order */-
2400 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,-
2401 0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,-
2402 0xA5, 0xA7, 0x93, 0x9F-
2403 }-
2404};-
2405-
2406static const struct {-
2407 EC_CURVE_DATA h;-
2408 unsigned char data[0 + 32 * 6];-
2409} _EC_brainpoolP256r1 = {-
2410 {-
2411 NID_X9_62_prime_field, 0, 32, 1-
2412 },-
2413 {-
2414 /* no seed */-
2415 /* p */-
2416 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,-
2417 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,-
2418 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77,-
2419 /* a */-
2420 0x7D, 0x5A, 0x09, 0x75, 0xFC, 0x2C, 0x30, 0x57, 0xEE, 0xF6, 0x75, 0x30,-
2421 0x41, 0x7A, 0xFF, 0xE7, 0xFB, 0x80, 0x55, 0xC1, 0x26, 0xDC, 0x5C, 0x6C,-
2422 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9,-
2423 /* b */-
2424 0x26, 0xDC, 0x5C, 0x6C, 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9,-
2425 0xBB, 0xD7, 0x7C, 0xBF, 0x95, 0x84, 0x16, 0x29, 0x5C, 0xF7, 0xE1, 0xCE,-
2426 0x6B, 0xCC, 0xDC, 0x18, 0xFF, 0x8C, 0x07, 0xB6,-
2427 /* x */-
2428 0x8B, 0xD2, 0xAE, 0xB9, 0xCB, 0x7E, 0x57, 0xCB, 0x2C, 0x4B, 0x48, 0x2F,-
2429 0xFC, 0x81, 0xB7, 0xAF, 0xB9, 0xDE, 0x27, 0xE1, 0xE3, 0xBD, 0x23, 0xC2,-
2430 0x3A, 0x44, 0x53, 0xBD, 0x9A, 0xCE, 0x32, 0x62,-
2431 /* y */-
2432 0x54, 0x7E, 0xF8, 0x35, 0xC3, 0xDA, 0xC4, 0xFD, 0x97, 0xF8, 0x46, 0x1A,-
2433 0x14, 0x61, 0x1D, 0xC9, 0xC2, 0x77, 0x45, 0x13, 0x2D, 0xED, 0x8E, 0x54,-
2434 0x5C, 0x1D, 0x54, 0xC7, 0x2F, 0x04, 0x69, 0x97,-
2435 /* order */-
2436 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,-
2437 0x9D, 0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7,-
2438 0x90, 0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7-
2439 }-
2440};-
2441-
2442static const struct {-
2443 EC_CURVE_DATA h;-
2444 unsigned char data[0 + 32 * 6];-
2445} _EC_brainpoolP256t1 = {-
2446 {-
2447 NID_X9_62_prime_field, 0, 32, 1-
2448 },-
2449 {-
2450 /* no seed */-
2451 /* p */-
2452 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,-
2453 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,-
2454 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77,-
2455 /* a */-
2456 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,-
2457 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28,-
2458 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x74,-
2459 /* b */-
2460 0x66, 0x2C, 0x61, 0xC4, 0x30, 0xD8, 0x4E, 0xA4, 0xFE, 0x66, 0xA7, 0x73,-
2461 0x3D, 0x0B, 0x76, 0xB7, 0xBF, 0x93, 0xEB, 0xC4, 0xAF, 0x2F, 0x49, 0x25,-
2462 0x6A, 0xE5, 0x81, 0x01, 0xFE, 0xE9, 0x2B, 0x04,-
2463 /* x */-
2464 0xA3, 0xE8, 0xEB, 0x3C, 0xC1, 0xCF, 0xE7, 0xB7, 0x73, 0x22, 0x13, 0xB2,-
2465 0x3A, 0x65, 0x61, 0x49, 0xAF, 0xA1, 0x42, 0xC4, 0x7A, 0xAF, 0xBC, 0x2B,-
2466 0x79, 0xA1, 0x91, 0x56, 0x2E, 0x13, 0x05, 0xF4,-
2467 /* y */-
2468 0x2D, 0x99, 0x6C, 0x82, 0x34, 0x39, 0xC5, 0x6D, 0x7F, 0x7B, 0x22, 0xE1,-
2469 0x46, 0x44, 0x41, 0x7E, 0x69, 0xBC, 0xB6, 0xDE, 0x39, 0xD0, 0x27, 0x00,-
2470 0x1D, 0xAB, 0xE8, 0xF3, 0x5B, 0x25, 0xC9, 0xBE,-
2471 /* order */-
2472 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90,-
2473 0x9D, 0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7,-
2474 0x90, 0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7-
2475 }-
2476};-
2477-
2478static const struct {-
2479 EC_CURVE_DATA h;-
2480 unsigned char data[0 + 40 * 6];-
2481} _EC_brainpoolP320r1 = {-
2482 {-
2483 NID_X9_62_prime_field, 0, 40, 1-
2484 },-
2485 {-
2486 /* no seed */-
2487 /* p */-
2488 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,-
2489 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,-
2490 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,-
2491 0xF1, 0xB3, 0x2E, 0x27,-
2492 /* a */-
2493 0x3E, 0xE3, 0x0B, 0x56, 0x8F, 0xBA, 0xB0, 0xF8, 0x83, 0xCC, 0xEB, 0xD4,-
2494 0x6D, 0x3F, 0x3B, 0xB8, 0xA2, 0xA7, 0x35, 0x13, 0xF5, 0xEB, 0x79, 0xDA,-
2495 0x66, 0x19, 0x0E, 0xB0, 0x85, 0xFF, 0xA9, 0xF4, 0x92, 0xF3, 0x75, 0xA9,-
2496 0x7D, 0x86, 0x0E, 0xB4,-
2497 /* b */-
2498 0x52, 0x08, 0x83, 0x94, 0x9D, 0xFD, 0xBC, 0x42, 0xD3, 0xAD, 0x19, 0x86,-
2499 0x40, 0x68, 0x8A, 0x6F, 0xE1, 0x3F, 0x41, 0x34, 0x95, 0x54, 0xB4, 0x9A,-
2500 0xCC, 0x31, 0xDC, 0xCD, 0x88, 0x45, 0x39, 0x81, 0x6F, 0x5E, 0xB4, 0xAC,-
2501 0x8F, 0xB1, 0xF1, 0xA6,-
2502 /* x */-
2503 0x43, 0xBD, 0x7E, 0x9A, 0xFB, 0x53, 0xD8, 0xB8, 0x52, 0x89, 0xBC, 0xC4,-
2504 0x8E, 0xE5, 0xBF, 0xE6, 0xF2, 0x01, 0x37, 0xD1, 0x0A, 0x08, 0x7E, 0xB6,-
2505 0xE7, 0x87, 0x1E, 0x2A, 0x10, 0xA5, 0x99, 0xC7, 0x10, 0xAF, 0x8D, 0x0D,-
2506 0x39, 0xE2, 0x06, 0x11,-
2507 /* y */-
2508 0x14, 0xFD, 0xD0, 0x55, 0x45, 0xEC, 0x1C, 0xC8, 0xAB, 0x40, 0x93, 0x24,-
2509 0x7F, 0x77, 0x27, 0x5E, 0x07, 0x43, 0xFF, 0xED, 0x11, 0x71, 0x82, 0xEA,-
2510 0xA9, 0xC7, 0x78, 0x77, 0xAA, 0xAC, 0x6A, 0xC7, 0xD3, 0x52, 0x45, 0xD1,-
2511 0x69, 0x2E, 0x8E, 0xE1,-
2512 /* order */-
2513 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,-
2514 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6, 0x8F, 0x12, 0xA3,-
2515 0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9, 0x86, 0x91, 0x55, 0x5B,-
2516 0x44, 0xC5, 0x93, 0x11-
2517 }-
2518};-
2519-
2520static const struct {-
2521 EC_CURVE_DATA h;-
2522 unsigned char data[0 + 40 * 6];-
2523} _EC_brainpoolP320t1 = {-
2524 {-
2525 NID_X9_62_prime_field, 0, 40, 1-
2526 },-
2527 {-
2528 /* no seed */-
2529 /* p */-
2530 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,-
2531 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,-
2532 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,-
2533 0xF1, 0xB3, 0x2E, 0x27,-
2534 /* a */-
2535 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,-
2536 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF,-
2537 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1,-
2538 0xF1, 0xB3, 0x2E, 0x24,-
2539 /* b */-
2540 0xA7, 0xF5, 0x61, 0xE0, 0x38, 0xEB, 0x1E, 0xD5, 0x60, 0xB3, 0xD1, 0x47,-
2541 0xDB, 0x78, 0x20, 0x13, 0x06, 0x4C, 0x19, 0xF2, 0x7E, 0xD2, 0x7C, 0x67,-
2542 0x80, 0xAA, 0xF7, 0x7F, 0xB8, 0xA5, 0x47, 0xCE, 0xB5, 0xB4, 0xFE, 0xF4,-
2543 0x22, 0x34, 0x03, 0x53,-
2544 /* x */-
2545 0x92, 0x5B, 0xE9, 0xFB, 0x01, 0xAF, 0xC6, 0xFB, 0x4D, 0x3E, 0x7D, 0x49,-
2546 0x90, 0x01, 0x0F, 0x81, 0x34, 0x08, 0xAB, 0x10, 0x6C, 0x4F, 0x09, 0xCB,-
2547 0x7E, 0xE0, 0x78, 0x68, 0xCC, 0x13, 0x6F, 0xFF, 0x33, 0x57, 0xF6, 0x24,-
2548 0xA2, 0x1B, 0xED, 0x52,-
2549 /* y */-
2550 0x63, 0xBA, 0x3A, 0x7A, 0x27, 0x48, 0x3E, 0xBF, 0x66, 0x71, 0xDB, 0xEF,-
2551 0x7A, 0xBB, 0x30, 0xEB, 0xEE, 0x08, 0x4E, 0x58, 0xA0, 0xB0, 0x77, 0xAD,-
2552 0x42, 0xA5, 0xA0, 0x98, 0x9D, 0x1E, 0xE7, 0x1B, 0x1B, 0x9B, 0xC0, 0x45,-
2553 0x5F, 0xB0, 0xD2, 0xC3,-
2554 /* order */-
2555 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E,-
2556 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6, 0x8F, 0x12, 0xA3,-
2557 0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9, 0x86, 0x91, 0x55, 0x5B,-
2558 0x44, 0xC5, 0x93, 0x11-
2559 }-
2560};-
2561-
2562static const struct {-
2563 EC_CURVE_DATA h;-
2564 unsigned char data[0 + 48 * 6];-
2565} _EC_brainpoolP384r1 = {-
2566 {-
2567 NID_X9_62_prime_field, 0, 48, 1-
2568 },-
2569 {-
2570 /* no seed */-
2571 /* p */-
2572 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,-
2573 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,-
2574 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,-
2575 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53,-
2576 /* a */-
2577 0x7B, 0xC3, 0x82, 0xC6, 0x3D, 0x8C, 0x15, 0x0C, 0x3C, 0x72, 0x08, 0x0A,-
2578 0xCE, 0x05, 0xAF, 0xA0, 0xC2, 0xBE, 0xA2, 0x8E, 0x4F, 0xB2, 0x27, 0x87,-
2579 0x13, 0x91, 0x65, 0xEF, 0xBA, 0x91, 0xF9, 0x0F, 0x8A, 0xA5, 0x81, 0x4A,-
2580 0x50, 0x3A, 0xD4, 0xEB, 0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26,-
2581 /* b */-
2582 0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26, 0x8B, 0x39, 0xB5, 0x54,-
2583 0x16, 0xF0, 0x44, 0x7C, 0x2F, 0xB7, 0x7D, 0xE1, 0x07, 0xDC, 0xD2, 0xA6,-
2584 0x2E, 0x88, 0x0E, 0xA5, 0x3E, 0xEB, 0x62, 0xD5, 0x7C, 0xB4, 0x39, 0x02,-
2585 0x95, 0xDB, 0xC9, 0x94, 0x3A, 0xB7, 0x86, 0x96, 0xFA, 0x50, 0x4C, 0x11,-
2586 /* x */-
2587 0x1D, 0x1C, 0x64, 0xF0, 0x68, 0xCF, 0x45, 0xFF, 0xA2, 0xA6, 0x3A, 0x81,-
2588 0xB7, 0xC1, 0x3F, 0x6B, 0x88, 0x47, 0xA3, 0xE7, 0x7E, 0xF1, 0x4F, 0xE3,-
2589 0xDB, 0x7F, 0xCA, 0xFE, 0x0C, 0xBD, 0x10, 0xE8, 0xE8, 0x26, 0xE0, 0x34,-
2590 0x36, 0xD6, 0x46, 0xAA, 0xEF, 0x87, 0xB2, 0xE2, 0x47, 0xD4, 0xAF, 0x1E,-
2591 /* y */-
2592 0x8A, 0xBE, 0x1D, 0x75, 0x20, 0xF9, 0xC2, 0xA4, 0x5C, 0xB1, 0xEB, 0x8E,-
2593 0x95, 0xCF, 0xD5, 0x52, 0x62, 0xB7, 0x0B, 0x29, 0xFE, 0xEC, 0x58, 0x64,-
2594 0xE1, 0x9C, 0x05, 0x4F, 0xF9, 0x91, 0x29, 0x28, 0x0E, 0x46, 0x46, 0x21,-
2595 0x77, 0x91, 0x81, 0x11, 0x42, 0x82, 0x03, 0x41, 0x26, 0x3C, 0x53, 0x15,-
2596 /* order */-
2597 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,-
2598 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB3,-
2599 0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7, 0xCF, 0x3A, 0xB6, 0xAF,-
2600 0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32, 0x02, 0xE9, 0x04, 0x65, 0x65-
2601 }-
2602};-
2603-
2604static const struct {-
2605 EC_CURVE_DATA h;-
2606 unsigned char data[0 + 48 * 6];-
2607} _EC_brainpoolP384t1 = {-
2608 {-
2609 NID_X9_62_prime_field, 0, 48, 1-
2610 },-
2611 {-
2612 /* no seed */-
2613 /* p */-
2614 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,-
2615 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,-
2616 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,-
2617 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53,-
2618 /* a */-
2619 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,-
2620 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4,-
2621 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29,-
2622 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x50,-
2623 /* b */-
2624 0x7F, 0x51, 0x9E, 0xAD, 0xA7, 0xBD, 0xA8, 0x1B, 0xD8, 0x26, 0xDB, 0xA6,-
2625 0x47, 0x91, 0x0F, 0x8C, 0x4B, 0x93, 0x46, 0xED, 0x8C, 0xCD, 0xC6, 0x4E,-
2626 0x4B, 0x1A, 0xBD, 0x11, 0x75, 0x6D, 0xCE, 0x1D, 0x20, 0x74, 0xAA, 0x26,-
2627 0x3B, 0x88, 0x80, 0x5C, 0xED, 0x70, 0x35, 0x5A, 0x33, 0xB4, 0x71, 0xEE,-
2628 /* x */-
2629 0x18, 0xDE, 0x98, 0xB0, 0x2D, 0xB9, 0xA3, 0x06, 0xF2, 0xAF, 0xCD, 0x72,-
2630 0x35, 0xF7, 0x2A, 0x81, 0x9B, 0x80, 0xAB, 0x12, 0xEB, 0xD6, 0x53, 0x17,-
2631 0x24, 0x76, 0xFE, 0xCD, 0x46, 0x2A, 0xAB, 0xFF, 0xC4, 0xFF, 0x19, 0x1B,-
2632 0x94, 0x6A, 0x5F, 0x54, 0xD8, 0xD0, 0xAA, 0x2F, 0x41, 0x88, 0x08, 0xCC,-
2633 /* y */-
2634 0x25, 0xAB, 0x05, 0x69, 0x62, 0xD3, 0x06, 0x51, 0xA1, 0x14, 0xAF, 0xD2,-
2635 0x75, 0x5A, 0xD3, 0x36, 0x74, 0x7F, 0x93, 0x47, 0x5B, 0x7A, 0x1F, 0xCA,-
2636 0x3B, 0x88, 0xF2, 0xB6, 0xA2, 0x08, 0xCC, 0xFE, 0x46, 0x94, 0x08, 0x58,-
2637 0x4D, 0xC2, 0xB2, 0x91, 0x26, 0x75, 0xBF, 0x5B, 0x9E, 0x58, 0x29, 0x28,-
2638 /* order */-
2639 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E,-
2640 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB3,-
2641 0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7, 0xCF, 0x3A, 0xB6, 0xAF,-
2642 0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32, 0x02, 0xE9, 0x04, 0x65, 0x65-
2643 }-
2644};-
2645-
2646static const struct {-
2647 EC_CURVE_DATA h;-
2648 unsigned char data[0 + 64 * 6];-
2649} _EC_brainpoolP512r1 = {-
2650 {-
2651 NID_X9_62_prime_field, 0, 64, 1-
2652 },-
2653 {-
2654 /* no seed */-
2655 /* p */-
2656 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,-
2657 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,-
2658 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,-
2659 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,-
2660 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,-
2661 0x58, 0x3A, 0x48, 0xF3,-
2662 /* a */-
2663 0x78, 0x30, 0xA3, 0x31, 0x8B, 0x60, 0x3B, 0x89, 0xE2, 0x32, 0x71, 0x45,-
2664 0xAC, 0x23, 0x4C, 0xC5, 0x94, 0xCB, 0xDD, 0x8D, 0x3D, 0xF9, 0x16, 0x10,-
2665 0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC, 0x2D, 0xED, 0x5D, 0x5A,-
2666 0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9, 0x8B, 0x9A, 0xC8, 0xB5,-
2667 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9, 0xE7, 0xC1, 0xAC, 0x4D,-
2668 0x77, 0xFC, 0x94, 0xCA,-
2669 /* b */-
2670 0x3D, 0xF9, 0x16, 0x10, 0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC,-
2671 0x2D, 0xED, 0x5D, 0x5A, 0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9,-
2672 0x8B, 0x9A, 0xC8, 0xB5, 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9,-
2673 0xE7, 0xC1, 0xAC, 0x4D, 0x77, 0xFC, 0x94, 0xCA, 0xDC, 0x08, 0x3E, 0x67,-
2674 0x98, 0x40, 0x50, 0xB7, 0x5E, 0xBA, 0xE5, 0xDD, 0x28, 0x09, 0xBD, 0x63,-
2675 0x80, 0x16, 0xF7, 0x23,-
2676 /* x */-
2677 0x81, 0xAE, 0xE4, 0xBD, 0xD8, 0x2E, 0xD9, 0x64, 0x5A, 0x21, 0x32, 0x2E,-
2678 0x9C, 0x4C, 0x6A, 0x93, 0x85, 0xED, 0x9F, 0x70, 0xB5, 0xD9, 0x16, 0xC1,-
2679 0xB4, 0x3B, 0x62, 0xEE, 0xF4, 0xD0, 0x09, 0x8E, 0xFF, 0x3B, 0x1F, 0x78,-
2680 0xE2, 0xD0, 0xD4, 0x8D, 0x50, 0xD1, 0x68, 0x7B, 0x93, 0xB9, 0x7D, 0x5F,-
2681 0x7C, 0x6D, 0x50, 0x47, 0x40, 0x6A, 0x5E, 0x68, 0x8B, 0x35, 0x22, 0x09,-
2682 0xBC, 0xB9, 0xF8, 0x22,-
2683 /* y */-
2684 0x7D, 0xDE, 0x38, 0x5D, 0x56, 0x63, 0x32, 0xEC, 0xC0, 0xEA, 0xBF, 0xA9,-
2685 0xCF, 0x78, 0x22, 0xFD, 0xF2, 0x09, 0xF7, 0x00, 0x24, 0xA5, 0x7B, 0x1A,-
2686 0xA0, 0x00, 0xC5, 0x5B, 0x88, 0x1F, 0x81, 0x11, 0xB2, 0xDC, 0xDE, 0x49,-
2687 0x4A, 0x5F, 0x48, 0x5E, 0x5B, 0xCA, 0x4B, 0xD8, 0x8A, 0x27, 0x63, 0xAE,-
2688 0xD1, 0xCA, 0x2B, 0x2F, 0xA8, 0xF0, 0x54, 0x06, 0x78, 0xCD, 0x1E, 0x0F,-
2689 0x3A, 0xD8, 0x08, 0x92,-
2690 /* order */-
2691 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,-
2692 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,-
2693 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41,-
2694 0x4C, 0xA9, 0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47,-
2695 0x1D, 0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82,-
2696 0x9C, 0xA9, 0x00, 0x69-
2697 }-
2698};-
2699-
2700static const struct {-
2701 EC_CURVE_DATA h;-
2702 unsigned char data[0 + 64 * 6];-
2703} _EC_brainpoolP512t1 = {-
2704 {-
2705 NID_X9_62_prime_field, 0, 64, 1-
2706 },-
2707 {-
2708 /* no seed */-
2709 /* p */-
2710 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,-
2711 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,-
2712 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,-
2713 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,-
2714 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,-
2715 0x58, 0x3A, 0x48, 0xF3,-
2716 /* a */-
2717 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,-
2718 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,-
2719 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00,-
2720 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6,-
2721 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56,-
2722 0x58, 0x3A, 0x48, 0xF0,-
2723 /* b */-
2724 0x7C, 0xBB, 0xBC, 0xF9, 0x44, 0x1C, 0xFA, 0xB7, 0x6E, 0x18, 0x90, 0xE4,-
2725 0x68, 0x84, 0xEA, 0xE3, 0x21, 0xF7, 0x0C, 0x0B, 0xCB, 0x49, 0x81, 0x52,-
2726 0x78, 0x97, 0x50, 0x4B, 0xEC, 0x3E, 0x36, 0xA6, 0x2B, 0xCD, 0xFA, 0x23,-
2727 0x04, 0x97, 0x65, 0x40, 0xF6, 0x45, 0x00, 0x85, 0xF2, 0xDA, 0xE1, 0x45,-
2728 0xC2, 0x25, 0x53, 0xB4, 0x65, 0x76, 0x36, 0x89, 0x18, 0x0E, 0xA2, 0x57,-
2729 0x18, 0x67, 0x42, 0x3E,-
2730 /* x */-
2731 0x64, 0x0E, 0xCE, 0x5C, 0x12, 0x78, 0x87, 0x17, 0xB9, 0xC1, 0xBA, 0x06,-
2732 0xCB, 0xC2, 0xA6, 0xFE, 0xBA, 0x85, 0x84, 0x24, 0x58, 0xC5, 0x6D, 0xDE,-
2733 0x9D, 0xB1, 0x75, 0x8D, 0x39, 0xC0, 0x31, 0x3D, 0x82, 0xBA, 0x51, 0x73,-
2734 0x5C, 0xDB, 0x3E, 0xA4, 0x99, 0xAA, 0x77, 0xA7, 0xD6, 0x94, 0x3A, 0x64,-
2735 0xF7, 0xA3, 0xF2, 0x5F, 0xE2, 0x6F, 0x06, 0xB5, 0x1B, 0xAA, 0x26, 0x96,-
2736 0xFA, 0x90, 0x35, 0xDA,-
2737 /* y */-
2738 0x5B, 0x53, 0x4B, 0xD5, 0x95, 0xF5, 0xAF, 0x0F, 0xA2, 0xC8, 0x92, 0x37,-
2739 0x6C, 0x84, 0xAC, 0xE1, 0xBB, 0x4E, 0x30, 0x19, 0xB7, 0x16, 0x34, 0xC0,-
2740 0x11, 0x31, 0x15, 0x9C, 0xAE, 0x03, 0xCE, 0xE9, 0xD9, 0x93, 0x21, 0x84,-
2741 0xBE, 0xEF, 0x21, 0x6B, 0xD7, 0x1D, 0xF2, 0xDA, 0xDF, 0x86, 0xA6, 0x27,-
2742 0x30, 0x6E, 0xCF, 0xF9, 0x6D, 0xBB, 0x8B, 0xAC, 0xE1, 0x98, 0xB6, 0x1E,-
2743 0x00, 0xF8, 0xB3, 0x32,-
2744 /* order */-
2745 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE,-
2746 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E,-
2747 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41,-
2748 0x4C, 0xA9, 0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47,-
2749 0x1D, 0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82,-
2750 0x9C, 0xA9, 0x00, 0x69-
2751 }-
2752};-
2753-
2754#ifndef OPENSSL_NO_SM2-
2755static const struct {-
2756 EC_CURVE_DATA h;-
2757 unsigned char data[0 + 32 * 6];-
2758} _EC_sm2p256v1 = {-
2759 {-
2760 NID_X9_62_prime_field, 0, 32, 1-
2761 },-
2762 {-
2763 /* no seed */-
2764-
2765 /* p */-
2766 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,-
2767 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,-
2768 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,-
2769 /* a */-
2770 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,-
2771 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,-
2772 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,-
2773 /* b */-
2774 0x28, 0xe9, 0xfa, 0x9e, 0x9d, 0x9f, 0x5e, 0x34, 0x4d, 0x5a, 0x9e, 0x4b,-
2775 0xcf, 0x65, 0x09, 0xa7, 0xf3, 0x97, 0x89, 0xf5, 0x15, 0xab, 0x8f, 0x92,-
2776 0xdd, 0xbc, 0xbd, 0x41, 0x4d, 0x94, 0x0e, 0x93,-
2777 /* x */-
2778 0x32, 0xc4, 0xae, 0x2c, 0x1f, 0x19, 0x81, 0x19, 0x5f, 0x99, 0x04, 0x46,-
2779 0x6a, 0x39, 0xc9, 0x94, 0x8f, 0xe3, 0x0b, 0xbf, 0xf2, 0x66, 0x0b, 0xe1,-
2780 0x71, 0x5a, 0x45, 0x89, 0x33, 0x4c, 0x74, 0xc7,-
2781 /* y */-
2782 0xbc, 0x37, 0x36, 0xa2, 0xf4, 0xf6, 0x77, 0x9c, 0x59, 0xbd, 0xce, 0xe3,-
2783 0x6b, 0x69, 0x21, 0x53, 0xd0, 0xa9, 0x87, 0x7c, 0xc6, 0x2a, 0x47, 0x40,-
2784 0x02, 0xdf, 0x32, 0xe5, 0x21, 0x39, 0xf0, 0xa0,-
2785 /* order */-
2786 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,-
2787 0xff, 0xff, 0xff, 0xff, 0x72, 0x03, 0xdf, 0x6b, 0x21, 0xc6, 0x05, 0x2b,-
2788 0x53, 0xbb, 0xf4, 0x09, 0x39, 0xd5, 0x41, 0x23,-
2789 }-
2790};-
2791#endif /* OPENSSL_NO_SM2 */-
2792-
2793typedef struct _ec_list_element_st {-
2794 int nid;-
2795 const EC_CURVE_DATA *data;-
2796 const EC_METHOD *(*meth) (void);-
2797 const char *comment;-
2798} ec_list_element;-
2799-
2800static const ec_list_element curve_list[] = {-
2801 /* prime field curves */-
2802 /* secg curves */-
2803 {NID_secp112r1, &_EC_SECG_PRIME_112R1.h, 0,-
2804 "SECG/WTLS curve over a 112 bit prime field"},-
2805 {NID_secp112r2, &_EC_SECG_PRIME_112R2.h, 0,-
2806 "SECG curve over a 112 bit prime field"},-
2807 {NID_secp128r1, &_EC_SECG_PRIME_128R1.h, 0,-
2808 "SECG curve over a 128 bit prime field"},-
2809 {NID_secp128r2, &_EC_SECG_PRIME_128R2.h, 0,-
2810 "SECG curve over a 128 bit prime field"},-
2811 {NID_secp160k1, &_EC_SECG_PRIME_160K1.h, 0,-
2812 "SECG curve over a 160 bit prime field"},-
2813 {NID_secp160r1, &_EC_SECG_PRIME_160R1.h, 0,-
2814 "SECG curve over a 160 bit prime field"},-
2815 {NID_secp160r2, &_EC_SECG_PRIME_160R2.h, 0,-
2816 "SECG/WTLS curve over a 160 bit prime field"},-
2817 /* SECG secp192r1 is the same as X9.62 prime192v1 and hence omitted */-
2818 {NID_secp192k1, &_EC_SECG_PRIME_192K1.h, 0,-
2819 "SECG curve over a 192 bit prime field"},-
2820 {NID_secp224k1, &_EC_SECG_PRIME_224K1.h, 0,-
2821 "SECG curve over a 224 bit prime field"},-
2822#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128-
2823 {NID_secp224r1, &_EC_NIST_PRIME_224.h, EC_GFp_nistp224_method,-
2824 "NIST/SECG curve over a 224 bit prime field"},-
2825#else-
2826 {NID_secp224r1, &_EC_NIST_PRIME_224.h, 0,-
2827 "NIST/SECG curve over a 224 bit prime field"},-
2828#endif-
2829 {NID_secp256k1, &_EC_SECG_PRIME_256K1.h, 0,-
2830 "SECG curve over a 256 bit prime field"},-
2831 /* SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted */-
2832 {NID_secp384r1, &_EC_NIST_PRIME_384.h, 0,-
2833 "NIST/SECG curve over a 384 bit prime field"},-
2834#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128-
2835 {NID_secp521r1, &_EC_NIST_PRIME_521.h, EC_GFp_nistp521_method,-
2836 "NIST/SECG curve over a 521 bit prime field"},-
2837#else-
2838 {NID_secp521r1, &_EC_NIST_PRIME_521.h, 0,-
2839 "NIST/SECG curve over a 521 bit prime field"},-
2840#endif-
2841 /* X9.62 curves */-
2842 {NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0,-
2843 "NIST/X9.62/SECG curve over a 192 bit prime field"},-
2844 {NID_X9_62_prime192v2, &_EC_X9_62_PRIME_192V2.h, 0,-
2845 "X9.62 curve over a 192 bit prime field"},-
2846 {NID_X9_62_prime192v3, &_EC_X9_62_PRIME_192V3.h, 0,-
2847 "X9.62 curve over a 192 bit prime field"},-
2848 {NID_X9_62_prime239v1, &_EC_X9_62_PRIME_239V1.h, 0,-
2849 "X9.62 curve over a 239 bit prime field"},-
2850 {NID_X9_62_prime239v2, &_EC_X9_62_PRIME_239V2.h, 0,-
2851 "X9.62 curve over a 239 bit prime field"},-
2852 {NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3.h, 0,-
2853 "X9.62 curve over a 239 bit prime field"},-
2854 {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,-
2855#if defined(ECP_NISTZ256_ASM)-
2856 EC_GFp_nistz256_method,-
2857#elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)-
2858 EC_GFp_nistp256_method,-
2859#else-
2860 0,-
2861#endif-
2862 "X9.62/SECG curve over a 256 bit prime field"},-
2863#ifndef OPENSSL_NO_EC2M-
2864 /* characteristic two field curves */-
2865 /* NIST/SECG curves */-
2866 {NID_sect113r1, &_EC_SECG_CHAR2_113R1.h, 0,-
2867 "SECG curve over a 113 bit binary field"},-
2868 {NID_sect113r2, &_EC_SECG_CHAR2_113R2.h, 0,-
2869 "SECG curve over a 113 bit binary field"},-
2870 {NID_sect131r1, &_EC_SECG_CHAR2_131R1.h, 0,-
2871 "SECG/WTLS curve over a 131 bit binary field"},-
2872 {NID_sect131r2, &_EC_SECG_CHAR2_131R2.h, 0,-
2873 "SECG curve over a 131 bit binary field"},-
2874 {NID_sect163k1, &_EC_NIST_CHAR2_163K.h, 0,-
2875 "NIST/SECG/WTLS curve over a 163 bit binary field"},-
2876 {NID_sect163r1, &_EC_SECG_CHAR2_163R1.h, 0,-
2877 "SECG curve over a 163 bit binary field"},-
2878 {NID_sect163r2, &_EC_NIST_CHAR2_163B.h, 0,-
2879 "NIST/SECG curve over a 163 bit binary field"},-
2880 {NID_sect193r1, &_EC_SECG_CHAR2_193R1.h, 0,-
2881 "SECG curve over a 193 bit binary field"},-
2882 {NID_sect193r2, &_EC_SECG_CHAR2_193R2.h, 0,-
2883 "SECG curve over a 193 bit binary field"},-
2884 {NID_sect233k1, &_EC_NIST_CHAR2_233K.h, 0,-
2885 "NIST/SECG/WTLS curve over a 233 bit binary field"},-
2886 {NID_sect233r1, &_EC_NIST_CHAR2_233B.h, 0,-
2887 "NIST/SECG/WTLS curve over a 233 bit binary field"},-
2888 {NID_sect239k1, &_EC_SECG_CHAR2_239K1.h, 0,-
2889 "SECG curve over a 239 bit binary field"},-
2890 {NID_sect283k1, &_EC_NIST_CHAR2_283K.h, 0,-
2891 "NIST/SECG curve over a 283 bit binary field"},-
2892 {NID_sect283r1, &_EC_NIST_CHAR2_283B.h, 0,-
2893 "NIST/SECG curve over a 283 bit binary field"},-
2894 {NID_sect409k1, &_EC_NIST_CHAR2_409K.h, 0,-
2895 "NIST/SECG curve over a 409 bit binary field"},-
2896 {NID_sect409r1, &_EC_NIST_CHAR2_409B.h, 0,-
2897 "NIST/SECG curve over a 409 bit binary field"},-
2898 {NID_sect571k1, &_EC_NIST_CHAR2_571K.h, 0,-
2899 "NIST/SECG curve over a 571 bit binary field"},-
2900 {NID_sect571r1, &_EC_NIST_CHAR2_571B.h, 0,-
2901 "NIST/SECG curve over a 571 bit binary field"},-
2902 /* X9.62 curves */-
2903 {NID_X9_62_c2pnb163v1, &_EC_X9_62_CHAR2_163V1.h, 0,-
2904 "X9.62 curve over a 163 bit binary field"},-
2905 {NID_X9_62_c2pnb163v2, &_EC_X9_62_CHAR2_163V2.h, 0,-
2906 "X9.62 curve over a 163 bit binary field"},-
2907 {NID_X9_62_c2pnb163v3, &_EC_X9_62_CHAR2_163V3.h, 0,-
2908 "X9.62 curve over a 163 bit binary field"},-
2909 {NID_X9_62_c2pnb176v1, &_EC_X9_62_CHAR2_176V1.h, 0,-
2910 "X9.62 curve over a 176 bit binary field"},-
2911 {NID_X9_62_c2tnb191v1, &_EC_X9_62_CHAR2_191V1.h, 0,-
2912 "X9.62 curve over a 191 bit binary field"},-
2913 {NID_X9_62_c2tnb191v2, &_EC_X9_62_CHAR2_191V2.h, 0,-
2914 "X9.62 curve over a 191 bit binary field"},-
2915 {NID_X9_62_c2tnb191v3, &_EC_X9_62_CHAR2_191V3.h, 0,-
2916 "X9.62 curve over a 191 bit binary field"},-
2917 {NID_X9_62_c2pnb208w1, &_EC_X9_62_CHAR2_208W1.h, 0,-
2918 "X9.62 curve over a 208 bit binary field"},-
2919 {NID_X9_62_c2tnb239v1, &_EC_X9_62_CHAR2_239V1.h, 0,-
2920 "X9.62 curve over a 239 bit binary field"},-
2921 {NID_X9_62_c2tnb239v2, &_EC_X9_62_CHAR2_239V2.h, 0,-
2922 "X9.62 curve over a 239 bit binary field"},-
2923 {NID_X9_62_c2tnb239v3, &_EC_X9_62_CHAR2_239V3.h, 0,-
2924 "X9.62 curve over a 239 bit binary field"},-
2925 {NID_X9_62_c2pnb272w1, &_EC_X9_62_CHAR2_272W1.h, 0,-
2926 "X9.62 curve over a 272 bit binary field"},-
2927 {NID_X9_62_c2pnb304w1, &_EC_X9_62_CHAR2_304W1.h, 0,-
2928 "X9.62 curve over a 304 bit binary field"},-
2929 {NID_X9_62_c2tnb359v1, &_EC_X9_62_CHAR2_359V1.h, 0,-
2930 "X9.62 curve over a 359 bit binary field"},-
2931 {NID_X9_62_c2pnb368w1, &_EC_X9_62_CHAR2_368W1.h, 0,-
2932 "X9.62 curve over a 368 bit binary field"},-
2933 {NID_X9_62_c2tnb431r1, &_EC_X9_62_CHAR2_431R1.h, 0,-
2934 "X9.62 curve over a 431 bit binary field"},-
2935 /*-
2936 * the WAP/WTLS curves [unlike SECG, spec has its own OIDs for curves-
2937 * from X9.62]-
2938 */-
2939 {NID_wap_wsg_idm_ecid_wtls1, &_EC_WTLS_1.h, 0,-
2940 "WTLS curve over a 113 bit binary field"},-
2941 {NID_wap_wsg_idm_ecid_wtls3, &_EC_NIST_CHAR2_163K.h, 0,-
2942 "NIST/SECG/WTLS curve over a 163 bit binary field"},-
2943 {NID_wap_wsg_idm_ecid_wtls4, &_EC_SECG_CHAR2_113R1.h, 0,-
2944 "SECG curve over a 113 bit binary field"},-
2945 {NID_wap_wsg_idm_ecid_wtls5, &_EC_X9_62_CHAR2_163V1.h, 0,-
2946 "X9.62 curve over a 163 bit binary field"},-
2947#endif-
2948 {NID_wap_wsg_idm_ecid_wtls6, &_EC_SECG_PRIME_112R1.h, 0,-
2949 "SECG/WTLS curve over a 112 bit prime field"},-
2950 {NID_wap_wsg_idm_ecid_wtls7, &_EC_SECG_PRIME_160R2.h, 0,-
2951 "SECG/WTLS curve over a 160 bit prime field"},-
2952 {NID_wap_wsg_idm_ecid_wtls8, &_EC_WTLS_8.h, 0,-
2953 "WTLS curve over a 112 bit prime field"},-
2954 {NID_wap_wsg_idm_ecid_wtls9, &_EC_WTLS_9.h, 0,-
2955 "WTLS curve over a 160 bit prime field"},-
2956#ifndef OPENSSL_NO_EC2M-
2957 {NID_wap_wsg_idm_ecid_wtls10, &_EC_NIST_CHAR2_233K.h, 0,-
2958 "NIST/SECG/WTLS curve over a 233 bit binary field"},-
2959 {NID_wap_wsg_idm_ecid_wtls11, &_EC_NIST_CHAR2_233B.h, 0,-
2960 "NIST/SECG/WTLS curve over a 233 bit binary field"},-
2961#endif-
2962 {NID_wap_wsg_idm_ecid_wtls12, &_EC_WTLS_12.h, 0,-
2963 "WTLS curve over a 224 bit prime field"},-
2964#ifndef OPENSSL_NO_EC2M-
2965 /* IPSec curves */-
2966 {NID_ipsec3, &_EC_IPSEC_155_ID3.h, 0,-
2967 "\n\tIPSec/IKE/Oakley curve #3 over a 155 bit binary field.\n"-
2968 "\tNot suitable for ECDSA.\n\tQuestionable extension field!"},-
2969 {NID_ipsec4, &_EC_IPSEC_185_ID4.h, 0,-
2970 "\n\tIPSec/IKE/Oakley curve #4 over a 185 bit binary field.\n"-
2971 "\tNot suitable for ECDSA.\n\tQuestionable extension field!"},-
2972#endif-
2973 /* brainpool curves */-
2974 {NID_brainpoolP160r1, &_EC_brainpoolP160r1.h, 0,-
2975 "RFC 5639 curve over a 160 bit prime field"},-
2976 {NID_brainpoolP160t1, &_EC_brainpoolP160t1.h, 0,-
2977 "RFC 5639 curve over a 160 bit prime field"},-
2978 {NID_brainpoolP192r1, &_EC_brainpoolP192r1.h, 0,-
2979 "RFC 5639 curve over a 192 bit prime field"},-
2980 {NID_brainpoolP192t1, &_EC_brainpoolP192t1.h, 0,-
2981 "RFC 5639 curve over a 192 bit prime field"},-
2982 {NID_brainpoolP224r1, &_EC_brainpoolP224r1.h, 0,-
2983 "RFC 5639 curve over a 224 bit prime field"},-
2984 {NID_brainpoolP224t1, &_EC_brainpoolP224t1.h, 0,-
2985 "RFC 5639 curve over a 224 bit prime field"},-
2986 {NID_brainpoolP256r1, &_EC_brainpoolP256r1.h, 0,-
2987 "RFC 5639 curve over a 256 bit prime field"},-
2988 {NID_brainpoolP256t1, &_EC_brainpoolP256t1.h, 0,-
2989 "RFC 5639 curve over a 256 bit prime field"},-
2990 {NID_brainpoolP320r1, &_EC_brainpoolP320r1.h, 0,-
2991 "RFC 5639 curve over a 320 bit prime field"},-
2992 {NID_brainpoolP320t1, &_EC_brainpoolP320t1.h, 0,-
2993 "RFC 5639 curve over a 320 bit prime field"},-
2994 {NID_brainpoolP384r1, &_EC_brainpoolP384r1.h, 0,-
2995 "RFC 5639 curve over a 384 bit prime field"},-
2996 {NID_brainpoolP384t1, &_EC_brainpoolP384t1.h, 0,-
2997 "RFC 5639 curve over a 384 bit prime field"},-
2998 {NID_brainpoolP512r1, &_EC_brainpoolP512r1.h, 0,-
2999 "RFC 5639 curve over a 512 bit prime field"},-
3000 {NID_brainpoolP512t1, &_EC_brainpoolP512t1.h, 0,-
3001 "RFC 5639 curve over a 512 bit prime field"},-
3002#ifndef OPENSSL_NO_SM2-
3003 {NID_sm2, &_EC_sm2p256v1.h, 0,-
3004 "SM2 curve over a 256 bit prime field"},-
3005#endif-
3006};-
3007-
3008#define curve_list_length OSSL_NELEM(curve_list)-
3009-
3010static EC_GROUP *ec_group_new_from_data(const ec_list_element curve)-
3011{-
3012 EC_GROUP *group = NULL;-
3013 EC_POINT *P = NULL;-
3014 BN_CTX *ctx = NULL;-
3015 BIGNUM *p = NULL, *a = NULL, *b = NULL, *x = NULL, *y = NULL, *order =-
3016 NULL;-
3017 int ok = 0;-
3018 int seed_len, param_len;-
3019 const EC_METHOD *meth;-
3020 const EC_CURVE_DATA *data;-
3021 const unsigned char *params;-
3022-
3023 /* If no curve data curve method must handle everything */-
3024 if (curve.data == NULL)
curve.data == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3025 return EC_GROUP_new(curve.meth != NULL ? curve.meth() : NULL);
never executed: return EC_GROUP_new(curve.meth != ((void *)0) ? curve.meth() : ((void *)0) );
0
3026-
3027 if ((ctx = BN_CTX_new()) == NULL) {
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3028 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_MALLOC_FAILURE);-
3029 goto err;
never executed: goto err;
0
3030 }-
3031-
3032 data = curve.data;-
3033 seed_len = data->seed_len;-
3034 param_len = data->param_len;-
3035 params = (const unsigned char *)(data + 1); /* skip header */-
3036 params += seed_len; /* skip seed */-
3037-
3038 if ((p = BN_bin2bn(params + 0 * param_len, param_len, NULL)) == NULL
(p = BN_bin2bn...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3039 || (a = BN_bin2bn(params + 1 * param_len, param_len, NULL)) == NULL
(a = BN_bin2bn...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3040 || (b = BN_bin2bn(params + 2 * param_len, param_len, NULL)) == NULL) {
(b = BN_bin2bn...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3041 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_BN_LIB);-
3042 goto err;
never executed: goto err;
0
3043 }-
3044-
3045 if (curve.meth != 0) {
curve.meth != 0Description
TRUEevaluated 18080 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 16965 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
16965-18080
3046 meth = curve.meth();-
3047 if (((group = EC_GROUP_new(meth)) == NULL) ||
((group = EC_G... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 18080 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-18080
3048 (!(group->meth->group_set_curve(group, p, a, b, ctx)))) {
(!(group->meth..., a, b, ctx)))Description
TRUEnever evaluated
FALSEevaluated 18080 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-18080
3049 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3050 goto err;
never executed: goto err;
0
3051 }-
3052 } else if (data->field_type == NID_X9_62_prime_field) {
executed 18080 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
data->field_type == 406Description
TRUEevaluated 7386 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9579 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
7386-18080
3053 if ((group = EC_GROUP_new_curve_GFp(p, a, b, ctx)) == NULL) {
(group = EC_GR...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 7386 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-7386
3054 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3055 goto err;
never executed: goto err;
0
3056 }-
3057 }
executed 7386 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
7386
3058#ifndef OPENSSL_NO_EC2M-
3059 else { /* field_type ==-
3060 * NID_X9_62_characteristic_two_field */-
3061-
3062 if ((group = EC_GROUP_new_curve_GF2m(p, a, b, ctx)) == NULL) {
(group = EC_GR...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 9579 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-9579
3063 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3064 goto err;
never executed: goto err;
0
3065 }-
3066 }
executed 9579 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
9579
3067#endif-
3068-
3069 EC_GROUP_set_curve_name(group, curve.nid);-
3070-
3071 if ((P = EC_POINT_new(group)) == NULL) {
(P = EC_POINT_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3072 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3073 goto err;
never executed: goto err;
0
3074 }-
3075-
3076 if ((x = BN_bin2bn(params + 3 * param_len, param_len, NULL)) == NULL
(x = BN_bin2bn...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3077 || (y = BN_bin2bn(params + 4 * param_len, param_len, NULL)) == NULL) {
(y = BN_bin2bn...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3078 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_BN_LIB);-
3079 goto err;
never executed: goto err;
0
3080 }-
3081 if (!EC_POINT_set_affine_coordinates(group, P, x, y, ctx)) {
!EC_POINT_set_... P, x, y, ctx)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3082 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3083 goto err;
never executed: goto err;
0
3084 }-
3085 if ((order = BN_bin2bn(params + 5 * param_len, param_len, NULL)) == NULL
(order = BN_bi...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3086 || !BN_set_word(x, (BN_ULONG)data->cofactor)) {
!BN_set_word(x...ata->cofactor)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3087 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_BN_LIB);-
3088 goto err;
never executed: goto err;
0
3089 }-
3090 if (!EC_GROUP_set_generator(group, P, order, x)) {
!EC_GROUP_set_..., P, order, x)Description
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3091 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3092 goto err;
never executed: goto err;
0
3093 }-
3094 if (seed_len) {
seed_lenDescription
TRUEevaluated 25552 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9493 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
9493-25552
3095 if (!EC_GROUP_set_seed(group, params - seed_len, seed_len)) {
!EC_GROUP_set_...len, seed_len)Description
TRUEnever evaluated
FALSEevaluated 25552 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-25552
3096 ECerr(EC_F_EC_GROUP_NEW_FROM_DATA, ERR_R_EC_LIB);-
3097 goto err;
never executed: goto err;
0
3098 }-
3099 }
executed 25552 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
25552
3100 ok = 1;-
3101 err:
code before this statement executed 35045 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
35045
3102 if (!ok) {
!okDescription
TRUEnever evaluated
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-35045
3103 EC_GROUP_free(group);-
3104 group = NULL;-
3105 }
never executed: end of block
0
3106 EC_POINT_free(P);-
3107 BN_CTX_free(ctx);-
3108 BN_free(p);-
3109 BN_free(a);-
3110 BN_free(b);-
3111 BN_free(order);-
3112 BN_free(x);-
3113 BN_free(y);-
3114 return group;
executed 35045 times by 1 test: return group;
Executed by:
  • libcrypto.so.1.1
35045
3115}-
3116-
3117EC_GROUP *EC_GROUP_new_by_curve_name(int nid)-
3118{-
3119 size_t i;-
3120 EC_GROUP *ret = NULL;-
3121-
3122 if (nid <= 0)
nid <= 0Description
TRUEevaluated 132 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 35121 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
132-35121
3123 return NULL;
executed 132 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
132
3124-
3125 for (i = 0; i < curve_list_length; i++)
i < (sizeof(cu...rve_list)[0]))Description
TRUEevaluated 942060 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 76 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
76-942060
3126 if (curve_list[i].nid == nid) {
curve_list[i].nid == nidDescription
TRUEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 907015 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
35045-907015
3127 ret = ec_group_new_from_data(curve_list[i]);-
3128 break;
executed 35045 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
35045
3129 }-
3130-
3131 if (ret == NULL) {
ret == ((void *)0)Description
TRUEevaluated 76 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 35045 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
76-35045
3132 ECerr(EC_F_EC_GROUP_NEW_BY_CURVE_NAME, EC_R_UNKNOWN_GROUP);-
3133 return NULL;
executed 76 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
76
3134 }-
3135-
3136 return ret;
executed 35045 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
35045
3137}-
3138-
3139size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)-
3140{-
3141 size_t i, min;-
3142-
3143 if (r == NULL || nitems == 0)
r == ((void *)0)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
nitems == 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
3144 return curve_list_length;
executed 2 times by 1 test: return (sizeof(curve_list)/sizeof((curve_list)[0]));
Executed by:
  • libcrypto.so.1.1
2
3145-
3146 min = nitems < curve_list_length ? nitems : curve_list_length;
nitems < (size...rve_list)[0]))Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
3147-
3148 for (i = 0; i < min; i++) {
i < minDescription
TRUEevaluated 164 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-164
3149 r[i].nid = curve_list[i].nid;-
3150 r[i].comment = curve_list[i].comment;-
3151 }
executed 164 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
164
3152-
3153 return curve_list_length;
executed 2 times by 1 test: return (sizeof(curve_list)/sizeof((curve_list)[0]));
Executed by:
  • libcrypto.so.1.1
2
3154}-
3155-
3156/* Functions to translate between common NIST curve names and NIDs */-
3157-
3158typedef struct {-
3159 const char *name; /* NIST Name of curve */-
3160 int nid; /* Curve NID */-
3161} EC_NIST_NAME;-
3162-
3163static EC_NIST_NAME nist_curves[] = {-
3164 {"B-163", NID_sect163r2},-
3165 {"B-233", NID_sect233r1},-
3166 {"B-283", NID_sect283r1},-
3167 {"B-409", NID_sect409r1},-
3168 {"B-571", NID_sect571r1},-
3169 {"K-163", NID_sect163k1},-
3170 {"K-233", NID_sect233k1},-
3171 {"K-283", NID_sect283k1},-
3172 {"K-409", NID_sect409k1},-
3173 {"K-571", NID_sect571k1},-
3174 {"P-192", NID_X9_62_prime192v1},-
3175 {"P-224", NID_secp224r1},-
3176 {"P-256", NID_X9_62_prime256v1},-
3177 {"P-384", NID_secp384r1},-
3178 {"P-521", NID_secp521r1}-
3179};-
3180-
3181const char *EC_curve_nid2nist(int nid)-
3182{-
3183 size_t i;-
3184 for (i = 0; i < OSSL_NELEM(nist_curves); i++) {
i < (sizeof(ni...t_curves)[0]))Description
TRUEevaluated 10866 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 303 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
303-10866
3185 if (nist_curves[i].nid == nid)
nist_curves[i].nid == nidDescription
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 10379 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
487-10379
3186 return nist_curves[i].name;
executed 487 times by 1 test: return nist_curves[i].name;
Executed by:
  • libcrypto.so.1.1
487
3187 }
executed 10379 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
10379
3188 return NULL;
executed 303 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
303
3189}-
3190-
3191int EC_curve_nist2nid(const char *name)-
3192{-
3193 size_t i;-
3194 for (i = 0; i < OSSL_NELEM(nist_curves); i++) {
i < (sizeof(ni...t_curves)[0]))Description
TRUEevaluated 1864 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 70 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
70-1864
3195 if (strcmp(nist_curves[i].name, name) == 0)
never executed: __result = (((const unsigned char *) (const char *) ( nist_curves[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ... )))); }) == 0Description
TRUEevaluated 62 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1802 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-1802
3196 return nist_curves[i].nid;
executed 62 times by 1 test: return nist_curves[i].nid;
Executed by:
  • libcrypto.so.1.1
62
3197 }
executed 1802 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1802
3198 return NID_undef;
executed 70 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
70
3199}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2