Line data Source code
1 : /* gost28147.c - GOST 28147-89 (Magma) cipher implementation
2 : *
3 : * based on Russian standard GOST 28147-89
4 : * For English description, check RFC 5830.
5 : * S-Boxes are expanded from the tables defined in RFC4357:
6 : * https://tools.ietf.org/html/rfc4357
7 : *
8 : * Copyright: 2015-2015 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
9 : * Copyright: 2009-2012 Aleksey Kravchenko <rhash.admin@gmail.com>
10 : *
11 : * Permission is hereby granted, free of charge, to any person obtaining a
12 : * copy of this software and associated documentation files (the
13 : * "Software"), to deal in the Software without restriction, including
14 : * without limitation the rights to use, copy, modify, merge, publish,
15 : * distribute, sublicense, and/or sell copies of the Software, and to
16 : * permit persons to whom the Software is furnished to do so, subject to
17 : * the following conditions:
18 : *
19 : * The above copyright notice and this permission notice shall be included
20 : * in all copies or substantial portions of the Software.
21 : *
22 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23 : * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 : * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 : * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26 : * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27 : * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28 : * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 : */
30 :
31 : #if HAVE_CONFIG_H
32 : #include "config.h"
33 : #endif
34 :
35 : #ifndef HAVE_NETTLE_GOST28147_SET_KEY
36 :
37 : #include <gnutls_int.h>
38 :
39 : #include <string.h>
40 :
41 : #include <nettle/macros.h>
42 : #include "nettle-write.h"
43 : #include "gost28147.h"
44 : #include <nettle/memxor.h>
45 :
46 : /* pre-initialized GOST lookup tables based on rotated S-Box */
47 : const struct gost28147_param gost28147_param_test_3411 =
48 : {
49 : 0,
50 : {
51 : /* 0 */
52 : 0x00072000, 0x00075000, 0x00074800, 0x00071000,
53 : 0x00076800, 0x00074000, 0x00070000, 0x00077000,
54 : 0x00073000, 0x00075800, 0x00070800, 0x00076000,
55 : 0x00073800, 0x00077800, 0x00072800, 0x00071800,
56 : 0x0005a000, 0x0005d000, 0x0005c800, 0x00059000,
57 : 0x0005e800, 0x0005c000, 0x00058000, 0x0005f000,
58 : 0x0005b000, 0x0005d800, 0x00058800, 0x0005e000,
59 : 0x0005b800, 0x0005f800, 0x0005a800, 0x00059800,
60 : 0x00022000, 0x00025000, 0x00024800, 0x00021000,
61 : 0x00026800, 0x00024000, 0x00020000, 0x00027000,
62 : 0x00023000, 0x00025800, 0x00020800, 0x00026000,
63 : 0x00023800, 0x00027800, 0x00022800, 0x00021800,
64 : 0x00062000, 0x00065000, 0x00064800, 0x00061000,
65 : 0x00066800, 0x00064000, 0x00060000, 0x00067000,
66 : 0x00063000, 0x00065800, 0x00060800, 0x00066000,
67 : 0x00063800, 0x00067800, 0x00062800, 0x00061800,
68 : 0x00032000, 0x00035000, 0x00034800, 0x00031000,
69 : 0x00036800, 0x00034000, 0x00030000, 0x00037000,
70 : 0x00033000, 0x00035800, 0x00030800, 0x00036000,
71 : 0x00033800, 0x00037800, 0x00032800, 0x00031800,
72 : 0x0006a000, 0x0006d000, 0x0006c800, 0x00069000,
73 : 0x0006e800, 0x0006c000, 0x00068000, 0x0006f000,
74 : 0x0006b000, 0x0006d800, 0x00068800, 0x0006e000,
75 : 0x0006b800, 0x0006f800, 0x0006a800, 0x00069800,
76 : 0x0007a000, 0x0007d000, 0x0007c800, 0x00079000,
77 : 0x0007e800, 0x0007c000, 0x00078000, 0x0007f000,
78 : 0x0007b000, 0x0007d800, 0x00078800, 0x0007e000,
79 : 0x0007b800, 0x0007f800, 0x0007a800, 0x00079800,
80 : 0x00052000, 0x00055000, 0x00054800, 0x00051000,
81 : 0x00056800, 0x00054000, 0x00050000, 0x00057000,
82 : 0x00053000, 0x00055800, 0x00050800, 0x00056000,
83 : 0x00053800, 0x00057800, 0x00052800, 0x00051800,
84 : 0x00012000, 0x00015000, 0x00014800, 0x00011000,
85 : 0x00016800, 0x00014000, 0x00010000, 0x00017000,
86 : 0x00013000, 0x00015800, 0x00010800, 0x00016000,
87 : 0x00013800, 0x00017800, 0x00012800, 0x00011800,
88 : 0x0001a000, 0x0001d000, 0x0001c800, 0x00019000,
89 : 0x0001e800, 0x0001c000, 0x00018000, 0x0001f000,
90 : 0x0001b000, 0x0001d800, 0x00018800, 0x0001e000,
91 : 0x0001b800, 0x0001f800, 0x0001a800, 0x00019800,
92 : 0x00042000, 0x00045000, 0x00044800, 0x00041000,
93 : 0x00046800, 0x00044000, 0x00040000, 0x00047000,
94 : 0x00043000, 0x00045800, 0x00040800, 0x00046000,
95 : 0x00043800, 0x00047800, 0x00042800, 0x00041800,
96 : 0x0000a000, 0x0000d000, 0x0000c800, 0x00009000,
97 : 0x0000e800, 0x0000c000, 0x00008000, 0x0000f000,
98 : 0x0000b000, 0x0000d800, 0x00008800, 0x0000e000,
99 : 0x0000b800, 0x0000f800, 0x0000a800, 0x00009800,
100 : 0x00002000, 0x00005000, 0x00004800, 0x00001000,
101 : 0x00006800, 0x00004000, 0x00000000, 0x00007000,
102 : 0x00003000, 0x00005800, 0x00000800, 0x00006000,
103 : 0x00003800, 0x00007800, 0x00002800, 0x00001800,
104 : 0x0003a000, 0x0003d000, 0x0003c800, 0x00039000,
105 : 0x0003e800, 0x0003c000, 0x00038000, 0x0003f000,
106 : 0x0003b000, 0x0003d800, 0x00038800, 0x0003e000,
107 : 0x0003b800, 0x0003f800, 0x0003a800, 0x00039800,
108 : 0x0002a000, 0x0002d000, 0x0002c800, 0x00029000,
109 : 0x0002e800, 0x0002c000, 0x00028000, 0x0002f000,
110 : 0x0002b000, 0x0002d800, 0x00028800, 0x0002e000,
111 : 0x0002b800, 0x0002f800, 0x0002a800, 0x00029800,
112 : 0x0004a000, 0x0004d000, 0x0004c800, 0x00049000,
113 : 0x0004e800, 0x0004c000, 0x00048000, 0x0004f000,
114 : 0x0004b000, 0x0004d800, 0x00048800, 0x0004e000,
115 : 0x0004b800, 0x0004f800, 0x0004a800, 0x00049800,
116 : /* 1 */
117 : 0x03a80000, 0x03c00000, 0x03880000, 0x03e80000,
118 : 0x03d00000, 0x03980000, 0x03a00000, 0x03900000,
119 : 0x03f00000, 0x03f80000, 0x03e00000, 0x03b80000,
120 : 0x03b00000, 0x03800000, 0x03c80000, 0x03d80000,
121 : 0x06a80000, 0x06c00000, 0x06880000, 0x06e80000,
122 : 0x06d00000, 0x06980000, 0x06a00000, 0x06900000,
123 : 0x06f00000, 0x06f80000, 0x06e00000, 0x06b80000,
124 : 0x06b00000, 0x06800000, 0x06c80000, 0x06d80000,
125 : 0x05280000, 0x05400000, 0x05080000, 0x05680000,
126 : 0x05500000, 0x05180000, 0x05200000, 0x05100000,
127 : 0x05700000, 0x05780000, 0x05600000, 0x05380000,
128 : 0x05300000, 0x05000000, 0x05480000, 0x05580000,
129 : 0x00a80000, 0x00c00000, 0x00880000, 0x00e80000,
130 : 0x00d00000, 0x00980000, 0x00a00000, 0x00900000,
131 : 0x00f00000, 0x00f80000, 0x00e00000, 0x00b80000,
132 : 0x00b00000, 0x00800000, 0x00c80000, 0x00d80000,
133 : 0x00280000, 0x00400000, 0x00080000, 0x00680000,
134 : 0x00500000, 0x00180000, 0x00200000, 0x00100000,
135 : 0x00700000, 0x00780000, 0x00600000, 0x00380000,
136 : 0x00300000, 0x00000000, 0x00480000, 0x00580000,
137 : 0x04280000, 0x04400000, 0x04080000, 0x04680000,
138 : 0x04500000, 0x04180000, 0x04200000, 0x04100000,
139 : 0x04700000, 0x04780000, 0x04600000, 0x04380000,
140 : 0x04300000, 0x04000000, 0x04480000, 0x04580000,
141 : 0x04a80000, 0x04c00000, 0x04880000, 0x04e80000,
142 : 0x04d00000, 0x04980000, 0x04a00000, 0x04900000,
143 : 0x04f00000, 0x04f80000, 0x04e00000, 0x04b80000,
144 : 0x04b00000, 0x04800000, 0x04c80000, 0x04d80000,
145 : 0x07a80000, 0x07c00000, 0x07880000, 0x07e80000,
146 : 0x07d00000, 0x07980000, 0x07a00000, 0x07900000,
147 : 0x07f00000, 0x07f80000, 0x07e00000, 0x07b80000,
148 : 0x07b00000, 0x07800000, 0x07c80000, 0x07d80000,
149 : 0x07280000, 0x07400000, 0x07080000, 0x07680000,
150 : 0x07500000, 0x07180000, 0x07200000, 0x07100000,
151 : 0x07700000, 0x07780000, 0x07600000, 0x07380000,
152 : 0x07300000, 0x07000000, 0x07480000, 0x07580000,
153 : 0x02280000, 0x02400000, 0x02080000, 0x02680000,
154 : 0x02500000, 0x02180000, 0x02200000, 0x02100000,
155 : 0x02700000, 0x02780000, 0x02600000, 0x02380000,
156 : 0x02300000, 0x02000000, 0x02480000, 0x02580000,
157 : 0x03280000, 0x03400000, 0x03080000, 0x03680000,
158 : 0x03500000, 0x03180000, 0x03200000, 0x03100000,
159 : 0x03700000, 0x03780000, 0x03600000, 0x03380000,
160 : 0x03300000, 0x03000000, 0x03480000, 0x03580000,
161 : 0x06280000, 0x06400000, 0x06080000, 0x06680000,
162 : 0x06500000, 0x06180000, 0x06200000, 0x06100000,
163 : 0x06700000, 0x06780000, 0x06600000, 0x06380000,
164 : 0x06300000, 0x06000000, 0x06480000, 0x06580000,
165 : 0x05a80000, 0x05c00000, 0x05880000, 0x05e80000,
166 : 0x05d00000, 0x05980000, 0x05a00000, 0x05900000,
167 : 0x05f00000, 0x05f80000, 0x05e00000, 0x05b80000,
168 : 0x05b00000, 0x05800000, 0x05c80000, 0x05d80000,
169 : 0x01280000, 0x01400000, 0x01080000, 0x01680000,
170 : 0x01500000, 0x01180000, 0x01200000, 0x01100000,
171 : 0x01700000, 0x01780000, 0x01600000, 0x01380000,
172 : 0x01300000, 0x01000000, 0x01480000, 0x01580000,
173 : 0x02a80000, 0x02c00000, 0x02880000, 0x02e80000,
174 : 0x02d00000, 0x02980000, 0x02a00000, 0x02900000,
175 : 0x02f00000, 0x02f80000, 0x02e00000, 0x02b80000,
176 : 0x02b00000, 0x02800000, 0x02c80000, 0x02d80000,
177 : 0x01a80000, 0x01c00000, 0x01880000, 0x01e80000,
178 : 0x01d00000, 0x01980000, 0x01a00000, 0x01900000,
179 : 0x01f00000, 0x01f80000, 0x01e00000, 0x01b80000,
180 : 0x01b00000, 0x01800000, 0x01c80000, 0x01d80000,
181 : /* 2 */
182 : 0x30000002, 0x60000002, 0x38000002, 0x08000002,
183 : 0x28000002, 0x78000002, 0x68000002, 0x40000002,
184 : 0x20000002, 0x50000002, 0x48000002, 0x70000002,
185 : 0x00000002, 0x18000002, 0x58000002, 0x10000002,
186 : 0xb0000005, 0xe0000005, 0xb8000005, 0x88000005,
187 : 0xa8000005, 0xf8000005, 0xe8000005, 0xc0000005,
188 : 0xa0000005, 0xd0000005, 0xc8000005, 0xf0000005,
189 : 0x80000005, 0x98000005, 0xd8000005, 0x90000005,
190 : 0x30000005, 0x60000005, 0x38000005, 0x08000005,
191 : 0x28000005, 0x78000005, 0x68000005, 0x40000005,
192 : 0x20000005, 0x50000005, 0x48000005, 0x70000005,
193 : 0x00000005, 0x18000005, 0x58000005, 0x10000005,
194 : 0x30000000, 0x60000000, 0x38000000, 0x08000000,
195 : 0x28000000, 0x78000000, 0x68000000, 0x40000000,
196 : 0x20000000, 0x50000000, 0x48000000, 0x70000000,
197 : 0x00000000, 0x18000000, 0x58000000, 0x10000000,
198 : 0xb0000003, 0xe0000003, 0xb8000003, 0x88000003,
199 : 0xa8000003, 0xf8000003, 0xe8000003, 0xc0000003,
200 : 0xa0000003, 0xd0000003, 0xc8000003, 0xf0000003,
201 : 0x80000003, 0x98000003, 0xd8000003, 0x90000003,
202 : 0x30000001, 0x60000001, 0x38000001, 0x08000001,
203 : 0x28000001, 0x78000001, 0x68000001, 0x40000001,
204 : 0x20000001, 0x50000001, 0x48000001, 0x70000001,
205 : 0x00000001, 0x18000001, 0x58000001, 0x10000001,
206 : 0xb0000000, 0xe0000000, 0xb8000000, 0x88000000,
207 : 0xa8000000, 0xf8000000, 0xe8000000, 0xc0000000,
208 : 0xa0000000, 0xd0000000, 0xc8000000, 0xf0000000,
209 : 0x80000000, 0x98000000, 0xd8000000, 0x90000000,
210 : 0xb0000006, 0xe0000006, 0xb8000006, 0x88000006,
211 : 0xa8000006, 0xf8000006, 0xe8000006, 0xc0000006,
212 : 0xa0000006, 0xd0000006, 0xc8000006, 0xf0000006,
213 : 0x80000006, 0x98000006, 0xd8000006, 0x90000006,
214 : 0xb0000001, 0xe0000001, 0xb8000001, 0x88000001,
215 : 0xa8000001, 0xf8000001, 0xe8000001, 0xc0000001,
216 : 0xa0000001, 0xd0000001, 0xc8000001, 0xf0000001,
217 : 0x80000001, 0x98000001, 0xd8000001, 0x90000001,
218 : 0x30000003, 0x60000003, 0x38000003, 0x08000003,
219 : 0x28000003, 0x78000003, 0x68000003, 0x40000003,
220 : 0x20000003, 0x50000003, 0x48000003, 0x70000003,
221 : 0x00000003, 0x18000003, 0x58000003, 0x10000003,
222 : 0x30000004, 0x60000004, 0x38000004, 0x08000004,
223 : 0x28000004, 0x78000004, 0x68000004, 0x40000004,
224 : 0x20000004, 0x50000004, 0x48000004, 0x70000004,
225 : 0x00000004, 0x18000004, 0x58000004, 0x10000004,
226 : 0xb0000002, 0xe0000002, 0xb8000002, 0x88000002,
227 : 0xa8000002, 0xf8000002, 0xe8000002, 0xc0000002,
228 : 0xa0000002, 0xd0000002, 0xc8000002, 0xf0000002,
229 : 0x80000002, 0x98000002, 0xd8000002, 0x90000002,
230 : 0xb0000004, 0xe0000004, 0xb8000004, 0x88000004,
231 : 0xa8000004, 0xf8000004, 0xe8000004, 0xc0000004,
232 : 0xa0000004, 0xd0000004, 0xc8000004, 0xf0000004,
233 : 0x80000004, 0x98000004, 0xd8000004, 0x90000004,
234 : 0x30000006, 0x60000006, 0x38000006, 0x08000006,
235 : 0x28000006, 0x78000006, 0x68000006, 0x40000006,
236 : 0x20000006, 0x50000006, 0x48000006, 0x70000006,
237 : 0x00000006, 0x18000006, 0x58000006, 0x10000006,
238 : 0xb0000007, 0xe0000007, 0xb8000007, 0x88000007,
239 : 0xa8000007, 0xf8000007, 0xe8000007, 0xc0000007,
240 : 0xa0000007, 0xd0000007, 0xc8000007, 0xf0000007,
241 : 0x80000007, 0x98000007, 0xd8000007, 0x90000007,
242 : 0x30000007, 0x60000007, 0x38000007, 0x08000007,
243 : 0x28000007, 0x78000007, 0x68000007, 0x40000007,
244 : 0x20000007, 0x50000007, 0x48000007, 0x70000007,
245 : 0x00000007, 0x18000007, 0x58000007, 0x10000007,
246 : /* 3 */
247 : 0x000000e8, 0x000000d8, 0x000000a0, 0x00000088,
248 : 0x00000098, 0x000000f8, 0x000000a8, 0x000000c8,
249 : 0x00000080, 0x000000d0, 0x000000f0, 0x000000b8,
250 : 0x000000b0, 0x000000c0, 0x00000090, 0x000000e0,
251 : 0x000007e8, 0x000007d8, 0x000007a0, 0x00000788,
252 : 0x00000798, 0x000007f8, 0x000007a8, 0x000007c8,
253 : 0x00000780, 0x000007d0, 0x000007f0, 0x000007b8,
254 : 0x000007b0, 0x000007c0, 0x00000790, 0x000007e0,
255 : 0x000006e8, 0x000006d8, 0x000006a0, 0x00000688,
256 : 0x00000698, 0x000006f8, 0x000006a8, 0x000006c8,
257 : 0x00000680, 0x000006d0, 0x000006f0, 0x000006b8,
258 : 0x000006b0, 0x000006c0, 0x00000690, 0x000006e0,
259 : 0x00000068, 0x00000058, 0x00000020, 0x00000008,
260 : 0x00000018, 0x00000078, 0x00000028, 0x00000048,
261 : 0x00000000, 0x00000050, 0x00000070, 0x00000038,
262 : 0x00000030, 0x00000040, 0x00000010, 0x00000060,
263 : 0x000002e8, 0x000002d8, 0x000002a0, 0x00000288,
264 : 0x00000298, 0x000002f8, 0x000002a8, 0x000002c8,
265 : 0x00000280, 0x000002d0, 0x000002f0, 0x000002b8,
266 : 0x000002b0, 0x000002c0, 0x00000290, 0x000002e0,
267 : 0x000003e8, 0x000003d8, 0x000003a0, 0x00000388,
268 : 0x00000398, 0x000003f8, 0x000003a8, 0x000003c8,
269 : 0x00000380, 0x000003d0, 0x000003f0, 0x000003b8,
270 : 0x000003b0, 0x000003c0, 0x00000390, 0x000003e0,
271 : 0x00000568, 0x00000558, 0x00000520, 0x00000508,
272 : 0x00000518, 0x00000578, 0x00000528, 0x00000548,
273 : 0x00000500, 0x00000550, 0x00000570, 0x00000538,
274 : 0x00000530, 0x00000540, 0x00000510, 0x00000560,
275 : 0x00000268, 0x00000258, 0x00000220, 0x00000208,
276 : 0x00000218, 0x00000278, 0x00000228, 0x00000248,
277 : 0x00000200, 0x00000250, 0x00000270, 0x00000238,
278 : 0x00000230, 0x00000240, 0x00000210, 0x00000260,
279 : 0x000004e8, 0x000004d8, 0x000004a0, 0x00000488,
280 : 0x00000498, 0x000004f8, 0x000004a8, 0x000004c8,
281 : 0x00000480, 0x000004d0, 0x000004f0, 0x000004b8,
282 : 0x000004b0, 0x000004c0, 0x00000490, 0x000004e0,
283 : 0x00000168, 0x00000158, 0x00000120, 0x00000108,
284 : 0x00000118, 0x00000178, 0x00000128, 0x00000148,
285 : 0x00000100, 0x00000150, 0x00000170, 0x00000138,
286 : 0x00000130, 0x00000140, 0x00000110, 0x00000160,
287 : 0x000001e8, 0x000001d8, 0x000001a0, 0x00000188,
288 : 0x00000198, 0x000001f8, 0x000001a8, 0x000001c8,
289 : 0x00000180, 0x000001d0, 0x000001f0, 0x000001b8,
290 : 0x000001b0, 0x000001c0, 0x00000190, 0x000001e0,
291 : 0x00000768, 0x00000758, 0x00000720, 0x00000708,
292 : 0x00000718, 0x00000778, 0x00000728, 0x00000748,
293 : 0x00000700, 0x00000750, 0x00000770, 0x00000738,
294 : 0x00000730, 0x00000740, 0x00000710, 0x00000760,
295 : 0x00000368, 0x00000358, 0x00000320, 0x00000308,
296 : 0x00000318, 0x00000378, 0x00000328, 0x00000348,
297 : 0x00000300, 0x00000350, 0x00000370, 0x00000338,
298 : 0x00000330, 0x00000340, 0x00000310, 0x00000360,
299 : 0x000005e8, 0x000005d8, 0x000005a0, 0x00000588,
300 : 0x00000598, 0x000005f8, 0x000005a8, 0x000005c8,
301 : 0x00000580, 0x000005d0, 0x000005f0, 0x000005b8,
302 : 0x000005b0, 0x000005c0, 0x00000590, 0x000005e0,
303 : 0x00000468, 0x00000458, 0x00000420, 0x00000408,
304 : 0x00000418, 0x00000478, 0x00000428, 0x00000448,
305 : 0x00000400, 0x00000450, 0x00000470, 0x00000438,
306 : 0x00000430, 0x00000440, 0x00000410, 0x00000460,
307 : 0x00000668, 0x00000658, 0x00000620, 0x00000608,
308 : 0x00000618, 0x00000678, 0x00000628, 0x00000648,
309 : 0x00000600, 0x00000650, 0x00000670, 0x00000638,
310 : 0x00000630, 0x00000640, 0x00000610, 0x00000660,
311 : }
312 : };
313 :
314 : const struct gost28147_param gost28147_param_CryptoPro_3411 =
315 : {
316 : 0,
317 : {
318 : /* 0 */
319 : 0x0002d000, 0x0002a000, 0x0002a800, 0x0002b000,
320 : 0x0002c000, 0x00028800, 0x00029800, 0x0002b800,
321 : 0x0002e800, 0x0002e000, 0x0002f000, 0x00028000,
322 : 0x0002c800, 0x00029000, 0x0002d800, 0x0002f800,
323 : 0x0007d000, 0x0007a000, 0x0007a800, 0x0007b000,
324 : 0x0007c000, 0x00078800, 0x00079800, 0x0007b800,
325 : 0x0007e800, 0x0007e000, 0x0007f000, 0x00078000,
326 : 0x0007c800, 0x00079000, 0x0007d800, 0x0007f800,
327 : 0x00025000, 0x00022000, 0x00022800, 0x00023000,
328 : 0x00024000, 0x00020800, 0x00021800, 0x00023800,
329 : 0x00026800, 0x00026000, 0x00027000, 0x00020000,
330 : 0x00024800, 0x00021000, 0x00025800, 0x00027800,
331 : 0x00005000, 0x00002000, 0x00002800, 0x00003000,
332 : 0x00004000, 0x00000800, 0x00001800, 0x00003800,
333 : 0x00006800, 0x00006000, 0x00007000, 0x00000000,
334 : 0x00004800, 0x00001000, 0x00005800, 0x00007800,
335 : 0x00015000, 0x00012000, 0x00012800, 0x00013000,
336 : 0x00014000, 0x00010800, 0x00011800, 0x00013800,
337 : 0x00016800, 0x00016000, 0x00017000, 0x00010000,
338 : 0x00014800, 0x00011000, 0x00015800, 0x00017800,
339 : 0x0006d000, 0x0006a000, 0x0006a800, 0x0006b000,
340 : 0x0006c000, 0x00068800, 0x00069800, 0x0006b800,
341 : 0x0006e800, 0x0006e000, 0x0006f000, 0x00068000,
342 : 0x0006c800, 0x00069000, 0x0006d800, 0x0006f800,
343 : 0x0005d000, 0x0005a000, 0x0005a800, 0x0005b000,
344 : 0x0005c000, 0x00058800, 0x00059800, 0x0005b800,
345 : 0x0005e800, 0x0005e000, 0x0005f000, 0x00058000,
346 : 0x0005c800, 0x00059000, 0x0005d800, 0x0005f800,
347 : 0x0004d000, 0x0004a000, 0x0004a800, 0x0004b000,
348 : 0x0004c000, 0x00048800, 0x00049800, 0x0004b800,
349 : 0x0004e800, 0x0004e000, 0x0004f000, 0x00048000,
350 : 0x0004c800, 0x00049000, 0x0004d800, 0x0004f800,
351 : 0x0000d000, 0x0000a000, 0x0000a800, 0x0000b000,
352 : 0x0000c000, 0x00008800, 0x00009800, 0x0000b800,
353 : 0x0000e800, 0x0000e000, 0x0000f000, 0x00008000,
354 : 0x0000c800, 0x00009000, 0x0000d800, 0x0000f800,
355 : 0x0003d000, 0x0003a000, 0x0003a800, 0x0003b000,
356 : 0x0003c000, 0x00038800, 0x00039800, 0x0003b800,
357 : 0x0003e800, 0x0003e000, 0x0003f000, 0x00038000,
358 : 0x0003c800, 0x00039000, 0x0003d800, 0x0003f800,
359 : 0x00035000, 0x00032000, 0x00032800, 0x00033000,
360 : 0x00034000, 0x00030800, 0x00031800, 0x00033800,
361 : 0x00036800, 0x00036000, 0x00037000, 0x00030000,
362 : 0x00034800, 0x00031000, 0x00035800, 0x00037800,
363 : 0x0001d000, 0x0001a000, 0x0001a800, 0x0001b000,
364 : 0x0001c000, 0x00018800, 0x00019800, 0x0001b800,
365 : 0x0001e800, 0x0001e000, 0x0001f000, 0x00018000,
366 : 0x0001c800, 0x00019000, 0x0001d800, 0x0001f800,
367 : 0x00065000, 0x00062000, 0x00062800, 0x00063000,
368 : 0x00064000, 0x00060800, 0x00061800, 0x00063800,
369 : 0x00066800, 0x00066000, 0x00067000, 0x00060000,
370 : 0x00064800, 0x00061000, 0x00065800, 0x00067800,
371 : 0x00075000, 0x00072000, 0x00072800, 0x00073000,
372 : 0x00074000, 0x00070800, 0x00071800, 0x00073800,
373 : 0x00076800, 0x00076000, 0x00077000, 0x00070000,
374 : 0x00074800, 0x00071000, 0x00075800, 0x00077800,
375 : 0x00055000, 0x00052000, 0x00052800, 0x00053000,
376 : 0x00054000, 0x00050800, 0x00051800, 0x00053800,
377 : 0x00056800, 0x00056000, 0x00057000, 0x00050000,
378 : 0x00054800, 0x00051000, 0x00055800, 0x00057800,
379 : 0x00045000, 0x00042000, 0x00042800, 0x00043000,
380 : 0x00044000, 0x00040800, 0x00041800, 0x00043800,
381 : 0x00046800, 0x00046000, 0x00047000, 0x00040000,
382 : 0x00044800, 0x00041000, 0x00045800, 0x00047800,
383 : /* 1 */
384 : 0x02380000, 0x02780000, 0x02600000, 0x02700000,
385 : 0x02480000, 0x02200000, 0x02080000, 0x02000000,
386 : 0x02180000, 0x02580000, 0x02280000, 0x02100000,
387 : 0x02300000, 0x02500000, 0x02400000, 0x02680000,
388 : 0x05380000, 0x05780000, 0x05600000, 0x05700000,
389 : 0x05480000, 0x05200000, 0x05080000, 0x05000000,
390 : 0x05180000, 0x05580000, 0x05280000, 0x05100000,
391 : 0x05300000, 0x05500000, 0x05400000, 0x05680000,
392 : 0x03b80000, 0x03f80000, 0x03e00000, 0x03f00000,
393 : 0x03c80000, 0x03a00000, 0x03880000, 0x03800000,
394 : 0x03980000, 0x03d80000, 0x03a80000, 0x03900000,
395 : 0x03b00000, 0x03d00000, 0x03c00000, 0x03e80000,
396 : 0x06380000, 0x06780000, 0x06600000, 0x06700000,
397 : 0x06480000, 0x06200000, 0x06080000, 0x06000000,
398 : 0x06180000, 0x06580000, 0x06280000, 0x06100000,
399 : 0x06300000, 0x06500000, 0x06400000, 0x06680000,
400 : 0x00380000, 0x00780000, 0x00600000, 0x00700000,
401 : 0x00480000, 0x00200000, 0x00080000, 0x00000000,
402 : 0x00180000, 0x00580000, 0x00280000, 0x00100000,
403 : 0x00300000, 0x00500000, 0x00400000, 0x00680000,
404 : 0x07b80000, 0x07f80000, 0x07e00000, 0x07f00000,
405 : 0x07c80000, 0x07a00000, 0x07880000, 0x07800000,
406 : 0x07980000, 0x07d80000, 0x07a80000, 0x07900000,
407 : 0x07b00000, 0x07d00000, 0x07c00000, 0x07e80000,
408 : 0x01380000, 0x01780000, 0x01600000, 0x01700000,
409 : 0x01480000, 0x01200000, 0x01080000, 0x01000000,
410 : 0x01180000, 0x01580000, 0x01280000, 0x01100000,
411 : 0x01300000, 0x01500000, 0x01400000, 0x01680000,
412 : 0x04380000, 0x04780000, 0x04600000, 0x04700000,
413 : 0x04480000, 0x04200000, 0x04080000, 0x04000000,
414 : 0x04180000, 0x04580000, 0x04280000, 0x04100000,
415 : 0x04300000, 0x04500000, 0x04400000, 0x04680000,
416 : 0x07380000, 0x07780000, 0x07600000, 0x07700000,
417 : 0x07480000, 0x07200000, 0x07080000, 0x07000000,
418 : 0x07180000, 0x07580000, 0x07280000, 0x07100000,
419 : 0x07300000, 0x07500000, 0x07400000, 0x07680000,
420 : 0x00b80000, 0x00f80000, 0x00e00000, 0x00f00000,
421 : 0x00c80000, 0x00a00000, 0x00880000, 0x00800000,
422 : 0x00980000, 0x00d80000, 0x00a80000, 0x00900000,
423 : 0x00b00000, 0x00d00000, 0x00c00000, 0x00e80000,
424 : 0x03380000, 0x03780000, 0x03600000, 0x03700000,
425 : 0x03480000, 0x03200000, 0x03080000, 0x03000000,
426 : 0x03180000, 0x03580000, 0x03280000, 0x03100000,
427 : 0x03300000, 0x03500000, 0x03400000, 0x03680000,
428 : 0x02b80000, 0x02f80000, 0x02e00000, 0x02f00000,
429 : 0x02c80000, 0x02a00000, 0x02880000, 0x02800000,
430 : 0x02980000, 0x02d80000, 0x02a80000, 0x02900000,
431 : 0x02b00000, 0x02d00000, 0x02c00000, 0x02e80000,
432 : 0x06b80000, 0x06f80000, 0x06e00000, 0x06f00000,
433 : 0x06c80000, 0x06a00000, 0x06880000, 0x06800000,
434 : 0x06980000, 0x06d80000, 0x06a80000, 0x06900000,
435 : 0x06b00000, 0x06d00000, 0x06c00000, 0x06e80000,
436 : 0x05b80000, 0x05f80000, 0x05e00000, 0x05f00000,
437 : 0x05c80000, 0x05a00000, 0x05880000, 0x05800000,
438 : 0x05980000, 0x05d80000, 0x05a80000, 0x05900000,
439 : 0x05b00000, 0x05d00000, 0x05c00000, 0x05e80000,
440 : 0x04b80000, 0x04f80000, 0x04e00000, 0x04f00000,
441 : 0x04c80000, 0x04a00000, 0x04880000, 0x04800000,
442 : 0x04980000, 0x04d80000, 0x04a80000, 0x04900000,
443 : 0x04b00000, 0x04d00000, 0x04c00000, 0x04e80000,
444 : 0x01b80000, 0x01f80000, 0x01e00000, 0x01f00000,
445 : 0x01c80000, 0x01a00000, 0x01880000, 0x01800000,
446 : 0x01980000, 0x01d80000, 0x01a80000, 0x01900000,
447 : 0x01b00000, 0x01d00000, 0x01c00000, 0x01e80000,
448 : /* 2 */
449 : 0xb8000003, 0xb0000003, 0xa0000003, 0xd8000003,
450 : 0xc8000003, 0xe0000003, 0x90000003, 0xd0000003,
451 : 0x88000003, 0xc0000003, 0x80000003, 0xf0000003,
452 : 0xf8000003, 0xe8000003, 0x98000003, 0xa8000003,
453 : 0x38000003, 0x30000003, 0x20000003, 0x58000003,
454 : 0x48000003, 0x60000003, 0x10000003, 0x50000003,
455 : 0x08000003, 0x40000003, 0x00000003, 0x70000003,
456 : 0x78000003, 0x68000003, 0x18000003, 0x28000003,
457 : 0x38000001, 0x30000001, 0x20000001, 0x58000001,
458 : 0x48000001, 0x60000001, 0x10000001, 0x50000001,
459 : 0x08000001, 0x40000001, 0x00000001, 0x70000001,
460 : 0x78000001, 0x68000001, 0x18000001, 0x28000001,
461 : 0x38000002, 0x30000002, 0x20000002, 0x58000002,
462 : 0x48000002, 0x60000002, 0x10000002, 0x50000002,
463 : 0x08000002, 0x40000002, 0x00000002, 0x70000002,
464 : 0x78000002, 0x68000002, 0x18000002, 0x28000002,
465 : 0xb8000006, 0xb0000006, 0xa0000006, 0xd8000006,
466 : 0xc8000006, 0xe0000006, 0x90000006, 0xd0000006,
467 : 0x88000006, 0xc0000006, 0x80000006, 0xf0000006,
468 : 0xf8000006, 0xe8000006, 0x98000006, 0xa8000006,
469 : 0xb8000004, 0xb0000004, 0xa0000004, 0xd8000004,
470 : 0xc8000004, 0xe0000004, 0x90000004, 0xd0000004,
471 : 0x88000004, 0xc0000004, 0x80000004, 0xf0000004,
472 : 0xf8000004, 0xe8000004, 0x98000004, 0xa8000004,
473 : 0xb8000007, 0xb0000007, 0xa0000007, 0xd8000007,
474 : 0xc8000007, 0xe0000007, 0x90000007, 0xd0000007,
475 : 0x88000007, 0xc0000007, 0x80000007, 0xf0000007,
476 : 0xf8000007, 0xe8000007, 0x98000007, 0xa8000007,
477 : 0x38000000, 0x30000000, 0x20000000, 0x58000000,
478 : 0x48000000, 0x60000000, 0x10000000, 0x50000000,
479 : 0x08000000, 0x40000000, 0x00000000, 0x70000000,
480 : 0x78000000, 0x68000000, 0x18000000, 0x28000000,
481 : 0x38000005, 0x30000005, 0x20000005, 0x58000005,
482 : 0x48000005, 0x60000005, 0x10000005, 0x50000005,
483 : 0x08000005, 0x40000005, 0x00000005, 0x70000005,
484 : 0x78000005, 0x68000005, 0x18000005, 0x28000005,
485 : 0xb8000000, 0xb0000000, 0xa0000000, 0xd8000000,
486 : 0xc8000000, 0xe0000000, 0x90000000, 0xd0000000,
487 : 0x88000000, 0xc0000000, 0x80000000, 0xf0000000,
488 : 0xf8000000, 0xe8000000, 0x98000000, 0xa8000000,
489 : 0xb8000002, 0xb0000002, 0xa0000002, 0xd8000002,
490 : 0xc8000002, 0xe0000002, 0x90000002, 0xd0000002,
491 : 0x88000002, 0xc0000002, 0x80000002, 0xf0000002,
492 : 0xf8000002, 0xe8000002, 0x98000002, 0xa8000002,
493 : 0xb8000005, 0xb0000005, 0xa0000005, 0xd8000005,
494 : 0xc8000005, 0xe0000005, 0x90000005, 0xd0000005,
495 : 0x88000005, 0xc0000005, 0x80000005, 0xf0000005,
496 : 0xf8000005, 0xe8000005, 0x98000005, 0xa8000005,
497 : 0x38000004, 0x30000004, 0x20000004, 0x58000004,
498 : 0x48000004, 0x60000004, 0x10000004, 0x50000004,
499 : 0x08000004, 0x40000004, 0x00000004, 0x70000004,
500 : 0x78000004, 0x68000004, 0x18000004, 0x28000004,
501 : 0x38000007, 0x30000007, 0x20000007, 0x58000007,
502 : 0x48000007, 0x60000007, 0x10000007, 0x50000007,
503 : 0x08000007, 0x40000007, 0x00000007, 0x70000007,
504 : 0x78000007, 0x68000007, 0x18000007, 0x28000007,
505 : 0x38000006, 0x30000006, 0x20000006, 0x58000006,
506 : 0x48000006, 0x60000006, 0x10000006, 0x50000006,
507 : 0x08000006, 0x40000006, 0x00000006, 0x70000006,
508 : 0x78000006, 0x68000006, 0x18000006, 0x28000006,
509 : 0xb8000001, 0xb0000001, 0xa0000001, 0xd8000001,
510 : 0xc8000001, 0xe0000001, 0x90000001, 0xd0000001,
511 : 0x88000001, 0xc0000001, 0x80000001, 0xf0000001,
512 : 0xf8000001, 0xe8000001, 0x98000001, 0xa8000001,
513 : /* 3 */
514 : 0x000000e8, 0x000000f0, 0x000000a0, 0x00000088,
515 : 0x000000b8, 0x00000080, 0x000000a8, 0x000000d0,
516 : 0x00000098, 0x000000e0, 0x000000c0, 0x000000f8,
517 : 0x000000b0, 0x00000090, 0x000000c8, 0x000000d8,
518 : 0x000001e8, 0x000001f0, 0x000001a0, 0x00000188,
519 : 0x000001b8, 0x00000180, 0x000001a8, 0x000001d0,
520 : 0x00000198, 0x000001e0, 0x000001c0, 0x000001f8,
521 : 0x000001b0, 0x00000190, 0x000001c8, 0x000001d8,
522 : 0x00000568, 0x00000570, 0x00000520, 0x00000508,
523 : 0x00000538, 0x00000500, 0x00000528, 0x00000550,
524 : 0x00000518, 0x00000560, 0x00000540, 0x00000578,
525 : 0x00000530, 0x00000510, 0x00000548, 0x00000558,
526 : 0x000004e8, 0x000004f0, 0x000004a0, 0x00000488,
527 : 0x000004b8, 0x00000480, 0x000004a8, 0x000004d0,
528 : 0x00000498, 0x000004e0, 0x000004c0, 0x000004f8,
529 : 0x000004b0, 0x00000490, 0x000004c8, 0x000004d8,
530 : 0x000002e8, 0x000002f0, 0x000002a0, 0x00000288,
531 : 0x000002b8, 0x00000280, 0x000002a8, 0x000002d0,
532 : 0x00000298, 0x000002e0, 0x000002c0, 0x000002f8,
533 : 0x000002b0, 0x00000290, 0x000002c8, 0x000002d8,
534 : 0x000005e8, 0x000005f0, 0x000005a0, 0x00000588,
535 : 0x000005b8, 0x00000580, 0x000005a8, 0x000005d0,
536 : 0x00000598, 0x000005e0, 0x000005c0, 0x000005f8,
537 : 0x000005b0, 0x00000590, 0x000005c8, 0x000005d8,
538 : 0x00000268, 0x00000270, 0x00000220, 0x00000208,
539 : 0x00000238, 0x00000200, 0x00000228, 0x00000250,
540 : 0x00000218, 0x00000260, 0x00000240, 0x00000278,
541 : 0x00000230, 0x00000210, 0x00000248, 0x00000258,
542 : 0x000007e8, 0x000007f0, 0x000007a0, 0x00000788,
543 : 0x000007b8, 0x00000780, 0x000007a8, 0x000007d0,
544 : 0x00000798, 0x000007e0, 0x000007c0, 0x000007f8,
545 : 0x000007b0, 0x00000790, 0x000007c8, 0x000007d8,
546 : 0x00000468, 0x00000470, 0x00000420, 0x00000408,
547 : 0x00000438, 0x00000400, 0x00000428, 0x00000450,
548 : 0x00000418, 0x00000460, 0x00000440, 0x00000478,
549 : 0x00000430, 0x00000410, 0x00000448, 0x00000458,
550 : 0x00000368, 0x00000370, 0x00000320, 0x00000308,
551 : 0x00000338, 0x00000300, 0x00000328, 0x00000350,
552 : 0x00000318, 0x00000360, 0x00000340, 0x00000378,
553 : 0x00000330, 0x00000310, 0x00000348, 0x00000358,
554 : 0x000003e8, 0x000003f0, 0x000003a0, 0x00000388,
555 : 0x000003b8, 0x00000380, 0x000003a8, 0x000003d0,
556 : 0x00000398, 0x000003e0, 0x000003c0, 0x000003f8,
557 : 0x000003b0, 0x00000390, 0x000003c8, 0x000003d8,
558 : 0x00000768, 0x00000770, 0x00000720, 0x00000708,
559 : 0x00000738, 0x00000700, 0x00000728, 0x00000750,
560 : 0x00000718, 0x00000760, 0x00000740, 0x00000778,
561 : 0x00000730, 0x00000710, 0x00000748, 0x00000758,
562 : 0x000006e8, 0x000006f0, 0x000006a0, 0x00000688,
563 : 0x000006b8, 0x00000680, 0x000006a8, 0x000006d0,
564 : 0x00000698, 0x000006e0, 0x000006c0, 0x000006f8,
565 : 0x000006b0, 0x00000690, 0x000006c8, 0x000006d8,
566 : 0x00000068, 0x00000070, 0x00000020, 0x00000008,
567 : 0x00000038, 0x00000000, 0x00000028, 0x00000050,
568 : 0x00000018, 0x00000060, 0x00000040, 0x00000078,
569 : 0x00000030, 0x00000010, 0x00000048, 0x00000058,
570 : 0x00000168, 0x00000170, 0x00000120, 0x00000108,
571 : 0x00000138, 0x00000100, 0x00000128, 0x00000150,
572 : 0x00000118, 0x00000160, 0x00000140, 0x00000178,
573 : 0x00000130, 0x00000110, 0x00000148, 0x00000158,
574 : 0x00000668, 0x00000670, 0x00000620, 0x00000608,
575 : 0x00000638, 0x00000600, 0x00000628, 0x00000650,
576 : 0x00000618, 0x00000660, 0x00000640, 0x00000678,
577 : 0x00000630, 0x00000610, 0x00000648, 0x00000658,
578 : }
579 : };
580 :
581 : const struct gost28147_param gost28147_param_Test_89 =
582 : {
583 : 0,
584 : {
585 : /* 0 */
586 : 0x00062000, 0x00061000, 0x00067800, 0x00062800,
587 : 0x00064800, 0x00060800, 0x00060000, 0x00064000,
588 : 0x00067000, 0x00061800, 0x00065800, 0x00066000,
589 : 0x00066800, 0x00063800, 0x00065000, 0x00063000,
590 : 0x0004a000, 0x00049000, 0x0004f800, 0x0004a800,
591 : 0x0004c800, 0x00048800, 0x00048000, 0x0004c000,
592 : 0x0004f000, 0x00049800, 0x0004d800, 0x0004e000,
593 : 0x0004e800, 0x0004b800, 0x0004d000, 0x0004b000,
594 : 0x0007a000, 0x00079000, 0x0007f800, 0x0007a800,
595 : 0x0007c800, 0x00078800, 0x00078000, 0x0007c000,
596 : 0x0007f000, 0x00079800, 0x0007d800, 0x0007e000,
597 : 0x0007e800, 0x0007b800, 0x0007d000, 0x0007b000,
598 : 0x00072000, 0x00071000, 0x00077800, 0x00072800,
599 : 0x00074800, 0x00070800, 0x00070000, 0x00074000,
600 : 0x00077000, 0x00071800, 0x00075800, 0x00076000,
601 : 0x00076800, 0x00073800, 0x00075000, 0x00073000,
602 : 0x00042000, 0x00041000, 0x00047800, 0x00042800,
603 : 0x00044800, 0x00040800, 0x00040000, 0x00044000,
604 : 0x00047000, 0x00041800, 0x00045800, 0x00046000,
605 : 0x00046800, 0x00043800, 0x00045000, 0x00043000,
606 : 0x0000a000, 0x00009000, 0x0000f800, 0x0000a800,
607 : 0x0000c800, 0x00008800, 0x00008000, 0x0000c000,
608 : 0x0000f000, 0x00009800, 0x0000d800, 0x0000e000,
609 : 0x0000e800, 0x0000b800, 0x0000d000, 0x0000b000,
610 : 0x0001a000, 0x00019000, 0x0001f800, 0x0001a800,
611 : 0x0001c800, 0x00018800, 0x00018000, 0x0001c000,
612 : 0x0001f000, 0x00019800, 0x0001d800, 0x0001e000,
613 : 0x0001e800, 0x0001b800, 0x0001d000, 0x0001b000,
614 : 0x00052000, 0x00051000, 0x00057800, 0x00052800,
615 : 0x00054800, 0x00050800, 0x00050000, 0x00054000,
616 : 0x00057000, 0x00051800, 0x00055800, 0x00056000,
617 : 0x00056800, 0x00053800, 0x00055000, 0x00053000,
618 : 0x00012000, 0x00011000, 0x00017800, 0x00012800,
619 : 0x00014800, 0x00010800, 0x00010000, 0x00014000,
620 : 0x00017000, 0x00011800, 0x00015800, 0x00016000,
621 : 0x00016800, 0x00013800, 0x00015000, 0x00013000,
622 : 0x0003a000, 0x00039000, 0x0003f800, 0x0003a800,
623 : 0x0003c800, 0x00038800, 0x00038000, 0x0003c000,
624 : 0x0003f000, 0x00039800, 0x0003d800, 0x0003e000,
625 : 0x0003e800, 0x0003b800, 0x0003d000, 0x0003b000,
626 : 0x00022000, 0x00021000, 0x00027800, 0x00022800,
627 : 0x00024800, 0x00020800, 0x00020000, 0x00024000,
628 : 0x00027000, 0x00021800, 0x00025800, 0x00026000,
629 : 0x00026800, 0x00023800, 0x00025000, 0x00023000,
630 : 0x0006a000, 0x00069000, 0x0006f800, 0x0006a800,
631 : 0x0006c800, 0x00068800, 0x00068000, 0x0006c000,
632 : 0x0006f000, 0x00069800, 0x0006d800, 0x0006e000,
633 : 0x0006e800, 0x0006b800, 0x0006d000, 0x0006b000,
634 : 0x00032000, 0x00031000, 0x00037800, 0x00032800,
635 : 0x00034800, 0x00030800, 0x00030000, 0x00034000,
636 : 0x00037000, 0x00031800, 0x00035800, 0x00036000,
637 : 0x00036800, 0x00033800, 0x00035000, 0x00033000,
638 : 0x00002000, 0x00001000, 0x00007800, 0x00002800,
639 : 0x00004800, 0x00000800, 0x00000000, 0x00004000,
640 : 0x00007000, 0x00001800, 0x00005800, 0x00006000,
641 : 0x00006800, 0x00003800, 0x00005000, 0x00003000,
642 : 0x0005a000, 0x00059000, 0x0005f800, 0x0005a800,
643 : 0x0005c800, 0x00058800, 0x00058000, 0x0005c000,
644 : 0x0005f000, 0x00059800, 0x0005d800, 0x0005e000,
645 : 0x0005e800, 0x0005b800, 0x0005d000, 0x0005b000,
646 : 0x0002a000, 0x00029000, 0x0002f800, 0x0002a800,
647 : 0x0002c800, 0x00028800, 0x00028000, 0x0002c000,
648 : 0x0002f000, 0x00029800, 0x0002d800, 0x0002e000,
649 : 0x0002e800, 0x0002b800, 0x0002d000, 0x0002b000,
650 : /* 1 */
651 : 0x07680000, 0x07400000, 0x07700000, 0x07600000,
652 : 0x07380000, 0x07180000, 0x07480000, 0x07500000,
653 : 0x07080000, 0x07280000, 0x07100000, 0x07200000,
654 : 0x07300000, 0x07780000, 0x07000000, 0x07580000,
655 : 0x04e80000, 0x04c00000, 0x04f00000, 0x04e00000,
656 : 0x04b80000, 0x04980000, 0x04c80000, 0x04d00000,
657 : 0x04880000, 0x04a80000, 0x04900000, 0x04a00000,
658 : 0x04b00000, 0x04f80000, 0x04800000, 0x04d80000,
659 : 0x05e80000, 0x05c00000, 0x05f00000, 0x05e00000,
660 : 0x05b80000, 0x05980000, 0x05c80000, 0x05d00000,
661 : 0x05880000, 0x05a80000, 0x05900000, 0x05a00000,
662 : 0x05b00000, 0x05f80000, 0x05800000, 0x05d80000,
663 : 0x01680000, 0x01400000, 0x01700000, 0x01600000,
664 : 0x01380000, 0x01180000, 0x01480000, 0x01500000,
665 : 0x01080000, 0x01280000, 0x01100000, 0x01200000,
666 : 0x01300000, 0x01780000, 0x01000000, 0x01580000,
667 : 0x02e80000, 0x02c00000, 0x02f00000, 0x02e00000,
668 : 0x02b80000, 0x02980000, 0x02c80000, 0x02d00000,
669 : 0x02880000, 0x02a80000, 0x02900000, 0x02a00000,
670 : 0x02b00000, 0x02f80000, 0x02800000, 0x02d80000,
671 : 0x07e80000, 0x07c00000, 0x07f00000, 0x07e00000,
672 : 0x07b80000, 0x07980000, 0x07c80000, 0x07d00000,
673 : 0x07880000, 0x07a80000, 0x07900000, 0x07a00000,
674 : 0x07b00000, 0x07f80000, 0x07800000, 0x07d80000,
675 : 0x03e80000, 0x03c00000, 0x03f00000, 0x03e00000,
676 : 0x03b80000, 0x03980000, 0x03c80000, 0x03d00000,
677 : 0x03880000, 0x03a80000, 0x03900000, 0x03a00000,
678 : 0x03b00000, 0x03f80000, 0x03800000, 0x03d80000,
679 : 0x00e80000, 0x00c00000, 0x00f00000, 0x00e00000,
680 : 0x00b80000, 0x00980000, 0x00c80000, 0x00d00000,
681 : 0x00880000, 0x00a80000, 0x00900000, 0x00a00000,
682 : 0x00b00000, 0x00f80000, 0x00800000, 0x00d80000,
683 : 0x00680000, 0x00400000, 0x00700000, 0x00600000,
684 : 0x00380000, 0x00180000, 0x00480000, 0x00500000,
685 : 0x00080000, 0x00280000, 0x00100000, 0x00200000,
686 : 0x00300000, 0x00780000, 0x00000000, 0x00580000,
687 : 0x06e80000, 0x06c00000, 0x06f00000, 0x06e00000,
688 : 0x06b80000, 0x06980000, 0x06c80000, 0x06d00000,
689 : 0x06880000, 0x06a80000, 0x06900000, 0x06a00000,
690 : 0x06b00000, 0x06f80000, 0x06800000, 0x06d80000,
691 : 0x06680000, 0x06400000, 0x06700000, 0x06600000,
692 : 0x06380000, 0x06180000, 0x06480000, 0x06500000,
693 : 0x06080000, 0x06280000, 0x06100000, 0x06200000,
694 : 0x06300000, 0x06780000, 0x06000000, 0x06580000,
695 : 0x03680000, 0x03400000, 0x03700000, 0x03600000,
696 : 0x03380000, 0x03180000, 0x03480000, 0x03500000,
697 : 0x03080000, 0x03280000, 0x03100000, 0x03200000,
698 : 0x03300000, 0x03780000, 0x03000000, 0x03580000,
699 : 0x05680000, 0x05400000, 0x05700000, 0x05600000,
700 : 0x05380000, 0x05180000, 0x05480000, 0x05500000,
701 : 0x05080000, 0x05280000, 0x05100000, 0x05200000,
702 : 0x05300000, 0x05780000, 0x05000000, 0x05580000,
703 : 0x02680000, 0x02400000, 0x02700000, 0x02600000,
704 : 0x02380000, 0x02180000, 0x02480000, 0x02500000,
705 : 0x02080000, 0x02280000, 0x02100000, 0x02200000,
706 : 0x02300000, 0x02780000, 0x02000000, 0x02580000,
707 : 0x01e80000, 0x01c00000, 0x01f00000, 0x01e00000,
708 : 0x01b80000, 0x01980000, 0x01c80000, 0x01d00000,
709 : 0x01880000, 0x01a80000, 0x01900000, 0x01a00000,
710 : 0x01b00000, 0x01f80000, 0x01800000, 0x01d80000,
711 : 0x04680000, 0x04400000, 0x04700000, 0x04600000,
712 : 0x04380000, 0x04180000, 0x04480000, 0x04500000,
713 : 0x04080000, 0x04280000, 0x04100000, 0x04200000,
714 : 0x04300000, 0x04780000, 0x04000000, 0x04580000,
715 : /* 2 */
716 : 0x18000004, 0x70000004, 0x28000004, 0x48000004,
717 : 0x30000004, 0x40000004, 0x00000004, 0x68000004,
718 : 0x50000004, 0x58000004, 0x38000004, 0x60000004,
719 : 0x10000004, 0x08000004, 0x78000004, 0x20000004,
720 : 0x98000007, 0xf0000007, 0xa8000007, 0xc8000007,
721 : 0xb0000007, 0xc0000007, 0x80000007, 0xe8000007,
722 : 0xd0000007, 0xd8000007, 0xb8000007, 0xe0000007,
723 : 0x90000007, 0x88000007, 0xf8000007, 0xa0000007,
724 : 0x18000003, 0x70000003, 0x28000003, 0x48000003,
725 : 0x30000003, 0x40000003, 0x00000003, 0x68000003,
726 : 0x50000003, 0x58000003, 0x38000003, 0x60000003,
727 : 0x10000003, 0x08000003, 0x78000003, 0x20000003,
728 : 0x98000005, 0xf0000005, 0xa8000005, 0xc8000005,
729 : 0xb0000005, 0xc0000005, 0x80000005, 0xe8000005,
730 : 0xd0000005, 0xd8000005, 0xb8000005, 0xe0000005,
731 : 0x90000005, 0x88000005, 0xf8000005, 0xa0000005,
732 : 0x98000000, 0xf0000000, 0xa8000000, 0xc8000000,
733 : 0xb0000000, 0xc0000000, 0x80000000, 0xe8000000,
734 : 0xd0000000, 0xd8000000, 0xb8000000, 0xe0000000,
735 : 0x90000000, 0x88000000, 0xf8000000, 0xa0000000,
736 : 0x98000004, 0xf0000004, 0xa8000004, 0xc8000004,
737 : 0xb0000004, 0xc0000004, 0x80000004, 0xe8000004,
738 : 0xd0000004, 0xd8000004, 0xb8000004, 0xe0000004,
739 : 0x90000004, 0x88000004, 0xf8000004, 0xa0000004,
740 : 0x18000006, 0x70000006, 0x28000006, 0x48000006,
741 : 0x30000006, 0x40000006, 0x00000006, 0x68000006,
742 : 0x50000006, 0x58000006, 0x38000006, 0x60000006,
743 : 0x10000006, 0x08000006, 0x78000006, 0x20000006,
744 : 0x98000002, 0xf0000002, 0xa8000002, 0xc8000002,
745 : 0xb0000002, 0xc0000002, 0x80000002, 0xe8000002,
746 : 0xd0000002, 0xd8000002, 0xb8000002, 0xe0000002,
747 : 0x90000002, 0x88000002, 0xf8000002, 0xa0000002,
748 : 0x98000006, 0xf0000006, 0xa8000006, 0xc8000006,
749 : 0xb0000006, 0xc0000006, 0x80000006, 0xe8000006,
750 : 0xd0000006, 0xd8000006, 0xb8000006, 0xe0000006,
751 : 0x90000006, 0x88000006, 0xf8000006, 0xa0000006,
752 : 0x98000001, 0xf0000001, 0xa8000001, 0xc8000001,
753 : 0xb0000001, 0xc0000001, 0x80000001, 0xe8000001,
754 : 0xd0000001, 0xd8000001, 0xb8000001, 0xe0000001,
755 : 0x90000001, 0x88000001, 0xf8000001, 0xa0000001,
756 : 0x98000003, 0xf0000003, 0xa8000003, 0xc8000003,
757 : 0xb0000003, 0xc0000003, 0x80000003, 0xe8000003,
758 : 0xd0000003, 0xd8000003, 0xb8000003, 0xe0000003,
759 : 0x90000003, 0x88000003, 0xf8000003, 0xa0000003,
760 : 0x18000005, 0x70000005, 0x28000005, 0x48000005,
761 : 0x30000005, 0x40000005, 0x00000005, 0x68000005,
762 : 0x50000005, 0x58000005, 0x38000005, 0x60000005,
763 : 0x10000005, 0x08000005, 0x78000005, 0x20000005,
764 : 0x18000000, 0x70000000, 0x28000000, 0x48000000,
765 : 0x30000000, 0x40000000, 0x00000000, 0x68000000,
766 : 0x50000000, 0x58000000, 0x38000000, 0x60000000,
767 : 0x10000000, 0x08000000, 0x78000000, 0x20000000,
768 : 0x18000007, 0x70000007, 0x28000007, 0x48000007,
769 : 0x30000007, 0x40000007, 0x00000007, 0x68000007,
770 : 0x50000007, 0x58000007, 0x38000007, 0x60000007,
771 : 0x10000007, 0x08000007, 0x78000007, 0x20000007,
772 : 0x18000001, 0x70000001, 0x28000001, 0x48000001,
773 : 0x30000001, 0x40000001, 0x00000001, 0x68000001,
774 : 0x50000001, 0x58000001, 0x38000001, 0x60000001,
775 : 0x10000001, 0x08000001, 0x78000001, 0x20000001,
776 : 0x18000002, 0x70000002, 0x28000002, 0x48000002,
777 : 0x30000002, 0x40000002, 0x00000002, 0x68000002,
778 : 0x50000002, 0x58000002, 0x38000002, 0x60000002,
779 : 0x10000002, 0x08000002, 0x78000002, 0x20000002,
780 : /* 3 */
781 : 0x00000648, 0x00000658, 0x00000660, 0x00000600,
782 : 0x00000618, 0x00000630, 0x00000638, 0x00000628,
783 : 0x00000620, 0x00000640, 0x00000670, 0x00000678,
784 : 0x00000608, 0x00000650, 0x00000610, 0x00000668,
785 : 0x00000348, 0x00000358, 0x00000360, 0x00000300,
786 : 0x00000318, 0x00000330, 0x00000338, 0x00000328,
787 : 0x00000320, 0x00000340, 0x00000370, 0x00000378,
788 : 0x00000308, 0x00000350, 0x00000310, 0x00000368,
789 : 0x000002c8, 0x000002d8, 0x000002e0, 0x00000280,
790 : 0x00000298, 0x000002b0, 0x000002b8, 0x000002a8,
791 : 0x000002a0, 0x000002c0, 0x000002f0, 0x000002f8,
792 : 0x00000288, 0x000002d0, 0x00000290, 0x000002e8,
793 : 0x00000148, 0x00000158, 0x00000160, 0x00000100,
794 : 0x00000118, 0x00000130, 0x00000138, 0x00000128,
795 : 0x00000120, 0x00000140, 0x00000170, 0x00000178,
796 : 0x00000108, 0x00000150, 0x00000110, 0x00000168,
797 : 0x000005c8, 0x000005d8, 0x000005e0, 0x00000580,
798 : 0x00000598, 0x000005b0, 0x000005b8, 0x000005a8,
799 : 0x000005a0, 0x000005c0, 0x000005f0, 0x000005f8,
800 : 0x00000588, 0x000005d0, 0x00000590, 0x000005e8,
801 : 0x00000048, 0x00000058, 0x00000060, 0x00000000,
802 : 0x00000018, 0x00000030, 0x00000038, 0x00000028,
803 : 0x00000020, 0x00000040, 0x00000070, 0x00000078,
804 : 0x00000008, 0x00000050, 0x00000010, 0x00000068,
805 : 0x000004c8, 0x000004d8, 0x000004e0, 0x00000480,
806 : 0x00000498, 0x000004b0, 0x000004b8, 0x000004a8,
807 : 0x000004a0, 0x000004c0, 0x000004f0, 0x000004f8,
808 : 0x00000488, 0x000004d0, 0x00000490, 0x000004e8,
809 : 0x000006c8, 0x000006d8, 0x000006e0, 0x00000680,
810 : 0x00000698, 0x000006b0, 0x000006b8, 0x000006a8,
811 : 0x000006a0, 0x000006c0, 0x000006f0, 0x000006f8,
812 : 0x00000688, 0x000006d0, 0x00000690, 0x000006e8,
813 : 0x000001c8, 0x000001d8, 0x000001e0, 0x00000180,
814 : 0x00000198, 0x000001b0, 0x000001b8, 0x000001a8,
815 : 0x000001a0, 0x000001c0, 0x000001f0, 0x000001f8,
816 : 0x00000188, 0x000001d0, 0x00000190, 0x000001e8,
817 : 0x00000748, 0x00000758, 0x00000760, 0x00000700,
818 : 0x00000718, 0x00000730, 0x00000738, 0x00000728,
819 : 0x00000720, 0x00000740, 0x00000770, 0x00000778,
820 : 0x00000708, 0x00000750, 0x00000710, 0x00000768,
821 : 0x000003c8, 0x000003d8, 0x000003e0, 0x00000380,
822 : 0x00000398, 0x000003b0, 0x000003b8, 0x000003a8,
823 : 0x000003a0, 0x000003c0, 0x000003f0, 0x000003f8,
824 : 0x00000388, 0x000003d0, 0x00000390, 0x000003e8,
825 : 0x00000548, 0x00000558, 0x00000560, 0x00000500,
826 : 0x00000518, 0x00000530, 0x00000538, 0x00000528,
827 : 0x00000520, 0x00000540, 0x00000570, 0x00000578,
828 : 0x00000508, 0x00000550, 0x00000510, 0x00000568,
829 : 0x000007c8, 0x000007d8, 0x000007e0, 0x00000780,
830 : 0x00000798, 0x000007b0, 0x000007b8, 0x000007a8,
831 : 0x000007a0, 0x000007c0, 0x000007f0, 0x000007f8,
832 : 0x00000788, 0x000007d0, 0x00000790, 0x000007e8,
833 : 0x00000248, 0x00000258, 0x00000260, 0x00000200,
834 : 0x00000218, 0x00000230, 0x00000238, 0x00000228,
835 : 0x00000220, 0x00000240, 0x00000270, 0x00000278,
836 : 0x00000208, 0x00000250, 0x00000210, 0x00000268,
837 : 0x000000c8, 0x000000d8, 0x000000e0, 0x00000080,
838 : 0x00000098, 0x000000b0, 0x000000b8, 0x000000a8,
839 : 0x000000a0, 0x000000c0, 0x000000f0, 0x000000f8,
840 : 0x00000088, 0x000000d0, 0x00000090, 0x000000e8,
841 : 0x00000448, 0x00000458, 0x00000460, 0x00000400,
842 : 0x00000418, 0x00000430, 0x00000438, 0x00000428,
843 : 0x00000420, 0x00000440, 0x00000470, 0x00000478,
844 : 0x00000408, 0x00000450, 0x00000410, 0x00000468,
845 : }
846 : };
847 :
848 : const struct gost28147_param gost28147_param_CryptoPro_A =
849 : {
850 : 1,
851 : {
852 : /* 0 */
853 : 0x0001c800, 0x0001b000, 0x00019800, 0x00019000,
854 : 0x0001c000, 0x0001d800, 0x00018800, 0x0001b800,
855 : 0x0001d000, 0x0001a000, 0x0001f000, 0x0001f800,
856 : 0x0001e000, 0x00018000, 0x0001e800, 0x0001a800,
857 : 0x0003c800, 0x0003b000, 0x00039800, 0x00039000,
858 : 0x0003c000, 0x0003d800, 0x00038800, 0x0003b800,
859 : 0x0003d000, 0x0003a000, 0x0003f000, 0x0003f800,
860 : 0x0003e000, 0x00038000, 0x0003e800, 0x0003a800,
861 : 0x00074800, 0x00073000, 0x00071800, 0x00071000,
862 : 0x00074000, 0x00075800, 0x00070800, 0x00073800,
863 : 0x00075000, 0x00072000, 0x00077000, 0x00077800,
864 : 0x00076000, 0x00070000, 0x00076800, 0x00072800,
865 : 0x0004c800, 0x0004b000, 0x00049800, 0x00049000,
866 : 0x0004c000, 0x0004d800, 0x00048800, 0x0004b800,
867 : 0x0004d000, 0x0004a000, 0x0004f000, 0x0004f800,
868 : 0x0004e000, 0x00048000, 0x0004e800, 0x0004a800,
869 : 0x00044800, 0x00043000, 0x00041800, 0x00041000,
870 : 0x00044000, 0x00045800, 0x00040800, 0x00043800,
871 : 0x00045000, 0x00042000, 0x00047000, 0x00047800,
872 : 0x00046000, 0x00040000, 0x00046800, 0x00042800,
873 : 0x00054800, 0x00053000, 0x00051800, 0x00051000,
874 : 0x00054000, 0x00055800, 0x00050800, 0x00053800,
875 : 0x00055000, 0x00052000, 0x00057000, 0x00057800,
876 : 0x00056000, 0x00050000, 0x00056800, 0x00052800,
877 : 0x0007c800, 0x0007b000, 0x00079800, 0x00079000,
878 : 0x0007c000, 0x0007d800, 0x00078800, 0x0007b800,
879 : 0x0007d000, 0x0007a000, 0x0007f000, 0x0007f800,
880 : 0x0007e000, 0x00078000, 0x0007e800, 0x0007a800,
881 : 0x00004800, 0x00003000, 0x00001800, 0x00001000,
882 : 0x00004000, 0x00005800, 0x00000800, 0x00003800,
883 : 0x00005000, 0x00002000, 0x00007000, 0x00007800,
884 : 0x00006000, 0x00000000, 0x00006800, 0x00002800,
885 : 0x0002c800, 0x0002b000, 0x00029800, 0x00029000,
886 : 0x0002c000, 0x0002d800, 0x00028800, 0x0002b800,
887 : 0x0002d000, 0x0002a000, 0x0002f000, 0x0002f800,
888 : 0x0002e000, 0x00028000, 0x0002e800, 0x0002a800,
889 : 0x00014800, 0x00013000, 0x00011800, 0x00011000,
890 : 0x00014000, 0x00015800, 0x00010800, 0x00013800,
891 : 0x00015000, 0x00012000, 0x00017000, 0x00017800,
892 : 0x00016000, 0x00010000, 0x00016800, 0x00012800,
893 : 0x00034800, 0x00033000, 0x00031800, 0x00031000,
894 : 0x00034000, 0x00035800, 0x00030800, 0x00033800,
895 : 0x00035000, 0x00032000, 0x00037000, 0x00037800,
896 : 0x00036000, 0x00030000, 0x00036800, 0x00032800,
897 : 0x00064800, 0x00063000, 0x00061800, 0x00061000,
898 : 0x00064000, 0x00065800, 0x00060800, 0x00063800,
899 : 0x00065000, 0x00062000, 0x00067000, 0x00067800,
900 : 0x00066000, 0x00060000, 0x00066800, 0x00062800,
901 : 0x0005c800, 0x0005b000, 0x00059800, 0x00059000,
902 : 0x0005c000, 0x0005d800, 0x00058800, 0x0005b800,
903 : 0x0005d000, 0x0005a000, 0x0005f000, 0x0005f800,
904 : 0x0005e000, 0x00058000, 0x0005e800, 0x0005a800,
905 : 0x00024800, 0x00023000, 0x00021800, 0x00021000,
906 : 0x00024000, 0x00025800, 0x00020800, 0x00023800,
907 : 0x00025000, 0x00022000, 0x00027000, 0x00027800,
908 : 0x00026000, 0x00020000, 0x00026800, 0x00022800,
909 : 0x0006c800, 0x0006b000, 0x00069800, 0x00069000,
910 : 0x0006c000, 0x0006d800, 0x00068800, 0x0006b800,
911 : 0x0006d000, 0x0006a000, 0x0006f000, 0x0006f800,
912 : 0x0006e000, 0x00068000, 0x0006e800, 0x0006a800,
913 : 0x0000c800, 0x0000b000, 0x00009800, 0x00009000,
914 : 0x0000c000, 0x0000d800, 0x00008800, 0x0000b800,
915 : 0x0000d000, 0x0000a000, 0x0000f000, 0x0000f800,
916 : 0x0000e000, 0x00008000, 0x0000e800, 0x0000a800,
917 : /* 1 */
918 : 0x07700000, 0x07200000, 0x07300000, 0x07100000,
919 : 0x07580000, 0x07180000, 0x07680000, 0x07400000,
920 : 0x07600000, 0x07780000, 0x07280000, 0x07500000,
921 : 0x07000000, 0x07380000, 0x07080000, 0x07480000,
922 : 0x03f00000, 0x03a00000, 0x03b00000, 0x03900000,
923 : 0x03d80000, 0x03980000, 0x03e80000, 0x03c00000,
924 : 0x03e00000, 0x03f80000, 0x03a80000, 0x03d00000,
925 : 0x03800000, 0x03b80000, 0x03880000, 0x03c80000,
926 : 0x05700000, 0x05200000, 0x05300000, 0x05100000,
927 : 0x05580000, 0x05180000, 0x05680000, 0x05400000,
928 : 0x05600000, 0x05780000, 0x05280000, 0x05500000,
929 : 0x05000000, 0x05380000, 0x05080000, 0x05480000,
930 : 0x06700000, 0x06200000, 0x06300000, 0x06100000,
931 : 0x06580000, 0x06180000, 0x06680000, 0x06400000,
932 : 0x06600000, 0x06780000, 0x06280000, 0x06500000,
933 : 0x06000000, 0x06380000, 0x06080000, 0x06480000,
934 : 0x06f00000, 0x06a00000, 0x06b00000, 0x06900000,
935 : 0x06d80000, 0x06980000, 0x06e80000, 0x06c00000,
936 : 0x06e00000, 0x06f80000, 0x06a80000, 0x06d00000,
937 : 0x06800000, 0x06b80000, 0x06880000, 0x06c80000,
938 : 0x00f00000, 0x00a00000, 0x00b00000, 0x00900000,
939 : 0x00d80000, 0x00980000, 0x00e80000, 0x00c00000,
940 : 0x00e00000, 0x00f80000, 0x00a80000, 0x00d00000,
941 : 0x00800000, 0x00b80000, 0x00880000, 0x00c80000,
942 : 0x01f00000, 0x01a00000, 0x01b00000, 0x01900000,
943 : 0x01d80000, 0x01980000, 0x01e80000, 0x01c00000,
944 : 0x01e00000, 0x01f80000, 0x01a80000, 0x01d00000,
945 : 0x01800000, 0x01b80000, 0x01880000, 0x01c80000,
946 : 0x04f00000, 0x04a00000, 0x04b00000, 0x04900000,
947 : 0x04d80000, 0x04980000, 0x04e80000, 0x04c00000,
948 : 0x04e00000, 0x04f80000, 0x04a80000, 0x04d00000,
949 : 0x04800000, 0x04b80000, 0x04880000, 0x04c80000,
950 : 0x00700000, 0x00200000, 0x00300000, 0x00100000,
951 : 0x00580000, 0x00180000, 0x00680000, 0x00400000,
952 : 0x00600000, 0x00780000, 0x00280000, 0x00500000,
953 : 0x00000000, 0x00380000, 0x00080000, 0x00480000,
954 : 0x01700000, 0x01200000, 0x01300000, 0x01100000,
955 : 0x01580000, 0x01180000, 0x01680000, 0x01400000,
956 : 0x01600000, 0x01780000, 0x01280000, 0x01500000,
957 : 0x01000000, 0x01380000, 0x01080000, 0x01480000,
958 : 0x05f00000, 0x05a00000, 0x05b00000, 0x05900000,
959 : 0x05d80000, 0x05980000, 0x05e80000, 0x05c00000,
960 : 0x05e00000, 0x05f80000, 0x05a80000, 0x05d00000,
961 : 0x05800000, 0x05b80000, 0x05880000, 0x05c80000,
962 : 0x02700000, 0x02200000, 0x02300000, 0x02100000,
963 : 0x02580000, 0x02180000, 0x02680000, 0x02400000,
964 : 0x02600000, 0x02780000, 0x02280000, 0x02500000,
965 : 0x02000000, 0x02380000, 0x02080000, 0x02480000,
966 : 0x07f00000, 0x07a00000, 0x07b00000, 0x07900000,
967 : 0x07d80000, 0x07980000, 0x07e80000, 0x07c00000,
968 : 0x07e00000, 0x07f80000, 0x07a80000, 0x07d00000,
969 : 0x07800000, 0x07b80000, 0x07880000, 0x07c80000,
970 : 0x04700000, 0x04200000, 0x04300000, 0x04100000,
971 : 0x04580000, 0x04180000, 0x04680000, 0x04400000,
972 : 0x04600000, 0x04780000, 0x04280000, 0x04500000,
973 : 0x04000000, 0x04380000, 0x04080000, 0x04480000,
974 : 0x02f00000, 0x02a00000, 0x02b00000, 0x02900000,
975 : 0x02d80000, 0x02980000, 0x02e80000, 0x02c00000,
976 : 0x02e00000, 0x02f80000, 0x02a80000, 0x02d00000,
977 : 0x02800000, 0x02b80000, 0x02880000, 0x02c80000,
978 : 0x03700000, 0x03200000, 0x03300000, 0x03100000,
979 : 0x03580000, 0x03180000, 0x03680000, 0x03400000,
980 : 0x03600000, 0x03780000, 0x03280000, 0x03500000,
981 : 0x03000000, 0x03380000, 0x03080000, 0x03480000,
982 : /* 2 */
983 : 0xd8000001, 0xa8000001, 0x88000001, 0xc8000001,
984 : 0xc0000001, 0xe8000001, 0xf8000001, 0x80000001,
985 : 0xf0000001, 0xa0000001, 0x90000001, 0x98000001,
986 : 0xe0000001, 0xb8000001, 0xd0000001, 0xb0000001,
987 : 0x58000005, 0x28000005, 0x08000005, 0x48000005,
988 : 0x40000005, 0x68000005, 0x78000005, 0x00000005,
989 : 0x70000005, 0x20000005, 0x10000005, 0x18000005,
990 : 0x60000005, 0x38000005, 0x50000005, 0x30000005,
991 : 0xd8000006, 0xa8000006, 0x88000006, 0xc8000006,
992 : 0xc0000006, 0xe8000006, 0xf8000006, 0x80000006,
993 : 0xf0000006, 0xa0000006, 0x90000006, 0x98000006,
994 : 0xe0000006, 0xb8000006, 0xd0000006, 0xb0000006,
995 : 0x58000006, 0x28000006, 0x08000006, 0x48000006,
996 : 0x40000006, 0x68000006, 0x78000006, 0x00000006,
997 : 0x70000006, 0x20000006, 0x10000006, 0x18000006,
998 : 0x60000006, 0x38000006, 0x50000006, 0x30000006,
999 : 0xd8000000, 0xa8000000, 0x88000000, 0xc8000000,
1000 : 0xc0000000, 0xe8000000, 0xf8000000, 0x80000000,
1001 : 0xf0000000, 0xa0000000, 0x90000000, 0x98000000,
1002 : 0xe0000000, 0xb8000000, 0xd0000000, 0xb0000000,
1003 : 0x58000001, 0x28000001, 0x08000001, 0x48000001,
1004 : 0x40000001, 0x68000001, 0x78000001, 0x00000001,
1005 : 0x70000001, 0x20000001, 0x10000001, 0x18000001,
1006 : 0x60000001, 0x38000001, 0x50000001, 0x30000001,
1007 : 0x58000000, 0x28000000, 0x08000000, 0x48000000,
1008 : 0x40000000, 0x68000000, 0x78000000, 0x00000000,
1009 : 0x70000000, 0x20000000, 0x10000000, 0x18000000,
1010 : 0x60000000, 0x38000000, 0x50000000, 0x30000000,
1011 : 0xd8000005, 0xa8000005, 0x88000005, 0xc8000005,
1012 : 0xc0000005, 0xe8000005, 0xf8000005, 0x80000005,
1013 : 0xf0000005, 0xa0000005, 0x90000005, 0x98000005,
1014 : 0xe0000005, 0xb8000005, 0xd0000005, 0xb0000005,
1015 : 0xd8000003, 0xa8000003, 0x88000003, 0xc8000003,
1016 : 0xc0000003, 0xe8000003, 0xf8000003, 0x80000003,
1017 : 0xf0000003, 0xa0000003, 0x90000003, 0x98000003,
1018 : 0xe0000003, 0xb8000003, 0xd0000003, 0xb0000003,
1019 : 0xd8000002, 0xa8000002, 0x88000002, 0xc8000002,
1020 : 0xc0000002, 0xe8000002, 0xf8000002, 0x80000002,
1021 : 0xf0000002, 0xa0000002, 0x90000002, 0x98000002,
1022 : 0xe0000002, 0xb8000002, 0xd0000002, 0xb0000002,
1023 : 0xd8000004, 0xa8000004, 0x88000004, 0xc8000004,
1024 : 0xc0000004, 0xe8000004, 0xf8000004, 0x80000004,
1025 : 0xf0000004, 0xa0000004, 0x90000004, 0x98000004,
1026 : 0xe0000004, 0xb8000004, 0xd0000004, 0xb0000004,
1027 : 0x58000002, 0x28000002, 0x08000002, 0x48000002,
1028 : 0x40000002, 0x68000002, 0x78000002, 0x00000002,
1029 : 0x70000002, 0x20000002, 0x10000002, 0x18000002,
1030 : 0x60000002, 0x38000002, 0x50000002, 0x30000002,
1031 : 0x58000004, 0x28000004, 0x08000004, 0x48000004,
1032 : 0x40000004, 0x68000004, 0x78000004, 0x00000004,
1033 : 0x70000004, 0x20000004, 0x10000004, 0x18000004,
1034 : 0x60000004, 0x38000004, 0x50000004, 0x30000004,
1035 : 0xd8000007, 0xa8000007, 0x88000007, 0xc8000007,
1036 : 0xc0000007, 0xe8000007, 0xf8000007, 0x80000007,
1037 : 0xf0000007, 0xa0000007, 0x90000007, 0x98000007,
1038 : 0xe0000007, 0xb8000007, 0xd0000007, 0xb0000007,
1039 : 0x58000007, 0x28000007, 0x08000007, 0x48000007,
1040 : 0x40000007, 0x68000007, 0x78000007, 0x00000007,
1041 : 0x70000007, 0x20000007, 0x10000007, 0x18000007,
1042 : 0x60000007, 0x38000007, 0x50000007, 0x30000007,
1043 : 0x58000003, 0x28000003, 0x08000003, 0x48000003,
1044 : 0x40000003, 0x68000003, 0x78000003, 0x00000003,
1045 : 0x70000003, 0x20000003, 0x10000003, 0x18000003,
1046 : 0x60000003, 0x38000003, 0x50000003, 0x30000003,
1047 : /* 3 */
1048 : 0x00000588, 0x000005e8, 0x00000590, 0x000005c8,
1049 : 0x000005b8, 0x000005d0, 0x000005b0, 0x00000580,
1050 : 0x000005c0, 0x000005e0, 0x000005a0, 0x000005a8,
1051 : 0x000005f8, 0x00000598, 0x000005d8, 0x000005f0,
1052 : 0x00000508, 0x00000568, 0x00000510, 0x00000548,
1053 : 0x00000538, 0x00000550, 0x00000530, 0x00000500,
1054 : 0x00000540, 0x00000560, 0x00000520, 0x00000528,
1055 : 0x00000578, 0x00000518, 0x00000558, 0x00000570,
1056 : 0x00000788, 0x000007e8, 0x00000790, 0x000007c8,
1057 : 0x000007b8, 0x000007d0, 0x000007b0, 0x00000780,
1058 : 0x000007c0, 0x000007e0, 0x000007a0, 0x000007a8,
1059 : 0x000007f8, 0x00000798, 0x000007d8, 0x000007f0,
1060 : 0x00000288, 0x000002e8, 0x00000290, 0x000002c8,
1061 : 0x000002b8, 0x000002d0, 0x000002b0, 0x00000280,
1062 : 0x000002c0, 0x000002e0, 0x000002a0, 0x000002a8,
1063 : 0x000002f8, 0x00000298, 0x000002d8, 0x000002f0,
1064 : 0x00000008, 0x00000068, 0x00000010, 0x00000048,
1065 : 0x00000038, 0x00000050, 0x00000030, 0x00000000,
1066 : 0x00000040, 0x00000060, 0x00000020, 0x00000028,
1067 : 0x00000078, 0x00000018, 0x00000058, 0x00000070,
1068 : 0x00000608, 0x00000668, 0x00000610, 0x00000648,
1069 : 0x00000638, 0x00000650, 0x00000630, 0x00000600,
1070 : 0x00000640, 0x00000660, 0x00000620, 0x00000628,
1071 : 0x00000678, 0x00000618, 0x00000658, 0x00000670,
1072 : 0x00000708, 0x00000768, 0x00000710, 0x00000748,
1073 : 0x00000738, 0x00000750, 0x00000730, 0x00000700,
1074 : 0x00000740, 0x00000760, 0x00000720, 0x00000728,
1075 : 0x00000778, 0x00000718, 0x00000758, 0x00000770,
1076 : 0x00000408, 0x00000468, 0x00000410, 0x00000448,
1077 : 0x00000438, 0x00000450, 0x00000430, 0x00000400,
1078 : 0x00000440, 0x00000460, 0x00000420, 0x00000428,
1079 : 0x00000478, 0x00000418, 0x00000458, 0x00000470,
1080 : 0x00000308, 0x00000368, 0x00000310, 0x00000348,
1081 : 0x00000338, 0x00000350, 0x00000330, 0x00000300,
1082 : 0x00000340, 0x00000360, 0x00000320, 0x00000328,
1083 : 0x00000378, 0x00000318, 0x00000358, 0x00000370,
1084 : 0x00000108, 0x00000168, 0x00000110, 0x00000148,
1085 : 0x00000138, 0x00000150, 0x00000130, 0x00000100,
1086 : 0x00000140, 0x00000160, 0x00000120, 0x00000128,
1087 : 0x00000178, 0x00000118, 0x00000158, 0x00000170,
1088 : 0x00000188, 0x000001e8, 0x00000190, 0x000001c8,
1089 : 0x000001b8, 0x000001d0, 0x000001b0, 0x00000180,
1090 : 0x000001c0, 0x000001e0, 0x000001a0, 0x000001a8,
1091 : 0x000001f8, 0x00000198, 0x000001d8, 0x000001f0,
1092 : 0x00000488, 0x000004e8, 0x00000490, 0x000004c8,
1093 : 0x000004b8, 0x000004d0, 0x000004b0, 0x00000480,
1094 : 0x000004c0, 0x000004e0, 0x000004a0, 0x000004a8,
1095 : 0x000004f8, 0x00000498, 0x000004d8, 0x000004f0,
1096 : 0x00000088, 0x000000e8, 0x00000090, 0x000000c8,
1097 : 0x000000b8, 0x000000d0, 0x000000b0, 0x00000080,
1098 : 0x000000c0, 0x000000e0, 0x000000a0, 0x000000a8,
1099 : 0x000000f8, 0x00000098, 0x000000d8, 0x000000f0,
1100 : 0x00000388, 0x000003e8, 0x00000390, 0x000003c8,
1101 : 0x000003b8, 0x000003d0, 0x000003b0, 0x00000380,
1102 : 0x000003c0, 0x000003e0, 0x000003a0, 0x000003a8,
1103 : 0x000003f8, 0x00000398, 0x000003d8, 0x000003f0,
1104 : 0x00000688, 0x000006e8, 0x00000690, 0x000006c8,
1105 : 0x000006b8, 0x000006d0, 0x000006b0, 0x00000680,
1106 : 0x000006c0, 0x000006e0, 0x000006a0, 0x000006a8,
1107 : 0x000006f8, 0x00000698, 0x000006d8, 0x000006f0,
1108 : 0x00000208, 0x00000268, 0x00000210, 0x00000248,
1109 : 0x00000238, 0x00000250, 0x00000230, 0x00000200,
1110 : 0x00000240, 0x00000260, 0x00000220, 0x00000228,
1111 : 0x00000278, 0x00000218, 0x00000258, 0x00000270,
1112 : }
1113 : };
1114 :
1115 : const struct gost28147_param gost28147_param_CryptoPro_B =
1116 : {
1117 : 1,
1118 : {
1119 : /* 0 */
1120 : 0x00004000, 0x00002000, 0x00005800, 0x00000800,
1121 : 0x00001800, 0x00002800, 0x00000000, 0x00004800,
1122 : 0x00001000, 0x00007000, 0x00005000, 0x00006000,
1123 : 0x00006800, 0x00003000, 0x00003800, 0x00007800,
1124 : 0x0000c000, 0x0000a000, 0x0000d800, 0x00008800,
1125 : 0x00009800, 0x0000a800, 0x00008000, 0x0000c800,
1126 : 0x00009000, 0x0000f000, 0x0000d000, 0x0000e000,
1127 : 0x0000e800, 0x0000b000, 0x0000b800, 0x0000f800,
1128 : 0x00014000, 0x00012000, 0x00015800, 0x00010800,
1129 : 0x00011800, 0x00012800, 0x00010000, 0x00014800,
1130 : 0x00011000, 0x00017000, 0x00015000, 0x00016000,
1131 : 0x00016800, 0x00013000, 0x00013800, 0x00017800,
1132 : 0x00054000, 0x00052000, 0x00055800, 0x00050800,
1133 : 0x00051800, 0x00052800, 0x00050000, 0x00054800,
1134 : 0x00051000, 0x00057000, 0x00055000, 0x00056000,
1135 : 0x00056800, 0x00053000, 0x00053800, 0x00057800,
1136 : 0x00024000, 0x00022000, 0x00025800, 0x00020800,
1137 : 0x00021800, 0x00022800, 0x00020000, 0x00024800,
1138 : 0x00021000, 0x00027000, 0x00025000, 0x00026000,
1139 : 0x00026800, 0x00023000, 0x00023800, 0x00027800,
1140 : 0x0006c000, 0x0006a000, 0x0006d800, 0x00068800,
1141 : 0x00069800, 0x0006a800, 0x00068000, 0x0006c800,
1142 : 0x00069000, 0x0006f000, 0x0006d000, 0x0006e000,
1143 : 0x0006e800, 0x0006b000, 0x0006b800, 0x0006f800,
1144 : 0x0002c000, 0x0002a000, 0x0002d800, 0x00028800,
1145 : 0x00029800, 0x0002a800, 0x00028000, 0x0002c800,
1146 : 0x00029000, 0x0002f000, 0x0002d000, 0x0002e000,
1147 : 0x0002e800, 0x0002b000, 0x0002b800, 0x0002f800,
1148 : 0x00064000, 0x00062000, 0x00065800, 0x00060800,
1149 : 0x00061800, 0x00062800, 0x00060000, 0x00064800,
1150 : 0x00061000, 0x00067000, 0x00065000, 0x00066000,
1151 : 0x00066800, 0x00063000, 0x00063800, 0x00067800,
1152 : 0x0004c000, 0x0004a000, 0x0004d800, 0x00048800,
1153 : 0x00049800, 0x0004a800, 0x00048000, 0x0004c800,
1154 : 0x00049000, 0x0004f000, 0x0004d000, 0x0004e000,
1155 : 0x0004e800, 0x0004b000, 0x0004b800, 0x0004f800,
1156 : 0x0003c000, 0x0003a000, 0x0003d800, 0x00038800,
1157 : 0x00039800, 0x0003a800, 0x00038000, 0x0003c800,
1158 : 0x00039000, 0x0003f000, 0x0003d000, 0x0003e000,
1159 : 0x0003e800, 0x0003b000, 0x0003b800, 0x0003f800,
1160 : 0x0001c000, 0x0001a000, 0x0001d800, 0x00018800,
1161 : 0x00019800, 0x0001a800, 0x00018000, 0x0001c800,
1162 : 0x00019000, 0x0001f000, 0x0001d000, 0x0001e000,
1163 : 0x0001e800, 0x0001b000, 0x0001b800, 0x0001f800,
1164 : 0x0007c000, 0x0007a000, 0x0007d800, 0x00078800,
1165 : 0x00079800, 0x0007a800, 0x00078000, 0x0007c800,
1166 : 0x00079000, 0x0007f000, 0x0007d000, 0x0007e000,
1167 : 0x0007e800, 0x0007b000, 0x0007b800, 0x0007f800,
1168 : 0x0005c000, 0x0005a000, 0x0005d800, 0x00058800,
1169 : 0x00059800, 0x0005a800, 0x00058000, 0x0005c800,
1170 : 0x00059000, 0x0005f000, 0x0005d000, 0x0005e000,
1171 : 0x0005e800, 0x0005b000, 0x0005b800, 0x0005f800,
1172 : 0x00044000, 0x00042000, 0x00045800, 0x00040800,
1173 : 0x00041800, 0x00042800, 0x00040000, 0x00044800,
1174 : 0x00041000, 0x00047000, 0x00045000, 0x00046000,
1175 : 0x00046800, 0x00043000, 0x00043800, 0x00047800,
1176 : 0x00034000, 0x00032000, 0x00035800, 0x00030800,
1177 : 0x00031800, 0x00032800, 0x00030000, 0x00034800,
1178 : 0x00031000, 0x00037000, 0x00035000, 0x00036000,
1179 : 0x00036800, 0x00033000, 0x00033800, 0x00037800,
1180 : 0x00074000, 0x00072000, 0x00075800, 0x00070800,
1181 : 0x00071800, 0x00072800, 0x00070000, 0x00074800,
1182 : 0x00071000, 0x00077000, 0x00075000, 0x00076000,
1183 : 0x00076800, 0x00073000, 0x00073800, 0x00077800,
1184 : /* 1 */
1185 : 0x03f00000, 0x03e00000, 0x03800000, 0x03d00000,
1186 : 0x03c80000, 0x03900000, 0x03e80000, 0x03d80000,
1187 : 0x03b80000, 0x03a80000, 0x03c00000, 0x03f80000,
1188 : 0x03980000, 0x03b00000, 0x03880000, 0x03a00000,
1189 : 0x02f00000, 0x02e00000, 0x02800000, 0x02d00000,
1190 : 0x02c80000, 0x02900000, 0x02e80000, 0x02d80000,
1191 : 0x02b80000, 0x02a80000, 0x02c00000, 0x02f80000,
1192 : 0x02980000, 0x02b00000, 0x02880000, 0x02a00000,
1193 : 0x00700000, 0x00600000, 0x00000000, 0x00500000,
1194 : 0x00480000, 0x00100000, 0x00680000, 0x00580000,
1195 : 0x00380000, 0x00280000, 0x00400000, 0x00780000,
1196 : 0x00180000, 0x00300000, 0x00080000, 0x00200000,
1197 : 0x06f00000, 0x06e00000, 0x06800000, 0x06d00000,
1198 : 0x06c80000, 0x06900000, 0x06e80000, 0x06d80000,
1199 : 0x06b80000, 0x06a80000, 0x06c00000, 0x06f80000,
1200 : 0x06980000, 0x06b00000, 0x06880000, 0x06a00000,
1201 : 0x05f00000, 0x05e00000, 0x05800000, 0x05d00000,
1202 : 0x05c80000, 0x05900000, 0x05e80000, 0x05d80000,
1203 : 0x05b80000, 0x05a80000, 0x05c00000, 0x05f80000,
1204 : 0x05980000, 0x05b00000, 0x05880000, 0x05a00000,
1205 : 0x03700000, 0x03600000, 0x03000000, 0x03500000,
1206 : 0x03480000, 0x03100000, 0x03680000, 0x03580000,
1207 : 0x03380000, 0x03280000, 0x03400000, 0x03780000,
1208 : 0x03180000, 0x03300000, 0x03080000, 0x03200000,
1209 : 0x00f00000, 0x00e00000, 0x00800000, 0x00d00000,
1210 : 0x00c80000, 0x00900000, 0x00e80000, 0x00d80000,
1211 : 0x00b80000, 0x00a80000, 0x00c00000, 0x00f80000,
1212 : 0x00980000, 0x00b00000, 0x00880000, 0x00a00000,
1213 : 0x01700000, 0x01600000, 0x01000000, 0x01500000,
1214 : 0x01480000, 0x01100000, 0x01680000, 0x01580000,
1215 : 0x01380000, 0x01280000, 0x01400000, 0x01780000,
1216 : 0x01180000, 0x01300000, 0x01080000, 0x01200000,
1217 : 0x01f00000, 0x01e00000, 0x01800000, 0x01d00000,
1218 : 0x01c80000, 0x01900000, 0x01e80000, 0x01d80000,
1219 : 0x01b80000, 0x01a80000, 0x01c00000, 0x01f80000,
1220 : 0x01980000, 0x01b00000, 0x01880000, 0x01a00000,
1221 : 0x05700000, 0x05600000, 0x05000000, 0x05500000,
1222 : 0x05480000, 0x05100000, 0x05680000, 0x05580000,
1223 : 0x05380000, 0x05280000, 0x05400000, 0x05780000,
1224 : 0x05180000, 0x05300000, 0x05080000, 0x05200000,
1225 : 0x06700000, 0x06600000, 0x06000000, 0x06500000,
1226 : 0x06480000, 0x06100000, 0x06680000, 0x06580000,
1227 : 0x06380000, 0x06280000, 0x06400000, 0x06780000,
1228 : 0x06180000, 0x06300000, 0x06080000, 0x06200000,
1229 : 0x07f00000, 0x07e00000, 0x07800000, 0x07d00000,
1230 : 0x07c80000, 0x07900000, 0x07e80000, 0x07d80000,
1231 : 0x07b80000, 0x07a80000, 0x07c00000, 0x07f80000,
1232 : 0x07980000, 0x07b00000, 0x07880000, 0x07a00000,
1233 : 0x02700000, 0x02600000, 0x02000000, 0x02500000,
1234 : 0x02480000, 0x02100000, 0x02680000, 0x02580000,
1235 : 0x02380000, 0x02280000, 0x02400000, 0x02780000,
1236 : 0x02180000, 0x02300000, 0x02080000, 0x02200000,
1237 : 0x07700000, 0x07600000, 0x07000000, 0x07500000,
1238 : 0x07480000, 0x07100000, 0x07680000, 0x07580000,
1239 : 0x07380000, 0x07280000, 0x07400000, 0x07780000,
1240 : 0x07180000, 0x07300000, 0x07080000, 0x07200000,
1241 : 0x04f00000, 0x04e00000, 0x04800000, 0x04d00000,
1242 : 0x04c80000, 0x04900000, 0x04e80000, 0x04d80000,
1243 : 0x04b80000, 0x04a80000, 0x04c00000, 0x04f80000,
1244 : 0x04980000, 0x04b00000, 0x04880000, 0x04a00000,
1245 : 0x04700000, 0x04600000, 0x04000000, 0x04500000,
1246 : 0x04480000, 0x04100000, 0x04680000, 0x04580000,
1247 : 0x04380000, 0x04280000, 0x04400000, 0x04780000,
1248 : 0x04180000, 0x04300000, 0x04080000, 0x04200000,
1249 : /* 2 */
1250 : 0x10000004, 0x38000004, 0x60000004, 0x78000004,
1251 : 0x48000004, 0x28000004, 0x50000004, 0x58000004,
1252 : 0x08000004, 0x20000004, 0x00000004, 0x68000004,
1253 : 0x30000004, 0x40000004, 0x70000004, 0x18000004,
1254 : 0x90000001, 0xb8000001, 0xe0000001, 0xf8000001,
1255 : 0xc8000001, 0xa8000001, 0xd0000001, 0xd8000001,
1256 : 0x88000001, 0xa0000001, 0x80000001, 0xe8000001,
1257 : 0xb0000001, 0xc0000001, 0xf0000001, 0x98000001,
1258 : 0x10000001, 0x38000001, 0x60000001, 0x78000001,
1259 : 0x48000001, 0x28000001, 0x50000001, 0x58000001,
1260 : 0x08000001, 0x20000001, 0x00000001, 0x68000001,
1261 : 0x30000001, 0x40000001, 0x70000001, 0x18000001,
1262 : 0x10000003, 0x38000003, 0x60000003, 0x78000003,
1263 : 0x48000003, 0x28000003, 0x50000003, 0x58000003,
1264 : 0x08000003, 0x20000003, 0x00000003, 0x68000003,
1265 : 0x30000003, 0x40000003, 0x70000003, 0x18000003,
1266 : 0x10000002, 0x38000002, 0x60000002, 0x78000002,
1267 : 0x48000002, 0x28000002, 0x50000002, 0x58000002,
1268 : 0x08000002, 0x20000002, 0x00000002, 0x68000002,
1269 : 0x30000002, 0x40000002, 0x70000002, 0x18000002,
1270 : 0x90000006, 0xb8000006, 0xe0000006, 0xf8000006,
1271 : 0xc8000006, 0xa8000006, 0xd0000006, 0xd8000006,
1272 : 0x88000006, 0xa0000006, 0x80000006, 0xe8000006,
1273 : 0xb0000006, 0xc0000006, 0xf0000006, 0x98000006,
1274 : 0x10000007, 0x38000007, 0x60000007, 0x78000007,
1275 : 0x48000007, 0x28000007, 0x50000007, 0x58000007,
1276 : 0x08000007, 0x20000007, 0x00000007, 0x68000007,
1277 : 0x30000007, 0x40000007, 0x70000007, 0x18000007,
1278 : 0x90000005, 0xb8000005, 0xe0000005, 0xf8000005,
1279 : 0xc8000005, 0xa8000005, 0xd0000005, 0xd8000005,
1280 : 0x88000005, 0xa0000005, 0x80000005, 0xe8000005,
1281 : 0xb0000005, 0xc0000005, 0xf0000005, 0x98000005,
1282 : 0x10000006, 0x38000006, 0x60000006, 0x78000006,
1283 : 0x48000006, 0x28000006, 0x50000006, 0x58000006,
1284 : 0x08000006, 0x20000006, 0x00000006, 0x68000006,
1285 : 0x30000006, 0x40000006, 0x70000006, 0x18000006,
1286 : 0x90000000, 0xb8000000, 0xe0000000, 0xf8000000,
1287 : 0xc8000000, 0xa8000000, 0xd0000000, 0xd8000000,
1288 : 0x88000000, 0xa0000000, 0x80000000, 0xe8000000,
1289 : 0xb0000000, 0xc0000000, 0xf0000000, 0x98000000,
1290 : 0x90000003, 0xb8000003, 0xe0000003, 0xf8000003,
1291 : 0xc8000003, 0xa8000003, 0xd0000003, 0xd8000003,
1292 : 0x88000003, 0xa0000003, 0x80000003, 0xe8000003,
1293 : 0xb0000003, 0xc0000003, 0xf0000003, 0x98000003,
1294 : 0x90000007, 0xb8000007, 0xe0000007, 0xf8000007,
1295 : 0xc8000007, 0xa8000007, 0xd0000007, 0xd8000007,
1296 : 0x88000007, 0xa0000007, 0x80000007, 0xe8000007,
1297 : 0xb0000007, 0xc0000007, 0xf0000007, 0x98000007,
1298 : 0x10000005, 0x38000005, 0x60000005, 0x78000005,
1299 : 0x48000005, 0x28000005, 0x50000005, 0x58000005,
1300 : 0x08000005, 0x20000005, 0x00000005, 0x68000005,
1301 : 0x30000005, 0x40000005, 0x70000005, 0x18000005,
1302 : 0x10000000, 0x38000000, 0x60000000, 0x78000000,
1303 : 0x48000000, 0x28000000, 0x50000000, 0x58000000,
1304 : 0x08000000, 0x20000000, 0x00000000, 0x68000000,
1305 : 0x30000000, 0x40000000, 0x70000000, 0x18000000,
1306 : 0x90000004, 0xb8000004, 0xe0000004, 0xf8000004,
1307 : 0xc8000004, 0xa8000004, 0xd0000004, 0xd8000004,
1308 : 0x88000004, 0xa0000004, 0x80000004, 0xe8000004,
1309 : 0xb0000004, 0xc0000004, 0xf0000004, 0x98000004,
1310 : 0x90000002, 0xb8000002, 0xe0000002, 0xf8000002,
1311 : 0xc8000002, 0xa8000002, 0xd0000002, 0xd8000002,
1312 : 0x88000002, 0xa0000002, 0x80000002, 0xe8000002,
1313 : 0xb0000002, 0xc0000002, 0xf0000002, 0x98000002,
1314 : /* 3 */
1315 : 0x00000028, 0x00000010, 0x00000050, 0x00000058,
1316 : 0x00000048, 0x00000008, 0x00000060, 0x00000018,
1317 : 0x00000038, 0x00000020, 0x00000068, 0x00000000,
1318 : 0x00000030, 0x00000078, 0x00000040, 0x00000070,
1319 : 0x00000228, 0x00000210, 0x00000250, 0x00000258,
1320 : 0x00000248, 0x00000208, 0x00000260, 0x00000218,
1321 : 0x00000238, 0x00000220, 0x00000268, 0x00000200,
1322 : 0x00000230, 0x00000278, 0x00000240, 0x00000270,
1323 : 0x000005a8, 0x00000590, 0x000005d0, 0x000005d8,
1324 : 0x000005c8, 0x00000588, 0x000005e0, 0x00000598,
1325 : 0x000005b8, 0x000005a0, 0x000005e8, 0x00000580,
1326 : 0x000005b0, 0x000005f8, 0x000005c0, 0x000005f0,
1327 : 0x00000728, 0x00000710, 0x00000750, 0x00000758,
1328 : 0x00000748, 0x00000708, 0x00000760, 0x00000718,
1329 : 0x00000738, 0x00000720, 0x00000768, 0x00000700,
1330 : 0x00000730, 0x00000778, 0x00000740, 0x00000770,
1331 : 0x00000428, 0x00000410, 0x00000450, 0x00000458,
1332 : 0x00000448, 0x00000408, 0x00000460, 0x00000418,
1333 : 0x00000438, 0x00000420, 0x00000468, 0x00000400,
1334 : 0x00000430, 0x00000478, 0x00000440, 0x00000470,
1335 : 0x000001a8, 0x00000190, 0x000001d0, 0x000001d8,
1336 : 0x000001c8, 0x00000188, 0x000001e0, 0x00000198,
1337 : 0x000001b8, 0x000001a0, 0x000001e8, 0x00000180,
1338 : 0x000001b0, 0x000001f8, 0x000001c0, 0x000001f0,
1339 : 0x000003a8, 0x00000390, 0x000003d0, 0x000003d8,
1340 : 0x000003c8, 0x00000388, 0x000003e0, 0x00000398,
1341 : 0x000003b8, 0x000003a0, 0x000003e8, 0x00000380,
1342 : 0x000003b0, 0x000003f8, 0x000003c0, 0x000003f0,
1343 : 0x000000a8, 0x00000090, 0x000000d0, 0x000000d8,
1344 : 0x000000c8, 0x00000088, 0x000000e0, 0x00000098,
1345 : 0x000000b8, 0x000000a0, 0x000000e8, 0x00000080,
1346 : 0x000000b0, 0x000000f8, 0x000000c0, 0x000000f0,
1347 : 0x00000528, 0x00000510, 0x00000550, 0x00000558,
1348 : 0x00000548, 0x00000508, 0x00000560, 0x00000518,
1349 : 0x00000538, 0x00000520, 0x00000568, 0x00000500,
1350 : 0x00000530, 0x00000578, 0x00000540, 0x00000570,
1351 : 0x00000128, 0x00000110, 0x00000150, 0x00000158,
1352 : 0x00000148, 0x00000108, 0x00000160, 0x00000118,
1353 : 0x00000138, 0x00000120, 0x00000168, 0x00000100,
1354 : 0x00000130, 0x00000178, 0x00000140, 0x00000170,
1355 : 0x000004a8, 0x00000490, 0x000004d0, 0x000004d8,
1356 : 0x000004c8, 0x00000488, 0x000004e0, 0x00000498,
1357 : 0x000004b8, 0x000004a0, 0x000004e8, 0x00000480,
1358 : 0x000004b0, 0x000004f8, 0x000004c0, 0x000004f0,
1359 : 0x00000328, 0x00000310, 0x00000350, 0x00000358,
1360 : 0x00000348, 0x00000308, 0x00000360, 0x00000318,
1361 : 0x00000338, 0x00000320, 0x00000368, 0x00000300,
1362 : 0x00000330, 0x00000378, 0x00000340, 0x00000370,
1363 : 0x000007a8, 0x00000790, 0x000007d0, 0x000007d8,
1364 : 0x000007c8, 0x00000788, 0x000007e0, 0x00000798,
1365 : 0x000007b8, 0x000007a0, 0x000007e8, 0x00000780,
1366 : 0x000007b0, 0x000007f8, 0x000007c0, 0x000007f0,
1367 : 0x000006a8, 0x00000690, 0x000006d0, 0x000006d8,
1368 : 0x000006c8, 0x00000688, 0x000006e0, 0x00000698,
1369 : 0x000006b8, 0x000006a0, 0x000006e8, 0x00000680,
1370 : 0x000006b0, 0x000006f8, 0x000006c0, 0x000006f0,
1371 : 0x000002a8, 0x00000290, 0x000002d0, 0x000002d8,
1372 : 0x000002c8, 0x00000288, 0x000002e0, 0x00000298,
1373 : 0x000002b8, 0x000002a0, 0x000002e8, 0x00000280,
1374 : 0x000002b0, 0x000002f8, 0x000002c0, 0x000002f0,
1375 : 0x00000628, 0x00000610, 0x00000650, 0x00000658,
1376 : 0x00000648, 0x00000608, 0x00000660, 0x00000618,
1377 : 0x00000638, 0x00000620, 0x00000668, 0x00000600,
1378 : 0x00000630, 0x00000678, 0x00000640, 0x00000670,
1379 : }
1380 : };
1381 :
1382 : const struct gost28147_param gost28147_param_CryptoPro_C =
1383 : {
1384 : 1,
1385 : {
1386 : /* 0 */
1387 : 0x00000800, 0x00005800, 0x00006000, 0x00001000,
1388 : 0x00004800, 0x00006800, 0x00000000, 0x00007800,
1389 : 0x00002000, 0x00002800, 0x00004000, 0x00007000,
1390 : 0x00005000, 0x00003800, 0x00003000, 0x00001800,
1391 : 0x00008800, 0x0000d800, 0x0000e000, 0x00009000,
1392 : 0x0000c800, 0x0000e800, 0x00008000, 0x0000f800,
1393 : 0x0000a000, 0x0000a800, 0x0000c000, 0x0000f000,
1394 : 0x0000d000, 0x0000b800, 0x0000b000, 0x00009800,
1395 : 0x00038800, 0x0003d800, 0x0003e000, 0x00039000,
1396 : 0x0003c800, 0x0003e800, 0x00038000, 0x0003f800,
1397 : 0x0003a000, 0x0003a800, 0x0003c000, 0x0003f000,
1398 : 0x0003d000, 0x0003b800, 0x0003b000, 0x00039800,
1399 : 0x00068800, 0x0006d800, 0x0006e000, 0x00069000,
1400 : 0x0006c800, 0x0006e800, 0x00068000, 0x0006f800,
1401 : 0x0006a000, 0x0006a800, 0x0006c000, 0x0006f000,
1402 : 0x0006d000, 0x0006b800, 0x0006b000, 0x00069800,
1403 : 0x00058800, 0x0005d800, 0x0005e000, 0x00059000,
1404 : 0x0005c800, 0x0005e800, 0x00058000, 0x0005f800,
1405 : 0x0005a000, 0x0005a800, 0x0005c000, 0x0005f000,
1406 : 0x0005d000, 0x0005b800, 0x0005b000, 0x00059800,
1407 : 0x00020800, 0x00025800, 0x00026000, 0x00021000,
1408 : 0x00024800, 0x00026800, 0x00020000, 0x00027800,
1409 : 0x00022000, 0x00022800, 0x00024000, 0x00027000,
1410 : 0x00025000, 0x00023800, 0x00023000, 0x00021800,
1411 : 0x00028800, 0x0002d800, 0x0002e000, 0x00029000,
1412 : 0x0002c800, 0x0002e800, 0x00028000, 0x0002f800,
1413 : 0x0002a000, 0x0002a800, 0x0002c000, 0x0002f000,
1414 : 0x0002d000, 0x0002b800, 0x0002b000, 0x00029800,
1415 : 0x00010800, 0x00015800, 0x00016000, 0x00011000,
1416 : 0x00014800, 0x00016800, 0x00010000, 0x00017800,
1417 : 0x00012000, 0x00012800, 0x00014000, 0x00017000,
1418 : 0x00015000, 0x00013800, 0x00013000, 0x00011800,
1419 : 0x00040800, 0x00045800, 0x00046000, 0x00041000,
1420 : 0x00044800, 0x00046800, 0x00040000, 0x00047800,
1421 : 0x00042000, 0x00042800, 0x00044000, 0x00047000,
1422 : 0x00045000, 0x00043800, 0x00043000, 0x00041800,
1423 : 0x00070800, 0x00075800, 0x00076000, 0x00071000,
1424 : 0x00074800, 0x00076800, 0x00070000, 0x00077800,
1425 : 0x00072000, 0x00072800, 0x00074000, 0x00077000,
1426 : 0x00075000, 0x00073800, 0x00073000, 0x00071800,
1427 : 0x00078800, 0x0007d800, 0x0007e000, 0x00079000,
1428 : 0x0007c800, 0x0007e800, 0x00078000, 0x0007f800,
1429 : 0x0007a000, 0x0007a800, 0x0007c000, 0x0007f000,
1430 : 0x0007d000, 0x0007b800, 0x0007b000, 0x00079800,
1431 : 0x00060800, 0x00065800, 0x00066000, 0x00061000,
1432 : 0x00064800, 0x00066800, 0x00060000, 0x00067800,
1433 : 0x00062000, 0x00062800, 0x00064000, 0x00067000,
1434 : 0x00065000, 0x00063800, 0x00063000, 0x00061800,
1435 : 0x00048800, 0x0004d800, 0x0004e000, 0x00049000,
1436 : 0x0004c800, 0x0004e800, 0x00048000, 0x0004f800,
1437 : 0x0004a000, 0x0004a800, 0x0004c000, 0x0004f000,
1438 : 0x0004d000, 0x0004b800, 0x0004b000, 0x00049800,
1439 : 0x00050800, 0x00055800, 0x00056000, 0x00051000,
1440 : 0x00054800, 0x00056800, 0x00050000, 0x00057800,
1441 : 0x00052000, 0x00052800, 0x00054000, 0x00057000,
1442 : 0x00055000, 0x00053800, 0x00053000, 0x00051800,
1443 : 0x00030800, 0x00035800, 0x00036000, 0x00031000,
1444 : 0x00034800, 0x00036800, 0x00030000, 0x00037800,
1445 : 0x00032000, 0x00032800, 0x00034000, 0x00037000,
1446 : 0x00035000, 0x00033800, 0x00033000, 0x00031800,
1447 : 0x00018800, 0x0001d800, 0x0001e000, 0x00019000,
1448 : 0x0001c800, 0x0001e800, 0x00018000, 0x0001f800,
1449 : 0x0001a000, 0x0001a800, 0x0001c000, 0x0001f000,
1450 : 0x0001d000, 0x0001b800, 0x0001b000, 0x00019800,
1451 : /* 1 */
1452 : 0x01c00000, 0x01900000, 0x01a80000, 0x01800000,
1453 : 0x01a00000, 0x01c80000, 0x01f80000, 0x01d00000,
1454 : 0x01980000, 0x01b80000, 0x01e00000, 0x01e80000,
1455 : 0x01b00000, 0x01f00000, 0x01880000, 0x01d80000,
1456 : 0x03400000, 0x03100000, 0x03280000, 0x03000000,
1457 : 0x03200000, 0x03480000, 0x03780000, 0x03500000,
1458 : 0x03180000, 0x03380000, 0x03600000, 0x03680000,
1459 : 0x03300000, 0x03700000, 0x03080000, 0x03580000,
1460 : 0x00400000, 0x00100000, 0x00280000, 0x00000000,
1461 : 0x00200000, 0x00480000, 0x00780000, 0x00500000,
1462 : 0x00180000, 0x00380000, 0x00600000, 0x00680000,
1463 : 0x00300000, 0x00700000, 0x00080000, 0x00580000,
1464 : 0x00c00000, 0x00900000, 0x00a80000, 0x00800000,
1465 : 0x00a00000, 0x00c80000, 0x00f80000, 0x00d00000,
1466 : 0x00980000, 0x00b80000, 0x00e00000, 0x00e80000,
1467 : 0x00b00000, 0x00f00000, 0x00880000, 0x00d80000,
1468 : 0x02c00000, 0x02900000, 0x02a80000, 0x02800000,
1469 : 0x02a00000, 0x02c80000, 0x02f80000, 0x02d00000,
1470 : 0x02980000, 0x02b80000, 0x02e00000, 0x02e80000,
1471 : 0x02b00000, 0x02f00000, 0x02880000, 0x02d80000,
1472 : 0x06c00000, 0x06900000, 0x06a80000, 0x06800000,
1473 : 0x06a00000, 0x06c80000, 0x06f80000, 0x06d00000,
1474 : 0x06980000, 0x06b80000, 0x06e00000, 0x06e80000,
1475 : 0x06b00000, 0x06f00000, 0x06880000, 0x06d80000,
1476 : 0x05400000, 0x05100000, 0x05280000, 0x05000000,
1477 : 0x05200000, 0x05480000, 0x05780000, 0x05500000,
1478 : 0x05180000, 0x05380000, 0x05600000, 0x05680000,
1479 : 0x05300000, 0x05700000, 0x05080000, 0x05580000,
1480 : 0x04400000, 0x04100000, 0x04280000, 0x04000000,
1481 : 0x04200000, 0x04480000, 0x04780000, 0x04500000,
1482 : 0x04180000, 0x04380000, 0x04600000, 0x04680000,
1483 : 0x04300000, 0x04700000, 0x04080000, 0x04580000,
1484 : 0x05c00000, 0x05900000, 0x05a80000, 0x05800000,
1485 : 0x05a00000, 0x05c80000, 0x05f80000, 0x05d00000,
1486 : 0x05980000, 0x05b80000, 0x05e00000, 0x05e80000,
1487 : 0x05b00000, 0x05f00000, 0x05880000, 0x05d80000,
1488 : 0x01400000, 0x01100000, 0x01280000, 0x01000000,
1489 : 0x01200000, 0x01480000, 0x01780000, 0x01500000,
1490 : 0x01180000, 0x01380000, 0x01600000, 0x01680000,
1491 : 0x01300000, 0x01700000, 0x01080000, 0x01580000,
1492 : 0x04c00000, 0x04900000, 0x04a80000, 0x04800000,
1493 : 0x04a00000, 0x04c80000, 0x04f80000, 0x04d00000,
1494 : 0x04980000, 0x04b80000, 0x04e00000, 0x04e80000,
1495 : 0x04b00000, 0x04f00000, 0x04880000, 0x04d80000,
1496 : 0x03c00000, 0x03900000, 0x03a80000, 0x03800000,
1497 : 0x03a00000, 0x03c80000, 0x03f80000, 0x03d00000,
1498 : 0x03980000, 0x03b80000, 0x03e00000, 0x03e80000,
1499 : 0x03b00000, 0x03f00000, 0x03880000, 0x03d80000,
1500 : 0x07400000, 0x07100000, 0x07280000, 0x07000000,
1501 : 0x07200000, 0x07480000, 0x07780000, 0x07500000,
1502 : 0x07180000, 0x07380000, 0x07600000, 0x07680000,
1503 : 0x07300000, 0x07700000, 0x07080000, 0x07580000,
1504 : 0x07c00000, 0x07900000, 0x07a80000, 0x07800000,
1505 : 0x07a00000, 0x07c80000, 0x07f80000, 0x07d00000,
1506 : 0x07980000, 0x07b80000, 0x07e00000, 0x07e80000,
1507 : 0x07b00000, 0x07f00000, 0x07880000, 0x07d80000,
1508 : 0x06400000, 0x06100000, 0x06280000, 0x06000000,
1509 : 0x06200000, 0x06480000, 0x06780000, 0x06500000,
1510 : 0x06180000, 0x06380000, 0x06600000, 0x06680000,
1511 : 0x06300000, 0x06700000, 0x06080000, 0x06580000,
1512 : 0x02400000, 0x02100000, 0x02280000, 0x02000000,
1513 : 0x02200000, 0x02480000, 0x02780000, 0x02500000,
1514 : 0x02180000, 0x02380000, 0x02600000, 0x02680000,
1515 : 0x02300000, 0x02700000, 0x02080000, 0x02580000,
1516 : /* 2 */
1517 : 0x40000006, 0x68000006, 0x58000006, 0x00000006,
1518 : 0x20000006, 0x28000006, 0x08000006, 0x10000006,
1519 : 0x48000006, 0x18000006, 0x60000006, 0x70000006,
1520 : 0x30000006, 0x78000006, 0x50000006, 0x38000006,
1521 : 0xc0000004, 0xe8000004, 0xd8000004, 0x80000004,
1522 : 0xa0000004, 0xa8000004, 0x88000004, 0x90000004,
1523 : 0xc8000004, 0x98000004, 0xe0000004, 0xf0000004,
1524 : 0xb0000004, 0xf8000004, 0xd0000004, 0xb8000004,
1525 : 0xc0000005, 0xe8000005, 0xd8000005, 0x80000005,
1526 : 0xa0000005, 0xa8000005, 0x88000005, 0x90000005,
1527 : 0xc8000005, 0x98000005, 0xe0000005, 0xf0000005,
1528 : 0xb0000005, 0xf8000005, 0xd0000005, 0xb8000005,
1529 : 0xc0000000, 0xe8000000, 0xd8000000, 0x80000000,
1530 : 0xa0000000, 0xa8000000, 0x88000000, 0x90000000,
1531 : 0xc8000000, 0x98000000, 0xe0000000, 0xf0000000,
1532 : 0xb0000000, 0xf8000000, 0xd0000000, 0xb8000000,
1533 : 0x40000004, 0x68000004, 0x58000004, 0x00000004,
1534 : 0x20000004, 0x28000004, 0x08000004, 0x10000004,
1535 : 0x48000004, 0x18000004, 0x60000004, 0x70000004,
1536 : 0x30000004, 0x78000004, 0x50000004, 0x38000004,
1537 : 0x40000007, 0x68000007, 0x58000007, 0x00000007,
1538 : 0x20000007, 0x28000007, 0x08000007, 0x10000007,
1539 : 0x48000007, 0x18000007, 0x60000007, 0x70000007,
1540 : 0x30000007, 0x78000007, 0x50000007, 0x38000007,
1541 : 0x40000001, 0x68000001, 0x58000001, 0x00000001,
1542 : 0x20000001, 0x28000001, 0x08000001, 0x10000001,
1543 : 0x48000001, 0x18000001, 0x60000001, 0x70000001,
1544 : 0x30000001, 0x78000001, 0x50000001, 0x38000001,
1545 : 0x40000002, 0x68000002, 0x58000002, 0x00000002,
1546 : 0x20000002, 0x28000002, 0x08000002, 0x10000002,
1547 : 0x48000002, 0x18000002, 0x60000002, 0x70000002,
1548 : 0x30000002, 0x78000002, 0x50000002, 0x38000002,
1549 : 0xc0000003, 0xe8000003, 0xd8000003, 0x80000003,
1550 : 0xa0000003, 0xa8000003, 0x88000003, 0x90000003,
1551 : 0xc8000003, 0x98000003, 0xe0000003, 0xf0000003,
1552 : 0xb0000003, 0xf8000003, 0xd0000003, 0xb8000003,
1553 : 0xc0000001, 0xe8000001, 0xd8000001, 0x80000001,
1554 : 0xa0000001, 0xa8000001, 0x88000001, 0x90000001,
1555 : 0xc8000001, 0x98000001, 0xe0000001, 0xf0000001,
1556 : 0xb0000001, 0xf8000001, 0xd0000001, 0xb8000001,
1557 : 0x40000003, 0x68000003, 0x58000003, 0x00000003,
1558 : 0x20000003, 0x28000003, 0x08000003, 0x10000003,
1559 : 0x48000003, 0x18000003, 0x60000003, 0x70000003,
1560 : 0x30000003, 0x78000003, 0x50000003, 0x38000003,
1561 : 0xc0000002, 0xe8000002, 0xd8000002, 0x80000002,
1562 : 0xa0000002, 0xa8000002, 0x88000002, 0x90000002,
1563 : 0xc8000002, 0x98000002, 0xe0000002, 0xf0000002,
1564 : 0xb0000002, 0xf8000002, 0xd0000002, 0xb8000002,
1565 : 0x40000005, 0x68000005, 0x58000005, 0x00000005,
1566 : 0x20000005, 0x28000005, 0x08000005, 0x10000005,
1567 : 0x48000005, 0x18000005, 0x60000005, 0x70000005,
1568 : 0x30000005, 0x78000005, 0x50000005, 0x38000005,
1569 : 0x40000000, 0x68000000, 0x58000000, 0x00000000,
1570 : 0x20000000, 0x28000000, 0x08000000, 0x10000000,
1571 : 0x48000000, 0x18000000, 0x60000000, 0x70000000,
1572 : 0x30000000, 0x78000000, 0x50000000, 0x38000000,
1573 : 0xc0000007, 0xe8000007, 0xd8000007, 0x80000007,
1574 : 0xa0000007, 0xa8000007, 0x88000007, 0x90000007,
1575 : 0xc8000007, 0x98000007, 0xe0000007, 0xf0000007,
1576 : 0xb0000007, 0xf8000007, 0xd0000007, 0xb8000007,
1577 : 0xc0000006, 0xe8000006, 0xd8000006, 0x80000006,
1578 : 0xa0000006, 0xa8000006, 0x88000006, 0x90000006,
1579 : 0xc8000006, 0x98000006, 0xe0000006, 0xf0000006,
1580 : 0xb0000006, 0xf8000006, 0xd0000006, 0xb8000006,
1581 : /* 3 */
1582 : 0x000003d0, 0x000003c8, 0x000003b0, 0x000003c0,
1583 : 0x000003e8, 0x000003f0, 0x00000390, 0x00000380,
1584 : 0x000003f8, 0x00000398, 0x000003a8, 0x000003d8,
1585 : 0x000003a0, 0x00000388, 0x000003e0, 0x000003b8,
1586 : 0x00000250, 0x00000248, 0x00000230, 0x00000240,
1587 : 0x00000268, 0x00000270, 0x00000210, 0x00000200,
1588 : 0x00000278, 0x00000218, 0x00000228, 0x00000258,
1589 : 0x00000220, 0x00000208, 0x00000260, 0x00000238,
1590 : 0x00000050, 0x00000048, 0x00000030, 0x00000040,
1591 : 0x00000068, 0x00000070, 0x00000010, 0x00000000,
1592 : 0x00000078, 0x00000018, 0x00000028, 0x00000058,
1593 : 0x00000020, 0x00000008, 0x00000060, 0x00000038,
1594 : 0x000002d0, 0x000002c8, 0x000002b0, 0x000002c0,
1595 : 0x000002e8, 0x000002f0, 0x00000290, 0x00000280,
1596 : 0x000002f8, 0x00000298, 0x000002a8, 0x000002d8,
1597 : 0x000002a0, 0x00000288, 0x000002e0, 0x000002b8,
1598 : 0x00000550, 0x00000548, 0x00000530, 0x00000540,
1599 : 0x00000568, 0x00000570, 0x00000510, 0x00000500,
1600 : 0x00000578, 0x00000518, 0x00000528, 0x00000558,
1601 : 0x00000520, 0x00000508, 0x00000560, 0x00000538,
1602 : 0x00000150, 0x00000148, 0x00000130, 0x00000140,
1603 : 0x00000168, 0x00000170, 0x00000110, 0x00000100,
1604 : 0x00000178, 0x00000118, 0x00000128, 0x00000158,
1605 : 0x00000120, 0x00000108, 0x00000160, 0x00000138,
1606 : 0x000007d0, 0x000007c8, 0x000007b0, 0x000007c0,
1607 : 0x000007e8, 0x000007f0, 0x00000790, 0x00000780,
1608 : 0x000007f8, 0x00000798, 0x000007a8, 0x000007d8,
1609 : 0x000007a0, 0x00000788, 0x000007e0, 0x000007b8,
1610 : 0x00000750, 0x00000748, 0x00000730, 0x00000740,
1611 : 0x00000768, 0x00000770, 0x00000710, 0x00000700,
1612 : 0x00000778, 0x00000718, 0x00000728, 0x00000758,
1613 : 0x00000720, 0x00000708, 0x00000760, 0x00000738,
1614 : 0x00000650, 0x00000648, 0x00000630, 0x00000640,
1615 : 0x00000668, 0x00000670, 0x00000610, 0x00000600,
1616 : 0x00000678, 0x00000618, 0x00000628, 0x00000658,
1617 : 0x00000620, 0x00000608, 0x00000660, 0x00000638,
1618 : 0x00000350, 0x00000348, 0x00000330, 0x00000340,
1619 : 0x00000368, 0x00000370, 0x00000310, 0x00000300,
1620 : 0x00000378, 0x00000318, 0x00000328, 0x00000358,
1621 : 0x00000320, 0x00000308, 0x00000360, 0x00000338,
1622 : 0x000000d0, 0x000000c8, 0x000000b0, 0x000000c0,
1623 : 0x000000e8, 0x000000f0, 0x00000090, 0x00000080,
1624 : 0x000000f8, 0x00000098, 0x000000a8, 0x000000d8,
1625 : 0x000000a0, 0x00000088, 0x000000e0, 0x000000b8,
1626 : 0x000005d0, 0x000005c8, 0x000005b0, 0x000005c0,
1627 : 0x000005e8, 0x000005f0, 0x00000590, 0x00000580,
1628 : 0x000005f8, 0x00000598, 0x000005a8, 0x000005d8,
1629 : 0x000005a0, 0x00000588, 0x000005e0, 0x000005b8,
1630 : 0x000006d0, 0x000006c8, 0x000006b0, 0x000006c0,
1631 : 0x000006e8, 0x000006f0, 0x00000690, 0x00000680,
1632 : 0x000006f8, 0x00000698, 0x000006a8, 0x000006d8,
1633 : 0x000006a0, 0x00000688, 0x000006e0, 0x000006b8,
1634 : 0x000004d0, 0x000004c8, 0x000004b0, 0x000004c0,
1635 : 0x000004e8, 0x000004f0, 0x00000490, 0x00000480,
1636 : 0x000004f8, 0x00000498, 0x000004a8, 0x000004d8,
1637 : 0x000004a0, 0x00000488, 0x000004e0, 0x000004b8,
1638 : 0x000001d0, 0x000001c8, 0x000001b0, 0x000001c0,
1639 : 0x000001e8, 0x000001f0, 0x00000190, 0x00000180,
1640 : 0x000001f8, 0x00000198, 0x000001a8, 0x000001d8,
1641 : 0x000001a0, 0x00000188, 0x000001e0, 0x000001b8,
1642 : 0x00000450, 0x00000448, 0x00000430, 0x00000440,
1643 : 0x00000468, 0x00000470, 0x00000410, 0x00000400,
1644 : 0x00000478, 0x00000418, 0x00000428, 0x00000458,
1645 : 0x00000420, 0x00000408, 0x00000460, 0x00000438,
1646 : }
1647 : };
1648 :
1649 : const struct gost28147_param gost28147_param_CryptoPro_D =
1650 : {
1651 : 1,
1652 : {
1653 : /* 0 */
1654 : 0x0005f800, 0x0005e000, 0x00059000, 0x0005d000,
1655 : 0x0005b000, 0x0005a000, 0x0005a800, 0x00058000,
1656 : 0x0005b800, 0x0005c800, 0x0005f000, 0x0005e800,
1657 : 0x00058800, 0x0005d800, 0x0005c000, 0x00059800,
1658 : 0x00037800, 0x00036000, 0x00031000, 0x00035000,
1659 : 0x00033000, 0x00032000, 0x00032800, 0x00030000,
1660 : 0x00033800, 0x00034800, 0x00037000, 0x00036800,
1661 : 0x00030800, 0x00035800, 0x00034000, 0x00031800,
1662 : 0x0001f800, 0x0001e000, 0x00019000, 0x0001d000,
1663 : 0x0001b000, 0x0001a000, 0x0001a800, 0x00018000,
1664 : 0x0001b800, 0x0001c800, 0x0001f000, 0x0001e800,
1665 : 0x00018800, 0x0001d800, 0x0001c000, 0x00019800,
1666 : 0x00027800, 0x00026000, 0x00021000, 0x00025000,
1667 : 0x00023000, 0x00022000, 0x00022800, 0x00020000,
1668 : 0x00023800, 0x00024800, 0x00027000, 0x00026800,
1669 : 0x00020800, 0x00025800, 0x00024000, 0x00021800,
1670 : 0x00067800, 0x00066000, 0x00061000, 0x00065000,
1671 : 0x00063000, 0x00062000, 0x00062800, 0x00060000,
1672 : 0x00063800, 0x00064800, 0x00067000, 0x00066800,
1673 : 0x00060800, 0x00065800, 0x00064000, 0x00061800,
1674 : 0x0007f800, 0x0007e000, 0x00079000, 0x0007d000,
1675 : 0x0007b000, 0x0007a000, 0x0007a800, 0x00078000,
1676 : 0x0007b800, 0x0007c800, 0x0007f000, 0x0007e800,
1677 : 0x00078800, 0x0007d800, 0x0007c000, 0x00079800,
1678 : 0x00077800, 0x00076000, 0x00071000, 0x00075000,
1679 : 0x00073000, 0x00072000, 0x00072800, 0x00070000,
1680 : 0x00073800, 0x00074800, 0x00077000, 0x00076800,
1681 : 0x00070800, 0x00075800, 0x00074000, 0x00071800,
1682 : 0x00017800, 0x00016000, 0x00011000, 0x00015000,
1683 : 0x00013000, 0x00012000, 0x00012800, 0x00010000,
1684 : 0x00013800, 0x00014800, 0x00017000, 0x00016800,
1685 : 0x00010800, 0x00015800, 0x00014000, 0x00011800,
1686 : 0x0003f800, 0x0003e000, 0x00039000, 0x0003d000,
1687 : 0x0003b000, 0x0003a000, 0x0003a800, 0x00038000,
1688 : 0x0003b800, 0x0003c800, 0x0003f000, 0x0003e800,
1689 : 0x00038800, 0x0003d800, 0x0003c000, 0x00039800,
1690 : 0x0006f800, 0x0006e000, 0x00069000, 0x0006d000,
1691 : 0x0006b000, 0x0006a000, 0x0006a800, 0x00068000,
1692 : 0x0006b800, 0x0006c800, 0x0006f000, 0x0006e800,
1693 : 0x00068800, 0x0006d800, 0x0006c000, 0x00069800,
1694 : 0x00047800, 0x00046000, 0x00041000, 0x00045000,
1695 : 0x00043000, 0x00042000, 0x00042800, 0x00040000,
1696 : 0x00043800, 0x00044800, 0x00047000, 0x00046800,
1697 : 0x00040800, 0x00045800, 0x00044000, 0x00041800,
1698 : 0x00007800, 0x00006000, 0x00001000, 0x00005000,
1699 : 0x00003000, 0x00002000, 0x00002800, 0x00000000,
1700 : 0x00003800, 0x00004800, 0x00007000, 0x00006800,
1701 : 0x00000800, 0x00005800, 0x00004000, 0x00001800,
1702 : 0x0002f800, 0x0002e000, 0x00029000, 0x0002d000,
1703 : 0x0002b000, 0x0002a000, 0x0002a800, 0x00028000,
1704 : 0x0002b800, 0x0002c800, 0x0002f000, 0x0002e800,
1705 : 0x00028800, 0x0002d800, 0x0002c000, 0x00029800,
1706 : 0x00057800, 0x00056000, 0x00051000, 0x00055000,
1707 : 0x00053000, 0x00052000, 0x00052800, 0x00050000,
1708 : 0x00053800, 0x00054800, 0x00057000, 0x00056800,
1709 : 0x00050800, 0x00055800, 0x00054000, 0x00051800,
1710 : 0x0004f800, 0x0004e000, 0x00049000, 0x0004d000,
1711 : 0x0004b000, 0x0004a000, 0x0004a800, 0x00048000,
1712 : 0x0004b800, 0x0004c800, 0x0004f000, 0x0004e800,
1713 : 0x00048800, 0x0004d800, 0x0004c000, 0x00049800,
1714 : 0x0000f800, 0x0000e000, 0x00009000, 0x0000d000,
1715 : 0x0000b000, 0x0000a000, 0x0000a800, 0x00008000,
1716 : 0x0000b800, 0x0000c800, 0x0000f000, 0x0000e800,
1717 : 0x00008800, 0x0000d800, 0x0000c000, 0x00009800,
1718 : /* 1 */
1719 : 0x00880000, 0x00e00000, 0x00d80000, 0x00800000,
1720 : 0x00f80000, 0x00f00000, 0x00b00000, 0x00a80000,
1721 : 0x00d00000, 0x00e80000, 0x00a00000, 0x00c00000,
1722 : 0x00c80000, 0x00980000, 0x00b80000, 0x00900000,
1723 : 0x02880000, 0x02e00000, 0x02d80000, 0x02800000,
1724 : 0x02f80000, 0x02f00000, 0x02b00000, 0x02a80000,
1725 : 0x02d00000, 0x02e80000, 0x02a00000, 0x02c00000,
1726 : 0x02c80000, 0x02980000, 0x02b80000, 0x02900000,
1727 : 0x07080000, 0x07600000, 0x07580000, 0x07000000,
1728 : 0x07780000, 0x07700000, 0x07300000, 0x07280000,
1729 : 0x07500000, 0x07680000, 0x07200000, 0x07400000,
1730 : 0x07480000, 0x07180000, 0x07380000, 0x07100000,
1731 : 0x06080000, 0x06600000, 0x06580000, 0x06000000,
1732 : 0x06780000, 0x06700000, 0x06300000, 0x06280000,
1733 : 0x06500000, 0x06680000, 0x06200000, 0x06400000,
1734 : 0x06480000, 0x06180000, 0x06380000, 0x06100000,
1735 : 0x05080000, 0x05600000, 0x05580000, 0x05000000,
1736 : 0x05780000, 0x05700000, 0x05300000, 0x05280000,
1737 : 0x05500000, 0x05680000, 0x05200000, 0x05400000,
1738 : 0x05480000, 0x05180000, 0x05380000, 0x05100000,
1739 : 0x03880000, 0x03e00000, 0x03d80000, 0x03800000,
1740 : 0x03f80000, 0x03f00000, 0x03b00000, 0x03a80000,
1741 : 0x03d00000, 0x03e80000, 0x03a00000, 0x03c00000,
1742 : 0x03c80000, 0x03980000, 0x03b80000, 0x03900000,
1743 : 0x00080000, 0x00600000, 0x00580000, 0x00000000,
1744 : 0x00780000, 0x00700000, 0x00300000, 0x00280000,
1745 : 0x00500000, 0x00680000, 0x00200000, 0x00400000,
1746 : 0x00480000, 0x00180000, 0x00380000, 0x00100000,
1747 : 0x06880000, 0x06e00000, 0x06d80000, 0x06800000,
1748 : 0x06f80000, 0x06f00000, 0x06b00000, 0x06a80000,
1749 : 0x06d00000, 0x06e80000, 0x06a00000, 0x06c00000,
1750 : 0x06c80000, 0x06980000, 0x06b80000, 0x06900000,
1751 : 0x03080000, 0x03600000, 0x03580000, 0x03000000,
1752 : 0x03780000, 0x03700000, 0x03300000, 0x03280000,
1753 : 0x03500000, 0x03680000, 0x03200000, 0x03400000,
1754 : 0x03480000, 0x03180000, 0x03380000, 0x03100000,
1755 : 0x01080000, 0x01600000, 0x01580000, 0x01000000,
1756 : 0x01780000, 0x01700000, 0x01300000, 0x01280000,
1757 : 0x01500000, 0x01680000, 0x01200000, 0x01400000,
1758 : 0x01480000, 0x01180000, 0x01380000, 0x01100000,
1759 : 0x05880000, 0x05e00000, 0x05d80000, 0x05800000,
1760 : 0x05f80000, 0x05f00000, 0x05b00000, 0x05a80000,
1761 : 0x05d00000, 0x05e80000, 0x05a00000, 0x05c00000,
1762 : 0x05c80000, 0x05980000, 0x05b80000, 0x05900000,
1763 : 0x02080000, 0x02600000, 0x02580000, 0x02000000,
1764 : 0x02780000, 0x02700000, 0x02300000, 0x02280000,
1765 : 0x02500000, 0x02680000, 0x02200000, 0x02400000,
1766 : 0x02480000, 0x02180000, 0x02380000, 0x02100000,
1767 : 0x04880000, 0x04e00000, 0x04d80000, 0x04800000,
1768 : 0x04f80000, 0x04f00000, 0x04b00000, 0x04a80000,
1769 : 0x04d00000, 0x04e80000, 0x04a00000, 0x04c00000,
1770 : 0x04c80000, 0x04980000, 0x04b80000, 0x04900000,
1771 : 0x01880000, 0x01e00000, 0x01d80000, 0x01800000,
1772 : 0x01f80000, 0x01f00000, 0x01b00000, 0x01a80000,
1773 : 0x01d00000, 0x01e80000, 0x01a00000, 0x01c00000,
1774 : 0x01c80000, 0x01980000, 0x01b80000, 0x01900000,
1775 : 0x07880000, 0x07e00000, 0x07d80000, 0x07800000,
1776 : 0x07f80000, 0x07f00000, 0x07b00000, 0x07a80000,
1777 : 0x07d00000, 0x07e80000, 0x07a00000, 0x07c00000,
1778 : 0x07c80000, 0x07980000, 0x07b80000, 0x07900000,
1779 : 0x04080000, 0x04600000, 0x04580000, 0x04000000,
1780 : 0x04780000, 0x04700000, 0x04300000, 0x04280000,
1781 : 0x04500000, 0x04680000, 0x04200000, 0x04400000,
1782 : 0x04480000, 0x04180000, 0x04380000, 0x04100000,
1783 : /* 2 */
1784 : 0x00000004, 0x60000004, 0x40000004, 0x48000004,
1785 : 0x68000004, 0x10000004, 0x50000004, 0x58000004,
1786 : 0x38000004, 0x18000004, 0x30000004, 0x28000004,
1787 : 0x20000004, 0x70000004, 0x78000004, 0x08000004,
1788 : 0x00000000, 0x60000000, 0x40000000, 0x48000000,
1789 : 0x68000000, 0x10000000, 0x50000000, 0x58000000,
1790 : 0x38000000, 0x18000000, 0x30000000, 0x28000000,
1791 : 0x20000000, 0x70000000, 0x78000000, 0x08000000,
1792 : 0x80000007, 0xe0000007, 0xc0000007, 0xc8000007,
1793 : 0xe8000007, 0x90000007, 0xd0000007, 0xd8000007,
1794 : 0xb8000007, 0x98000007, 0xb0000007, 0xa8000007,
1795 : 0xa0000007, 0xf0000007, 0xf8000007, 0x88000007,
1796 : 0x80000001, 0xe0000001, 0xc0000001, 0xc8000001,
1797 : 0xe8000001, 0x90000001, 0xd0000001, 0xd8000001,
1798 : 0xb8000001, 0x98000001, 0xb0000001, 0xa8000001,
1799 : 0xa0000001, 0xf0000001, 0xf8000001, 0x88000001,
1800 : 0x00000001, 0x60000001, 0x40000001, 0x48000001,
1801 : 0x68000001, 0x10000001, 0x50000001, 0x58000001,
1802 : 0x38000001, 0x18000001, 0x30000001, 0x28000001,
1803 : 0x20000001, 0x70000001, 0x78000001, 0x08000001,
1804 : 0x80000002, 0xe0000002, 0xc0000002, 0xc8000002,
1805 : 0xe8000002, 0x90000002, 0xd0000002, 0xd8000002,
1806 : 0xb8000002, 0x98000002, 0xb0000002, 0xa8000002,
1807 : 0xa0000002, 0xf0000002, 0xf8000002, 0x88000002,
1808 : 0x00000007, 0x60000007, 0x40000007, 0x48000007,
1809 : 0x68000007, 0x10000007, 0x50000007, 0x58000007,
1810 : 0x38000007, 0x18000007, 0x30000007, 0x28000007,
1811 : 0x20000007, 0x70000007, 0x78000007, 0x08000007,
1812 : 0x80000005, 0xe0000005, 0xc0000005, 0xc8000005,
1813 : 0xe8000005, 0x90000005, 0xd0000005, 0xd8000005,
1814 : 0xb8000005, 0x98000005, 0xb0000005, 0xa8000005,
1815 : 0xa0000005, 0xf0000005, 0xf8000005, 0x88000005,
1816 : 0x80000000, 0xe0000000, 0xc0000000, 0xc8000000,
1817 : 0xe8000000, 0x90000000, 0xd0000000, 0xd8000000,
1818 : 0xb8000000, 0x98000000, 0xb0000000, 0xa8000000,
1819 : 0xa0000000, 0xf0000000, 0xf8000000, 0x88000000,
1820 : 0x00000005, 0x60000005, 0x40000005, 0x48000005,
1821 : 0x68000005, 0x10000005, 0x50000005, 0x58000005,
1822 : 0x38000005, 0x18000005, 0x30000005, 0x28000005,
1823 : 0x20000005, 0x70000005, 0x78000005, 0x08000005,
1824 : 0x00000002, 0x60000002, 0x40000002, 0x48000002,
1825 : 0x68000002, 0x10000002, 0x50000002, 0x58000002,
1826 : 0x38000002, 0x18000002, 0x30000002, 0x28000002,
1827 : 0x20000002, 0x70000002, 0x78000002, 0x08000002,
1828 : 0x80000003, 0xe0000003, 0xc0000003, 0xc8000003,
1829 : 0xe8000003, 0x90000003, 0xd0000003, 0xd8000003,
1830 : 0xb8000003, 0x98000003, 0xb0000003, 0xa8000003,
1831 : 0xa0000003, 0xf0000003, 0xf8000003, 0x88000003,
1832 : 0x00000006, 0x60000006, 0x40000006, 0x48000006,
1833 : 0x68000006, 0x10000006, 0x50000006, 0x58000006,
1834 : 0x38000006, 0x18000006, 0x30000006, 0x28000006,
1835 : 0x20000006, 0x70000006, 0x78000006, 0x08000006,
1836 : 0x80000004, 0xe0000004, 0xc0000004, 0xc8000004,
1837 : 0xe8000004, 0x90000004, 0xd0000004, 0xd8000004,
1838 : 0xb8000004, 0x98000004, 0xb0000004, 0xa8000004,
1839 : 0xa0000004, 0xf0000004, 0xf8000004, 0x88000004,
1840 : 0x80000006, 0xe0000006, 0xc0000006, 0xc8000006,
1841 : 0xe8000006, 0x90000006, 0xd0000006, 0xd8000006,
1842 : 0xb8000006, 0x98000006, 0xb0000006, 0xa8000006,
1843 : 0xa0000006, 0xf0000006, 0xf8000006, 0x88000006,
1844 : 0x00000003, 0x60000003, 0x40000003, 0x48000003,
1845 : 0x68000003, 0x10000003, 0x50000003, 0x58000003,
1846 : 0x38000003, 0x18000003, 0x30000003, 0x28000003,
1847 : 0x20000003, 0x70000003, 0x78000003, 0x08000003,
1848 : /* 3 */
1849 : 0x00000098, 0x00000080, 0x000000b0, 0x000000f8,
1850 : 0x00000088, 0x000000f0, 0x000000c8, 0x00000090,
1851 : 0x000000e8, 0x000000c0, 0x000000e0, 0x000000a0,
1852 : 0x000000d8, 0x000000d0, 0x000000a8, 0x000000b8,
1853 : 0x00000518, 0x00000500, 0x00000530, 0x00000578,
1854 : 0x00000508, 0x00000570, 0x00000548, 0x00000510,
1855 : 0x00000568, 0x00000540, 0x00000560, 0x00000520,
1856 : 0x00000558, 0x00000550, 0x00000528, 0x00000538,
1857 : 0x00000318, 0x00000300, 0x00000330, 0x00000378,
1858 : 0x00000308, 0x00000370, 0x00000348, 0x00000310,
1859 : 0x00000368, 0x00000340, 0x00000360, 0x00000320,
1860 : 0x00000358, 0x00000350, 0x00000328, 0x00000338,
1861 : 0x00000418, 0x00000400, 0x00000430, 0x00000478,
1862 : 0x00000408, 0x00000470, 0x00000448, 0x00000410,
1863 : 0x00000468, 0x00000440, 0x00000460, 0x00000420,
1864 : 0x00000458, 0x00000450, 0x00000428, 0x00000438,
1865 : 0x00000798, 0x00000780, 0x000007b0, 0x000007f8,
1866 : 0x00000788, 0x000007f0, 0x000007c8, 0x00000790,
1867 : 0x000007e8, 0x000007c0, 0x000007e0, 0x000007a0,
1868 : 0x000007d8, 0x000007d0, 0x000007a8, 0x000007b8,
1869 : 0x00000598, 0x00000580, 0x000005b0, 0x000005f8,
1870 : 0x00000588, 0x000005f0, 0x000005c8, 0x00000590,
1871 : 0x000005e8, 0x000005c0, 0x000005e0, 0x000005a0,
1872 : 0x000005d8, 0x000005d0, 0x000005a8, 0x000005b8,
1873 : 0x00000018, 0x00000000, 0x00000030, 0x00000078,
1874 : 0x00000008, 0x00000070, 0x00000048, 0x00000010,
1875 : 0x00000068, 0x00000040, 0x00000060, 0x00000020,
1876 : 0x00000058, 0x00000050, 0x00000028, 0x00000038,
1877 : 0x00000218, 0x00000200, 0x00000230, 0x00000278,
1878 : 0x00000208, 0x00000270, 0x00000248, 0x00000210,
1879 : 0x00000268, 0x00000240, 0x00000260, 0x00000220,
1880 : 0x00000258, 0x00000250, 0x00000228, 0x00000238,
1881 : 0x00000618, 0x00000600, 0x00000630, 0x00000678,
1882 : 0x00000608, 0x00000670, 0x00000648, 0x00000610,
1883 : 0x00000668, 0x00000640, 0x00000660, 0x00000620,
1884 : 0x00000658, 0x00000650, 0x00000628, 0x00000638,
1885 : 0x00000198, 0x00000180, 0x000001b0, 0x000001f8,
1886 : 0x00000188, 0x000001f0, 0x000001c8, 0x00000190,
1887 : 0x000001e8, 0x000001c0, 0x000001e0, 0x000001a0,
1888 : 0x000001d8, 0x000001d0, 0x000001a8, 0x000001b8,
1889 : 0x00000298, 0x00000280, 0x000002b0, 0x000002f8,
1890 : 0x00000288, 0x000002f0, 0x000002c8, 0x00000290,
1891 : 0x000002e8, 0x000002c0, 0x000002e0, 0x000002a0,
1892 : 0x000002d8, 0x000002d0, 0x000002a8, 0x000002b8,
1893 : 0x00000498, 0x00000480, 0x000004b0, 0x000004f8,
1894 : 0x00000488, 0x000004f0, 0x000004c8, 0x00000490,
1895 : 0x000004e8, 0x000004c0, 0x000004e0, 0x000004a0,
1896 : 0x000004d8, 0x000004d0, 0x000004a8, 0x000004b8,
1897 : 0x00000398, 0x00000380, 0x000003b0, 0x000003f8,
1898 : 0x00000388, 0x000003f0, 0x000003c8, 0x00000390,
1899 : 0x000003e8, 0x000003c0, 0x000003e0, 0x000003a0,
1900 : 0x000003d8, 0x000003d0, 0x000003a8, 0x000003b8,
1901 : 0x00000698, 0x00000680, 0x000006b0, 0x000006f8,
1902 : 0x00000688, 0x000006f0, 0x000006c8, 0x00000690,
1903 : 0x000006e8, 0x000006c0, 0x000006e0, 0x000006a0,
1904 : 0x000006d8, 0x000006d0, 0x000006a8, 0x000006b8,
1905 : 0x00000118, 0x00000100, 0x00000130, 0x00000178,
1906 : 0x00000108, 0x00000170, 0x00000148, 0x00000110,
1907 : 0x00000168, 0x00000140, 0x00000160, 0x00000120,
1908 : 0x00000158, 0x00000150, 0x00000128, 0x00000138,
1909 : 0x00000718, 0x00000700, 0x00000730, 0x00000778,
1910 : 0x00000708, 0x00000770, 0x00000748, 0x00000710,
1911 : 0x00000768, 0x00000740, 0x00000760, 0x00000720,
1912 : 0x00000758, 0x00000750, 0x00000728, 0x00000738,
1913 : }
1914 : };
1915 :
1916 : const struct gost28147_param gost28147_param_TC26_Z =
1917 : {
1918 : 1,
1919 : {
1920 : /* 0 */
1921 : 0x00036000, 0x00032000, 0x00033000, 0x00031000,
1922 : 0x00035000, 0x00032800, 0x00035800, 0x00034800,
1923 : 0x00037000, 0x00034000, 0x00036800, 0x00033800,
1924 : 0x00030000, 0x00031800, 0x00037800, 0x00030800,
1925 : 0x00046000, 0x00042000, 0x00043000, 0x00041000,
1926 : 0x00045000, 0x00042800, 0x00045800, 0x00044800,
1927 : 0x00047000, 0x00044000, 0x00046800, 0x00043800,
1928 : 0x00040000, 0x00041800, 0x00047800, 0x00040800,
1929 : 0x00016000, 0x00012000, 0x00013000, 0x00011000,
1930 : 0x00015000, 0x00012800, 0x00015800, 0x00014800,
1931 : 0x00017000, 0x00014000, 0x00016800, 0x00013800,
1932 : 0x00010000, 0x00011800, 0x00017800, 0x00010800,
1933 : 0x0001e000, 0x0001a000, 0x0001b000, 0x00019000,
1934 : 0x0001d000, 0x0001a800, 0x0001d800, 0x0001c800,
1935 : 0x0001f000, 0x0001c000, 0x0001e800, 0x0001b800,
1936 : 0x00018000, 0x00019800, 0x0001f800, 0x00018800,
1937 : 0x0004e000, 0x0004a000, 0x0004b000, 0x00049000,
1938 : 0x0004d000, 0x0004a800, 0x0004d800, 0x0004c800,
1939 : 0x0004f000, 0x0004c000, 0x0004e800, 0x0004b800,
1940 : 0x00048000, 0x00049800, 0x0004f800, 0x00048800,
1941 : 0x00056000, 0x00052000, 0x00053000, 0x00051000,
1942 : 0x00055000, 0x00052800, 0x00055800, 0x00054800,
1943 : 0x00057000, 0x00054000, 0x00056800, 0x00053800,
1944 : 0x00050000, 0x00051800, 0x00057800, 0x00050800,
1945 : 0x0002e000, 0x0002a000, 0x0002b000, 0x00029000,
1946 : 0x0002d000, 0x0002a800, 0x0002d800, 0x0002c800,
1947 : 0x0002f000, 0x0002c000, 0x0002e800, 0x0002b800,
1948 : 0x00028000, 0x00029800, 0x0002f800, 0x00028800,
1949 : 0x00066000, 0x00062000, 0x00063000, 0x00061000,
1950 : 0x00065000, 0x00062800, 0x00065800, 0x00064800,
1951 : 0x00067000, 0x00064000, 0x00066800, 0x00063800,
1952 : 0x00060000, 0x00061800, 0x00067800, 0x00060800,
1953 : 0x0000e000, 0x0000a000, 0x0000b000, 0x00009000,
1954 : 0x0000d000, 0x0000a800, 0x0000d800, 0x0000c800,
1955 : 0x0000f000, 0x0000c000, 0x0000e800, 0x0000b800,
1956 : 0x00008000, 0x00009800, 0x0000f800, 0x00008800,
1957 : 0x00076000, 0x00072000, 0x00073000, 0x00071000,
1958 : 0x00075000, 0x00072800, 0x00075800, 0x00074800,
1959 : 0x00077000, 0x00074000, 0x00076800, 0x00073800,
1960 : 0x00070000, 0x00071800, 0x00077800, 0x00070800,
1961 : 0x00026000, 0x00022000, 0x00023000, 0x00021000,
1962 : 0x00025000, 0x00022800, 0x00025800, 0x00024800,
1963 : 0x00027000, 0x00024000, 0x00026800, 0x00023800,
1964 : 0x00020000, 0x00021800, 0x00027800, 0x00020800,
1965 : 0x0003e000, 0x0003a000, 0x0003b000, 0x00039000,
1966 : 0x0003d000, 0x0003a800, 0x0003d800, 0x0003c800,
1967 : 0x0003f000, 0x0003c000, 0x0003e800, 0x0003b800,
1968 : 0x00038000, 0x00039800, 0x0003f800, 0x00038800,
1969 : 0x0005e000, 0x0005a000, 0x0005b000, 0x00059000,
1970 : 0x0005d000, 0x0005a800, 0x0005d800, 0x0005c800,
1971 : 0x0005f000, 0x0005c000, 0x0005e800, 0x0005b800,
1972 : 0x00058000, 0x00059800, 0x0005f800, 0x00058800,
1973 : 0x0006e000, 0x0006a000, 0x0006b000, 0x00069000,
1974 : 0x0006d000, 0x0006a800, 0x0006d800, 0x0006c800,
1975 : 0x0006f000, 0x0006c000, 0x0006e800, 0x0006b800,
1976 : 0x00068000, 0x00069800, 0x0006f800, 0x00068800,
1977 : 0x00006000, 0x00002000, 0x00003000, 0x00001000,
1978 : 0x00005000, 0x00002800, 0x00005800, 0x00004800,
1979 : 0x00007000, 0x00004000, 0x00006800, 0x00003800,
1980 : 0x00000000, 0x00001800, 0x00007800, 0x00000800,
1981 : 0x0007e000, 0x0007a000, 0x0007b000, 0x00079000,
1982 : 0x0007d000, 0x0007a800, 0x0007d800, 0x0007c800,
1983 : 0x0007f000, 0x0007c000, 0x0007e800, 0x0007b800,
1984 : 0x00078000, 0x00079800, 0x0007f800, 0x00078800,
1985 : /* 1 */
1986 : 0x06580000, 0x06180000, 0x06280000, 0x06400000,
1987 : 0x06100000, 0x06780000, 0x06500000, 0x06680000,
1988 : 0x06700000, 0x06080000, 0x06380000, 0x06200000,
1989 : 0x06600000, 0x06480000, 0x06300000, 0x06000000,
1990 : 0x04580000, 0x04180000, 0x04280000, 0x04400000,
1991 : 0x04100000, 0x04780000, 0x04500000, 0x04680000,
1992 : 0x04700000, 0x04080000, 0x04380000, 0x04200000,
1993 : 0x04600000, 0x04480000, 0x04300000, 0x04000000,
1994 : 0x01580000, 0x01180000, 0x01280000, 0x01400000,
1995 : 0x01100000, 0x01780000, 0x01500000, 0x01680000,
1996 : 0x01700000, 0x01080000, 0x01380000, 0x01200000,
1997 : 0x01600000, 0x01480000, 0x01300000, 0x01000000,
1998 : 0x00d80000, 0x00980000, 0x00a80000, 0x00c00000,
1999 : 0x00900000, 0x00f80000, 0x00d00000, 0x00e80000,
2000 : 0x00f00000, 0x00880000, 0x00b80000, 0x00a00000,
2001 : 0x00e00000, 0x00c80000, 0x00b00000, 0x00800000,
2002 : 0x06d80000, 0x06980000, 0x06a80000, 0x06c00000,
2003 : 0x06900000, 0x06f80000, 0x06d00000, 0x06e80000,
2004 : 0x06f00000, 0x06880000, 0x06b80000, 0x06a00000,
2005 : 0x06e00000, 0x06c80000, 0x06b00000, 0x06800000,
2006 : 0x02580000, 0x02180000, 0x02280000, 0x02400000,
2007 : 0x02100000, 0x02780000, 0x02500000, 0x02680000,
2008 : 0x02700000, 0x02080000, 0x02380000, 0x02200000,
2009 : 0x02600000, 0x02480000, 0x02300000, 0x02000000,
2010 : 0x07d80000, 0x07980000, 0x07a80000, 0x07c00000,
2011 : 0x07900000, 0x07f80000, 0x07d00000, 0x07e80000,
2012 : 0x07f00000, 0x07880000, 0x07b80000, 0x07a00000,
2013 : 0x07e00000, 0x07c80000, 0x07b00000, 0x07800000,
2014 : 0x03580000, 0x03180000, 0x03280000, 0x03400000,
2015 : 0x03100000, 0x03780000, 0x03500000, 0x03680000,
2016 : 0x03700000, 0x03080000, 0x03380000, 0x03200000,
2017 : 0x03600000, 0x03480000, 0x03300000, 0x03000000,
2018 : 0x03d80000, 0x03980000, 0x03a80000, 0x03c00000,
2019 : 0x03900000, 0x03f80000, 0x03d00000, 0x03e80000,
2020 : 0x03f00000, 0x03880000, 0x03b80000, 0x03a00000,
2021 : 0x03e00000, 0x03c80000, 0x03b00000, 0x03800000,
2022 : 0x00580000, 0x00180000, 0x00280000, 0x00400000,
2023 : 0x00100000, 0x00780000, 0x00500000, 0x00680000,
2024 : 0x00700000, 0x00080000, 0x00380000, 0x00200000,
2025 : 0x00600000, 0x00480000, 0x00300000, 0x00000000,
2026 : 0x05580000, 0x05180000, 0x05280000, 0x05400000,
2027 : 0x05100000, 0x05780000, 0x05500000, 0x05680000,
2028 : 0x05700000, 0x05080000, 0x05380000, 0x05200000,
2029 : 0x05600000, 0x05480000, 0x05300000, 0x05000000,
2030 : 0x02d80000, 0x02980000, 0x02a80000, 0x02c00000,
2031 : 0x02900000, 0x02f80000, 0x02d00000, 0x02e80000,
2032 : 0x02f00000, 0x02880000, 0x02b80000, 0x02a00000,
2033 : 0x02e00000, 0x02c80000, 0x02b00000, 0x02800000,
2034 : 0x01d80000, 0x01980000, 0x01a80000, 0x01c00000,
2035 : 0x01900000, 0x01f80000, 0x01d00000, 0x01e80000,
2036 : 0x01f00000, 0x01880000, 0x01b80000, 0x01a00000,
2037 : 0x01e00000, 0x01c80000, 0x01b00000, 0x01800000,
2038 : 0x07580000, 0x07180000, 0x07280000, 0x07400000,
2039 : 0x07100000, 0x07780000, 0x07500000, 0x07680000,
2040 : 0x07700000, 0x07080000, 0x07380000, 0x07200000,
2041 : 0x07600000, 0x07480000, 0x07300000, 0x07000000,
2042 : 0x04d80000, 0x04980000, 0x04a80000, 0x04c00000,
2043 : 0x04900000, 0x04f80000, 0x04d00000, 0x04e80000,
2044 : 0x04f00000, 0x04880000, 0x04b80000, 0x04a00000,
2045 : 0x04e00000, 0x04c80000, 0x04b00000, 0x04800000,
2046 : 0x05d80000, 0x05980000, 0x05a80000, 0x05c00000,
2047 : 0x05900000, 0x05f80000, 0x05d00000, 0x05e80000,
2048 : 0x05f00000, 0x05880000, 0x05b80000, 0x05a00000,
2049 : 0x05e00000, 0x05c80000, 0x05b00000, 0x05800000,
2050 : /* 2 */
2051 : 0xb8000002, 0xf8000002, 0xa8000002, 0xd0000002,
2052 : 0xc0000002, 0x88000002, 0xb0000002, 0xe8000002,
2053 : 0x80000002, 0xc8000002, 0x98000002, 0xf0000002,
2054 : 0xd8000002, 0xa0000002, 0x90000002, 0xe0000002,
2055 : 0xb8000006, 0xf8000006, 0xa8000006, 0xd0000006,
2056 : 0xc0000006, 0x88000006, 0xb0000006, 0xe8000006,
2057 : 0x80000006, 0xc8000006, 0x98000006, 0xf0000006,
2058 : 0xd8000006, 0xa0000006, 0x90000006, 0xe0000006,
2059 : 0xb8000007, 0xf8000007, 0xa8000007, 0xd0000007,
2060 : 0xc0000007, 0x88000007, 0xb0000007, 0xe8000007,
2061 : 0x80000007, 0xc8000007, 0x98000007, 0xf0000007,
2062 : 0xd8000007, 0xa0000007, 0x90000007, 0xe0000007,
2063 : 0x38000003, 0x78000003, 0x28000003, 0x50000003,
2064 : 0x40000003, 0x08000003, 0x30000003, 0x68000003,
2065 : 0x00000003, 0x48000003, 0x18000003, 0x70000003,
2066 : 0x58000003, 0x20000003, 0x10000003, 0x60000003,
2067 : 0xb8000004, 0xf8000004, 0xa8000004, 0xd0000004,
2068 : 0xc0000004, 0x88000004, 0xb0000004, 0xe8000004,
2069 : 0x80000004, 0xc8000004, 0x98000004, 0xf0000004,
2070 : 0xd8000004, 0xa0000004, 0x90000004, 0xe0000004,
2071 : 0x38000001, 0x78000001, 0x28000001, 0x50000001,
2072 : 0x40000001, 0x08000001, 0x30000001, 0x68000001,
2073 : 0x00000001, 0x48000001, 0x18000001, 0x70000001,
2074 : 0x58000001, 0x20000001, 0x10000001, 0x60000001,
2075 : 0x38000006, 0x78000006, 0x28000006, 0x50000006,
2076 : 0x40000006, 0x08000006, 0x30000006, 0x68000006,
2077 : 0x00000006, 0x48000006, 0x18000006, 0x70000006,
2078 : 0x58000006, 0x20000006, 0x10000006, 0x60000006,
2079 : 0x38000005, 0x78000005, 0x28000005, 0x50000005,
2080 : 0x40000005, 0x08000005, 0x30000005, 0x68000005,
2081 : 0x00000005, 0x48000005, 0x18000005, 0x70000005,
2082 : 0x58000005, 0x20000005, 0x10000005, 0x60000005,
2083 : 0xb8000005, 0xf8000005, 0xa8000005, 0xd0000005,
2084 : 0xc0000005, 0x88000005, 0xb0000005, 0xe8000005,
2085 : 0x80000005, 0xc8000005, 0x98000005, 0xf0000005,
2086 : 0xd8000005, 0xa0000005, 0x90000005, 0xe0000005,
2087 : 0xb8000003, 0xf8000003, 0xa8000003, 0xd0000003,
2088 : 0xc0000003, 0x88000003, 0xb0000003, 0xe8000003,
2089 : 0x80000003, 0xc8000003, 0x98000003, 0xf0000003,
2090 : 0xd8000003, 0xa0000003, 0x90000003, 0xe0000003,
2091 : 0x38000004, 0x78000004, 0x28000004, 0x50000004,
2092 : 0x40000004, 0x08000004, 0x30000004, 0x68000004,
2093 : 0x00000004, 0x48000004, 0x18000004, 0x70000004,
2094 : 0x58000004, 0x20000004, 0x10000004, 0x60000004,
2095 : 0xb8000000, 0xf8000000, 0xa8000000, 0xd0000000,
2096 : 0xc0000000, 0x88000000, 0xb0000000, 0xe8000000,
2097 : 0x80000000, 0xc8000000, 0x98000000, 0xf0000000,
2098 : 0xd8000000, 0xa0000000, 0x90000000, 0xe0000000,
2099 : 0x38000002, 0x78000002, 0x28000002, 0x50000002,
2100 : 0x40000002, 0x08000002, 0x30000002, 0x68000002,
2101 : 0x00000002, 0x48000002, 0x18000002, 0x70000002,
2102 : 0x58000002, 0x20000002, 0x10000002, 0x60000002,
2103 : 0xb8000001, 0xf8000001, 0xa8000001, 0xd0000001,
2104 : 0xc0000001, 0x88000001, 0xb0000001, 0xe8000001,
2105 : 0x80000001, 0xc8000001, 0x98000001, 0xf0000001,
2106 : 0xd8000001, 0xa0000001, 0x90000001, 0xe0000001,
2107 : 0x38000007, 0x78000007, 0x28000007, 0x50000007,
2108 : 0x40000007, 0x08000007, 0x30000007, 0x68000007,
2109 : 0x00000007, 0x48000007, 0x18000007, 0x70000007,
2110 : 0x58000007, 0x20000007, 0x10000007, 0x60000007,
2111 : 0x38000000, 0x78000000, 0x28000000, 0x50000000,
2112 : 0x40000000, 0x08000000, 0x30000000, 0x68000000,
2113 : 0x00000000, 0x48000000, 0x18000000, 0x70000000,
2114 : 0x58000000, 0x20000000, 0x10000000, 0x60000000,
2115 : /* 3 */
2116 : 0x000000c0, 0x000000f0, 0x00000090, 0x000000a8,
2117 : 0x000000b0, 0x000000c8, 0x00000088, 0x000000e0,
2118 : 0x000000f8, 0x000000a0, 0x000000d8, 0x00000080,
2119 : 0x000000e8, 0x000000d0, 0x00000098, 0x000000b8,
2120 : 0x000003c0, 0x000003f0, 0x00000390, 0x000003a8,
2121 : 0x000003b0, 0x000003c8, 0x00000388, 0x000003e0,
2122 : 0x000003f8, 0x000003a0, 0x000003d8, 0x00000380,
2123 : 0x000003e8, 0x000003d0, 0x00000398, 0x000003b8,
2124 : 0x00000740, 0x00000770, 0x00000710, 0x00000728,
2125 : 0x00000730, 0x00000748, 0x00000708, 0x00000760,
2126 : 0x00000778, 0x00000720, 0x00000758, 0x00000700,
2127 : 0x00000768, 0x00000750, 0x00000718, 0x00000738,
2128 : 0x000006c0, 0x000006f0, 0x00000690, 0x000006a8,
2129 : 0x000006b0, 0x000006c8, 0x00000688, 0x000006e0,
2130 : 0x000006f8, 0x000006a0, 0x000006d8, 0x00000680,
2131 : 0x000006e8, 0x000006d0, 0x00000698, 0x000006b8,
2132 : 0x00000040, 0x00000070, 0x00000010, 0x00000028,
2133 : 0x00000030, 0x00000048, 0x00000008, 0x00000060,
2134 : 0x00000078, 0x00000020, 0x00000058, 0x00000000,
2135 : 0x00000068, 0x00000050, 0x00000018, 0x00000038,
2136 : 0x000002c0, 0x000002f0, 0x00000290, 0x000002a8,
2137 : 0x000002b0, 0x000002c8, 0x00000288, 0x000002e0,
2138 : 0x000002f8, 0x000002a0, 0x000002d8, 0x00000280,
2139 : 0x000002e8, 0x000002d0, 0x00000298, 0x000002b8,
2140 : 0x00000440, 0x00000470, 0x00000410, 0x00000428,
2141 : 0x00000430, 0x00000448, 0x00000408, 0x00000460,
2142 : 0x00000478, 0x00000420, 0x00000458, 0x00000400,
2143 : 0x00000468, 0x00000450, 0x00000418, 0x00000438,
2144 : 0x000001c0, 0x000001f0, 0x00000190, 0x000001a8,
2145 : 0x000001b0, 0x000001c8, 0x00000188, 0x000001e0,
2146 : 0x000001f8, 0x000001a0, 0x000001d8, 0x00000180,
2147 : 0x000001e8, 0x000001d0, 0x00000198, 0x000001b8,
2148 : 0x00000240, 0x00000270, 0x00000210, 0x00000228,
2149 : 0x00000230, 0x00000248, 0x00000208, 0x00000260,
2150 : 0x00000278, 0x00000220, 0x00000258, 0x00000200,
2151 : 0x00000268, 0x00000250, 0x00000218, 0x00000238,
2152 : 0x000007c0, 0x000007f0, 0x00000790, 0x000007a8,
2153 : 0x000007b0, 0x000007c8, 0x00000788, 0x000007e0,
2154 : 0x000007f8, 0x000007a0, 0x000007d8, 0x00000780,
2155 : 0x000007e8, 0x000007d0, 0x00000798, 0x000007b8,
2156 : 0x00000540, 0x00000570, 0x00000510, 0x00000528,
2157 : 0x00000530, 0x00000548, 0x00000508, 0x00000560,
2158 : 0x00000578, 0x00000520, 0x00000558, 0x00000500,
2159 : 0x00000568, 0x00000550, 0x00000518, 0x00000538,
2160 : 0x00000340, 0x00000370, 0x00000310, 0x00000328,
2161 : 0x00000330, 0x00000348, 0x00000308, 0x00000360,
2162 : 0x00000378, 0x00000320, 0x00000358, 0x00000300,
2163 : 0x00000368, 0x00000350, 0x00000318, 0x00000338,
2164 : 0x000004c0, 0x000004f0, 0x00000490, 0x000004a8,
2165 : 0x000004b0, 0x000004c8, 0x00000488, 0x000004e0,
2166 : 0x000004f8, 0x000004a0, 0x000004d8, 0x00000480,
2167 : 0x000004e8, 0x000004d0, 0x00000498, 0x000004b8,
2168 : 0x00000640, 0x00000670, 0x00000610, 0x00000628,
2169 : 0x00000630, 0x00000648, 0x00000608, 0x00000660,
2170 : 0x00000678, 0x00000620, 0x00000658, 0x00000600,
2171 : 0x00000668, 0x00000650, 0x00000618, 0x00000638,
2172 : 0x000005c0, 0x000005f0, 0x00000590, 0x000005a8,
2173 : 0x000005b0, 0x000005c8, 0x00000588, 0x000005e0,
2174 : 0x000005f8, 0x000005a0, 0x000005d8, 0x00000580,
2175 : 0x000005e8, 0x000005d0, 0x00000598, 0x000005b8,
2176 : 0x00000140, 0x00000170, 0x00000110, 0x00000128,
2177 : 0x00000130, 0x00000148, 0x00000108, 0x00000160,
2178 : 0x00000178, 0x00000120, 0x00000158, 0x00000100,
2179 : 0x00000168, 0x00000150, 0x00000118, 0x00000138,
2180 : }
2181 : };
2182 :
2183 : /*
2184 : * A macro that performs a full encryption round of GOST 28147-89.
2185 : * Temporary variables tmp assumed and variables r and l for left and right
2186 : * blocks.
2187 : */
2188 : #define GOST_ENCRYPT_ROUND(key1, key2, sbox) \
2189 : tmp = (key1) + r; \
2190 : l ^= (sbox)[0*256 + (tmp & 0xff)] ^ (sbox)[1*256 + ((tmp >> 8) & 0xff)] ^ \
2191 : (sbox)[2*256 + ((tmp >> 16) & 0xff)] ^ (sbox)[3*256 + (tmp >> 24)]; \
2192 : tmp = (key2) + l; \
2193 : r ^= (sbox)[0*256 + (tmp & 0xff)] ^ (sbox)[1*256 + ((tmp >> 8) & 0xff)] ^ \
2194 : (sbox)[2*256 + ((tmp >> 16) & 0xff)] ^ (sbox)[3*256 + (tmp >> 24)];
2195 :
2196 : /* encrypt a block with the given key */
2197 1642030 : void gost28147_encrypt_simple (const uint32_t *key, const uint32_t *sbox,
2198 : const uint32_t *in, uint32_t *out)
2199 : {
2200 1642030 : uint32_t l, r, tmp;
2201 :
2202 1642030 : r = in[0], l = in[1];
2203 1642030 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2204 1642030 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2205 1642030 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2206 1642030 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2207 1642030 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2208 1642030 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2209 1642030 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2210 1642030 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2211 1642030 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2212 1642030 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2213 1642030 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2214 1642030 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2215 1642030 : GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
2216 1642030 : GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
2217 1642030 : GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
2218 1642030 : GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
2219 1642030 : *out = l, *(out + 1) = r;
2220 1642030 : }
2221 :
2222 148 : void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
2223 : const uint32_t *in, uint32_t *out)
2224 : {
2225 148 : uint32_t l, r, tmp;
2226 :
2227 148 : r = in[0], l = in[1];
2228 148 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2229 148 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2230 148 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2231 148 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2232 148 : GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
2233 148 : GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
2234 148 : GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
2235 148 : GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
2236 148 : GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
2237 148 : GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
2238 148 : GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
2239 148 : GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
2240 148 : GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
2241 148 : GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
2242 148 : GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
2243 148 : GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
2244 148 : *out = l, *(out + 1) = r;
2245 148 : }
2246 :
2247 1133 : static void gost28147_imit_simple (const uint32_t *key, const uint32_t *sbox,
2248 : const uint32_t *in, uint32_t *out)
2249 : {
2250 1133 : uint32_t l, r, tmp;
2251 :
2252 1133 : r = in[0], l = in[1];
2253 1133 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2254 1133 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2255 1133 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2256 1133 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2257 1133 : GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
2258 1133 : GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
2259 1133 : GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
2260 1133 : GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
2261 1133 : *out = r, *(out + 1) = l;
2262 1133 : }
2263 :
2264 : static const uint32_t gost28147_key_mesh_cryptopro_data[GOST28147_KEY_SIZE / 4] = {
2265 : 0x22720069, 0x2304c964,
2266 : 0x96db3a8d, 0xc42ae946,
2267 : 0x94acfe18, 0x1207ed00,
2268 : 0xc2dc86c0, 0x2ba94cef,
2269 : };
2270 :
2271 0 : static void gost28147_key_mesh_cryptopro(struct gost28147_ctx *ctx)
2272 : {
2273 0 : uint32_t newkey[GOST28147_KEY_SIZE/4];
2274 :
2275 0 : gost28147_decrypt_simple(ctx->key, ctx->sbox,
2276 : &gost28147_key_mesh_cryptopro_data[0],
2277 : &newkey[0]);
2278 :
2279 0 : gost28147_decrypt_simple(ctx->key, ctx->sbox,
2280 : &gost28147_key_mesh_cryptopro_data[2],
2281 : &newkey[2]);
2282 :
2283 0 : gost28147_decrypt_simple(ctx->key, ctx->sbox,
2284 : &gost28147_key_mesh_cryptopro_data[4],
2285 : &newkey[4]);
2286 :
2287 0 : gost28147_decrypt_simple(ctx->key, ctx->sbox,
2288 : &gost28147_key_mesh_cryptopro_data[6],
2289 : &newkey[6]);
2290 :
2291 0 : memcpy(ctx->key, newkey, sizeof(newkey));
2292 0 : ctx->key_count = 0;
2293 0 : }
2294 :
2295 : void
2296 1128 : gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key)
2297 : {
2298 1128 : unsigned i;
2299 :
2300 1128 : assert(key);
2301 10152 : for (i = 0; i < 8; i++, key += 4)
2302 9024 : ctx->key[i] = LE_READ_UINT32(key);
2303 1128 : ctx->key_count = 0;
2304 1128 : }
2305 :
2306 : void
2307 1128 : gost28147_set_param(struct gost28147_ctx *ctx, const struct gost28147_param *param)
2308 : {
2309 1128 : assert(param);
2310 1128 : ctx->sbox = param->sbox;
2311 1128 : ctx->key_meshing = param->key_meshing;
2312 1128 : }
2313 :
2314 : void
2315 37 : gost28147_encrypt(const struct gost28147_ctx *ctx,
2316 : size_t length, uint8_t *dst,
2317 : const uint8_t *src)
2318 : {
2319 37 : uint32_t block[2];
2320 :
2321 37 : assert(!(length % GOST28147_BLOCK_SIZE));
2322 :
2323 185 : while (length)
2324 : {
2325 148 : block[0] = LE_READ_UINT32(src); src += 4;
2326 148 : block[1] = LE_READ_UINT32(src); src += 4;
2327 148 : gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
2328 148 : LE_WRITE_UINT32(dst, block[0]); dst += 4;
2329 148 : LE_WRITE_UINT32(dst, block[1]); dst += 4;
2330 148 : length -= GOST28147_BLOCK_SIZE;
2331 : }
2332 37 : }
2333 :
2334 : void
2335 37 : gost28147_decrypt(const struct gost28147_ctx *ctx,
2336 : size_t length, uint8_t *dst,
2337 : const uint8_t *src)
2338 : {
2339 37 : uint32_t block[2];
2340 :
2341 37 : assert(!(length % GOST28147_BLOCK_SIZE));
2342 :
2343 185 : while (length)
2344 : {
2345 148 : block[0] = LE_READ_UINT32(src); src += 4;
2346 148 : block[1] = LE_READ_UINT32(src); src += 4;
2347 148 : gost28147_decrypt_simple(ctx->key, ctx->sbox, block, block);
2348 148 : LE_WRITE_UINT32(dst, block[0]); dst += 4;
2349 148 : LE_WRITE_UINT32(dst, block[1]); dst += 4;
2350 148 : length -= GOST28147_BLOCK_SIZE;
2351 : }
2352 37 : }
2353 :
2354 : void
2355 3096 : gost28147_encrypt_for_cfb(struct gost28147_ctx *ctx,
2356 : size_t length, uint8_t *dst,
2357 : const uint8_t *src)
2358 : {
2359 3096 : uint32_t block[2];
2360 :
2361 3096 : assert(!(length % GOST28147_BLOCK_SIZE));
2362 :
2363 7264 : while (length)
2364 : {
2365 4168 : block[0] = LE_READ_UINT32(src); src += 4;
2366 4168 : block[1] = LE_READ_UINT32(src); src += 4;
2367 4168 : if (ctx->key_meshing && ctx->key_count == 1024)
2368 : {
2369 0 : gost28147_key_mesh_cryptopro(ctx);
2370 0 : gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
2371 0 : ctx->key_count = 0;
2372 : }
2373 4168 : gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
2374 4168 : LE_WRITE_UINT32(dst, block[0]); dst += 4;
2375 4168 : LE_WRITE_UINT32(dst, block[1]); dst += 4;
2376 4168 : length -= GOST28147_BLOCK_SIZE;
2377 4168 : ctx->key_count += GOST28147_BLOCK_SIZE;
2378 : }
2379 3096 : }
2380 :
2381 : static void
2382 581 : gost28147_cnt_next_iv(struct gost28147_cnt_ctx *ctx,
2383 : uint8_t *out)
2384 : {
2385 581 : uint32_t block[2];
2386 581 : uint32_t temp;
2387 :
2388 581 : if (ctx->ctx.key_meshing && ctx->ctx.key_count == 1024)
2389 : {
2390 0 : gost28147_key_mesh_cryptopro(&ctx->ctx);
2391 0 : gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv, ctx->iv);
2392 0 : ctx->ctx.key_count = 0;
2393 : }
2394 :
2395 581 : ctx->iv[0] += 0x01010101;
2396 581 : temp = ctx->iv[1] + 0x01010104;
2397 581 : if (temp < ctx->iv[1])
2398 4 : ctx->iv[1] = temp + 1; /* Overflow */
2399 : else
2400 577 : ctx->iv[1] = temp;
2401 :
2402 581 : gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv, block);
2403 :
2404 581 : LE_WRITE_UINT32(out + 0, block[0]);
2405 581 : LE_WRITE_UINT32(out + 4, block[1]);
2406 :
2407 581 : ctx->ctx.key_count += GOST28147_BLOCK_SIZE;
2408 581 : }
2409 :
2410 : void
2411 162 : gost28147_cnt_init(struct gost28147_cnt_ctx *ctx,
2412 : const uint8_t *key,
2413 : const struct gost28147_param *param)
2414 : {
2415 162 : gost28147_set_param(&ctx->ctx, param);
2416 162 : gost28147_set_key(&ctx->ctx, key);
2417 162 : ctx->bytes = 0;
2418 162 : }
2419 :
2420 : void
2421 172 : gost28147_cnt_set_iv(struct gost28147_cnt_ctx *ctx,
2422 : const uint8_t *iv)
2423 : {
2424 172 : uint32_t block[2];
2425 :
2426 172 : block[0] = LE_READ_UINT32(iv + 0);
2427 172 : block[1] = LE_READ_UINT32(iv + 4);
2428 :
2429 172 : gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, block, ctx->iv);
2430 172 : }
2431 :
2432 : void
2433 321 : gost28147_cnt_crypt(struct gost28147_cnt_ctx *ctx,
2434 : size_t length, uint8_t *dst,
2435 : const uint8_t *src)
2436 : {
2437 321 : size_t block_size = GOST28147_BLOCK_SIZE;
2438 :
2439 321 : if (ctx->bytes)
2440 : {
2441 73 : size_t part = ctx->bytes < length ? ctx->bytes : length;
2442 73 : memxor3(dst, src, ctx->buffer + block_size - ctx->bytes, part);
2443 73 : dst += part;
2444 73 : src += part;
2445 73 : length -= part;
2446 73 : ctx->bytes -= part;
2447 73 : ctx->bytes %= block_size;
2448 : }
2449 678 : while (length >= block_size)
2450 : {
2451 357 : gost28147_cnt_next_iv(ctx, ctx->buffer);
2452 357 : memxor3(dst, src, ctx->buffer, block_size);
2453 357 : length -= block_size;
2454 357 : src += block_size;
2455 357 : dst += block_size;
2456 : }
2457 :
2458 321 : if (length != 0)
2459 : {
2460 224 : gost28147_cnt_next_iv(ctx, ctx->buffer);
2461 224 : memxor3(dst, src, ctx->buffer, length);
2462 224 : ctx->bytes = block_size - length;
2463 : }
2464 321 : }
2465 :
2466 : static void
2467 522 : _gost28147_imit_reinit(struct gost28147_imit_ctx *ctx)
2468 : {
2469 522 : ctx->state[0] = 0;
2470 522 : ctx->state[1] = 0;
2471 522 : ctx->index = 0;
2472 522 : ctx->count = 0;
2473 522 : }
2474 :
2475 : void
2476 228 : gost28147_imit_set_key(struct gost28147_imit_ctx *ctx,
2477 : size_t length,
2478 : const uint8_t *key)
2479 : {
2480 228 : assert(length == GOST28147_IMIT_KEY_SIZE);
2481 228 : assert(key);
2482 :
2483 228 : _gost28147_imit_reinit(ctx);
2484 228 : gost28147_set_key(&ctx->cctx, key);
2485 228 : }
2486 :
2487 : void
2488 74 : gost28147_imit_set_nonce(struct gost28147_imit_ctx *ctx, const uint8_t *nonce)
2489 : {
2490 74 : ctx->state[0] = LE_READ_UINT32(nonce + 0);
2491 74 : ctx->state[1] = LE_READ_UINT32(nonce + 4);
2492 74 : }
2493 :
2494 : void
2495 228 : gost28147_imit_set_param(struct gost28147_imit_ctx *ctx,
2496 : const struct gost28147_param *param)
2497 : {
2498 228 : assert(param);
2499 228 : gost28147_set_param(&ctx->cctx, param);
2500 228 : }
2501 :
2502 : static void
2503 1133 : gost28147_imit_compress(struct gost28147_imit_ctx *ctx,
2504 : const uint8_t *data)
2505 : {
2506 1133 : uint32_t block[2];
2507 :
2508 1133 : if (ctx->cctx.key_meshing && ctx->cctx.key_count == 1024)
2509 0 : gost28147_key_mesh_cryptopro(&ctx->cctx);
2510 :
2511 1133 : block[0] = LE_READ_UINT32(data + 0) ^ ctx->state[0];
2512 1133 : block[1] = LE_READ_UINT32(data + 4) ^ ctx->state[1];
2513 1133 : gost28147_imit_simple(ctx->cctx.key, ctx->cctx.sbox, block, ctx->state);
2514 1133 : ctx->cctx.key_count += 8;
2515 1133 : }
2516 :
2517 : void
2518 721 : gost28147_imit_update(struct gost28147_imit_ctx *ctx,
2519 : size_t length,
2520 : const uint8_t *data)
2521 : {
2522 2083 : MD_UPDATE(ctx, length, data, gost28147_imit_compress, ctx->count++);
2523 721 : }
2524 :
2525 : void
2526 294 : gost28147_imit_digest(struct gost28147_imit_ctx *ctx,
2527 : size_t length,
2528 : uint8_t *digest)
2529 : {
2530 294 : assert(length <= GOST28147_IMIT_DIGEST_SIZE);
2531 294 : const uint8_t zero[GOST28147_IMIT_BLOCK_SIZE] = { 0 };
2532 :
2533 294 : if (ctx->index)
2534 : {
2535 209 : assert(ctx->index < GOST28147_IMIT_BLOCK_SIZE);
2536 209 : gost28147_imit_update(ctx, GOST28147_IMIT_BLOCK_SIZE - ctx->index, zero);
2537 : }
2538 :
2539 294 : if (ctx->count == 1)
2540 : {
2541 0 : gost28147_imit_update(ctx, GOST28147_IMIT_BLOCK_SIZE, zero);
2542 : }
2543 :
2544 294 : _nettle_write_le32(length, digest, ctx->state);
2545 294 : _gost28147_imit_reinit(ctx);
2546 294 : }
2547 : #endif
|