]> Cypherpunks.ru repositories - gogost.git/blob - gost3410/params.go
CurveIdtc26gost341012512paramSetTest and various curve aliases
[gogost.git] / gost3410 / params.go
1 // GoGOST -- Pure Go GOST cryptographic functions library
2 // Copyright (C) 2015-2021 Sergey Matveev <stargrave@stargrave.org>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, version 3 of the License.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 package gost3410
17
18 import "math/big"
19
20 var (
21         CurveGostR34102001ParamSetcc func() *Curve = func() *Curve {
22                 curve, err := NewCurve(
23                         bytes2big([]byte{
24                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
27                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC7,
28                         }),
29                         bytes2big([]byte{
30                                 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
31                                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
32                                 0x60, 0x61, 0x17, 0xa2, 0xf4, 0xbd, 0xe4, 0x28,
33                                 0xb7, 0x45, 0x8a, 0x54, 0xb6, 0xe8, 0x7b, 0x85,
34                         }),
35                         bytes2big([]byte{
36                                 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc4,
40                         }),
41                         bytes2big([]byte{
42                                 0x2d, 0x06, 0xB4, 0x26, 0x5e, 0xbc, 0x74, 0x9f,
43                                 0xf7, 0xd0, 0xf1, 0xf1, 0xf8, 0x82, 0x32, 0xe8,
44                                 0x16, 0x32, 0xe9, 0x08, 0x8f, 0xd4, 0x4b, 0x77,
45                                 0x87, 0xd5, 0xe4, 0x07, 0xe9, 0x55, 0x08, 0x0c,
46                         }),
47                         bytes2big([]byte{
48                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
50                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
52                         }),
53                         bytes2big([]byte{
54                                 0xa2, 0x0e, 0x03, 0x4b, 0xf8, 0x81, 0x3e, 0xf5,
55                                 0xc1, 0x8d, 0x01, 0x10, 0x5e, 0x72, 0x6a, 0x17,
56                                 0xeb, 0x24, 0x8b, 0x26, 0x4a, 0xe9, 0x70, 0x6f,
57                                 0x44, 0x0b, 0xed, 0xc8, 0xcc, 0xb6, 0xb2, 0x2c,
58                         }),
59                         nil,
60                         nil,
61                         nil,
62                 )
63                 if err != nil {
64                         panic(err)
65                 }
66                 curve.Name = "GostR34102001ParamSetcc"
67                 return curve
68         }
69         // id-GostR3410-2001-TestParamSet
70         CurveIdGostR34102001TestParamSet func() *Curve = func() *Curve {
71                 curve, err := NewCurve(
72                         bytes2big([]byte{
73                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x31,
77                         }),
78                         bytes2big([]byte{
79                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
81                                 0x50, 0xFE, 0x8A, 0x18, 0x92, 0x97, 0x61, 0x54,
82                                 0xC5, 0x9C, 0xFC, 0x19, 0x3A, 0xCC, 0xF5, 0xB3,
83                         }),
84                         bytes2big([]byte{
85                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
89                         }),
90                         bytes2big([]byte{
91                                 0x5F, 0xBF, 0xF4, 0x98, 0xAA, 0x93, 0x8C, 0xE7,
92                                 0x39, 0xB8, 0xE0, 0x22, 0xFB, 0xAF, 0xEF, 0x40,
93                                 0x56, 0x3F, 0x6E, 0x6A, 0x34, 0x72, 0xFC, 0x2A,
94                                 0x51, 0x4C, 0x0C, 0xE9, 0xDA, 0xE2, 0x3B, 0x7E,
95                         }),
96                         bytes2big([]byte{
97                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
100                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
101                         }),
102                         bytes2big([]byte{
103                                 0x08, 0xE2, 0xA8, 0xA0, 0xE6, 0x51, 0x47, 0xD4,
104                                 0xBD, 0x63, 0x16, 0x03, 0x0E, 0x16, 0xD1, 0x9C,
105                                 0x85, 0xC9, 0x7F, 0x0A, 0x9C, 0xA2, 0x67, 0x12,
106                                 0x2B, 0x96, 0xAB, 0xBC, 0xEA, 0x7E, 0x8F, 0xC8,
107                         }),
108                         nil,
109                         nil,
110                         nil,
111                 )
112                 if err != nil {
113                         panic(err)
114                 }
115                 curve.Name = "id-GostR3410-2001-TestParamSet"
116                 return curve
117         }
118         // id-tc26-gost-3410-12-256-paramSetA
119         CurveIdtc26gost341012256paramSetA func() *Curve = func() *Curve {
120                 curve, err := NewCurve(
121                         bytes2big([]byte{
122                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
123                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
124                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
125                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x97,
126                         }),
127                         bytes2big([]byte{
128                                 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
129                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
130                                 0x0F, 0xD8, 0xCD, 0xDF, 0xC8, 0x7B, 0x66, 0x35,
131                                 0xC1, 0x15, 0xAF, 0x55, 0x6C, 0x36, 0x0C, 0x67,
132                         }),
133                         bytes2big([]byte{
134                                 0xC2, 0x17, 0x3F, 0x15, 0x13, 0x98, 0x16, 0x73,
135                                 0xAF, 0x48, 0x92, 0xC2, 0x30, 0x35, 0xA2, 0x7C,
136                                 0xE2, 0x5E, 0x20, 0x13, 0xBF, 0x95, 0xAA, 0x33,
137                                 0xB2, 0x2C, 0x65, 0x6F, 0x27, 0x7E, 0x73, 0x35,
138                         }),
139                         bytes2big([]byte{
140                                 0x29, 0x5F, 0x9B, 0xAE, 0x74, 0x28, 0xED, 0x9C,
141                                 0xCC, 0x20, 0xE7, 0xC3, 0x59, 0xA9, 0xD4, 0x1A,
142                                 0x22, 0xFC, 0xCD, 0x91, 0x08, 0xE1, 0x7B, 0xF7,
143                                 0xBA, 0x93, 0x37, 0xA6, 0xF8, 0xAE, 0x95, 0x13,
144                         }),
145                         bytes2big([]byte{
146                                 0x91, 0xE3, 0x84, 0x43, 0xA5, 0xE8, 0x2C, 0x0D,
147                                 0x88, 0x09, 0x23, 0x42, 0x57, 0x12, 0xB2, 0xBB,
148                                 0x65, 0x8B, 0x91, 0x96, 0x93, 0x2E, 0x02, 0xC7,
149                                 0x8B, 0x25, 0x82, 0xFE, 0x74, 0x2D, 0xAA, 0x28,
150                         }),
151                         bytes2big([]byte{
152                                 0x32, 0x87, 0x94, 0x23, 0xAB, 0x1A, 0x03, 0x75,
153                                 0x89, 0x57, 0x86, 0xC4, 0xBB, 0x46, 0xE9, 0x56,
154                                 0x5F, 0xDE, 0x0B, 0x53, 0x44, 0x76, 0x67, 0x40,
155                                 0xAF, 0x26, 0x8A, 0xDB, 0x32, 0x32, 0x2E, 0x5C,
156                         }),
157                         bigInt1,
158                         bytes2big([]byte{
159                                 0x06, 0x05, 0xF6, 0xB7, 0xC1, 0x83, 0xFA, 0x81,
160                                 0x57, 0x8B, 0xC3, 0x9C, 0xFA, 0xD5, 0x18, 0x13,
161                                 0x2B, 0x9D, 0xF6, 0x28, 0x97, 0x00, 0x9A, 0xF7,
162                                 0xE5, 0x22, 0xC3, 0x2D, 0x6D, 0xC7, 0xBF, 0xFB,
163                         }),
164                         bigInt4,
165                 )
166                 if err != nil {
167                         panic(err)
168                 }
169                 curve.Name = "id-tc26-gost-3410-12-256-paramSetA"
170                 return curve
171         }
172         // id-tc26-gost-3410-12-256-paramSetB
173         CurveIdtc26gost341012256paramSetB func() *Curve = func() *Curve {
174                 curve, err := NewCurve(
175                         bytes2big([]byte{
176                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
177                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
178                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
179                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x97,
180                         }),
181                         bytes2big([]byte{
182                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
183                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
184                                 0x6C, 0x61, 0x10, 0x70, 0x99, 0x5A, 0xD1, 0x00,
185                                 0x45, 0x84, 0x1B, 0x09, 0xB7, 0x61, 0xB8, 0x93,
186                         }),
187                         bytes2big([]byte{
188                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
189                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
190                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
191                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x94,
192                         }),
193                         bytes2big([]byte{
194                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6,
198                         }),
199                         bytes2big([]byte{
200                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
204                         }),
205                         bytes2big([]byte{
206                                 0x8D, 0x91, 0xE4, 0x71, 0xE0, 0x98, 0x9C, 0xDA,
207                                 0x27, 0xDF, 0x50, 0x5A, 0x45, 0x3F, 0x2B, 0x76,
208                                 0x35, 0x29, 0x4F, 0x2D, 0xDF, 0x23, 0xE3, 0xB1,
209                                 0x22, 0xAC, 0xC9, 0x9C, 0x9E, 0x9F, 0x1E, 0x14,
210                         }),
211                         nil,
212                         nil,
213                         nil,
214                 )
215                 if err != nil {
216                         panic(err)
217                 }
218                 curve.Name = "id-tc26-gost-3410-12-256-paramSetB"
219                 return curve
220         }
221         // id-tc26-gost-3410-12-256-paramSetC
222         CurveIdtc26gost341012256paramSetC func() *Curve = func() *Curve {
223                 curve, err := NewCurve(
224                         bytes2big([]byte{
225                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x99,
229                         }),
230                         bytes2big([]byte{
231                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
233                                 0x5F, 0x70, 0x0C, 0xFF, 0xF1, 0xA6, 0x24, 0xE5,
234                                 0xE4, 0x97, 0x16, 0x1B, 0xCC, 0x8A, 0x19, 0x8F,
235                         }),
236                         bytes2big([]byte{
237                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x96,
241                         }),
242                         bytes2big([]byte{
243                                 0x3E, 0x1A, 0xF4, 0x19, 0xA2, 0x69, 0xA5, 0xF8,
244                                 0x66, 0xA7, 0xD3, 0xC2, 0x5C, 0x3D, 0xF8, 0x0A,
245                                 0xE9, 0x79, 0x25, 0x93, 0x73, 0xFF, 0x2B, 0x18,
246                                 0x2F, 0x49, 0xD4, 0xCE, 0x7E, 0x1B, 0xBC, 0x8B,
247                         }),
248                         bytes2big([]byte{
249                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
250                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
251                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
252                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
253                         }),
254                         bytes2big([]byte{
255                                 0x3F, 0xA8, 0x12, 0x43, 0x59, 0xF9, 0x66, 0x80,
256                                 0xB8, 0x3D, 0x1C, 0x3E, 0xB2, 0xC0, 0x70, 0xE5,
257                                 0xC5, 0x45, 0xC9, 0x85, 0x8D, 0x03, 0xEC, 0xFB,
258                                 0x74, 0x4B, 0xF8, 0xD7, 0x17, 0x71, 0x7E, 0xFC,
259                         }),
260                         nil,
261                         nil,
262                         nil,
263                 )
264                 if err != nil {
265                         panic(err)
266                 }
267                 curve.Name = "id-tc26-gost-3410-12-256-paramSetC"
268                 return curve
269         }
270         // id-tc26-gost-3410-12-256-paramSetD
271         CurveIdtc26gost341012256paramSetD func() *Curve = func() *Curve {
272                 curve, err := NewCurve(
273                         bytes2big([]byte{
274                                 0x9B, 0x9F, 0x60, 0x5F, 0x5A, 0x85, 0x81, 0x07,
275                                 0xAB, 0x1E, 0xC8, 0x5E, 0x6B, 0x41, 0xC8, 0xAA,
276                                 0xCF, 0x84, 0x6E, 0x86, 0x78, 0x90, 0x51, 0xD3,
277                                 0x79, 0x98, 0xF7, 0xB9, 0x02, 0x2D, 0x75, 0x9B,
278                         }),
279                         bytes2big([]byte{
280                                 0x9B, 0x9F, 0x60, 0x5F, 0x5A, 0x85, 0x81, 0x07,
281                                 0xAB, 0x1E, 0xC8, 0x5E, 0x6B, 0x41, 0xC8, 0xAA,
282                                 0x58, 0x2C, 0xA3, 0x51, 0x1E, 0xDD, 0xFB, 0x74,
283                                 0xF0, 0x2F, 0x3A, 0x65, 0x98, 0x98, 0x0B, 0xB9,
284                         }),
285                         bytes2big([]byte{
286                                 0x9B, 0x9F, 0x60, 0x5F, 0x5A, 0x85, 0x81, 0x07,
287                                 0xAB, 0x1E, 0xC8, 0x5E, 0x6B, 0x41, 0xC8, 0xAA,
288                                 0xCF, 0x84, 0x6E, 0x86, 0x78, 0x90, 0x51, 0xD3,
289                                 0x79, 0x98, 0xF7, 0xB9, 0x02, 0x2D, 0x75, 0x98,
290                         }),
291                         bytes2big([]byte{
292                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5a,
296                         }),
297                         bytes2big([]byte{
298                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
299                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
300                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
302                         }),
303                         bytes2big([]byte{
304                                 0x41, 0xEC, 0xE5, 0x57, 0x43, 0x71, 0x1A, 0x8C,
305                                 0x3C, 0xBF, 0x37, 0x83, 0xCD, 0x08, 0xC0, 0xEE,
306                                 0x4D, 0x4D, 0xC4, 0x40, 0xD4, 0x64, 0x1A, 0x8F,
307                                 0x36, 0x6E, 0x55, 0x0D, 0xFD, 0xB3, 0xBB, 0x67,
308                         }),
309                         nil,
310                         nil,
311                         nil,
312                 )
313                 if err != nil {
314                         panic(err)
315                 }
316                 curve.Name = "id-tc26-gost-3410-12-256-paramSetD"
317                 return curve
318         }
319         // id-tc26-gost-3410-12-512-paramSetTest
320         CurveIdtc26gost341012512paramSetTest func() *Curve = func() *Curve {
321                 curve, err := NewCurve(
322                         bytes2big([]byte{
323                                 0x45, 0x31, 0xAC, 0xD1, 0xFE, 0x00, 0x23, 0xC7,
324                                 0x55, 0x0D, 0x26, 0x7B, 0x6B, 0x2F, 0xEE, 0x80,
325                                 0x92, 0x2B, 0x14, 0xB2, 0xFF, 0xB9, 0x0F, 0x04,
326                                 0xD4, 0xEB, 0x7C, 0x09, 0xB5, 0xD2, 0xD1, 0x5D,
327                                 0xF1, 0xD8, 0x52, 0x74, 0x1A, 0xF4, 0x70, 0x4A,
328                                 0x04, 0x58, 0x04, 0x7E, 0x80, 0xE4, 0x54, 0x6D,
329                                 0x35, 0xB8, 0x33, 0x6F, 0xAC, 0x22, 0x4D, 0xD8,
330                                 0x16, 0x64, 0xBB, 0xF5, 0x28, 0xBE, 0x63, 0x73,
331                         }),
332                         bytes2big([]byte{
333                                 0x45, 0x31, 0xAC, 0xD1, 0xFE, 0x00, 0x23, 0xC7,
334                                 0x55, 0x0D, 0x26, 0x7B, 0x6B, 0x2F, 0xEE, 0x80,
335                                 0x92, 0x2B, 0x14, 0xB2, 0xFF, 0xB9, 0x0F, 0x04,
336                                 0xD4, 0xEB, 0x7C, 0x09, 0xB5, 0xD2, 0xD1, 0x5D,
337                                 0xA8, 0x2F, 0x2D, 0x7E, 0xCB, 0x1D, 0xBA, 0xC7,
338                                 0x19, 0x90, 0x5C, 0x5E, 0xEC, 0xC4, 0x23, 0xF1,
339                                 0xD8, 0x6E, 0x25, 0xED, 0xBE, 0x23, 0xC5, 0x95,
340                                 0xD6, 0x44, 0xAA, 0xF1, 0x87, 0xE6, 0xE6, 0xDF,
341                         }),
342                         big.NewInt(7),
343                         bytes2big([]byte{
344                                 0x1C, 0xFF, 0x08, 0x06, 0xA3, 0x11, 0x16, 0xDA,
345                                 0x29, 0xD8, 0xCF, 0xA5, 0x4E, 0x57, 0xEB, 0x74,
346                                 0x8B, 0xC5, 0xF3, 0x77, 0xE4, 0x94, 0x00, 0xFD,
347                                 0xD7, 0x88, 0xB6, 0x49, 0xEC, 0xA1, 0xAC, 0x43,
348                                 0x61, 0x83, 0x40, 0x13, 0xB2, 0xAD, 0x73, 0x22,
349                                 0x48, 0x0A, 0x89, 0xCA, 0x58, 0xE0, 0xCF, 0x74,
350                                 0xBC, 0x9E, 0x54, 0x0C, 0x2A, 0xDD, 0x68, 0x97,
351                                 0xFA, 0xD0, 0xA3, 0x08, 0x4F, 0x30, 0x2A, 0xDC,
352                         }),
353                         bytes2big([]byte{
354                                 0x24, 0xD1, 0x9C, 0xC6, 0x45, 0x72, 0xEE, 0x30,
355                                 0xF3, 0x96, 0xBF, 0x6E, 0xBB, 0xFD, 0x7A, 0x6C,
356                                 0x52, 0x13, 0xB3, 0xB3, 0xD7, 0x05, 0x7C, 0xC8,
357                                 0x25, 0xF9, 0x10, 0x93, 0xA6, 0x8C, 0xD7, 0x62,
358                                 0xFD, 0x60, 0x61, 0x12, 0x62, 0xCD, 0x83, 0x8D,
359                                 0xC6, 0xB6, 0x0A, 0xA7, 0xEE, 0xE8, 0x04, 0xE2,
360                                 0x8B, 0xC8, 0x49, 0x97, 0x7F, 0xAC, 0x33, 0xB4,
361                                 0xB5, 0x30, 0xF1, 0xB1, 0x20, 0x24, 0x8A, 0x9A,
362                         }),
363                         bytes2big([]byte{
364                                 0x2B, 0xB3, 0x12, 0xA4, 0x3B, 0xD2, 0xCE, 0x6E,
365                                 0x0D, 0x02, 0x06, 0x13, 0xC8, 0x57, 0xAC, 0xDD,
366                                 0xCF, 0xBF, 0x06, 0x1E, 0x91, 0xE5, 0xF2, 0xC3,
367                                 0xF3, 0x24, 0x47, 0xC2, 0x59, 0xF3, 0x9B, 0x2C,
368                                 0x83, 0xAB, 0x15, 0x6D, 0x77, 0xF1, 0x49, 0x6B,
369                                 0xF7, 0xEB, 0x33, 0x51, 0xE1, 0xEE, 0x4E, 0x43,
370                                 0xDC, 0x1A, 0x18, 0xB9, 0x1B, 0x24, 0x64, 0x0B,
371                                 0x6D, 0xBB, 0x92, 0xCB, 0x1A, 0xDD, 0x37, 0x1E,
372                         }),
373                         nil,
374                         nil,
375                         nil,
376                 )
377                 if err != nil {
378                         panic(err)
379                 }
380                 curve.Name = "id-tc26-gost-3410-12-512-paramSetTest"
381                 return curve
382         }
383         // id-tc26-gost-3410-12-512-paramSetA
384         CurveIdtc26gost341012512paramSetA func() *Curve = func() *Curve {
385                 curve, err := NewCurve(
386                         bytes2big([]byte{
387                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
388                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
389                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
390                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
391                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
392                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
393                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
394                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC7,
395                         }),
396                         bytes2big([]byte{
397                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
398                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
399                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
400                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
401                                 0x27, 0xE6, 0x95, 0x32, 0xF4, 0x8D, 0x89, 0x11,
402                                 0x6F, 0xF2, 0x2B, 0x8D, 0x4E, 0x05, 0x60, 0x60,
403                                 0x9B, 0x4B, 0x38, 0xAB, 0xFA, 0xD2, 0xB8, 0x5D,
404                                 0xCA, 0xCD, 0xB1, 0x41, 0x1F, 0x10, 0xB2, 0x75,
405                         }),
406                         bytes2big([]byte{
407                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
408                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
409                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
410                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
411                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
412                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
413                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
414                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC4,
415                         }),
416                         bytes2big([]byte{
417                                 0xE8, 0xC2, 0x50, 0x5D, 0xED, 0xFC, 0x86, 0xDD,
418                                 0xC1, 0xBD, 0x0B, 0x2B, 0x66, 0x67, 0xF1, 0xDA,
419                                 0x34, 0xB8, 0x25, 0x74, 0x76, 0x1C, 0xB0, 0xE8,
420                                 0x79, 0xBD, 0x08, 0x1C, 0xFD, 0x0B, 0x62, 0x65,
421                                 0xEE, 0x3C, 0xB0, 0x90, 0xF3, 0x0D, 0x27, 0x61,
422                                 0x4C, 0xB4, 0x57, 0x40, 0x10, 0xDA, 0x90, 0xDD,
423                                 0x86, 0x2E, 0xF9, 0xD4, 0xEB, 0xEE, 0x47, 0x61,
424                                 0x50, 0x31, 0x90, 0x78, 0x5A, 0x71, 0xC7, 0x60,
425                         }),
426                         bytes2big([]byte{
427                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
428                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
429                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
430                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
431                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
432                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
433                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
434                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
435                         }),
436                         bytes2big([]byte{
437                                 0x75, 0x03, 0xCF, 0xE8, 0x7A, 0x83, 0x6A, 0xE3,
438                                 0xA6, 0x1B, 0x88, 0x16, 0xE2, 0x54, 0x50, 0xE6,
439                                 0xCE, 0x5E, 0x1C, 0x93, 0xAC, 0xF1, 0xAB, 0xC1,
440                                 0x77, 0x80, 0x64, 0xFD, 0xCB, 0xEF, 0xA9, 0x21,
441                                 0xDF, 0x16, 0x26, 0xBE, 0x4F, 0xD0, 0x36, 0xE9,
442                                 0x3D, 0x75, 0xE6, 0xA5, 0x0E, 0x3A, 0x41, 0xE9,
443                                 0x80, 0x28, 0xFE, 0x5F, 0xC2, 0x35, 0xF5, 0xB8,
444                                 0x89, 0xA5, 0x89, 0xCB, 0x52, 0x15, 0xF2, 0xA4,
445                         }),
446                         nil,
447                         nil,
448                         nil,
449                 )
450                 if err != nil {
451                         panic(err)
452                 }
453                 curve.Name = "id-tc26-gost-3410-12-512-paramSetA"
454                 return curve
455         }
456         // id-tc26-gost-3410-12-512-paramSetB
457         CurveIdtc26gost341012512paramSetB func() *Curve = func() *Curve {
458                 curve, err := NewCurve(
459                         bytes2big([]byte{
460                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
461                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
462                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
463                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
464                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
465                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
466                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
467                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F,
468                         }),
469                         bytes2big([]byte{
470                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
471                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
472                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
473                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
474                                 0x49, 0xA1, 0xEC, 0x14, 0x25, 0x65, 0xA5, 0x45,
475                                 0xAC, 0xFD, 0xB7, 0x7B, 0xD9, 0xD4, 0x0C, 0xFA,
476                                 0x8B, 0x99, 0x67, 0x12, 0x10, 0x1B, 0xEA, 0x0E,
477                                 0xC6, 0x34, 0x6C, 0x54, 0x37, 0x4F, 0x25, 0xBD,
478                         }),
479                         bytes2big([]byte{
480                                 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
481                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
482                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
483                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
484                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
485                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
486                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
487                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C,
488                         }),
489                         bytes2big([]byte{
490                                 0x68, 0x7D, 0x1B, 0x45, 0x9D, 0xC8, 0x41, 0x45,
491                                 0x7E, 0x3E, 0x06, 0xCF, 0x6F, 0x5E, 0x25, 0x17,
492                                 0xB9, 0x7C, 0x7D, 0x61, 0x4A, 0xF1, 0x38, 0xBC,
493                                 0xBF, 0x85, 0xDC, 0x80, 0x6C, 0x4B, 0x28, 0x9F,
494                                 0x3E, 0x96, 0x5D, 0x2D, 0xB1, 0x41, 0x6D, 0x21,
495                                 0x7F, 0x8B, 0x27, 0x6F, 0xAD, 0x1A, 0xB6, 0x9C,
496                                 0x50, 0xF7, 0x8B, 0xEE, 0x1F, 0xA3, 0x10, 0x6E,
497                                 0xFB, 0x8C, 0xCB, 0xC7, 0xC5, 0x14, 0x01, 0x16,
498                         }),
499                         bytes2big([]byte{
500                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
501                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
502                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
503                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
504                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
505                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
506                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
507                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
508                         }),
509                         bytes2big([]byte{
510                                 0x1A, 0x8F, 0x7E, 0xDA, 0x38, 0x9B, 0x09, 0x4C,
511                                 0x2C, 0x07, 0x1E, 0x36, 0x47, 0xA8, 0x94, 0x0F,
512                                 0x3C, 0x12, 0x3B, 0x69, 0x75, 0x78, 0xC2, 0x13,
513                                 0xBE, 0x6D, 0xD9, 0xE6, 0xC8, 0xEC, 0x73, 0x35,
514                                 0xDC, 0xB2, 0x28, 0xFD, 0x1E, 0xDF, 0x4A, 0x39,
515                                 0x15, 0x2C, 0xBC, 0xAA, 0xF8, 0xC0, 0x39, 0x88,
516                                 0x28, 0x04, 0x10, 0x55, 0xF9, 0x4C, 0xEE, 0xEC,
517                                 0x7E, 0x21, 0x34, 0x07, 0x80, 0xFE, 0x41, 0xBD,
518                         }),
519                         nil,
520                         nil,
521                         nil,
522                 )
523                 if err != nil {
524                         panic(err)
525                 }
526                 curve.Name = "id-tc26-gost-3410-12-512-paramSetB"
527                 return curve
528         }
529         // id-tc26-gost-3410-12-512-paramSetC
530         CurveIdtc26gost341012512paramSetC func() *Curve = func() *Curve {
531                 curve, err := NewCurve(
532                         bytes2big([]byte{
533                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
534                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
535                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
536                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
537                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
538                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
539                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
540                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC7,
541                         }),
542                         bytes2big([]byte{
543                                 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
544                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
545                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
546                                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
547                                 0xC9, 0x8C, 0xDB, 0xA4, 0x65, 0x06, 0xAB, 0x00,
548                                 0x4C, 0x33, 0xA9, 0xFF, 0x51, 0x47, 0x50, 0x2C,
549                                 0xC8, 0xED, 0xA9, 0xE7, 0xA7, 0x69, 0xA1, 0x26,
550                                 0x94, 0x62, 0x3C, 0xEF, 0x47, 0xF0, 0x23, 0xED,
551                         }),
552                         bytes2big([]byte{
553                                 0xDC, 0x92, 0x03, 0xE5, 0x14, 0xA7, 0x21, 0x87,
554                                 0x54, 0x85, 0xA5, 0x29, 0xD2, 0xC7, 0x22, 0xFB,
555                                 0x18, 0x7B, 0xC8, 0x98, 0x0E, 0xB8, 0x66, 0x64,
556                                 0x4D, 0xE4, 0x1C, 0x68, 0xE1, 0x43, 0x06, 0x45,
557                                 0x46, 0xE8, 0x61, 0xC0, 0xE2, 0xC9, 0xED, 0xD9,
558                                 0x2A, 0xDE, 0x71, 0xF4, 0x6F, 0xCF, 0x50, 0xFF,
559                                 0x2A, 0xD9, 0x7F, 0x95, 0x1F, 0xDA, 0x9F, 0x2A,
560                                 0x2E, 0xB6, 0x54, 0x6F, 0x39, 0x68, 0x9B, 0xD3,
561                         }),
562                         bytes2big([]byte{
563                                 0xB4, 0xC4, 0xEE, 0x28, 0xCE, 0xBC, 0x6C, 0x2C,
564                                 0x8A, 0xC1, 0x29, 0x52, 0xCF, 0x37, 0xF1, 0x6A,
565                                 0xC7, 0xEF, 0xB6, 0xA9, 0xF6, 0x9F, 0x4B, 0x57,
566                                 0xFF, 0xDA, 0x2E, 0x4F, 0x0D, 0xE5, 0xAD, 0xE0,
567                                 0x38, 0xCB, 0xC2, 0xFF, 0xF7, 0x19, 0xD2, 0xC1,
568                                 0x8D, 0xE0, 0x28, 0x4B, 0x8B, 0xFE, 0xF3, 0xB5,
569                                 0x2B, 0x8C, 0xC7, 0xA5, 0xF5, 0xBF, 0x0A, 0x3C,
570                                 0x8D, 0x23, 0x19, 0xA5, 0x31, 0x25, 0x57, 0xE1,
571                         }),
572                         bytes2big([]byte{
573                                 0xE2, 0xE3, 0x1E, 0xDF, 0xC2, 0x3D, 0xE7, 0xBD,
574                                 0xEB, 0xE2, 0x41, 0xCE, 0x59, 0x3E, 0xF5, 0xDE,
575                                 0x22, 0x95, 0xB7, 0xA9, 0xCB, 0xAE, 0xF0, 0x21,
576                                 0xD3, 0x85, 0xF7, 0x07, 0x4C, 0xEA, 0x04, 0x3A,
577                                 0xA2, 0x72, 0x72, 0xA7, 0xAE, 0x60, 0x2B, 0xF2,
578                                 0xA7, 0xB9, 0x03, 0x3D, 0xB9, 0xED, 0x36, 0x10,
579                                 0xC6, 0xFB, 0x85, 0x48, 0x7E, 0xAE, 0x97, 0xAA,
580                                 0xC5, 0xBC, 0x79, 0x28, 0xC1, 0x95, 0x01, 0x48,
581                         }),
582                         bytes2big([]byte{
583                                 0xF5, 0xCE, 0x40, 0xD9, 0x5B, 0x5E, 0xB8, 0x99,
584                                 0xAB, 0xBC, 0xCF, 0xF5, 0x91, 0x1C, 0xB8, 0x57,
585                                 0x79, 0x39, 0x80, 0x4D, 0x65, 0x27, 0x37, 0x8B,
586                                 0x8C, 0x10, 0x8C, 0x3D, 0x20, 0x90, 0xFF, 0x9B,
587                                 0xE1, 0x8E, 0x2D, 0x33, 0xE3, 0x02, 0x1E, 0xD2,
588                                 0xEF, 0x32, 0xD8, 0x58, 0x22, 0x42, 0x3B, 0x63,
589                                 0x04, 0xF7, 0x26, 0xAA, 0x85, 0x4B, 0xAE, 0x07,
590                                 0xD0, 0x39, 0x6E, 0x9A, 0x9A, 0xDD, 0xC4, 0x0F,
591                         }),
592                         bigInt1,
593                         bytes2big([]byte{
594                                 0x9E, 0x4F, 0x5D, 0x8C, 0x01, 0x7D, 0x8D, 0x9F,
595                                 0x13, 0xA5, 0xCF, 0x3C, 0xDF, 0x5B, 0xFE, 0x4D,
596                                 0xAB, 0x40, 0x2D, 0x54, 0x19, 0x8E, 0x31, 0xEB,
597                                 0xDE, 0x28, 0xA0, 0x62, 0x10, 0x50, 0x43, 0x9C,
598                                 0xA6, 0xB3, 0x9E, 0x0A, 0x51, 0x5C, 0x06, 0xB3,
599                                 0x04, 0xE2, 0xCE, 0x43, 0xE7, 0x9E, 0x36, 0x9E,
600                                 0x91, 0xA0, 0xCF, 0xC2, 0xBC, 0x2A, 0x22, 0xB4,
601                                 0xCA, 0x30, 0x2D, 0xBB, 0x33, 0xEE, 0x75, 0x50,
602                         }),
603                         bigInt4,
604                 )
605                 if err != nil {
606                         panic(err)
607                 }
608                 curve.Name = "id-tc26-gost-3410-12-512-paramSetC"
609                 return curve
610         }
611
612         // Aliases
613
614         // id-GostR3410-2001-CryptoPro-A-ParamSet
615         CurveIdGostR34102001CryptoProAParamSet func() *Curve = func() *Curve {
616                 c := CurveIdtc26gost341012256paramSetB()
617                 c.Name = "id-GostR3410-2001-CryptoPro-A-ParamSet"
618                 return c
619         }
620         // id-GostR3410-2001-CryptoPro-B-ParamSet
621         CurveIdGostR34102001CryptoProBParamSet func() *Curve = func() *Curve {
622                 c := CurveIdtc26gost341012256paramSetC()
623                 c.Name = "id-GostR3410-2001-CryptoPro-B-ParamSet"
624                 return c
625         }
626         // id-GostR3410-2001-CryptoPro-C-ParamSet
627         CurveIdGostR34102001CryptoProCParamSet func() *Curve = func() *Curve {
628                 c := CurveIdtc26gost341012256paramSetD()
629                 c.Name = "id-GostR3410-2001-CryptoPro-C-ParamSet"
630                 return c
631         }
632         // id-GostR3410-2001-CryptoPro-XchA-ParamSet
633         CurveIdGostR34102001CryptoProXchAParamSet func() *Curve = func() *Curve {
634                 c := CurveIdGostR34102001CryptoProAParamSet()
635                 c.Name = "id-GostR3410-2001-CryptoPro-XchA-ParamSet"
636                 return c
637         }
638         // id-GostR3410-2001-CryptoPro-XchB-ParamSet
639         CurveIdGostR34102001CryptoProXchBParamSet func() *Curve = func() *Curve {
640                 c := CurveIdGostR34102001CryptoProCParamSet()
641                 c.Name = "id-GostR3410-2001-CryptoPro-XchB-ParamSet"
642                 return c
643         }
644         // id-tc26-gost-3410-2012-256-paramSetA
645         CurveIdtc26gost34102012256paramSetA func() *Curve = func() *Curve {
646                 c := CurveIdtc26gost341012256paramSetA()
647                 c.Name = "id-tc26-gost-3410-2012-256-paramSetA"
648                 return c
649         }
650         // id-tc26-gost-3410-2012-256-paramSetB
651         CurveIdtc26gost34102012256paramSetB func() *Curve = func() *Curve {
652                 c := CurveIdtc26gost341012256paramSetB()
653                 c.Name = "id-tc26-gost-3410-2012-256-paramSetB"
654                 return c
655         }
656         // id-tc26-gost-3410-2012-256-paramSetC
657         CurveIdtc26gost34102012256paramSetC func() *Curve = func() *Curve {
658                 c := CurveIdtc26gost341012256paramSetC()
659                 c.Name = "id-tc26-gost-3410-2012-256-paramSetC"
660                 return c
661         }
662         // id-tc26-gost-3410-2012-256-paramSetD
663         CurveIdtc26gost34102012256paramSetD func() *Curve = func() *Curve {
664                 c := CurveIdtc26gost341012256paramSetD()
665                 c.Name = "id-tc26-gost-3410-2012-256-paramSetD"
666                 return c
667         }
668         // id-tc26-gost-3410-2012-512-paramSetTest
669         CurveIdtc26gost34102012512paramSetTest func() *Curve = func() *Curve {
670                 c := CurveIdtc26gost341012512paramSetTest()
671                 c.Name = "id-tc26-gost-3410-2012-512-paramSetTest"
672                 return c
673         }
674         // id-tc26-gost-3410-2012-512-paramSetA
675         CurveIdtc26gost34102012512paramSetA func() *Curve = func() *Curve {
676                 c := CurveIdtc26gost341012512paramSetA()
677                 c.Name = "id-tc26-gost-3410-2012-512-paramSetA"
678                 return c
679         }
680         // id-tc26-gost-3410-2012-512-paramSetB
681         CurveIdtc26gost34102012512paramSetB func() *Curve = func() *Curve {
682                 c := CurveIdtc26gost341012512paramSetB()
683                 c.Name = "id-tc26-gost-3410-2012-512-paramSetB"
684                 return c
685         }
686         // id-tc26-gost-3410-2012-512-paramSetC
687         CurveIdtc26gost34102012512paramSetC func() *Curve = func() *Curve {
688                 c := CurveIdtc26gost341012512paramSetC()
689                 c.Name = "id-tc26-gost-3410-2012-512-paramSetC"
690                 return c
691         }
692
693         CurveDefault = CurveIdtc26gost341012256paramSetB
694 )