Branch data Line data Source code
1 : : /* vim: set fileencoding=ascii : Charset: ASCII */
2 : : /* test/gostr2814789t.c */
3 : : /* ====================================================================
4 : : * Copyright (c) 2012 Crypto-Pro, Ltd., Serguei E. Leontiev,
5 : : * lse@cryptopro.ru
6 : : *
7 : : * This file is distributed under the same license as OpenSSL
8 : : * ====================================================================
9 : : */
10 : : #include <stdio.h>
11 : :
12 : : #if defined(OPENSSL_NO_ENGINE) || defined(OPENSSL_NO_GOST)
13 : : int main(int argc, char *argv[])
14 : : {
15 : : printf("No GOST 28147-89 support\n");
16 : : return 0;
17 : : }
18 : : #else
19 : :
20 : : #include <stdlib.h>
21 : : #include <string.h>
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>
29 : :
30 : : #define CCGOST_ID "gost"
31 : :
32 : : #include "../engines/ccgost/gost89.h"
33 : :
34 : : #define G89_MAX_TC_LEN (2048)
35 : : #define G89_BLOCK_LEN (8)
36 : :
37 : : #if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
38 : : typedef unsigned __int64 u64;
39 : : #define U64(C) C##UI64
40 : : #define FMT64 "%I64u"
41 : : #elif defined(__arch64__)
42 : : typedef unsigned long u64;
43 : : #define U64(C) C##UL
44 : : #define FMT64 "%lu"
45 : : #else
46 : : typedef unsigned long long u64;
47 : : #define U64(C) C##ULL
48 : : #define FMT64 "%llu"
49 : : #endif
50 : : #if defined(__MINGW32__)
51 : : #undef FMT64
52 : : #define FMT64 "%I64u"
53 : : #endif
54 : :
55 : : typedef enum g89_mode_ {
56 : : G89_ECB,
57 : : G89_CFB,
58 : : G89_CNT,
59 : : G89_IMIT
60 : : } g89_mode;
61 : :
62 : : typedef struct g89_tc_ {
63 : : u64 ullLen; /* ullLen > G89_MAX_TC_LEN */
64 : : /* Clear text ullLen */
65 : : /* of zero bytes */
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 >
77 : : * G89_MAX_TC_LEN;
78 : : * 4 byte MAC for imitovstavka */
79 : : } g89_tc;
80 : :
81 : : const g89_tc tcs[] = {
82 : : /*
83 : : * GOST R 34.11-94 Test cases
84 : : */
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 */
88 : : 8,
89 : : {
90 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
91 : : },
92 : : "id-GostR3410-94-TestParamSet",
93 : : NULL,
94 : : {
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
99 : : },
100 : : G89_ECB,
101 : : { 0 },
102 : : {
103 : : 0x1b, 0x0b, 0xbc, 0x32, 0xce, 0xbc, 0xab, 0x42
104 : : }
105 : : },
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] */
109 : : 8,
110 : : {
111 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
112 : : },
113 : : "id-GostR3410-94-TestParamSet",
114 : : NULL,
115 : : {
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
120 : : },
121 : : G89_ECB,
122 : : { 0 },
123 : : {
124 : : 0x2d, 0x56, 0x2a, 0x0d, 0x19, 0x04, 0x86, 0xe7
125 : : }
126 : : },
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] */
130 : : 8,
131 : : {
132 : : 0x34, 0xc0, 0x15, 0x33, 0xe3, 0x7d, 0x1c, 0x56
133 : : },
134 : : "id-GostR3410-94-TestParamSet",
135 : : NULL,
136 : : {
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
141 : : },
142 : : G89_ECB,
143 : : { 0 },
144 : : {
145 : : 0x86, 0x3e, 0x78, 0xdd, 0x2d, 0x60, 0xd1, 0x3c
146 : : }
147 : : },
148 : : /*
149 : : * id-Gost28147-89-CryptoPro-A-ParamSet (1.2.643.2.2.31.1)
150 : : * Test cases
151 : : */
152 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
153 : : 16,
154 : : {
155 : : 0x74, 0x3d, 0x76, 0xf9, 0x1b, 0xee, 0x35, 0x3c,
156 : : 0xa2, 0x5c, 0x3b, 0x10, 0xeb, 0x64, 0xcf, 0xf5
157 : : },
158 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
159 : : "testecb1",
160 : : {
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
165 : : },
166 : : G89_ECB,
167 : : { 0 },
168 : : {
169 : : 0xc3, 0x73, 0x90, 0x95, 0x35, 0x58, 0x08, 0x63,
170 : : 0xcb, 0x68, 0x85, 0x96, 0x77, 0xe8, 0xfb, 0xa9
171 : : }
172 : : },
173 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
174 : : 16,
175 : : {
176 : : 0xd2, 0xfd, 0xf8, 0x3a, 0xc1, 0xb4, 0x39, 0x23,
177 : : 0x2e, 0xaa, 0xcc, 0x98, 0x0a, 0x02, 0xda, 0x33
178 : : },
179 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
180 : : "testcfb1",
181 : : {
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
186 : : },
187 : : G89_CFB,
188 : : {
189 : : 0x46, 0x60, 0x6f, 0x0d, 0x88, 0x34, 0x23, 0x5a
190 : : },
191 : : {
192 : : 0x88, 0xb7, 0x75, 0x16, 0x74, 0xa5, 0xee, 0x2d,
193 : : 0x14, 0xfe, 0x91, 0x67, 0xd0, 0x5c, 0xcc, 0x40
194 : : }
195 : : },
196 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
197 : : 16,
198 : : {
199 : : 0x90, 0xa2, 0x39, 0x66, 0xae, 0x01, 0xb9, 0xa3,
200 : : 0x52, 0x4e, 0xc8, 0xed, 0x6c, 0xdd, 0x88, 0x30
201 : : },
202 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
203 : : "testcnt1",
204 : : {
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
209 : : },
210 : : G89_CNT,
211 : : {
212 : : 0x8d, 0xaf, 0xa8, 0xd1, 0x58, 0xed, 0x05, 0x8d
213 : : },
214 : : {
215 : : 0x6e, 0x72, 0x62, 0xcc, 0xe3, 0x59, 0x36, 0x90,
216 : : 0x83, 0x3a, 0xfe, 0xa9, 0x1b, 0xc9, 0xbe, 0xce
217 : : }
218 : : },
219 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
220 : : 16,
221 : : {
222 : : 0xb5, 0xa1, 0xf0, 0xe3, 0xce, 0x2f, 0x02, 0x1d,
223 : : 0x67, 0x61, 0x94, 0x34, 0x5c, 0x41, 0xe3, 0x6e
224 : : },
225 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
226 : : "testimit1",
227 : : {
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
232 : : },
233 : : G89_IMIT,
234 : : { 0 },
235 : : {
236 : : 0xf8, 0x1f, 0x08, 0xa3
237 : : }
238 : : },
239 : : /*
240 : : * Other paramsets and key meshing test cases.
241 : : */
242 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
243 : : 1039,
244 : : {
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
375 : : },
376 : : "id-Gost28147-89-CryptoPro-B-ParamSet",
377 : : "testcfb2",
378 : : {
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
383 : : },
384 : : G89_CFB,
385 : : {
386 : : 0x1f, 0x3f, 0x82, 0x1e, 0x0d, 0xd8, 0x1e, 0x22
387 : : },
388 : : {
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
519 : : }
520 : : },
521 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
522 : : 4,
523 : : {
524 : : 0x07, 0x9c, 0x91, 0xbe
525 : : },
526 : : "id-Gost28147-89-CryptoPro-C-ParamSet",
527 : : "testcfb3",
528 : : {
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
533 : : },
534 : : G89_CFB,
535 : : {
536 : : 0x43, 0x7c, 0x3e, 0x8e, 0x2f, 0x2a, 0x00, 0x98
537 : : },
538 : : {
539 : : 0x19, 0x35, 0x81, 0x34
540 : : }
541 : : },
542 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
543 : : 9,
544 : : {
545 : : 0x2f, 0x31, 0xd8, 0x83, 0xb4, 0x20, 0xe8, 0x6e,
546 : : 0xda
547 : : },
548 : : "id-Gost28147-89-CryptoPro-D-ParamSet",
549 : : "testcfb4",
550 : : {
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
555 : : },
556 : : G89_CFB,
557 : : {
558 : : 0xc5, 0xa2, 0xd2, 0x1f, 0x2f, 0xdf, 0xb8, 0xeb
559 : : },
560 : : {
561 : : 0x6d, 0xa4, 0xed, 0x40, 0x08, 0x88, 0x71, 0xad,
562 : : 0x16
563 : : }
564 : : },
565 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
566 : : 5242880+8,
567 : : { 0 },
568 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
569 : : "test5Mcfb",
570 : : {
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
575 : : },
576 : : G89_CFB,
577 : : {
578 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
579 : : },
580 : : {
581 : : 0x1c, 0x16, 0xa0, 0xe9, 0x63, 0x94, 0xfe, 0x38,
582 : : 0x37, 0xa7, 0x9b, 0x70, 0x25, 0x2e, 0xd6, 0x00
583 : : }
584 : : },
585 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
586 : : U64(4294967296)+16,
587 : : { 0 },
588 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
589 : : "test4Gcfb",
590 : : {
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
595 : : },
596 : : G89_CFB,
597 : : {
598 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
599 : : },
600 : : {
601 : : 0x2e, 0x62, 0xb0, 0x2e, 0xc7, 0x87, 0x4b, 0x29,
602 : : 0x33, 0x16, 0x6b, 0xb4, 0xd6, 0x61, 0x66, 0xd9
603 : : }
604 : : },
605 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
606 : : 1037,
607 : : {
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
738 : : },
739 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
740 : : "testcnt2",
741 : : {
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
746 : : },
747 : : G89_CNT,
748 : : {
749 : : 0x71, 0x58, 0x8c, 0xe1, 0x55, 0xf4, 0xf6, 0xb3
750 : : },
751 : : {
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
882 : : }
883 : : },
884 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
885 : : 5242880+8,
886 : : { 0 },
887 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
888 : : "test5Mcnt",
889 : : {
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
894 : : },
895 : : G89_CNT,
896 : : {
897 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
898 : : },
899 : : {
900 : : 0x3d, 0x05, 0x07, 0x57, 0xc0, 0x75, 0x89, 0x97,
901 : : 0xd6, 0x94, 0x49, 0x11, 0x1d, 0xd0, 0x91, 0xee
902 : : }
903 : : },
904 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
905 : : U64(4294967296)+16,
906 : : { 0 },
907 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
908 : : "test4Gcnt",
909 : : {
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
914 : : },
915 : : G89_CNT,
916 : : {
917 : : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
918 : : },
919 : : {
920 : : 0xfa, 0x6c, 0x96, 0x78, 0xe2, 0xf8, 0xdd, 0xaa,
921 : : 0x67, 0x5a, 0xc9, 0x5d, 0x57, 0xf1, 0xbd, 0x99
922 : : }
923 : : },
924 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
925 : : 1035,
926 : : {
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,
1056 : : 0x1a, 0xa0, 0x98
1057 : : },
1058 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1059 : : "testimit2",
1060 : : {
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
1065 : : },
1066 : : G89_IMIT,
1067 : : { 0 },
1068 : : {
1069 : : 0x90, 0xf2, 0x11, 0x9a
1070 : : }
1071 : : },
1072 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1073 : : 10,
1074 : : {
1075 : : 0x1d, 0xeb, 0xe6, 0x79, 0x0a, 0x59, 0x00, 0xe6,
1076 : : 0x8e, 0x5c
1077 : : },
1078 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1079 : : "testimit3",
1080 : : {
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
1085 : : },
1086 : : G89_IMIT,
1087 : : { 0 },
1088 : : {
1089 : : 0x31, 0x7c, 0x16, 0xe4
1090 : : }
1091 : : },
1092 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1093 : : 6,
1094 : : {
1095 : : 0xef, 0x06, 0x8f, 0x14, 0xc9, 0x04
1096 : : },
1097 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1098 : : "testimit4",
1099 : : {
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
1104 : : },
1105 : : G89_IMIT,
1106 : : { 0 },
1107 : : {
1108 : : 0xe9, 0x72, 0xae, 0xbf
1109 : : }
1110 : : },
1111 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1112 : : 16,
1113 : : {
1114 : : 0x02, 0xf8, 0xec, 0x2b, 0x4d, 0x1f, 0xbc, 0x7c,
1115 : : 0x6e, 0x47, 0xe3, 0x87, 0x22, 0x75, 0x41, 0xa7
1116 : : },
1117 : : "id-Gost28147-89-CryptoPro-B-ParamSet",
1118 : : "testimit5",
1119 : : {
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
1124 : : },
1125 : : G89_IMIT,
1126 : : { 0 },
1127 : : {
1128 : : 0xf5, 0x55, 0x1f, 0x28
1129 : : }
1130 : : },
1131 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1132 : : 8,
1133 : : {
1134 : : 0xf3, 0xb2, 0x29, 0xd2, 0x7a, 0x37, 0x03, 0x12
1135 : : },
1136 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1137 : : "testimit6",
1138 : : {
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
1143 : : },
1144 : : G89_IMIT,
1145 : : { 0 },
1146 : : {
1147 : : 0x6e, 0x15, 0xfa, 0xe8
1148 : : }
1149 : : },
1150 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1151 : : 0,
1152 : : {
1153 : : 0
1154 : : },
1155 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1156 : : "testimit7",
1157 : : {
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
1162 : : },
1163 : : G89_IMIT,
1164 : : { 0 },
1165 : : {
1166 : : 0x00, 0x00, 0x00, 0x00
1167 : : }
1168 : : },
1169 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1170 : : 5242880,
1171 : : { 0 },
1172 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1173 : : "test5Mimit",
1174 : : {
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
1179 : : },
1180 : : G89_IMIT,
1181 : : { 0 },
1182 : : {
1183 : : 0x2a, 0xe6, 0x23, 0xc6
1184 : : }
1185 : : },
1186 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1187 : : 3221225472U + 16,
1188 : : { 0 },
1189 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1190 : : "test3Gimit1",
1191 : : {
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
1196 : : },
1197 : : G89_IMIT,
1198 : : { 0 },
1199 : : {
1200 : : 0xcc, 0x46, 0x67, 0xe4
1201 : : }
1202 : : },
1203 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1204 : : U64(4)*1024*1024*1024,
1205 : : { 0 },
1206 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1207 : : "test4Gimit3",
1208 : : {
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
1213 : : },
1214 : : G89_IMIT,
1215 : : { 0 },
1216 : : {
1217 : : 0xb7, 0x21, 0x2e, 0x48
1218 : : }
1219 : : },
1220 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1221 : : U64(4)*1024*1024*1024+4,
1222 : : { 0 },
1223 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1224 : : "test4Gimit1",
1225 : : {
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
1230 : : },
1231 : : G89_IMIT,
1232 : : { 0 },
1233 : : {
1234 : : 0xda, 0x15, 0x10, 0x73
1235 : : }
1236 : : },
1237 : : { /* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */
1238 : : U64(4)*1024*1024*1024+10,
1239 : : { 0 },
1240 : : "id-Gost28147-89-CryptoPro-A-ParamSet",
1241 : : "test4Gimit2",
1242 : : {
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
1247 : : },
1248 : : G89_IMIT,
1249 : : { 0 },
1250 : : {
1251 : : 0x52, 0xaa, 0x22, 0xb4
1252 : : }
1253 : : }
1254 : : };
1255 : :
1256 : 1 : int main(int argc, char *argv[])
1257 : : {
1258 : : unsigned int t;
1259 : 1 : u64 ullMaxLen = 6*1000*1000;
1260 : 1 : int ignore = 0;
1261 : 1 : ENGINE *impl = NULL;
1262 : : EVP_MD_CTX mctx;
1263 : : EVP_CIPHER_CTX ectx;
1264 : : EVP_PKEY *mac_key;
1265 : : byte bDerive[EVP_MAX_KEY_LENGTH];
1266 : : byte bTest[G89_MAX_TC_LEN];
1267 : : byte bTest1[G89_MAX_TC_LEN];
1268 : : u64 ullLeft;
1269 : : static const byte bZB[40*1024*1024] = { 0 };
1270 : : static byte bTS[40*1024*1024] = { 0 };
1271 : 1 : unsigned int mdl = 0;
1272 : 1 : int enlu = 0;
1273 : 1 : int enlf = 0;
1274 : : size_t siglen;
1275 : 1 : size_t l = 0;
1276 : :
1277 : 1 : const EVP_MD *md_gost94 = NULL;
1278 : 1 : const EVP_CIPHER *cp_g89cfb = NULL;
1279 : 1 : const EVP_CIPHER *cp_g89cnt = NULL;
1280 : 1 : const EVP_CIPHER *ctype = NULL;
1281 : 1 : const EVP_MD *md_g89imit = NULL;
1282 : :
1283 : : long lErrLine;
1284 : 1 : CONF *pConfig = NCONF_new(NULL);
1285 : : BIO *bpConf;
1286 : 1 : char sConf[] =
1287 : : "openssl_conf = openssl_def\n"
1288 : : "\n"
1289 : : "[openssl_def]\n"
1290 : : "engines = engine_section\n"
1291 : : "\n"
1292 : : "[engine_section]\n"
1293 : : "gost = gost_section\n"
1294 : : "\n"
1295 : : "[gost_section]\n"
1296 : : "default_algorithms = ALL\n"
1297 : : "\n"
1298 : : ;
1299 : :
1300 : : printf("Testing GOST 28147-89 ");
1301 : :
1302 [ - + ]: 1 : if(1 < argc) {
1303 [ # # ][ # # ]: 0 : if(1 != sscanf(argv[1], FMT64, &ullMaxLen) ||
[ # # ]
1304 : : ( 2 < argc ?
1305 : 0 : 1 != sscanf(argv[2], "%d", &ignore) : 0)) {
1306 : 0 : fflush(NULL);
1307 : 0 : fprintf(stderr, "Usage: %s [maxlen [ignore-error]]\n",
1308 : : argv[0]);
1309 : 0 : return 1;
1310 : : }
1311 : : }
1312 : :
1313 : : /*
1314 : : * Internal function test on GostR3411_94_TestParamSet
1315 : : */
1316 : : #if 0 && defined(OPENSSL_NO_DYNAMIC_ENGINE)
1317 : : {
1318 : : gost_ctx ctx;
1319 : :
1320 : : for(t = 0; t < sizeof(tcs)/sizeof(tcs[0]); t++) {
1321 : : const gost_subst_block *pSubst = NULL;
1322 : :
1323 : : if(1024 < tcs[t].ullLen) {
1324 : : /* Key meshing check by engine tests */
1325 : : continue;
1326 : : }
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;
1343 : : }
1344 : : gost_init(&ctx, pSubst);
1345 : : gost_key(&ctx, tcs[t].bRawKey);
1346 : : switch(tcs[t].gMode) {
1347 : : case G89_ECB:
1348 : : gost_enc(&ctx, tcs[t].bIn, bTest,
1349 : : (int)((tcs[t].ullLen + G89_BLOCK_LEN - 1)/
1350 : : G89_BLOCK_LEN));
1351 : : l = (size_t)tcs[t].ullLen;
1352 : : break;
1353 : : case G89_CFB:
1354 : : gost_enc_cfb(&ctx, tcs[t].bIV, tcs[t].bIn,
1355 : : bTest,
1356 : : (int)((tcs[t].ullLen + G89_BLOCK_LEN - 1)/
1357 : : G89_BLOCK_LEN));
1358 : : l = (size_t)tcs[t].ullLen;
1359 : : break;
1360 : : case G89_CNT:
1361 : : /* GOST 28147-89 cipher CNT mode check by engine
1362 : : * tests
1363 : : */
1364 : : continue;
1365 : : case G89_IMIT:
1366 : : gost_mac(&ctx, 32, tcs[t].bIn,
1367 : : (unsigned int)tcs[t].ullLen,
1368 : : bTest);
1369 : : gost_mac_iv(&ctx, 32, tcs[t].bIV, tcs[t].bIn,
1370 : : (unsigned int)tcs[t].ullLen,
1371 : : bTest1);
1372 : : if(0 != memcmp(bTest, bTest1, 4)) {
1373 : : fflush(NULL);
1374 : : fprintf(stderr, "\nInternal test t=%d len=" FMT64
1375 : : " failed (gost_mac_iv).\n", t,
1376 : : tcs[t].ullLen);
1377 : : if(!ignore) {
1378 : : return 2;
1379 : : }
1380 : : }
1381 : : l = 4;
1382 : : break;
1383 : : }
1384 : : gost_destroy(&ctx);
1385 : :
1386 : : if(0 != memcmp(tcs[t].bOut, bTest, l)) {
1387 : : fflush(NULL);
1388 : : fprintf(stderr, "\nInternal test t=%d len=" FMT64
1389 : : " failed.\n", t,
1390 : : tcs[t].ullLen);
1391 : : if(!ignore) {
1392 : : return 3;
1393 : : }
1394 : : } else {
1395 : : printf(",");
1396 : : fflush(NULL);
1397 : : }
1398 : : }
1399 : : }
1400 : : #endif
1401 : :
1402 : : /*
1403 : : * ccgost engine test on GostR3411_94_CryptoProParamSet
1404 : : */
1405 : 1 : ERR_load_crypto_strings();
1406 : 1 : ENGINE_load_builtin_engines();
1407 : 1 : OPENSSL_load_builtin_modules();
1408 : :
1409 : 1 : bpConf = BIO_new_mem_buf(sConf, -1);
1410 [ - + ]: 1 : if(!NCONF_load_bio(pConfig, bpConf, &lErrLine)) {
1411 : 0 : fflush(NULL);
1412 : 0 : fprintf(stderr, "NCONF_load_bio: ErrLine=%ld: %s\n",
1413 : : lErrLine,
1414 : : ERR_error_string(ERR_get_error(), NULL));
1415 : 0 : return 4;
1416 : : }
1417 : 1 : BIO_free(bpConf);
1418 : :
1419 [ - + ]: 1 : if(!CONF_modules_load(pConfig, NULL, 0)) {
1420 : 0 : fflush(NULL);
1421 : 0 : fprintf(stderr, "CONF_modules_load: %s\n",
1422 : : ERR_error_string(ERR_get_error(), NULL));
1423 : 0 : return 5;
1424 : : }
1425 : :
1426 : : /* Test load engine */
1427 [ - + ]: 1 : if(NULL == (impl = ENGINE_by_id(CCGOST_ID))) {
1428 : 0 : fflush(NULL);
1429 : 0 : fprintf(stderr, "Can't load engine id \"" CCGOST_ID "\"\n");
1430 [ # # ]: 0 : if(!ignore) {
1431 : : return 6;
1432 : : }
1433 : : }
1434 [ - + ]: 1 : if(NULL == (md_gost94 = EVP_get_digestbyname(SN_id_GostR3411_94))) {
1435 : 0 : fflush(NULL);
1436 : 0 : fprintf(stderr, "\"" SN_id_GostR3411_94 "\" - not found\n");
1437 [ # # ]: 0 : if(!ignore) {
1438 : : return 7;
1439 : : }
1440 : : }
1441 [ - + ]: 1 : if(NULL == (cp_g89cfb = EVP_get_cipherbyname(SN_id_Gost28147_89))) {
1442 : 0 : fflush(NULL);
1443 : 0 : fprintf(stderr, "\"" SN_id_Gost28147_89 "\" - not found\n");
1444 [ # # ]: 0 : if(!ignore) {
1445 : : return 8;
1446 : : }
1447 : : }
1448 [ - + ]: 1 : if(NULL == (cp_g89cnt = EVP_get_cipherbyname(SN_gost89_cnt))) {
1449 : 0 : fflush(NULL);
1450 : 0 : fprintf(stderr, "\"" SN_gost89_cnt "\" - not found\n");
1451 [ # # ]: 0 : if(!ignore) {
1452 : : return 9;
1453 : : }
1454 : : }
1455 [ - + ]: 1 : if(NULL == (md_g89imit = EVP_get_digestbyname(SN_id_Gost28147_89_MAC))) {
1456 : 0 : fflush(NULL);
1457 : 0 : fprintf(stderr, "\"" SN_id_Gost28147_89_MAC "\" - not found\n");
1458 [ # # ]: 1 : if(!ignore) {
1459 : : return 10;
1460 : : }
1461 : : }
1462 : :
1463 : : /* Test cases */
1464 [ + + ]: 27 : for(t = 0; t < sizeof(tcs)/sizeof(tcs[0]); t++) {
1465 [ + + ]: 26 : if(NULL == tcs[t].szDerive) {
1466 : 3 : continue;
1467 : : }
1468 : : memset(bDerive, 0x3c, sizeof(bDerive));
1469 : 23 : mdl = sizeof(bDerive);
1470 : 23 : EVP_Digest(tcs[t].szDerive, strlen(tcs[t].szDerive),
1471 : : bDerive, &mdl,
1472 : : md_gost94, impl);
1473 [ - + ]: 23 : if(0 != memcmp(tcs[t].bRawKey, bDerive, mdl)) {
1474 : 0 : fflush(NULL);
1475 : 0 : fprintf(stderr, "Engine test t=%d "
1476 : : "derive key error.\n", t);
1477 [ # # ]: 0 : if(!ignore) {
1478 : : return 12;
1479 : : }
1480 : : }
1481 [ + + ]: 23 : if(ullMaxLen < tcs[t].ullLen) {
1482 : 6 : continue;
1483 : : }
1484 : : memset(bTest, 0xa5, sizeof(bTest));
1485 : : memset(bTest1, 0x5a, sizeof(bTest1));
1486 [ - + ]: 17 : if(!ENGINE_ctrl_cmd_string(impl,
1487 : : "CRYPT_PARAMS",
1488 : : tcs[t].szParamSet, 0)) {
1489 : 0 : fflush(NULL);
1490 : 0 : fprintf(stderr, "ENGINE_ctrl_cmd_string: %s\n",
1491 : : ERR_error_string(ERR_get_error(), NULL));
1492 : 0 : return 11;
1493 : : }
1494 [ + + + + : 17 : switch(tcs[t].gMode) {
- ]
1495 : : case G89_ECB:
1496 : : /* OpenSSL/ccgost not implemented GOST 28147-89 ECB */
1497 : 1 : continue;
1498 : : case G89_CFB:
1499 : : ctype = cp_g89cfb;
1500 : : goto engine_cipher_check;
1501 : : case G89_CNT:
1502 [ - + ]: 3 : if(0 != strcmp("id-Gost28147-89-CryptoPro-A-ParamSet",
1503 : : tcs[t].szParamSet)) {
1504 : : /*
1505 : : * ccgost engine can't change S-Box for gost-cnt
1506 : : */
1507 : 0 : continue;
1508 : : }
1509 : : ctype = cp_g89cnt;
1510 : : engine_cipher_check:
1511 : 8 : EVP_CIPHER_CTX_init(&ectx);
1512 : 8 : EVP_EncryptInit_ex(&ectx, ctype, impl,
1513 : 8 : bDerive, tcs[t].bIV);
1514 [ + + ]: 8 : if(G89_MAX_TC_LEN >= tcs[t].ullLen) {
1515 : 6 : enlu = sizeof(bTest);
1516 : 12 : EVP_EncryptUpdate(&ectx, bTest, &enlu,
1517 : 6 : tcs[t].bIn, (int)tcs[t].ullLen);
1518 : 6 : l = (size_t)tcs[t].ullLen;
1519 : : } else {
1520 [ - + ]: 2 : for(ullLeft = tcs[t].ullLen;
1521 : : ullLeft >= sizeof(bZB);
1522 : 0 : ullLeft -= sizeof(bZB)) {
1523 : : printf("B");
1524 : 0 : fflush(NULL);
1525 : 0 : enlu = sizeof(bTS);
1526 : 0 : EVP_EncryptUpdate(&ectx, bTS, &enlu,
1527 : : bZB, sizeof(bZB));
1528 : : }
1529 : 2 : printf("b"FMT64"/"FMT64, ullLeft, tcs[t].ullLen);
1530 : 2 : fflush(NULL);
1531 : 2 : EVP_EncryptUpdate(&ectx, bTS, &enlu,
1532 : : bZB, (int)ullLeft);
1533 : 2 : memcpy(bTest, &bTS[enlu-16], 16);
1534 : 2 : enlu = (int)tcs[t].ullLen;
1535 : 2 : l = 16;
1536 : : }
1537 : 8 : enlf = sizeof(bTest1);
1538 : 8 : EVP_EncryptFinal_ex(&ectx, bTest1, &enlf);
1539 : 8 : EVP_CIPHER_CTX_cleanup(&ectx);
1540 : 8 : break;
1541 : : case G89_IMIT:
1542 [ + + ]: 8 : if(0 != strcmp("id-Gost28147-89-CryptoPro-A-ParamSet",
1543 : : tcs[t].szParamSet)) {
1544 : : /*
1545 : : * ccgost engine can't change S-Box for gost-mac
1546 : : */
1547 : 1 : continue;
1548 : : }
1549 : 7 : EVP_MD_CTX_init(&mctx);
1550 : 7 : mac_key = EVP_PKEY_new_mac_key(
1551 : : NID_id_Gost28147_89_MAC, NULL,
1552 : : bDerive, mdl);
1553 : 7 : EVP_DigestSignInit(&mctx, NULL,
1554 : : md_g89imit, impl, mac_key);
1555 [ + + ]: 7 : if(G89_MAX_TC_LEN >= tcs[t].ullLen) {
1556 : 6 : EVP_DigestSignUpdate(&mctx, tcs[t].bIn,
1557 : : (unsigned int)tcs[t].ullLen);
1558 : : } else {
1559 [ - + ]: 1 : for(ullLeft = tcs[t].ullLen;
1560 : : ullLeft >= sizeof(bZB);
1561 : 0 : ullLeft -= sizeof(bZB)) {
1562 : : printf("B");
1563 : 0 : fflush(NULL);
1564 : 0 : EVP_DigestSignUpdate(&mctx, bZB, sizeof(bZB));
1565 : : }
1566 : 1 : printf("b"FMT64"/"FMT64, ullLeft, tcs[t].ullLen);
1567 : 1 : fflush(NULL);
1568 : 1 : EVP_DigestSignUpdate(&mctx, bZB,
1569 : : (unsigned int)ullLeft);
1570 : : }
1571 : 7 : siglen = 4;
1572 [ - + ]: 7 : OPENSSL_assert(EVP_DigestSignFinal(&mctx, bTest, &siglen));
1573 : 7 : EVP_MD_CTX_cleanup(&mctx);
1574 : 7 : enlu = (int)tcs[t].ullLen;
1575 : 7 : enlf = 0;
1576 : 7 : l = siglen;
1577 : 7 : break;
1578 : : }
1579 [ + - ][ + - ]: 15 : if((int)tcs[t].ullLen != enlu || 0 != enlf ||
[ - + ]
1580 : 15 : 0 != memcmp(tcs[t].bOut, bTest, l)) {
1581 : 0 : fflush(NULL);
1582 : 0 : fprintf(stderr, "\nEngine test t=%d len=" FMT64
1583 : : " failed.\n", t, tcs[t].ullLen);
1584 [ # # ]: 0 : if(!ignore) {
1585 : : return 13;
1586 : : }
1587 : : } else {
1588 : : printf(".");
1589 : 15 : fflush(NULL);
1590 : : }
1591 : : }
1592 : :
1593 : : printf(" passed\n");
1594 : 1 : fflush(NULL);
1595 : :
1596 : 1 : return EXIT_SUCCESS;
1597 : : }
1598 : : #endif
|