1 /* vim: set fileencoding=ascii : Charset: ASCII */
2 /* test/gostr2814789t.c */
3 /* ====================================================================
4 * Copyright (c) 2012 Crypto-Pro, Ltd., Serguei E. Leontiev,
7 * This file is distributed under the same license as OpenSSL
8 * ====================================================================
12 #if defined(OPENSSL_NO_ENGINE) || defined(OPENSSL_NO_GOST)
13 int main(int argc, char *argv[])
15 printf("No GOST 28147-89 support\n");
22 #include <openssl/conf.h>
23 #include <openssl/crypto.h>
24 #include <openssl/engine.h>
25 #include <openssl/err.h>
26 #include <openssl/evp.h>
27 #include <openssl/hmac.h>
28 #include <openssl/obj_mac.h>
30 #define CCGOST_ID "gost"
32 #include "../engines/ccgost/gost89.h"
34 #define G89_MAX_TC_LEN (2048)
35 #define G89_BLOCK_LEN (8)
37 #if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
38 typedef unsigned __int64 u64;
39 #define U64(C) C##UI64
41 #elif defined(__arch64__)
42 typedef unsigned long u64;
46 typedef unsigned long long u64;
50 #if defined(__MINGW32__)
55 typedef enum g89_mode_ {
62 typedef struct g89_tc_ {
63 u64 ullLen; /* ullLen > G89_MAX_TC_LEN */
64 /* Clear text ullLen */
66 const byte bIn[G89_MAX_TC_LEN]; /* Clear text, when */
67 /* ullLen <= G89_MAX_TC_LEN */
68 const char *szParamSet; /* S-Box ID */
69 const char *szDerive; /* String for derive bRawKey */
70 const byte bRawKey[EVP_MAX_KEY_LENGTH];
71 g89_mode gMode; /* Mode of encryption or MAC */
72 const byte bIV[EVP_MAX_IV_LENGTH]; /* IV for CFB or CNT mode */
73 const byte bOut[G89_MAX_TC_LEN]; /* Cipher text for ECB/CFB/CNT */
74 /* mode, when ullLen <= G89_MAX_TC_LEN;
75 * Last 16 byte of cipher text for
76 * ECB/CFB/CNT, when ullLen >
78 * 4 byte MAC for imitovstavka */
81 const g89_tc tcs[] = {
83 * GOST R 34.11-94 Test cases
85 { /* see p. A.3.1 [GOSTR341194], p. 7.3.1 [ENG-GOSTR341194] */
86 /* <http://tools.ietf.org/html/rfc5831#section-7.3.1> */
87 /* Iteration 1, K[1], see Errata for RFC 5831 */
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
92 "id-GostR3410-94-TestParamSet",
95 0x54, 0x6d, 0x20, 0x33, 0x68, 0x65, 0x6c, 0x32,
96 0x69, 0x73, 0x65, 0x20, 0x73, 0x73, 0x6e, 0x62,
97 0x20, 0x61, 0x67, 0x79, 0x69, 0x67, 0x74, 0x74,
98 0x73, 0x65, 0x68, 0x65, 0x20, 0x2c, 0x3d, 0x73
103 0x1b, 0x0b, 0xbc, 0x32, 0xce, 0xbc, 0xab, 0x42
106 { /* see p. A.3.1 [GOSTR341194], p. 7.3.1 [ENG-GOSTR341194] */
107 /* <http://tools.ietf.org/html/rfc5831#section-7.3.1> */
108 /* Iteration 1, K[4] */
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
113 "id-GostR3410-94-TestParamSet",
116 0xec, 0x0a, 0x8b, 0xa1, 0x5e, 0xc0, 0x04, 0xa8,
117 0xba, 0xc5, 0x0c, 0xac, 0x0c, 0x62, 0x1d, 0xee,
118 0xe1, 0xc7, 0xb8, 0xe7, 0x00, 0x7a, 0xe2, 0xec,
119 0xf2, 0x73, 0x1b, 0xff, 0x4e, 0x80, 0xe2, 0xa0
124 0x2d, 0x56, 0x2a, 0x0d, 0x19, 0x04, 0x86, 0xe7
127 { /* see p. A.3.1 [GOSTR341194], p. 7.3.1 [ENG-GOSTR341194] */
128 /* <http://tools.ietf.org/html/rfc5831#section-7.3.1> */
129 /* Iteration 2, K[1] */
132 0x34, 0xc0, 0x15, 0x33, 0xe3, 0x7d, 0x1c, 0x56
134 "id-GostR3410-94-TestParamSet",
137 0x34, 0x87, 0x24, 0xa4, 0xc1, 0xa6, 0x76, 0x67,
138 0x15, 0x3d, 0xde, 0x59, 0x33, 0x88, 0x42, 0x50,
139 0xe3, 0x24, 0x8c, 0x65, 0x7d, 0x41, 0x3b, 0x8c,
140 0x1c, 0x9c, 0xa0, 0x9a, 0x56, 0xd9, 0x68, 0xcf
145 0x86, 0x3e, 0x78, 0xdd, 0x2d, 0x60, 0xd1, 0x3c
149 * id-Gost28147-89-CryptoPro-A-ParamSet (1.2.643.2.2.31.1)
152 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
155 0x74, 0x3d, 0x76, 0xf9, 0x1b, 0xee, 0x35, 0x3c,
156 0xa2, 0x5c, 0x3b, 0x10, 0xeb, 0x64, 0xcf, 0xf5
158 "id-Gost28147-89-CryptoPro-A-ParamSet",
161 0xbb, 0xf1, 0xed, 0xd3, 0x20, 0xaf, 0x8a, 0x62,
162 0x8e, 0x11, 0xc8, 0xa9, 0x51, 0xcc, 0xbe, 0x81,
163 0x47, 0x7b, 0x41, 0xa1, 0x6a, 0xf6, 0x7f, 0x05,
164 0xe8, 0x51, 0x2f, 0x9e, 0x01, 0xf8, 0xcf, 0x49
169 0xc3, 0x73, 0x90, 0x95, 0x35, 0x58, 0x08, 0x63,
170 0xcb, 0x68, 0x85, 0x96, 0x77, 0xe8, 0xfb, 0xa9
173 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
176 0xd2, 0xfd, 0xf8, 0x3a, 0xc1, 0xb4, 0x39, 0x23,
177 0x2e, 0xaa, 0xcc, 0x98, 0x0a, 0x02, 0xda, 0x33
179 "id-Gost28147-89-CryptoPro-A-ParamSet",
182 0x8d, 0x5a, 0x2c, 0x83, 0xa7, 0xc7, 0x0a, 0x61,
183 0xd6, 0x1b, 0x34, 0xb5, 0x1f, 0xdf, 0x42, 0x68,
184 0x66, 0x71, 0xa3, 0x5d, 0x87, 0x4c, 0xfd, 0x84,
185 0x99, 0x36, 0x63, 0xb6, 0x1e, 0xd6, 0x0d, 0xad
189 0x46, 0x60, 0x6f, 0x0d, 0x88, 0x34, 0x23, 0x5a
192 0x88, 0xb7, 0x75, 0x16, 0x74, 0xa5, 0xee, 0x2d,
193 0x14, 0xfe, 0x91, 0x67, 0xd0, 0x5c, 0xcc, 0x40
196 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
199 0x90, 0xa2, 0x39, 0x66, 0xae, 0x01, 0xb9, 0xa3,
200 0x52, 0x4e, 0xc8, 0xed, 0x6c, 0xdd, 0x88, 0x30
202 "id-Gost28147-89-CryptoPro-A-ParamSet",
205 0x59, 0x9f, 0x84, 0xba, 0xc3, 0xf3, 0xd2, 0xf1,
206 0x60, 0xe1, 0xe3, 0xf2, 0x6a, 0x96, 0x1a, 0xf9,
207 0x9c, 0x48, 0xb2, 0x4e, 0xbc, 0xbb, 0xbf, 0x7c,
208 0xd8, 0xf3, 0xac, 0xcd, 0x96, 0x8d, 0x28, 0x6a
212 0x8d, 0xaf, 0xa8, 0xd1, 0x58, 0xed, 0x05, 0x8d
215 0x6e, 0x72, 0x62, 0xcc, 0xe3, 0x59, 0x36, 0x90,
216 0x83, 0x3a, 0xfe, 0xa9, 0x1b, 0xc9, 0xbe, 0xce
219 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
222 0xb5, 0xa1, 0xf0, 0xe3, 0xce, 0x2f, 0x02, 0x1d,
223 0x67, 0x61, 0x94, 0x34, 0x5c, 0x41, 0xe3, 0x6e
225 "id-Gost28147-89-CryptoPro-A-ParamSet",
228 0x9d, 0x05, 0xb7, 0x9e, 0x90, 0xca, 0xd0, 0x0a,
229 0x2c, 0xda, 0xd2, 0x2e, 0xf4, 0xe8, 0x6f, 0x5c,
230 0xf5, 0xdc, 0x37, 0x68, 0x19, 0x85, 0xb3, 0xbf,
231 0xaa, 0x18, 0xc1, 0xc3, 0x05, 0x0a, 0x91, 0xa2
236 0xf8, 0x1f, 0x08, 0xa3
240 * Other paramsets and key meshing test cases.
242 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
245 0x8c, 0x9c, 0x44, 0x35, 0xfb, 0xe9, 0xa5, 0xa3,
246 0xa0, 0xae, 0x28, 0x56, 0x91, 0x10, 0x8e, 0x1e ,
247 0xd2, 0xbb, 0x18, 0x53, 0x81, 0x27, 0x0d, 0xa6,
248 0x68, 0x59, 0x36, 0xc5, 0x81, 0x62, 0x9a, 0x8e,
249 0x7d, 0x50, 0xf1, 0x6f, 0x97, 0x62, 0x29, 0xec,
250 0x80, 0x51, 0xe3, 0x7d, 0x6c, 0xc4, 0x07, 0x95,
251 0x28, 0x63, 0xdc, 0xb4, 0xb9, 0x2d, 0xb8, 0x13,
252 0xb1, 0x05, 0xb5, 0xf9, 0xeb, 0x75, 0x37, 0x4e,
253 0xf7, 0xbf, 0x51, 0xf1, 0x98, 0x86, 0x43, 0xc4,
254 0xe4, 0x3d, 0x3e, 0xa7, 0x62, 0xec, 0x41, 0x59,
255 0xe0, 0xbd, 0xfb, 0xb6, 0xfd, 0xec, 0xe0, 0x77,
256 0x13, 0xd2, 0x59, 0x90, 0xa1, 0xb8, 0x97, 0x6b,
257 0x3d, 0x8b, 0x7d, 0xfc, 0x9d, 0xca, 0x82, 0x73,
258 0x32, 0x70, 0x0a, 0x74, 0x03, 0xc6, 0x0c, 0x26,
259 0x7f, 0x56, 0xf0, 0x9d, 0xb2, 0xeb, 0x71, 0x40,
260 0xd7, 0xc3, 0xb1, 0xa7, 0xc5, 0x1e, 0x20, 0x17,
261 0xb3, 0x50, 0x1d, 0x8a, 0x6e, 0x19, 0xcb, 0xbe,
262 0x20, 0x86, 0x2b, 0xd6, 0x1c, 0xfd, 0xb4, 0xb7,
263 0x5d, 0x9a, 0xb3, 0xe3, 0x7d, 0x15, 0x7a, 0x35,
264 0x01, 0x9f, 0x5d, 0x65, 0x89, 0x4b, 0x34, 0xc6,
265 0xf4, 0x81, 0x3f, 0x78, 0x30, 0xcf, 0xe9, 0x15,
266 0x90, 0x9a, 0xf9, 0xde, 0xba, 0x63, 0xd0, 0x19,
267 0x14, 0x66, 0x3c, 0xb9, 0xa4, 0xb2, 0x84, 0x94,
268 0x02, 0xcf, 0xce, 0x20, 0xcf, 0x76, 0xe7, 0xc5,
269 0x48, 0xf7, 0x69, 0x3a, 0x5d, 0xec, 0xaf, 0x41,
270 0xa7, 0x12, 0x64, 0x83, 0xf5, 0x99, 0x1e, 0x9e,
271 0xb2, 0xab, 0x86, 0x16, 0x00, 0x23, 0x8e, 0xe6,
272 0xd9, 0x80, 0x0b, 0x6d, 0xc5, 0x93, 0xe2, 0x5c,
273 0x8c, 0xd8, 0x5e, 0x5a, 0xae, 0x4a, 0x85, 0xfd,
274 0x76, 0x01, 0xea, 0x30, 0xf3, 0x78, 0x34, 0x10,
275 0x72, 0x51, 0xbc, 0x9f, 0x76, 0xce, 0x1f, 0xd4,
276 0x8f, 0x33, 0x50, 0x34, 0xc7, 0x4d, 0x7b, 0xcf,
277 0x91, 0x63, 0x7d, 0x82, 0x9e, 0xa1, 0x23, 0x45,
278 0xf5, 0x45, 0xac, 0x98, 0x7a, 0x48, 0xff, 0x64,
279 0xd5, 0x59, 0x47, 0xde, 0x2b, 0x3f, 0xfa, 0xec,
280 0x50, 0xe0, 0x81, 0x60, 0x8b, 0xc3, 0xfc, 0x80,
281 0x98, 0x17, 0xc7, 0xa3, 0xc2, 0x57, 0x3d, 0xab,
282 0x91, 0x67, 0xf5, 0xc4, 0xab, 0x92, 0xc8, 0xd6,
283 0x3b, 0x6b, 0x3f, 0xff, 0x15, 0x6b, 0xcf, 0x53,
284 0x65, 0x02, 0xf1, 0x74, 0xca, 0xa9, 0xbe, 0x24,
285 0xd2, 0xf0, 0xb7, 0x26, 0xa8, 0xd7, 0x6d, 0xed,
286 0x90, 0x36, 0x7b, 0x3e, 0x41, 0xa9, 0x7f, 0xa3,
287 0x1b, 0xf4, 0x43, 0xc5, 0x51, 0xbe, 0x28, 0x59,
288 0xe9, 0x45, 0x26, 0x49, 0x38, 0x32, 0xf8, 0xf3,
289 0x92, 0x6e, 0x30, 0xcc, 0xb0, 0xa0, 0xf9, 0x01,
290 0x14, 0xc8, 0xba, 0xd9, 0xf0, 0x2a, 0x29, 0xe2,
291 0x52, 0x9a, 0x76, 0x95, 0x3a, 0x16, 0x32, 0xec,
292 0xf4, 0x10, 0xec, 0xee, 0x47, 0x00, 0x70, 0x19,
293 0xe4, 0x72, 0x35, 0x66, 0x44, 0x53, 0x2d, 0xa2,
294 0xf3, 0xaa, 0x7e, 0x8a, 0x33, 0x13, 0xcd, 0xc8,
295 0xbf, 0x0e, 0x40, 0x90, 0x00, 0xe4, 0x42, 0xc3,
296 0x09, 0x84, 0xe1, 0x66, 0x17, 0xa2, 0xaf, 0x03,
297 0xab, 0x6b, 0xa1, 0xec, 0xfb, 0x17, 0x72, 0x81,
298 0xfe, 0x9a, 0x9f, 0xf4, 0xb2, 0x33, 0x1f, 0xae,
299 0x0c, 0xd1, 0x6a, 0xae, 0x19, 0xb8, 0xaf, 0xec,
300 0xe3, 0xea, 0x00, 0xf8, 0xac, 0x87, 0x07, 0x5f,
301 0x6d, 0xb0, 0xac, 0x6b, 0x22, 0x48, 0x36, 0xbf,
302 0x22, 0x18, 0xb0, 0x03, 0x9f, 0x6c, 0x70, 0x45,
303 0x36, 0xf0, 0x6b, 0xc6, 0xc2, 0xa5, 0x72, 0x2c,
304 0xd8, 0xe0, 0x27, 0x3d, 0xec, 0x56, 0x07, 0x05,
305 0x7d, 0x83, 0xa1, 0x65, 0x7d, 0x41, 0x5b, 0xcd,
306 0x77, 0x24, 0xe5, 0xaa, 0x76, 0x47, 0xd0, 0x50,
307 0xf6, 0xe7, 0xb5, 0x59, 0x75, 0x31, 0x27, 0xef,
308 0xd8, 0xa6, 0x4e, 0x7f, 0xb8, 0x40, 0xb1, 0xdf,
309 0x53, 0x14, 0xed, 0xf1, 0x68, 0x5f, 0xfc, 0x3f,
310 0x02, 0xdb, 0x05, 0xeb, 0x31, 0xe4, 0x2c, 0x7f,
311 0x32, 0xb5, 0x70, 0x8e, 0x75, 0x85, 0xa4, 0x5c,
312 0x16, 0x23, 0x37, 0xf2, 0x10, 0x79, 0xcb, 0xdc,
313 0xf8, 0x1c, 0x25, 0xc2, 0xa1, 0x3d, 0x9c, 0x33,
314 0x6c, 0xed, 0xc3, 0xe7, 0xf3, 0x02, 0x87, 0x82,
315 0x4e, 0xfb, 0xac, 0xb3, 0x2d, 0xfc, 0xf8, 0x0d,
316 0x1d, 0x4a, 0x39, 0xd4, 0xb3, 0x09, 0xbb, 0xe9,
317 0x25, 0xc7, 0xec, 0x6a, 0x87, 0x72, 0x84, 0xed,
318 0x12, 0x60, 0x19, 0x64, 0xeb, 0x16, 0x2a, 0x5b,
319 0x10, 0x76, 0x27, 0xff, 0x7b, 0xe4, 0xae, 0xe5,
320 0xa4, 0x04, 0x02, 0x7f, 0xbb, 0x0a, 0xb5, 0xf4,
321 0x05, 0xa5, 0x56, 0x1c, 0x53, 0x31, 0x7a, 0x93,
322 0xba, 0x16, 0x15, 0xab, 0x62, 0x60, 0xfc, 0xde,
323 0x72, 0x36, 0x6e, 0x28, 0xaf, 0x98, 0x0d, 0xe6,
324 0xf4, 0xde, 0x60, 0xa7, 0x7e, 0x06, 0x07, 0x86,
325 0xf3, 0x94, 0xb6, 0x6d, 0x0d, 0x93, 0xa6, 0xbc,
326 0x60, 0x70, 0x33, 0xac, 0x3f, 0xa1, 0xa8, 0x4a,
327 0x20, 0x61, 0xb6, 0xb5, 0x43, 0xa3, 0x15, 0x5a,
328 0x00, 0xbe, 0x76, 0x98, 0x57, 0x72, 0xab, 0x7a,
329 0x0e, 0x18, 0x93, 0x82, 0x3a, 0x18, 0x78, 0x6e,
330 0x71, 0x7b, 0x78, 0x4f, 0x7e, 0x8c, 0xde, 0x7a,
331 0x62, 0xb5, 0x0a, 0x7c, 0x45, 0x1d, 0x16, 0xd5,
332 0xc3, 0x8c, 0x9b, 0x25, 0xb4, 0x50, 0x90, 0xcd,
333 0x96, 0x93, 0xad, 0x0f, 0xd4, 0x43, 0xcb, 0x49,
334 0x0f, 0xfc, 0x5a, 0x31, 0xf4, 0x19, 0xb7, 0xd4,
335 0xeb, 0x4d, 0x40, 0x58, 0xd0, 0x3b, 0xc8, 0xe0,
336 0x4a, 0x54, 0x2f, 0xdb, 0x22, 0xc3, 0x29, 0x7b,
337 0x40, 0x90, 0x61, 0x43, 0xd3, 0x7e, 0xe2, 0x30,
338 0x2b, 0x48, 0x3c, 0xce, 0x90, 0x93, 0xb1, 0x8b,
339 0x31, 0x96, 0x65, 0x6d, 0x57, 0x8b, 0x9d, 0x4d,
340 0x53, 0xf0, 0x83, 0x1c, 0xe5, 0xa1, 0x9d, 0x55,
341 0xe3, 0xbf, 0x7e, 0xca, 0x1a, 0x74, 0x66, 0x14,
342 0xcc, 0x47, 0x43, 0xd9, 0xbb, 0xef, 0x97, 0x7d,
343 0xb7, 0x6e, 0xff, 0xf1, 0x22, 0xf8, 0x10, 0x2d,
344 0x3f, 0xcd, 0x49, 0x96, 0xd9, 0x09, 0x11, 0xb8,
345 0x33, 0xd0, 0x23, 0x9a, 0xfa, 0x16, 0xcb, 0x50,
346 0x26, 0x57, 0x24, 0x5c, 0x0e, 0xba, 0xf0, 0x3f,
347 0x37, 0x2f, 0xa3, 0xf7, 0x18, 0x57, 0x48, 0x48,
348 0x95, 0xcf, 0xef, 0x87, 0x67, 0x2a, 0xe9, 0xb6,
349 0x8a, 0x21, 0x36, 0x7f, 0xff, 0x48, 0x6c, 0x46,
350 0x35, 0x57, 0xf2, 0xbc, 0x48, 0x67, 0x8f, 0x63,
351 0x23, 0x78, 0x11, 0x2b, 0xc2, 0x08, 0xde, 0x51,
352 0xe8, 0x8b, 0x92, 0x29, 0xf9, 0x9a, 0x9e, 0xad,
353 0xed, 0x0f, 0xeb, 0xa2, 0xd2, 0x40, 0x92, 0xd4,
354 0xde, 0x62, 0x95, 0x76, 0xfd, 0x6e, 0x3c, 0xbf,
355 0xc0, 0xd7, 0x0d, 0xe5, 0x1b, 0xa4, 0xc7, 0x18,
356 0xe1, 0x58, 0xa4, 0x56, 0xef, 0x2e, 0x17, 0x1b,
357 0x75, 0xcb, 0xbc, 0xf9, 0x2a, 0x95, 0x71, 0xa7,
358 0x1d, 0x7f, 0xe7, 0x73, 0x63, 0x05, 0x6b, 0x19,
359 0x4c, 0xf4, 0x22, 0x14, 0xc4, 0x59, 0x88, 0x66,
360 0x92, 0x86, 0x61, 0x5c, 0x6a, 0xae, 0xec, 0x58,
361 0xff, 0xc9, 0xf2, 0x44, 0xd4, 0xa2, 0xf5, 0x98,
362 0xeb, 0x5f, 0x09, 0xbc, 0x8a, 0xbf, 0x3c, 0xb4,
363 0x3e, 0xb1, 0x20, 0x05, 0x44, 0x96, 0x79, 0x0a,
364 0x40, 0x92, 0x7f, 0x9d, 0xd1, 0xaf, 0xbc, 0x90,
365 0x95, 0x0a, 0x81, 0xd4, 0xa7, 0xc6, 0xb8, 0xe0,
366 0xe4, 0x39, 0x30, 0x1d, 0x79, 0xc0, 0xe5, 0xfa,
367 0xb4, 0xe9, 0x63, 0xb4, 0x09, 0x72, 0x3b, 0x3e,
368 0xd9, 0xf6, 0xd9, 0x10, 0x21, 0x18, 0x7e, 0xe5,
369 0xad, 0x81, 0xd7, 0xd5, 0x82, 0xd0, 0x8c, 0x3b,
370 0x38, 0x95, 0xf8, 0x92, 0x01, 0xa9, 0x92, 0x00,
371 0x70, 0xd1, 0xa7, 0x88, 0x77, 0x1f, 0x3a, 0xeb,
372 0xb5, 0xe4, 0xf5, 0x9d, 0xc7, 0x37, 0x86, 0xb2,
373 0x12, 0x46, 0x34, 0x19, 0x72, 0x8c, 0xf5, 0x8c,
374 0xf6, 0x78, 0x98, 0xe0, 0x7c, 0xd3, 0xf4
376 "id-Gost28147-89-CryptoPro-B-ParamSet",
379 0x48, 0x0c, 0x74, 0x1b, 0x02, 0x6b, 0x55, 0xd5,
380 0xb6, 0x6d, 0xd7, 0x1d, 0x40, 0x48, 0x05, 0x6b,
381 0x6d, 0xeb, 0x3c, 0x29, 0x0f, 0x84, 0x80, 0x23,
382 0xee, 0x0d, 0x47, 0x77, 0xe3, 0xfe, 0x61, 0xc9
386 0x1f, 0x3f, 0x82, 0x1e, 0x0d, 0xd8, 0x1e, 0x22
389 0x23, 0xc6, 0x7f, 0x20, 0xa1, 0x23, 0x58, 0xbc,
390 0x7b, 0x05, 0xdb, 0x21, 0x15, 0xcf, 0x96, 0x41,
391 0xc7, 0x88, 0xef, 0x76, 0x5c, 0x49, 0xdb, 0x42,
392 0xbf, 0xf3, 0xc0, 0xf5, 0xbd, 0x5d, 0xd9, 0x8e,
393 0xaf, 0x3d, 0xf4, 0xe4, 0xda, 0x88, 0xbd, 0xbc,
394 0x47, 0x5d, 0x76, 0x07, 0xc9, 0x5f, 0x54, 0x1d,
395 0x1d, 0x6a, 0xa1, 0x2e, 0x18, 0xd6, 0x60, 0x84,
396 0x02, 0x18, 0x37, 0x92, 0x92, 0x15, 0xab, 0x21,
397 0xee, 0x21, 0xcc, 0x71, 0x6e, 0x51, 0xd9, 0x2b,
398 0xcc, 0x81, 0x97, 0x3f, 0xeb, 0x45, 0x99, 0xb8,
399 0x1b, 0xda, 0xff, 0x90, 0xd3, 0x41, 0x06, 0x9c,
400 0x3f, 0xfb, 0xe4, 0xb2, 0xdc, 0xc9, 0x03, 0x0d,
401 0xa7, 0xae, 0xd7, 0x7d, 0x02, 0xb8, 0x32, 0xab,
402 0xf3, 0x65, 0xa3, 0x65, 0x6c, 0x4e, 0xe4, 0xa2,
403 0x5e, 0x9e, 0xee, 0xcd, 0xde, 0x79, 0x36, 0x6b,
404 0x1b, 0xe1, 0x3c, 0xdf, 0x10, 0xad, 0x4f, 0x02,
405 0xe1, 0x14, 0xaa, 0x09, 0xb4, 0x0b, 0x76, 0xeb,
406 0x69, 0x38, 0x20, 0x02, 0xcb, 0x8e, 0xc0, 0xdf,
407 0xca, 0x48, 0x74, 0xc3, 0x31, 0xad, 0x42, 0x2c,
408 0x51, 0x9b, 0xd0, 0x6a, 0xc1, 0x36, 0xd7, 0x21,
409 0xdf, 0xb0, 0x45, 0xba, 0xca, 0x7f, 0x35, 0x20,
410 0x28, 0xbb, 0xc1, 0x76, 0xfd, 0x43, 0x5d, 0x23,
411 0x7d, 0x31, 0x84, 0x1a, 0x97, 0x4d, 0x83, 0xaa,
412 0x7e, 0xf1, 0xc4, 0xe6, 0x83, 0xac, 0x0d, 0xef,
413 0xef, 0x3c, 0xa4, 0x7c, 0x48, 0xe4, 0xc8, 0xca,
414 0x0d, 0x7d, 0xea, 0x7c, 0x45, 0xd7, 0x73, 0x50,
415 0x25, 0x1d, 0x01, 0xc4, 0x02, 0x1a, 0xcd, 0xe0,
416 0x38, 0x5b, 0xa8, 0x5a, 0x16, 0x9a, 0x10, 0x59,
417 0x74, 0xd7, 0x19, 0xc6, 0xf3, 0xb5, 0x17, 0xf6,
418 0x59, 0x8d, 0x62, 0xaf, 0x44, 0xe8, 0xdc, 0xe9,
419 0xc1, 0x76, 0xf1, 0xd0, 0xbd, 0x29, 0xd7, 0xec,
420 0x1d, 0xac, 0x57, 0xdb, 0x1a, 0x3f, 0xd8, 0xf6,
421 0x6e, 0xb6, 0xe6, 0xdf, 0x36, 0xe7, 0x89, 0xce,
422 0x56, 0x35, 0x43, 0x1c, 0x7d, 0x57, 0x79, 0x0e,
423 0xd8, 0xf4, 0xd7, 0xa7, 0x0d, 0xc6, 0x8f, 0x91,
424 0x66, 0x67, 0x82, 0x0f, 0x49, 0xc9, 0xc5, 0x65,
425 0x81, 0xa1, 0x39, 0x5a, 0x53, 0x9f, 0x02, 0xa5,
426 0xd5, 0x36, 0x22, 0xa8, 0xa8, 0x1c, 0x37, 0x0e,
427 0x76, 0x46, 0xdf, 0xbd, 0x6a, 0xdb, 0xfc, 0x1b,
428 0xbd, 0x10, 0xb8, 0xb1, 0xbc, 0x72, 0x4c, 0x58,
429 0x4a, 0xda, 0x6d, 0x66, 0x00, 0xda, 0x7a, 0x66,
430 0xa0, 0xe7, 0x3b, 0x39, 0xa3, 0xf7, 0x05, 0x07,
431 0xfa, 0x21, 0x4b, 0xc7, 0x94, 0xc0, 0xd3, 0x7b,
432 0x19, 0x02, 0x5d, 0x4a, 0x10, 0xf1, 0xc2, 0x0f,
433 0x19, 0x68, 0x27, 0xc7, 0x7d, 0xbf, 0x55, 0x03,
434 0x57, 0x7d, 0xaf, 0x77, 0xae, 0x80, 0x2f, 0x7a,
435 0xe6, 0x1f, 0x4b, 0xdc, 0x15, 0x18, 0xc0, 0x62,
436 0xa1, 0xe8, 0xd9, 0x1c, 0x9e, 0x8c, 0x96, 0x39,
437 0xc1, 0xc4, 0x88, 0xf7, 0x0c, 0xe1, 0x04, 0x84,
438 0x68, 0x51, 0xce, 0xf1, 0x90, 0xda, 0x7f, 0x76,
439 0xc8, 0xc0, 0x88, 0xef, 0x8e, 0x15, 0x25, 0x3e,
440 0x7b, 0xe4, 0x79, 0xb5, 0x66, 0x2d, 0x9c, 0xd1,
441 0x13, 0xda, 0xd0, 0xd5, 0x46, 0xd5, 0x8d, 0x46,
442 0x18, 0x07, 0xee, 0xd8, 0xc9, 0x64, 0xe3, 0xbe,
443 0x0e, 0x68, 0x27, 0x09, 0x96, 0x26, 0xf6, 0xe2,
444 0x19, 0x61, 0x3f, 0xf4, 0x58, 0x27, 0x0a, 0xeb,
445 0xce, 0x7c, 0xb6, 0x68, 0x92, 0xe7, 0x12, 0x3b,
446 0x31, 0xd4, 0x48, 0xdf, 0x35, 0x8d, 0xf4, 0x86,
447 0x42, 0x2a, 0x15, 0x4b, 0xe8, 0x19, 0x1f, 0x26,
448 0x65, 0x9b, 0xa8, 0xda, 0x4b, 0x79, 0x1f, 0x8e,
449 0xe6, 0x13, 0x7e, 0x49, 0x8f, 0xc1, 0xce, 0xdc,
450 0x5e, 0x64, 0x74, 0xce, 0x02, 0x78, 0xe0, 0xcf,
451 0xa0, 0xed, 0x5e, 0x31, 0x74, 0xd1, 0xd0, 0xb4,
452 0xee, 0x70, 0x19, 0x14, 0x3c, 0x8f, 0x16, 0xa6,
453 0xcf, 0x12, 0x93, 0x15, 0x88, 0xeb, 0x91, 0x65,
454 0x76, 0x98, 0xfd, 0xa1, 0x94, 0x30, 0xba, 0x43,
455 0x62, 0x65, 0x40, 0x04, 0x77, 0x9e, 0xd6, 0xab,
456 0x8b, 0x0d, 0x93, 0x80, 0x50, 0x5f, 0xa2, 0x76,
457 0x20, 0xa7, 0xd6, 0x9c, 0x27, 0x15, 0x27, 0xbc,
458 0xa5, 0x5a, 0xbf, 0xe9, 0x92, 0x82, 0x05, 0xa8,
459 0x41, 0xe9, 0xb5, 0x60, 0xd5, 0xc0, 0xd7, 0x4b,
460 0xad, 0x38, 0xb2, 0xe9, 0xd1, 0xe5, 0x51, 0x5f,
461 0x24, 0x78, 0x24, 0x9a, 0x23, 0xd2, 0xc2, 0x48,
462 0xbd, 0x0e, 0xf1, 0x37, 0x72, 0x91, 0x87, 0xb0,
463 0x4e, 0xbd, 0x99, 0x6b, 0x2c, 0x01, 0xb6, 0x79,
464 0x69, 0xec, 0x0c, 0xed, 0xe5, 0x3f, 0x50, 0x64,
465 0x7c, 0xb9, 0xdd, 0xe1, 0x92, 0x81, 0xb5, 0xd0,
466 0xcb, 0x17, 0x83, 0x86, 0x8b, 0xea, 0x4f, 0x93,
467 0x08, 0xbc, 0x22, 0x0c, 0xef, 0xe8, 0x0d, 0xf5,
468 0x9e, 0x23, 0xe1, 0xf9, 0xb7, 0x6b, 0x45, 0x0b,
469 0xcb, 0xa9, 0xb6, 0x4d, 0x28, 0x25, 0xba, 0x3e,
470 0x86, 0xf2, 0x75, 0x47, 0x5d, 0x9d, 0x6b, 0xf6,
471 0x8a, 0x05, 0x58, 0x73, 0x3d, 0x00, 0xde, 0xfd,
472 0x69, 0xb1, 0x61, 0x16, 0xf5, 0x2e, 0xb0, 0x9f,
473 0x31, 0x6a, 0x00, 0xb9, 0xef, 0x71, 0x63, 0x47,
474 0xa3, 0xca, 0xe0, 0x40, 0xa8, 0x7e, 0x02, 0x04,
475 0xfe, 0xe5, 0xce, 0x48, 0x73, 0xe3, 0x94, 0xcf,
476 0xe2, 0xff, 0x29, 0x7e, 0xf6, 0x32, 0xbb, 0xb7,
477 0x55, 0x12, 0x21, 0x7a, 0x9c, 0x75, 0x04, 0x0c,
478 0xb4, 0x7c, 0xb0, 0x3d, 0x40, 0xb3, 0x11, 0x9a,
479 0x7a, 0x9a, 0x13, 0xfb, 0x77, 0xa7, 0x51, 0x68,
480 0xf7, 0x05, 0x47, 0x3b, 0x0f, 0x52, 0x5c, 0xe6,
481 0xc2, 0x99, 0x3a, 0x37, 0x54, 0x5c, 0x4f, 0x2b,
482 0xa7, 0x01, 0x08, 0x74, 0xbc, 0x91, 0xe3, 0xe2,
483 0xfe, 0x65, 0x94, 0xfd, 0x3d, 0x18, 0xe0, 0xf0,
484 0x62, 0xed, 0xc2, 0x10, 0x82, 0x9c, 0x58, 0x7f,
485 0xb2, 0xa3, 0x87, 0x8a, 0x74, 0xd9, 0xc1, 0xfb,
486 0x84, 0x28, 0x17, 0xc7, 0x2b, 0xcb, 0x53, 0x1f,
487 0x4e, 0x8a, 0x82, 0xfc, 0xb4, 0x3f, 0xc1, 0x47,
488 0x25, 0xf3, 0x21, 0xdc, 0x4c, 0x2d, 0x08, 0xfa,
489 0xe7, 0x0f, 0x03, 0xa9, 0x68, 0xde, 0x6b, 0x41,
490 0xa0, 0xf9, 0x41, 0x6c, 0x57, 0x4d, 0x3a, 0x0e,
491 0xea, 0x51, 0xca, 0x9f, 0x97, 0x11, 0x7d, 0xf6,
492 0x8e, 0x88, 0x63, 0x67, 0xc9, 0x65, 0x13, 0xca,
493 0x38, 0xed, 0x35, 0xbe, 0xf4, 0x27, 0xa9, 0xfc,
494 0xa9, 0xe6, 0xc3, 0x40, 0x86, 0x08, 0x39, 0x72,
495 0x37, 0xee, 0xb2, 0x87, 0x09, 0x96, 0xb7, 0x40,
496 0x87, 0x36, 0x92, 0xc1, 0x5d, 0x6a, 0x2c, 0x43,
497 0xca, 0x25, 0xc8, 0x35, 0x37, 0x2d, 0xb5, 0xa9,
498 0x27, 0x44, 0x50, 0xf2, 0x6d, 0x22, 0x75, 0x41,
499 0x77, 0x2a, 0xdb, 0xb1, 0x8c, 0x6d, 0x05, 0xe8,
500 0xc9, 0x99, 0xc7, 0x08, 0xf9, 0x14, 0x8f, 0x78,
501 0xa9, 0x8f, 0xc2, 0x5a, 0x7a, 0x65, 0xc5, 0xd8,
502 0x86, 0xbb, 0x72, 0x69, 0x6b, 0x6b, 0x45, 0x83,
503 0x5b, 0xb1, 0xf7, 0xcd, 0x16, 0x73, 0xee, 0xe9,
504 0x80, 0x85, 0xfe, 0x8e, 0xe1, 0xae, 0x53, 0x8f,
505 0xde, 0xbe, 0x48, 0x8b, 0x59, 0xef, 0xf6, 0x7e,
506 0xd8, 0xb5, 0xa8, 0x47, 0xc0, 0x4e, 0x15, 0x58,
507 0xca, 0xd3, 0x2f, 0xf8, 0x6c, 0xa6, 0x3d, 0x78,
508 0x4d, 0x7a, 0x54, 0xd6, 0x10, 0xe5, 0xcc, 0x05,
509 0xe2, 0x29, 0xb5, 0x86, 0x07, 0x39, 0x7d, 0x78,
510 0x8e, 0x5a, 0x8f, 0x83, 0x4c, 0xe7, 0x3d, 0x68,
511 0x3e, 0xe5, 0x02, 0xe6, 0x64, 0x4f, 0x5e, 0xb4,
512 0x49, 0x77, 0xf0, 0xc0, 0xfa, 0x6f, 0xc8, 0xfb,
513 0x9f, 0x84, 0x6f, 0x55, 0xfb, 0x30, 0x5e, 0x89,
514 0x93, 0xa9, 0xf3, 0xa6, 0xa3, 0xd7, 0x26, 0xbb,
515 0xd8, 0xa8, 0xd9, 0x95, 0x1d, 0xfe, 0xfc, 0xd7,
516 0xa8, 0x93, 0x66, 0x2f, 0x04, 0x53, 0x06, 0x64,
517 0x7f, 0x31, 0x29, 0xae, 0xb7, 0x9f, 0xba, 0xc4,
518 0x6d, 0x68, 0xd1, 0x24, 0x32, 0xf4, 0x11
521 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
524 0x07, 0x9c, 0x91, 0xbe
526 "id-Gost28147-89-CryptoPro-C-ParamSet",
529 0x77, 0xc3, 0x45, 0x8e, 0xf6, 0x42, 0xe7, 0x04,
530 0x8e, 0xfc, 0x08, 0xe4, 0x70, 0x96, 0xd6, 0x05,
531 0x93, 0x59, 0x02, 0x6d, 0x6f, 0x97, 0xca, 0xe9,
532 0xcf, 0x89, 0x44, 0x4b, 0xde, 0x6c, 0x22, 0x1d
536 0x43, 0x7c, 0x3e, 0x8e, 0x2f, 0x2a, 0x00, 0x98
539 0x19, 0x35, 0x81, 0x34
542 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
545 0x2f, 0x31, 0xd8, 0x83, 0xb4, 0x20, 0xe8, 0x6e,
548 "id-Gost28147-89-CryptoPro-D-ParamSet",
551 0x38, 0x9f, 0xe8, 0x37, 0xff, 0x9c, 0x5d, 0x29,
552 0xfc, 0x48, 0x55, 0xa0, 0x87, 0xea, 0xe8, 0x40,
553 0x20, 0x87, 0x5b, 0xb2, 0x01, 0x15, 0x55, 0xa7,
554 0xe3, 0x2d, 0xcb, 0x3d, 0xd6, 0x59, 0x04, 0x73
558 0xc5, 0xa2, 0xd2, 0x1f, 0x2f, 0xdf, 0xb8, 0xeb
561 0x6d, 0xa4, 0xed, 0x40, 0x08, 0x88, 0x71, 0xad,
565 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
568 "id-Gost28147-89-CryptoPro-A-ParamSet",
571 0x61, 0x58, 0x44, 0x5a, 0x41, 0xf6, 0xc7, 0x0f,
572 0x6b, 0xdb, 0x51, 0x91, 0x6a, 0xf6, 0x81, 0x30,
573 0x8c, 0xa7, 0x98, 0xdd, 0x38, 0x35, 0x8a, 0x60,
574 0x85, 0xb4, 0xf0, 0xf9, 0x43, 0xa2, 0x7d, 0x9a
578 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
581 0x1c, 0x16, 0xa0, 0xe9, 0x63, 0x94, 0xfe, 0x38,
582 0x37, 0xa7, 0x9b, 0x70, 0x25, 0x2e, 0xd6, 0x00
585 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
588 "id-Gost28147-89-CryptoPro-A-ParamSet",
591 0xae, 0x57, 0xa2, 0xdd, 0xa4, 0xef, 0x4f, 0x96,
592 0xb8, 0x94, 0xa5, 0xd1, 0x1b, 0xc8, 0x9b, 0x42,
593 0xa5, 0x24, 0xcc, 0x89, 0x5c, 0xb8, 0x92, 0x52,
594 0xc1, 0x12, 0x6a, 0xb0, 0x9a, 0x26, 0xe8, 0x06
598 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
601 0x2e, 0x62, 0xb0, 0x2e, 0xc7, 0x87, 0x4b, 0x29,
602 0x33, 0x16, 0x6b, 0xb4, 0xd6, 0x61, 0x66, 0xd9
605 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
608 0x3d, 0x0b, 0x69, 0xf7, 0xa8, 0xe4, 0xfc, 0x99,
609 0x22, 0x2e, 0xee, 0xd1, 0x63, 0x12, 0xfe, 0xa8,
610 0x9d, 0xcb, 0x6c, 0x4d, 0x48, 0x8c, 0xe8, 0xbd,
611 0x8b, 0x60, 0xf1, 0xbf, 0x7b, 0xe3, 0x79, 0xd5,
612 0x2b, 0x25, 0x97, 0x13, 0xef, 0x35, 0xda, 0xf4,
613 0xbc, 0x77, 0xce, 0xea, 0xe9, 0x3f, 0xa4, 0xb6,
614 0x01, 0xd5, 0x73, 0x29, 0x58, 0xda, 0xd7, 0x67,
615 0x17, 0xac, 0xe4, 0x75, 0x2f, 0x57, 0x23, 0xac,
616 0x96, 0x21, 0xc7, 0x62, 0x2d, 0xf7, 0x32, 0xb5,
617 0x44, 0x5f, 0x72, 0xb1, 0x5f, 0xba, 0x1b, 0x1e,
618 0xdb, 0x4a, 0x09, 0x8c, 0x92, 0x61, 0xa2, 0xb0,
619 0x49, 0x68, 0xe5, 0xb3, 0xa2, 0x8f, 0x13, 0x4b,
620 0xf5, 0x4d, 0x84, 0xda, 0xab, 0xa0, 0xb6, 0xd1,
621 0x5a, 0x63, 0x19, 0xe8, 0xa2, 0x09, 0xf6, 0x76,
622 0x6f, 0x9b, 0x48, 0x0a, 0x15, 0x5d, 0xb7, 0x20,
623 0x21, 0x9a, 0x2e, 0xb9, 0x6d, 0xfa, 0x1e, 0xc2,
624 0x0e, 0xef, 0x15, 0xab, 0x59, 0x01, 0xfe, 0x43,
625 0x90, 0xf2, 0x62, 0xca, 0x4a, 0x9a, 0x48, 0x38,
626 0xab, 0x6f, 0x9d, 0x21, 0xb3, 0xad, 0xa7, 0x60,
627 0x46, 0xe3, 0xef, 0xd0, 0xe3, 0x1d, 0xc5, 0xe1,
628 0xb8, 0xa1, 0xe2, 0x99, 0x20, 0xc5, 0x76, 0xcc,
629 0xaa, 0x8a, 0xa9, 0x45, 0x55, 0xa0, 0x78, 0x00,
630 0x64, 0xde, 0xcf, 0x5b, 0xdf, 0x26, 0x48, 0xcd,
631 0xba, 0x8a, 0xb5, 0xfb, 0xfd, 0x4a, 0xd5, 0xc4,
632 0xe0, 0x43, 0xa6, 0x71, 0x90, 0xa4, 0x8b, 0xca,
633 0x2e, 0x88, 0x7b, 0xac, 0xb2, 0xdc, 0xf2, 0x01,
634 0xcb, 0xda, 0x6e, 0x91, 0x27, 0x28, 0x44, 0x88,
635 0x9a, 0xd2, 0x12, 0xf1, 0xa6, 0xf5, 0xb7, 0x61,
636 0xce, 0x79, 0x62, 0x52, 0x3c, 0xe6, 0x14, 0x73,
637 0xd1, 0x41, 0x92, 0x50, 0xbd, 0xdc, 0x3b, 0xd0,
638 0xa7, 0x11, 0x8c, 0x3a, 0xe4, 0x2d, 0xf2, 0x52,
639 0xd3, 0x2f, 0x7c, 0x8e, 0x54, 0x90, 0x4e, 0x23,
640 0xae, 0xb3, 0xa0, 0xf3, 0x25, 0x7e, 0x66, 0xaa,
641 0x0f, 0x6f, 0x81, 0x72, 0x77, 0xbb, 0xd3, 0x47,
642 0xe8, 0x05, 0xff, 0xe1, 0x5b, 0xc9, 0x37, 0x50,
643 0x33, 0x49, 0x17, 0xaf, 0xab, 0x1d, 0xe1, 0x15,
644 0xf2, 0xe5, 0x98, 0x5e, 0x2d, 0x05, 0x1f, 0x0d,
645 0x55, 0x97, 0xed, 0xff, 0x5e, 0xe0, 0x0f, 0xc3,
646 0x9c, 0xbd, 0x82, 0xc2, 0x06, 0xbe, 0x45, 0x66,
647 0xae, 0x33, 0xbe, 0x28, 0x48, 0xe9, 0x2d, 0x1a,
648 0xe6, 0x65, 0x8e, 0xdf, 0x76, 0x03, 0x73, 0x4b,
649 0xc0, 0x80, 0x71, 0xf9, 0xac, 0xba, 0xa0, 0xb0,
650 0x19, 0x1a, 0x0a, 0xd4, 0x35, 0x12, 0x88, 0x76,
651 0x05, 0x75, 0x8f, 0x7c, 0xb5, 0xf0, 0x19, 0x75,
652 0x6d, 0x05, 0xcb, 0x0d, 0xbc, 0x8d, 0xe9, 0xf0,
653 0xd4, 0xdb, 0x3c, 0x3c, 0x29, 0x8e, 0x2c, 0x32,
654 0x1d, 0xf7, 0xb6, 0x49, 0xcf, 0xdb, 0x63, 0xee,
655 0x3c, 0xfa, 0x33, 0x73, 0x6f, 0xe4, 0x97, 0x4e,
656 0x2f, 0xc9, 0x4c, 0x5c, 0x65, 0xfe, 0xea, 0xfb,
657 0xc6, 0xdd, 0xc1, 0x1c, 0x47, 0x3f, 0xf4, 0x50,
658 0x2f, 0xde, 0x1b, 0x5b, 0x0b, 0x16, 0xca, 0xb6,
659 0x46, 0x44, 0xf2, 0xc1, 0x0d, 0xa1, 0x1d, 0xa6,
660 0xdb, 0xf0, 0x3d, 0xb1, 0x6c, 0x05, 0x31, 0x85,
661 0x8e, 0x74, 0xae, 0xf2, 0x39, 0x26, 0xf7, 0xc1,
662 0xe7, 0x4c, 0xdd, 0x9d, 0x40, 0xb8, 0xf3, 0xc5,
663 0xc2, 0x16, 0x64, 0x6b, 0xaa, 0xdb, 0x4b, 0x82,
664 0x5c, 0xd3, 0x02, 0xd3, 0x8f, 0x26, 0x79, 0x8d,
665 0xb0, 0x78, 0x70, 0x19, 0x58, 0x0c, 0xb4, 0x31,
666 0x88, 0x44, 0x1c, 0x91, 0x6f, 0xf4, 0x52, 0x39,
667 0xa8, 0xf5, 0xc0, 0x1b, 0xfe, 0xf2, 0x0e, 0x4b,
668 0xac, 0x0a, 0xc2, 0x7e, 0x9c, 0x9b, 0xeb, 0x5d,
669 0x4e, 0x4f, 0x42, 0xd8, 0x71, 0x0a, 0x97, 0x27,
670 0x03, 0x14, 0x96, 0xa6, 0x3d, 0x04, 0xea, 0x9f,
671 0x14, 0x14, 0x27, 0x4c, 0xd9, 0xa2, 0x89, 0x5f,
672 0x65, 0x4a, 0xe1, 0x9d, 0x2c, 0xb8, 0xf8, 0xd4,
673 0x8f, 0x2a, 0x57, 0x36, 0xcc, 0x06, 0x9c, 0x2c,
674 0xc5, 0x13, 0x16, 0xdf, 0xfc, 0xae, 0x22, 0x16,
675 0xa8, 0x2b, 0x71, 0x6f, 0x1d, 0xb3, 0x47, 0x54,
676 0x3f, 0x2d, 0x0a, 0x68, 0x9f, 0x2e, 0xf6, 0x90,
677 0xd8, 0xa1, 0x21, 0x09, 0xd4, 0x97, 0xb9, 0x7b,
678 0x7f, 0x9b, 0x6a, 0xed, 0xd1, 0xf0, 0xe3, 0xb6,
679 0x28, 0xc7, 0x62, 0x82, 0x00, 0xc9, 0x38, 0xa1,
680 0x82, 0x78, 0xce, 0x87, 0xc8, 0x53, 0xac, 0x4f,
681 0x2e, 0x31, 0xb9, 0x50, 0x7f, 0x36, 0x00, 0x4a,
682 0x32, 0xe6, 0xd8, 0xbb, 0x59, 0x45, 0x0e, 0x91,
683 0x1b, 0x38, 0xa9, 0xbc, 0xb9, 0x5e, 0x6c, 0x6a,
684 0x9c, 0x03, 0x01, 0x1c, 0xde, 0xe8, 0x1f, 0x1e,
685 0xe3, 0xde, 0x25, 0xa2, 0x56, 0x79, 0xe1, 0xbd,
686 0x58, 0xc4, 0x93, 0xe6, 0xd0, 0x8a, 0x4d, 0x08,
687 0xab, 0xf7, 0xaa, 0xc3, 0x7d, 0xc1, 0xee, 0x68,
688 0x37, 0xbc, 0x78, 0x0b, 0x19, 0x68, 0x2b, 0x2b,
689 0x2e, 0x6d, 0xc4, 0x6f, 0xaa, 0x3b, 0xc6, 0x19,
690 0xcb, 0xf1, 0x58, 0xb9, 0x60, 0x85, 0x45, 0xae,
691 0x52, 0x97, 0xba, 0x24, 0x32, 0x13, 0x72, 0x16,
692 0x6e, 0x7b, 0xc1, 0x98, 0xac, 0xb1, 0xed, 0xb4,
693 0xcc, 0x6c, 0xcf, 0x45, 0xfc, 0x50, 0x89, 0x80,
694 0x8e, 0x7a, 0xa4, 0xd3, 0x64, 0x50, 0x63, 0x37,
695 0xc9, 0x6c, 0xf1, 0xc4, 0x3d, 0xfb, 0xde, 0x5a,
696 0x5c, 0xa8, 0x21, 0x35, 0xe6, 0x2e, 0x8c, 0x2a,
697 0x3c, 0x12, 0x17, 0x79, 0x9a, 0x0d, 0x2e, 0x79,
698 0xeb, 0x67, 0x1f, 0x2b, 0xf8, 0x6e, 0xca, 0xc1,
699 0xfa, 0x45, 0x18, 0x9e, 0xdf, 0x6a, 0xe6, 0xcb,
700 0xe9, 0x5c, 0xc3, 0x09, 0xaf, 0x93, 0x58, 0x13,
701 0xbf, 0x90, 0x84, 0x87, 0x75, 0xd6, 0x82, 0x28,
702 0x8d, 0xe7, 0x2f, 0xa3, 0xfb, 0x97, 0x74, 0x2a,
703 0x73, 0x04, 0x82, 0x06, 0x76, 0x69, 0xb1, 0x0b,
704 0x19, 0xfc, 0xae, 0xb3, 0xdd, 0x2a, 0xe5, 0xc1,
705 0x05, 0xd8, 0x80, 0x95, 0x22, 0x90, 0x71, 0xfc,
706 0xc2, 0x92, 0x42, 0xfd, 0xf1, 0x70, 0xb4, 0x68,
707 0x88, 0xa4, 0x9e, 0x0a, 0x24, 0x40, 0x13, 0xc8,
708 0xa2, 0x56, 0x4f, 0x39, 0xe6, 0x06, 0xf1, 0xdc,
709 0xf5, 0x13, 0x0e, 0xad, 0x9c, 0x8b, 0xaf, 0xe9,
710 0xe3, 0x88, 0x72, 0xff, 0xa0, 0x6d, 0xda, 0x08,
711 0x70, 0xb9, 0x2e, 0x83, 0xc5, 0xbb, 0x32, 0xa5,
712 0x74, 0xc7, 0xfb, 0x7b, 0x76, 0xaf, 0x02, 0xbb,
713 0x2b, 0xb8, 0x5e, 0x65, 0x02, 0xfe, 0x0e, 0xa0,
714 0x99, 0xce, 0x01, 0x3b, 0x35, 0xe1, 0xb0, 0x22,
715 0xe5, 0x94, 0xbd, 0xdd, 0x8e, 0xbb, 0xf6, 0x75,
716 0xbf, 0xbf, 0xee, 0x7a, 0xb1, 0x58, 0xb4, 0x81,
717 0xb8, 0x39, 0x3e, 0xb6, 0x1e, 0xde, 0xda, 0x1b,
718 0xd5, 0xf7, 0xdd, 0x7d, 0x65, 0x9c, 0xaa, 0x56,
719 0x93, 0xb8, 0xaf, 0x48, 0x53, 0xc7, 0x22, 0xe4,
720 0x1c, 0xdf, 0xe9, 0x79, 0xb4, 0x20, 0x89, 0xcc,
721 0x2a, 0x79, 0x2c, 0x09, 0xbe, 0x78, 0xcf, 0xcc,
722 0xf2, 0x90, 0xd6, 0x65, 0xc5, 0x29, 0xfc, 0xda,
723 0x69, 0xfc, 0xc0, 0xd6, 0x70, 0x99, 0x61, 0x3f,
724 0x60, 0x02, 0xd8, 0x12, 0x22, 0xc8, 0x34, 0xc6,
725 0x3b, 0xb3, 0xc2, 0x33, 0xa1, 0x5c, 0x8f, 0x4c,
726 0xd1, 0x52, 0x72, 0xf2, 0x42, 0x05, 0x8e, 0x18,
727 0x1f, 0x16, 0xda, 0xb8, 0x53, 0xa1, 0x5f, 0x01,
728 0x32, 0x1b, 0x90, 0xb3, 0x53, 0x9b, 0xd0, 0x85,
729 0x61, 0x2d, 0x17, 0xed, 0x0a, 0xa4, 0xa5, 0x27,
730 0x09, 0x75, 0x7c, 0xbc, 0x30, 0xf7, 0x5e, 0x59,
731 0x9a, 0x07, 0x96, 0x84, 0x28, 0x86, 0x4b, 0xa7,
732 0x22, 0x35, 0x28, 0xc7, 0xed, 0x0d, 0xc3, 0xce,
733 0x98, 0xcc, 0x2d, 0xec, 0xd4, 0x98, 0x09, 0x8e,
734 0x52, 0x5f, 0x2b, 0x9a, 0x13, 0xbe, 0x99, 0x16,
735 0x73, 0xd1, 0x1f, 0x81, 0xe5, 0xa2, 0x08, 0x78,
736 0xcb, 0x0c, 0x20, 0xd4, 0xa5, 0xea, 0x4b, 0x5b,
737 0x95, 0x5a, 0x92, 0x9a, 0x52
739 "id-Gost28147-89-CryptoPro-A-ParamSet",
742 0x1b, 0x5d, 0xdb, 0x77, 0xcf, 0xf9, 0xec, 0x95,
743 0x5e, 0xcc, 0x67, 0x9f, 0x5d, 0x28, 0xad, 0x4a,
744 0x27, 0xf4, 0x32, 0xc6, 0xb2, 0xcb, 0xb1, 0x45,
745 0x6a, 0x88, 0x14, 0x0c, 0x9b, 0x9b, 0x5f, 0x48
749 0x71, 0x58, 0x8c, 0xe1, 0x55, 0xf4, 0xf6, 0xb3
752 0x8e, 0xcd, 0x8f, 0xc8, 0xac, 0xe1, 0x15, 0x48,
753 0x2d, 0xae, 0x24, 0x8a, 0xc7, 0xfb, 0xba, 0x0f,
754 0x1d, 0x8a, 0x95, 0xa2, 0x43, 0xef, 0xcb, 0xdc,
755 0x59, 0x57, 0xa7, 0xc7, 0x0e, 0xe3, 0xe2, 0xb9,
756 0x0d, 0x86, 0x29, 0x62, 0xcb, 0x83, 0x4d, 0x07,
757 0x0c, 0x40, 0xd4, 0x7b, 0x2e, 0xca, 0xba, 0xbf,
758 0x4a, 0x60, 0x3b, 0x31, 0x98, 0xc8, 0x88, 0x47,
759 0xd9, 0x82, 0xab, 0xfc, 0x8f, 0x48, 0xe2, 0x46,
760 0xab, 0xd3, 0xa1, 0xab, 0x8a, 0x05, 0x22, 0x8c,
761 0xf4, 0xec, 0x9a, 0x1e, 0x76, 0xab, 0x1a, 0x60,
762 0xd9, 0x25, 0x6b, 0xb8, 0x56, 0xe5, 0xb2, 0xea,
763 0x10, 0xf3, 0x62, 0x04, 0x32, 0x5e, 0xaa, 0x3b,
764 0x7b, 0x57, 0xbc, 0x3b, 0x8b, 0x43, 0x47, 0xf2,
765 0xd5, 0x03, 0x7e, 0x51, 0x01, 0xff, 0x77, 0x28,
766 0xca, 0x90, 0xa3, 0xfe, 0x7e, 0x2e, 0x70, 0x16,
767 0x75, 0x18, 0x44, 0xf0, 0x1b, 0x85, 0x05, 0xea,
768 0xe3, 0x21, 0xf7, 0x26, 0x86, 0x76, 0x3c, 0x67,
769 0x9d, 0xfc, 0xbc, 0x10, 0x7f, 0x77, 0xe4, 0xed,
770 0xd3, 0x12, 0xf8, 0x83, 0x00, 0x1f, 0x4b, 0x92,
771 0x95, 0x92, 0x5c, 0xf3, 0x5a, 0xf3, 0xb7, 0xd0,
772 0xa9, 0x5f, 0xf2, 0x18, 0xc4, 0x66, 0x62, 0xc1,
773 0x84, 0x0e, 0x66, 0xe8, 0x80, 0x7d, 0x1f, 0xf0,
774 0xba, 0x01, 0x9b, 0x71, 0xae, 0x93, 0xcc, 0x27,
775 0x54, 0x34, 0x9a, 0xbd, 0xca, 0xee, 0x52, 0x09,
776 0x92, 0x9d, 0xb0, 0xd5, 0xd9, 0xba, 0x2f, 0xb9,
777 0x96, 0xdc, 0xfa, 0xbd, 0xce, 0xea, 0x1a, 0x7b,
778 0x9a, 0x1d, 0x13, 0xa7, 0x11, 0xe2, 0x9a, 0x64,
779 0xf6, 0xd3, 0xee, 0xc6, 0x33, 0xb7, 0x6e, 0xef,
780 0x25, 0x9e, 0x1e, 0x7c, 0xe3, 0x1f, 0x2c, 0x6e,
781 0xa9, 0xc0, 0xf8, 0xc1, 0xbf, 0x3b, 0xf8, 0x34,
782 0x03, 0x9b, 0xa1, 0x40, 0x5b, 0x0c, 0x3c, 0x09,
783 0x66, 0x9d, 0x63, 0xe2, 0xe2, 0x04, 0x8f, 0x06,
784 0x84, 0x74, 0x68, 0xb2, 0x5c, 0x3b, 0x4c, 0xad,
785 0x0b, 0x3f, 0x03, 0xb3, 0x07, 0x8a, 0x64, 0xa7,
786 0x36, 0x56, 0x26, 0x39, 0x66, 0xda, 0xe9, 0x6d,
787 0x1b, 0xd5, 0x88, 0xe8, 0x5c, 0xaf, 0x5a, 0x4c,
788 0x49, 0xf7, 0xf5, 0xb7, 0x78, 0xf0, 0xde, 0xec,
789 0xcd, 0x16, 0x23, 0x9e, 0x8c, 0x13, 0xbe, 0x6b,
790 0x6f, 0x9b, 0x07, 0xe5, 0xbb, 0xcc, 0x3a, 0x1b,
791 0x6f, 0x43, 0xdf, 0xff, 0x46, 0x2a, 0xae, 0x47,
792 0x19, 0x18, 0x9a, 0x25, 0x09, 0xc9, 0x24, 0x40,
793 0x0c, 0x4b, 0xa7, 0xda, 0x5e, 0x0d, 0xee, 0xfa,
794 0x62, 0x45, 0x8e, 0xcc, 0x2f, 0x23, 0x08, 0x1d,
795 0x92, 0xf0, 0xfe, 0x82, 0x0f, 0xd7, 0x11, 0x60,
796 0x7e, 0x0b, 0x0b, 0x75, 0xf4, 0xf5, 0x3b, 0xc0,
797 0xa4, 0xe8, 0x72, 0xa5, 0xb6, 0xfa, 0x5a, 0xad,
798 0x5a, 0x4f, 0x39, 0xb5, 0xa2, 0x12, 0x96, 0x0a,
799 0x32, 0x84, 0xb2, 0xa1, 0x06, 0x68, 0x56, 0x57,
800 0x97, 0xa3, 0x7b, 0x22, 0x61, 0x76, 0x5d, 0x30,
801 0x1a, 0x31, 0xab, 0x99, 0x06, 0xc5, 0x1a, 0x96,
802 0xcf, 0xcf, 0x14, 0xff, 0xb2, 0xc4, 0xcc, 0x2b,
803 0xbf, 0x0c, 0x9d, 0x91, 0x8f, 0x79, 0x5b, 0xbc,
804 0xa9, 0x6b, 0x91, 0x6a, 0xb4, 0x93, 0x5c, 0x7b,
805 0x5d, 0xc2, 0x8a, 0x75, 0xc0, 0xc1, 0x08, 0xfa,
806 0x99, 0xf9, 0x4d, 0x5e, 0x0c, 0x06, 0x64, 0x60,
807 0xa9, 0x01, 0x4a, 0x34, 0x0f, 0x33, 0x84, 0x95,
808 0x69, 0x30, 0xc1, 0x1c, 0x36, 0xf8, 0xfc, 0x30,
809 0x23, 0xb2, 0x71, 0xe5, 0x52, 0x4d, 0x12, 0x1a,
810 0xc9, 0xbe, 0xee, 0xc9, 0xcb, 0x01, 0x85, 0xf3,
811 0xdb, 0x30, 0xf9, 0x41, 0xa9, 0x40, 0xb0, 0x06,
812 0x29, 0x77, 0xcd, 0xc5, 0xec, 0x58, 0x02, 0x48,
813 0x83, 0x53, 0x44, 0x6a, 0xd2, 0xca, 0x05, 0xd8,
814 0x5a, 0x08, 0xeb, 0xa9, 0xf4, 0xe6, 0xc7, 0x9d,
815 0xd5, 0x7b, 0x74, 0x0b, 0x31, 0xb7, 0xa5, 0x57,
816 0x7c, 0x7a, 0xfd, 0x1a, 0x0e, 0xd7, 0x97, 0x41,
817 0xbf, 0xdd, 0xc6, 0x19, 0x6c, 0x77, 0x8c, 0x18,
818 0x52, 0x57, 0x83, 0xba, 0x71, 0x25, 0xee, 0x39,
819 0xbb, 0xe2, 0x43, 0xa0, 0x14, 0xdc, 0x0e, 0x84,
820 0xb4, 0x2b, 0xde, 0x3e, 0xe5, 0x36, 0xb7, 0xa2,
821 0x92, 0x98, 0x05, 0xb8, 0x96, 0xe5, 0xd0, 0x8c,
822 0x08, 0x93, 0x35, 0xc2, 0x81, 0xe0, 0xfc, 0x59,
823 0x71, 0xe2, 0x44, 0x49, 0x5d, 0xda, 0xfb, 0x9c,
824 0xaa, 0x70, 0x9f, 0x43, 0xa8, 0xa5, 0xd9, 0x67,
825 0xd9, 0x8f, 0xa3, 0x1e, 0xbe, 0x0e, 0xec, 0xdf,
826 0x12, 0x2b, 0x6a, 0xe7, 0x1c, 0x12, 0x17, 0xe7,
827 0xc4, 0x6d, 0x50, 0xc9, 0x52, 0x7a, 0xd5, 0xe8,
828 0x7f, 0xbc, 0x07, 0x15, 0xac, 0xdb, 0x93, 0x66,
829 0xb1, 0xf0, 0xa7, 0x7b, 0x2f, 0xe9, 0xec, 0xd0,
830 0x47, 0x69, 0x59, 0x87, 0xf1, 0x4c, 0x3e, 0x4b,
831 0x9b, 0x11, 0x79, 0x13, 0xe4, 0x96, 0xf6, 0x56,
832 0x04, 0x6e, 0x0b, 0x33, 0xfc, 0x40, 0xf6, 0xc7,
833 0xc1, 0x43, 0xb1, 0xbf, 0x0e, 0xb3, 0x87, 0xfd,
834 0x0b, 0x1c, 0x63, 0x46, 0x3a, 0xd3, 0xa0, 0x17,
835 0x59, 0x25, 0x94, 0x6c, 0x9c, 0x3d, 0x0c, 0x81,
836 0xce, 0x82, 0x72, 0x42, 0x28, 0xf9, 0x37, 0x6a,
837 0x6d, 0xe4, 0x12, 0xf4, 0x21, 0xaa, 0xf7, 0xfe,
838 0x27, 0x55, 0x40, 0x1a, 0x14, 0xc3, 0x39, 0x5b,
839 0xbf, 0x63, 0xc2, 0x5f, 0x10, 0x1f, 0x14, 0x25,
840 0xd0, 0xce, 0xf3, 0x14, 0x48, 0x13, 0xa5, 0x0b,
841 0x4d, 0x38, 0xcf, 0x0d, 0x34, 0xc0, 0x0a, 0x11,
842 0xb4, 0xb5, 0x72, 0xc8, 0x4b, 0xc2, 0x6f, 0xe7,
843 0x9d, 0x93, 0xf7, 0xdf, 0xb8, 0x43, 0x72, 0x7e,
844 0xda, 0x3e, 0x20, 0x1f, 0xbc, 0x21, 0x2a, 0xce,
845 0x00, 0xfa, 0x96, 0x9f, 0x3d, 0xe5, 0x88, 0x96,
846 0xef, 0x29, 0x84, 0xdf, 0x6c, 0x1c, 0x96, 0xd8,
847 0x58, 0x47, 0xaa, 0x92, 0xf3, 0x07, 0xe5, 0xfb,
848 0xaf, 0xea, 0x95, 0x7e, 0x0b, 0x71, 0xcd, 0x81,
849 0x0f, 0xb7, 0x0a, 0x59, 0x8f, 0x31, 0x4d, 0xd1,
850 0xc3, 0xf3, 0x2f, 0x70, 0x5c, 0x59, 0x18, 0x97,
851 0xaf, 0x77, 0x95, 0x5e, 0xaf, 0x40, 0x06, 0x12,
852 0x81, 0x61, 0x86, 0x08, 0x4e, 0xbc, 0x89, 0x46,
853 0x07, 0x2e, 0x5b, 0x10, 0xaa, 0x12, 0xf0, 0xa7,
854 0x84, 0xe2, 0x9a, 0x08, 0xf1, 0xde, 0x59, 0xe3,
855 0x0e, 0x47, 0x4b, 0xff, 0xc3, 0xc9, 0x18, 0xaf,
856 0x95, 0x9c, 0x67, 0x2a, 0xde, 0x8a, 0x7a, 0x99,
857 0x04, 0xc4, 0xb8, 0x97, 0x4c, 0x04, 0x29, 0x71,
858 0x05, 0xda, 0xb3, 0xd6, 0xdb, 0x6c, 0x71, 0xe6,
859 0xe8, 0x03, 0xbf, 0x94, 0x7d, 0xde, 0x3d, 0xc8,
860 0x44, 0xfa, 0x7d, 0x62, 0xb4, 0x36, 0x03, 0xee,
861 0x36, 0x52, 0x64, 0xb4, 0x85, 0x6d, 0xd5, 0x78,
862 0xf0, 0x6f, 0x67, 0x2d, 0x0e, 0xe0, 0x2c, 0x88,
863 0x9b, 0x55, 0x19, 0x29, 0x40, 0xf6, 0x8c, 0x12,
864 0xbb, 0x2c, 0x83, 0x96, 0x40, 0xc0, 0x36, 0xf5,
865 0x77, 0xff, 0x70, 0x8c, 0x75, 0x92, 0x0b, 0xad,
866 0x05, 0x9b, 0x7e, 0xa2, 0xfc, 0xa9, 0xd1, 0x64,
867 0x76, 0x82, 0x13, 0xba, 0x22, 0x5e, 0x33, 0x0e,
868 0x26, 0x70, 0xa9, 0xbe, 0x74, 0x28, 0xf5, 0xe2,
869 0xc4, 0x96, 0xee, 0x3a, 0xbc, 0x97, 0xa6, 0x2c,
870 0x2a, 0xe0, 0x64, 0x8d, 0x35, 0xc6, 0x1a, 0xca,
871 0xf4, 0x92, 0xfa, 0xc3, 0xf1, 0x1f, 0x98, 0xe4,
872 0x43, 0x88, 0x69, 0x3a, 0x09, 0xbf, 0x63, 0xe5,
873 0x96, 0x29, 0x0b, 0x9b, 0x62, 0x23, 0x14, 0x8a,
874 0x95, 0xe4, 0x1c, 0x5c, 0x0a, 0xa9, 0xc5, 0xb9,
875 0x6f, 0x4f, 0x2b, 0x25, 0x6f, 0x74, 0x1e, 0x18,
876 0xd5, 0xfe, 0x27, 0x7d, 0x3f, 0x6e, 0x55, 0x2c,
877 0x67, 0xe6, 0xde, 0xb5, 0xcc, 0xc0, 0x2d, 0xff,
878 0xc4, 0xe4, 0x06, 0x21, 0xa5, 0xc8, 0xd3, 0xd6,
879 0x6c, 0xa1, 0xc3, 0xfb, 0x88, 0x92, 0xb1, 0x1d,
880 0x90, 0xe1, 0x35, 0x05, 0x9b, 0x29, 0x6d, 0xba,
881 0xf1, 0xf4, 0x1e, 0x23, 0x2e
884 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
887 "id-Gost28147-89-CryptoPro-A-ParamSet",
890 0x07, 0x52, 0x65, 0xe7, 0xca, 0xa3, 0xca, 0x45,
891 0xcf, 0x3a, 0x05, 0x1d, 0x38, 0x03, 0x53, 0x0c,
892 0x22, 0x31, 0xba, 0x99, 0x4f, 0x9b, 0x6a, 0x1b,
893 0x7e, 0x09, 0x9d, 0x4e, 0xb5, 0xc9, 0x84, 0x2e
897 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
900 0x3d, 0x05, 0x07, 0x57, 0xc0, 0x75, 0x89, 0x97,
901 0xd6, 0x94, 0x49, 0x11, 0x1d, 0xd0, 0x91, 0xee
904 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
907 "id-Gost28147-89-CryptoPro-A-ParamSet",
910 0x75, 0xa3, 0x3c, 0xae, 0x03, 0x6b, 0x10, 0xdb,
911 0xc1, 0x56, 0x50, 0x89, 0x03, 0xd2, 0x9f, 0x91,
912 0xee, 0xe8, 0x64, 0x1d, 0x43, 0xf2, 0x4e, 0xf8,
913 0xf2, 0x6c, 0xed, 0xda, 0x8f, 0xe4, 0x88, 0xe9
917 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
920 0xfa, 0x6c, 0x96, 0x78, 0xe2, 0xf8, 0xdd, 0xaa,
921 0x67, 0x5a, 0xc9, 0x5d, 0x57, 0xf1, 0xbd, 0x99
924 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
927 0xd6, 0xcf, 0x31, 0x96, 0x9c, 0xa1, 0xfb, 0xd6,
928 0x8d, 0xa3, 0xdd, 0x01, 0xd9, 0x88, 0xc0, 0x2f,
929 0xbc, 0x46, 0xc7, 0x3a, 0xe4, 0x21, 0x86, 0x96,
930 0x8d, 0xe2, 0xca, 0xb6, 0x37, 0xa2, 0xe1, 0xa8,
931 0x7e, 0xa7, 0x79, 0x2e, 0xa4, 0x56, 0x75, 0x7f,
932 0x3e, 0x55, 0x8b, 0x43, 0xae, 0x65, 0xdf, 0xaa,
933 0x42, 0xb6, 0x00, 0xa6, 0x61, 0x03, 0x0d, 0xd3,
934 0x41, 0x02, 0x27, 0x23, 0x95, 0x79, 0x9b, 0x34,
935 0x81, 0xa9, 0x86, 0xb5, 0xa7, 0x90, 0xe2, 0xae,
936 0xc4, 0x2f, 0xc3, 0x8e, 0x32, 0x56, 0x13, 0xfa,
937 0x4d, 0x4e, 0x9f, 0x15, 0x75, 0x7e, 0x74, 0xdc,
938 0x32, 0x2d, 0xee, 0x4d, 0x67, 0x70, 0x9f, 0x62,
939 0xb9, 0xc4, 0xdb, 0x24, 0x84, 0xcc, 0x16, 0x7b,
940 0xda, 0x22, 0xf7, 0xc5, 0xf3, 0x93, 0x35, 0x73,
941 0xc6, 0x03, 0x1c, 0x77, 0xa5, 0xf2, 0x76, 0x56,
942 0xb4, 0x95, 0xd4, 0x7e, 0x0d, 0x20, 0xc6, 0x6e,
943 0xee, 0x8f, 0x25, 0x48, 0xff, 0x7e, 0x01, 0x3a,
944 0xb4, 0x1f, 0xaa, 0x35, 0xc0, 0x33, 0x58, 0x9c,
945 0xb5, 0xba, 0x65, 0x4b, 0xd3, 0x51, 0x14, 0xec,
946 0x61, 0xce, 0xe4, 0xba, 0x49, 0xba, 0x39, 0x32,
947 0xab, 0xce, 0x81, 0x72, 0xce, 0xab, 0xed, 0xd4,
948 0xd2, 0x19, 0x87, 0x85, 0x92, 0xfa, 0x64, 0x34,
949 0xd8, 0x86, 0xf4, 0x8a, 0x08, 0x3c, 0xde, 0xee,
950 0x97, 0x92, 0x92, 0x69, 0xba, 0x9b, 0x5f, 0x7a,
951 0x03, 0xc1, 0x5d, 0x43, 0x02, 0x8c, 0xbe, 0xd2,
952 0x46, 0x72, 0x81, 0x40, 0x7d, 0x68, 0x98, 0x45,
953 0x0b, 0x54, 0x27, 0x1c, 0xaf, 0x80, 0x42, 0xe4,
954 0xd5, 0xd4, 0xe4, 0xa2, 0x98, 0x07, 0x8f, 0x03,
955 0xf5, 0x2c, 0x8c, 0x88, 0xca, 0x5a, 0xde, 0xe4,
956 0x9f, 0xb1, 0x5f, 0x82, 0xff, 0x20, 0x67, 0x52,
957 0x85, 0x84, 0x4f, 0xc8, 0xfe, 0xa7, 0x9e, 0xae,
958 0x1c, 0xfa, 0xb8, 0x75, 0xd3, 0xf7, 0x9f, 0x0d,
959 0xda, 0x2d, 0xe6, 0xcc, 0x86, 0x6b, 0xa4, 0x14,
960 0x65, 0xc3, 0xf9, 0x15, 0xbc, 0x87, 0xf5, 0xae,
961 0x8c, 0x10, 0xd4, 0xce, 0x5b, 0x9c, 0xe2, 0xdd,
962 0x42, 0x03, 0x09, 0x87, 0x47, 0xed, 0x5d, 0xd0,
963 0x7a, 0x69, 0x4c, 0xfa, 0x43, 0x7d, 0xbf, 0x07,
964 0x85, 0x6a, 0xee, 0x68, 0xe6, 0x7a, 0x57, 0xb2,
965 0x20, 0x8d, 0x80, 0xf2, 0x91, 0x6f, 0x5c, 0x07,
966 0x8c, 0xe4, 0x6a, 0x49, 0x90, 0x85, 0x8b, 0x77,
967 0x29, 0x56, 0x1c, 0x5e, 0xa9, 0x3f, 0xab, 0x8b,
968 0x79, 0xa3, 0x6f, 0x6b, 0x34, 0xcb, 0x61, 0xf6,
969 0xe6, 0x92, 0xd1, 0x48, 0x9e, 0x11, 0xa2, 0x82,
970 0xc0, 0x4e, 0x23, 0xd2, 0x15, 0x0d, 0x8d, 0xff,
971 0xfa, 0x17, 0x9d, 0x81, 0xb8, 0xbc, 0xd7, 0x5b,
972 0x08, 0x81, 0x20, 0x40, 0xc0, 0x3c, 0x06, 0x8b,
973 0x1a, 0x88, 0x0b, 0x4b, 0x7b, 0x31, 0xf5, 0xd4,
974 0x4e, 0x09, 0xd1, 0x4d, 0x0d, 0x7f, 0x45, 0xd1,
975 0x09, 0x35, 0xba, 0xce, 0x65, 0xdd, 0xf2, 0xb8,
976 0xfb, 0x7a, 0xbc, 0xc4, 0x4b, 0xc8, 0x75, 0xda,
977 0x6b, 0xce, 0x3d, 0xe8, 0x94, 0xcc, 0x23, 0x6f,
978 0xb0, 0x3b, 0x4f, 0x7d, 0x07, 0xb9, 0x0f, 0x62,
979 0x92, 0x7e, 0xda, 0x70, 0x50, 0xce, 0xd3, 0x28,
980 0x12, 0x11, 0x00, 0xeb, 0x8d, 0x63, 0x70, 0x78,
981 0xa8, 0x7b, 0x76, 0xab, 0xc6, 0x40, 0xc0, 0x4e,
982 0x80, 0xdd, 0xf0, 0xfe, 0x83, 0x72, 0x56, 0x4c,
983 0x09, 0x4c, 0xf1, 0x72, 0x72, 0x86, 0x26, 0x31,
984 0xc3, 0xc2, 0xdc, 0x8e, 0xc7, 0xf4, 0x35, 0xec,
985 0x17, 0x06, 0x63, 0x47, 0x49, 0x88, 0x47, 0xaf,
986 0xb3, 0x38, 0x4f, 0x7e, 0x44, 0x95, 0xb5, 0xbb,
987 0x1d, 0xbd, 0x5a, 0x91, 0x5b, 0xd0, 0x1a, 0xdf,
988 0x0d, 0x0b, 0x50, 0xd8, 0xe2, 0x0e, 0xc5, 0x00,
989 0x2d, 0x5b, 0x29, 0x19, 0xaa, 0x2b, 0x64, 0xc5,
990 0x40, 0x31, 0x48, 0x11, 0xbc, 0x04, 0xd1, 0xcf,
991 0x6d, 0xf9, 0xa5, 0x2f, 0x4a, 0xc9, 0x82, 0xfa,
992 0x59, 0xe1, 0xfc, 0xab, 0x1c, 0x33, 0x26, 0x0a,
993 0x5f, 0xef, 0xf2, 0x06, 0xd8, 0xd3, 0x7e, 0x16,
994 0x58, 0x16, 0x78, 0x73, 0xae, 0xba, 0xeb, 0xe5,
995 0x3d, 0xb2, 0x0a, 0xb3, 0x32, 0x2d, 0x14, 0xa4,
996 0xfa, 0x3f, 0x1f, 0x43, 0xf9, 0x7b, 0xa9, 0x43,
997 0x98, 0x18, 0x94, 0x07, 0x07, 0xe5, 0x19, 0x34,
998 0xa8, 0x16, 0x5f, 0x71, 0x67, 0xaa, 0x29, 0xe5,
999 0xfa, 0xf0, 0x83, 0x06, 0x1d, 0x9d, 0xfc, 0xfe,
1000 0xfe, 0x8c, 0xb5, 0xb2, 0xa9, 0xe7, 0xa0, 0x40,
1001 0x60, 0xb6, 0x71, 0x9e, 0xab, 0x5b, 0x83, 0xb9,
1002 0x0c, 0x2b, 0x58, 0x23, 0x80, 0x09, 0x9e, 0x5d,
1003 0x94, 0x7d, 0x40, 0x76, 0xa9, 0x16, 0x96, 0x9e,
1004 0x83, 0xe0, 0x0d, 0xec, 0xa0, 0xec, 0x76, 0x2a,
1005 0xb7, 0xa0, 0xff, 0xb8, 0x50, 0x4c, 0x5b, 0xc6,
1006 0x8b, 0x0a, 0x65, 0x2e, 0xfe, 0xb4, 0x40, 0x9a,
1007 0x01, 0xd8, 0xc6, 0xa3, 0xab, 0x99, 0xa2, 0xc5,
1008 0x0c, 0x08, 0xc4, 0xb7, 0xee, 0x4d, 0x1d, 0xc4,
1009 0x08, 0x15, 0xd0, 0xdb, 0xaa, 0x63, 0x4f, 0x31,
1010 0xeb, 0x14, 0x97, 0x43, 0xbd, 0xc1, 0x94, 0x08,
1011 0xe6, 0xde, 0x43, 0x9f, 0x95, 0x0b, 0x96, 0x7e,
1012 0x7f, 0x3c, 0x68, 0xba, 0x6f, 0xc4, 0xc9, 0x35,
1013 0x2b, 0xc4, 0x0e, 0xda, 0x1f, 0x91, 0x68, 0x64,
1014 0x63, 0x34, 0x73, 0xbe, 0x57, 0x75, 0xb9, 0xed,
1015 0xf7, 0x2d, 0x3b, 0x05, 0x21, 0x93, 0x28, 0x48,
1016 0x96, 0x95, 0x97, 0xa0, 0xd2, 0x7d, 0x78, 0xbb,
1017 0x6a, 0x49, 0x8f, 0x76, 0x55, 0x74, 0x63, 0xb9,
1018 0xc5, 0x36, 0x12, 0x25, 0xbf, 0x03, 0x82, 0x8f,
1019 0xf0, 0xf6, 0x80, 0xbb, 0x33, 0xb4, 0xf4, 0x17,
1020 0x27, 0x1c, 0xf3, 0x4c, 0x10, 0xa3, 0xe4, 0xd1,
1021 0x55, 0xd9, 0x68, 0x21, 0x4e, 0x5a, 0x83, 0x67,
1022 0xbf, 0xf8, 0x3c, 0x7d, 0x4e, 0x62, 0xd3, 0x28,
1023 0xa7, 0x26, 0x6f, 0xe9, 0xee, 0xc2, 0x0b, 0x2d,
1024 0x03, 0x84, 0xb1, 0xff, 0xd6, 0x68, 0x1f, 0xb6,
1025 0xf2, 0xe4, 0x0f, 0xda, 0x2d, 0xee, 0x5f, 0x6e,
1026 0x21, 0xc8, 0xe1, 0xfc, 0xad, 0x6b, 0x0e, 0x04,
1027 0x7d, 0xaf, 0xc2, 0x3b, 0xa5, 0x68, 0x9b, 0x0c,
1028 0xf3, 0x56, 0xf3, 0xda, 0x8d, 0xc8, 0x7d, 0x39,
1029 0xdc, 0xd5, 0x99, 0xc6, 0x01, 0x10, 0xce, 0x42,
1030 0x1b, 0xac, 0x48, 0xdc, 0x97, 0x78, 0x0a, 0xec,
1031 0xb3, 0x8f, 0x47, 0x35, 0xa3, 0x6a, 0x64, 0xb2,
1032 0x8e, 0x63, 0x69, 0x22, 0x66, 0xae, 0x2e, 0xe0,
1033 0x88, 0xf9, 0x40, 0x3c, 0xc9, 0xa2, 0x57, 0x61,
1034 0xf6, 0xad, 0xf0, 0xdc, 0x90, 0x56, 0x3f, 0x06,
1035 0x9b, 0x7d, 0xbd, 0xc2, 0x81, 0x02, 0xab, 0xb8,
1036 0x15, 0x09, 0x88, 0x4a, 0xff, 0x2f, 0x31, 0xbf,
1037 0x5e, 0xfa, 0x6a, 0x7e, 0xf6, 0xc5, 0xa7, 0xf7,
1038 0xd5, 0xab, 0x55, 0xac, 0xae, 0x0d, 0x8c, 0x8d,
1039 0x7f, 0x4b, 0x25, 0xbb, 0x32, 0xff, 0x11, 0x33,
1040 0x2e, 0x37, 0x37, 0x69, 0x96, 0x15, 0x17, 0xb1,
1041 0x17, 0x49, 0xe0, 0x9a, 0x9c, 0xd9, 0x5b, 0x8d,
1042 0x58, 0xa3, 0x1d, 0x92, 0x87, 0xf8, 0x80, 0xb9,
1043 0xbd, 0x5a, 0xec, 0x40, 0xe1, 0x00, 0x33, 0x60,
1044 0xe4, 0x86, 0x16, 0x6d, 0x61, 0x81, 0xf2, 0x28,
1045 0x6a, 0xa7, 0xce, 0x3f, 0x95, 0xae, 0x43, 0xca,
1046 0xe1, 0x3f, 0x81, 0x74, 0x7e, 0x1c, 0x47, 0x17,
1047 0x95, 0xc6, 0x60, 0xda, 0x74, 0x77, 0xd9, 0x9f,
1048 0xfa, 0x92, 0xb4, 0xbe, 0xe1, 0x23, 0x98, 0x18,
1049 0x95, 0x63, 0x03, 0x13, 0x4c, 0x1a, 0x2d, 0x41,
1050 0xcd, 0xe4, 0x84, 0xf7, 0xe6, 0x38, 0xef, 0xff,
1051 0x95, 0xb2, 0xe8, 0x7c, 0x8f, 0x58, 0xb5, 0xb5,
1052 0xed, 0x27, 0x7f, 0x3c, 0x18, 0xab, 0xbe, 0x7f,
1053 0x4f, 0xe2, 0x35, 0x15, 0x71, 0xb7, 0x6f, 0x85,
1054 0x38, 0x9b, 0x88, 0xf6, 0x9c, 0x8d, 0x43, 0xb5,
1055 0x58, 0x9e, 0xf2, 0xd1, 0x96, 0xbe, 0xb7, 0xad,
1058 "id-Gost28147-89-CryptoPro-A-ParamSet",
1061 0x80, 0xd9, 0xa0, 0xdc, 0x21, 0xf9, 0x30, 0x40,
1062 0x75, 0xfe, 0x49, 0x1b, 0x9e, 0x71, 0x90, 0x91,
1063 0x78, 0x88, 0x21, 0x60, 0x39, 0xe7, 0xc9, 0x2b,
1064 0xfb, 0x55, 0x1d, 0xf4, 0xdd, 0x2b, 0x0a, 0x01
1069 0x90, 0xf2, 0x11, 0x9a
1072 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1075 0x1d, 0xeb, 0xe6, 0x79, 0x0a, 0x59, 0x00, 0xe6,
1078 "id-Gost28147-89-CryptoPro-A-ParamSet",
1081 0xa9, 0xb6, 0x37, 0xcc, 0x6d, 0x9b, 0x2f, 0x25,
1082 0xb0, 0xdf, 0x47, 0x04, 0x50, 0x68, 0xb0, 0x27,
1083 0x41, 0x27, 0x58, 0x6a, 0xbd, 0x0a, 0x6e, 0x50,
1084 0x2f, 0xc6, 0xfc, 0xc0, 0x3e, 0x29, 0x42, 0xa5
1089 0x31, 0x7c, 0x16, 0xe4
1092 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1095 0xef, 0x06, 0x8f, 0x14, 0xc9, 0x04
1097 "id-Gost28147-89-CryptoPro-A-ParamSet",
1100 0xb0, 0x6c, 0x48, 0x23, 0x0a, 0x6e, 0xf4, 0xec,
1101 0x27, 0x98, 0x01, 0x23, 0xa7, 0xd8, 0xbf, 0x60,
1102 0x89, 0xef, 0xad, 0xe8, 0x8f, 0x79, 0x14, 0x8c,
1103 0x18, 0x5c, 0x9a, 0xda, 0xef, 0x0b, 0xdd, 0xa0
1108 0xe9, 0x72, 0xae, 0xbf
1111 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1114 0x02, 0xf8, 0xec, 0x2b, 0x4d, 0x1f, 0xbc, 0x7c,
1115 0x6e, 0x47, 0xe3, 0x87, 0x22, 0x75, 0x41, 0xa7
1117 "id-Gost28147-89-CryptoPro-B-ParamSet",
1120 0x33, 0xd3, 0xef, 0x01, 0x19, 0x95, 0x0e, 0x15,
1121 0xa1, 0x69, 0x75, 0xae, 0x56, 0x27, 0x17, 0x79,
1122 0x63, 0x47, 0xab, 0x62, 0x9d, 0x4a, 0xf0, 0x34,
1123 0xd3, 0x1e, 0x69, 0x74, 0xec, 0x31, 0x48, 0xfc
1128 0xf5, 0x55, 0x1f, 0x28
1131 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1134 0xf3, 0xb2, 0x29, 0xd2, 0x7a, 0x37, 0x03, 0x12
1136 "id-Gost28147-89-CryptoPro-A-ParamSet",
1139 0x42, 0x35, 0x81, 0x91, 0x0b, 0xa9, 0x99, 0xff,
1140 0xd9, 0x43, 0xf8, 0xc6, 0x19, 0x55, 0x1f, 0x2f,
1141 0x2d, 0x45, 0x40, 0x20, 0x1e, 0x1d, 0x32, 0x7a,
1142 0xb1, 0x07, 0x6b, 0x4f, 0x45, 0x90, 0xd9, 0x80
1147 0x6e, 0x15, 0xfa, 0xe8
1150 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1155 "id-Gost28147-89-CryptoPro-A-ParamSet",
1158 0x26, 0xcb, 0xb9, 0xf0, 0x0c, 0x62, 0x9f, 0xaa,
1159 0x4a, 0x1d, 0xb6, 0x30, 0x09, 0x01, 0x56, 0x89,
1160 0x66, 0xd4, 0xe4, 0x0e, 0xfe, 0xf6, 0x10, 0x6b,
1161 0x6c, 0xe8, 0x04, 0x3a, 0xe3, 0x61, 0x4b, 0x19
1166 0x00, 0x00, 0x00, 0x00
1169 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1172 "id-Gost28147-89-CryptoPro-A-ParamSet",
1175 0xaa, 0x85, 0x84, 0xcd, 0x65, 0x28, 0xe1, 0xdb,
1176 0xb8, 0x20, 0x19, 0x43, 0xe0, 0x36, 0x35, 0x10,
1177 0x19, 0xc3, 0x70, 0x5b, 0x27, 0xc1, 0x9d, 0x84,
1178 0x75, 0xa3, 0xc6, 0x49, 0x46, 0x8f, 0x7c, 0x4e
1183 0x2a, 0xe6, 0x23, 0xc6
1186 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1189 "id-Gost28147-89-CryptoPro-A-ParamSet",
1192 0xd5, 0xda, 0xfe, 0x06, 0x60, 0xdc, 0xf0, 0xb3,
1193 0x49, 0x5a, 0x02, 0x59, 0xc8, 0x2e, 0x4a, 0x2b,
1194 0xcc, 0x9b, 0x98, 0x04, 0xb7, 0xf2, 0x78, 0xb7,
1195 0xce, 0xa3, 0xf2, 0xdb, 0x9e, 0xa8, 0x49, 0x1d
1200 0xcc, 0x46, 0x67, 0xe4
1203 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1204 U64(4)*1024*1024*1024,
1206 "id-Gost28147-89-CryptoPro-A-ParamSet",
1209 0x0d, 0xf1, 0xa8, 0x7f, 0x57, 0x03, 0x44, 0xcc,
1210 0xdb, 0x20, 0xde, 0xed, 0x85, 0x50, 0x38, 0xda,
1211 0xc9, 0x44, 0xec, 0x2c, 0x0d, 0x66, 0xb7, 0xdc,
1212 0x17, 0x14, 0x55, 0x95, 0x33, 0x6e, 0x43, 0x3e
1217 0xb7, 0x21, 0x2e, 0x48
1220 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1221 U64(4)*1024*1024*1024+4,
1223 "id-Gost28147-89-CryptoPro-A-ParamSet",
1226 0x0c, 0xf3, 0xe9, 0xb0, 0x28, 0x3b, 0x9f, 0x8b,
1227 0xe3, 0x82, 0xb9, 0xa2, 0xa6, 0xbd, 0x80, 0xd2,
1228 0xcd, 0xfa, 0x3f, 0xf7, 0x90, 0xa7, 0x55, 0x06,
1229 0x9b, 0x7a, 0x58, 0xee, 0xe7, 0xf1, 0x9d, 0xbe
1234 0xda, 0x15, 0x10, 0x73
1237 { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1238 U64(4)*1024*1024*1024+10,
1240 "id-Gost28147-89-CryptoPro-A-ParamSet",
1243 0x97, 0x1a, 0x42, 0x22, 0xfa, 0x07, 0xb2, 0xca,
1244 0xf9, 0xd2, 0x34, 0x5a, 0x92, 0xb1, 0x1f, 0x6b,
1245 0x53, 0xf8, 0xaf, 0xed, 0x9a, 0x73, 0xc4, 0x38,
1246 0xd7, 0x7d, 0x25, 0x81, 0x00, 0x0d, 0xd4, 0x29
1251 0x52, 0xaa, 0x22, 0xb4
1256 int main(int argc, char *argv[])
1259 u64 ullMaxLen = 6*1000*1000;
1261 ENGINE *impl = NULL;
1263 EVP_CIPHER_CTX ectx;
1265 byte bDerive[EVP_MAX_KEY_LENGTH];
1266 byte bTest[G89_MAX_TC_LEN];
1267 byte bTest1[G89_MAX_TC_LEN];
1269 static const byte bZB[40*1024*1024] = { 0 };
1270 static byte bTS[40*1024*1024] = { 0 };
1271 unsigned int mdl = 0;
1277 const EVP_MD *md_gost94 = NULL;
1278 const EVP_CIPHER *cp_g89cfb = NULL;
1279 const EVP_CIPHER *cp_g89cnt = NULL;
1280 const EVP_CIPHER *ctype = NULL;
1281 const EVP_MD *md_g89imit = NULL;
1284 CONF *pConfig = NCONF_new(NULL);
1287 "openssl_conf = openssl_def\n"
1290 "engines = engine_section\n"
1292 "[engine_section]\n"
1293 "gost = gost_section\n"
1296 "default_algorithms = ALL\n"
1300 printf("Testing GOST 28147-89 ");
1303 if(1 != sscanf(argv[1], FMT64, &ullMaxLen) ||
1305 1 != sscanf(argv[2], "%d", &ignore) : 0)) {
1307 fprintf(stderr, "Usage: %s [maxlen [ignore-error]]\n",
1314 * Internal function test on GostR3411_94_TestParamSet
1316 #if 0 && defined(OPENSSL_NO_DYNAMIC_ENGINE)
1320 for(t = 0; t < sizeof(tcs)/sizeof(tcs[0]); t++) {
1321 const gost_subst_block *pSubst = NULL;
1323 if(1024 < tcs[t].ullLen) {
1324 /* Key meshing check by engine tests */
1327 memset(bTest, 0xc3, sizeof(bTest));
1328 if(0 == strcmp(tcs[t].szParamSet,
1329 "id-GostR3410-94-TestParamSet")) {
1330 pSubst = &GostR3411_94_TestParamSet;
1331 } else if(0 == strcmp(tcs[t].szParamSet,
1332 "id-Gost28147-89-CryptoPro-A-ParamSet")) {
1333 pSubst = &Gost28147_CryptoProParamSetA;
1334 } else if(0 == strcmp(tcs[t].szParamSet,
1335 "id-Gost28147-89-CryptoPro-B-ParamSet")) {
1336 pSubst = &Gost28147_CryptoProParamSetB;
1337 } else if(0 == strcmp(tcs[t].szParamSet,
1338 "id-Gost28147-89-CryptoPro-C-ParamSet")) {
1339 pSubst = &Gost28147_CryptoProParamSetC;
1340 } else if(0 == strcmp(tcs[t].szParamSet,
1341 "id-Gost28147-89-CryptoPro-D-ParamSet")) {
1342 pSubst = &Gost28147_CryptoProParamSetD;
1344 gost_init(&ctx, pSubst);
1345 gost_key(&ctx, tcs[t].bRawKey);
1346 switch(tcs[t].gMode) {
1348 gost_enc(&ctx, tcs[t].bIn, bTest,
1349 (int)((tcs[t].ullLen + G89_BLOCK_LEN - 1)/
1351 l = (size_t)tcs[t].ullLen;
1354 gost_enc_cfb(&ctx, tcs[t].bIV, tcs[t].bIn,
1356 (int)((tcs[t].ullLen + G89_BLOCK_LEN - 1)/
1358 l = (size_t)tcs[t].ullLen;
1361 /* GOST 28147-89 cipher CNT mode check by engine
1366 gost_mac(&ctx, 32, tcs[t].bIn,
1367 (unsigned int)tcs[t].ullLen,
1369 gost_mac_iv(&ctx, 32, tcs[t].bIV, tcs[t].bIn,
1370 (unsigned int)tcs[t].ullLen,
1372 if(0 != memcmp(bTest, bTest1, 4)) {
1374 fprintf(stderr, "\nInternal test t=%d len=" FMT64
1375 " failed (gost_mac_iv).\n", t,
1386 if(0 != memcmp(tcs[t].bOut, bTest, l)) {
1388 fprintf(stderr, "\nInternal test t=%d len=" FMT64
1403 * ccgost engine test on GostR3411_94_CryptoProParamSet
1405 ERR_load_crypto_strings();
1406 ENGINE_load_builtin_engines();
1407 OPENSSL_load_builtin_modules();
1409 bpConf = BIO_new_mem_buf(sConf, -1);
1410 if(!NCONF_load_bio(pConfig, bpConf, &lErrLine)) {
1412 fprintf(stderr, "NCONF_load_bio: ErrLine=%ld: %s\n",
1414 ERR_error_string(ERR_get_error(), NULL));
1419 if(!CONF_modules_load(pConfig, NULL, 0)) {
1421 fprintf(stderr, "CONF_modules_load: %s\n",
1422 ERR_error_string(ERR_get_error(), NULL));
1426 /* Test load engine */
1427 if(NULL == (impl = ENGINE_by_id(CCGOST_ID))) {
1429 fprintf(stderr, "Can't load engine id \"" CCGOST_ID "\"\n");
1434 if(NULL == (md_gost94 = EVP_get_digestbyname(SN_id_GostR3411_94))) {
1436 fprintf(stderr, "\"" SN_id_GostR3411_94 "\" - not found\n");
1441 if(NULL == (cp_g89cfb = EVP_get_cipherbyname(SN_id_Gost28147_89))) {
1443 fprintf(stderr, "\"" SN_id_Gost28147_89 "\" - not found\n");
1448 if(NULL == (cp_g89cnt = EVP_get_cipherbyname(SN_gost89_cnt))) {
1450 fprintf(stderr, "\"" SN_gost89_cnt "\" - not found\n");
1455 if(NULL == (md_g89imit = EVP_get_digestbyname(SN_id_Gost28147_89_MAC))) {
1457 fprintf(stderr, "\"" SN_id_Gost28147_89_MAC "\" - not found\n");
1464 for(t = 0; t < sizeof(tcs)/sizeof(tcs[0]); t++) {
1465 if(NULL == tcs[t].szDerive) {
1468 memset(bDerive, 0x3c, sizeof(bDerive));
1469 mdl = sizeof(bDerive);
1470 EVP_Digest(tcs[t].szDerive, strlen(tcs[t].szDerive),
1473 if(0 != memcmp(tcs[t].bRawKey, bDerive, mdl)) {
1475 fprintf(stderr, "Engine test t=%d "
1476 "derive key error.\n", t);
1481 if(ullMaxLen < tcs[t].ullLen) {
1484 memset(bTest, 0xa5, sizeof(bTest));
1485 memset(bTest1, 0x5a, sizeof(bTest1));
1486 if(!ENGINE_ctrl_cmd_string(impl,
1488 tcs[t].szParamSet, 0)) {
1490 fprintf(stderr, "ENGINE_ctrl_cmd_string: %s\n",
1491 ERR_error_string(ERR_get_error(), NULL));
1494 switch(tcs[t].gMode) {
1496 /* OpenSSL/ccgost not implemented GOST 28147-89 ECB */
1500 goto engine_cipher_check;
1502 if(0 != strcmp("id-Gost28147-89-CryptoPro-A-ParamSet",
1503 tcs[t].szParamSet)) {
1505 * ccgost engine can't change S-Box for gost-cnt
1510 engine_cipher_check:
1511 EVP_CIPHER_CTX_init(&ectx);
1512 EVP_EncryptInit_ex(&ectx, ctype, impl,
1513 bDerive, tcs[t].bIV);
1514 if(G89_MAX_TC_LEN >= tcs[t].ullLen) {
1515 enlu = sizeof(bTest);
1516 EVP_EncryptUpdate(&ectx, bTest, &enlu,
1517 tcs[t].bIn, (int)tcs[t].ullLen);
1518 l = (size_t)tcs[t].ullLen;
1520 for(ullLeft = tcs[t].ullLen;
1521 ullLeft >= sizeof(bZB);
1522 ullLeft -= sizeof(bZB)) {
1526 EVP_EncryptUpdate(&ectx, bTS, &enlu,
1529 printf("b"FMT64"/"FMT64, ullLeft, tcs[t].ullLen);
1531 EVP_EncryptUpdate(&ectx, bTS, &enlu,
1533 memcpy(bTest, &bTS[enlu-16], 16);
1534 enlu = (int)tcs[t].ullLen;
1537 enlf = sizeof(bTest1);
1538 EVP_EncryptFinal_ex(&ectx, bTest1, &enlf);
1539 EVP_CIPHER_CTX_cleanup(&ectx);
1542 if(0 != strcmp("id-Gost28147-89-CryptoPro-A-ParamSet",
1543 tcs[t].szParamSet)) {
1545 * ccgost engine can't change S-Box for gost-mac
1549 EVP_MD_CTX_init(&mctx);
1550 mac_key = EVP_PKEY_new_mac_key(
1551 NID_id_Gost28147_89_MAC, NULL,
1553 EVP_DigestSignInit(&mctx, NULL,
1554 md_g89imit, impl, mac_key);
1555 if(G89_MAX_TC_LEN >= tcs[t].ullLen) {
1556 EVP_DigestSignUpdate(&mctx, tcs[t].bIn,
1557 (unsigned int)tcs[t].ullLen);
1559 for(ullLeft = tcs[t].ullLen;
1560 ullLeft >= sizeof(bZB);
1561 ullLeft -= sizeof(bZB)) {
1564 EVP_DigestSignUpdate(&mctx, bZB, sizeof(bZB));
1566 printf("b"FMT64"/"FMT64, ullLeft, tcs[t].ullLen);
1568 EVP_DigestSignUpdate(&mctx, bZB,
1569 (unsigned int)ullLeft);
1572 OPENSSL_assert(EVP_DigestSignFinal(&mctx, bTest, &siglen));
1573 EVP_MD_CTX_cleanup(&mctx);
1574 enlu = (int)tcs[t].ullLen;
1579 if((int)tcs[t].ullLen != enlu || 0 != enlf ||
1580 0 != memcmp(tcs[t].bOut, bTest, l)) {
1582 fprintf(stderr, "\nEngine test t=%d len=" FMT64
1583 " failed.\n", t, tcs[t].ullLen);
1593 printf(" passed\n");
1596 return EXIT_SUCCESS;