Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | struct gost_mac_pmeth_data { | - |
7 | EVP_MD *md; | - |
8 | unsigned char key[32]; | - |
9 | unsigned key_set :1; | - |
10 | }; | - |
11 | | - |
12 | static int | - |
13 | pkey_gost_mac_init(EVP_PKEY_CTX *ctx) | - |
14 | { | - |
15 | struct gost_mac_pmeth_data *data; | - |
16 | | - |
17 | data = calloc(1, sizeof(struct gost_mac_pmeth_data)); | - |
18 | if (data == TRUE | never evaluated | FALSE | evaluated 24 times by 1 test |
| 0-24 |
19 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 24 times by 1 test |
| 0-24 |
20 | ) | - |
21 | return never executed: return 0; 0;never executed: return 0; | 0 |
22 | EVP_PKEY_CTX_set_data(ctx, data); | - |
23 | returnexecuted 24 times by 1 test: return 1; 1;executed 24 times by 1 test: return 1; | 24 |
24 | } | - |
25 | | - |
26 | static void | - |
27 | pkey_gost_mac_cleanup(EVP_PKEY_CTX *ctx) | - |
28 | { | - |
29 | struct gost_mac_pmeth_data *data = EVP_PKEY_CTX_get_data(ctx); | - |
30 | free(data); | - |
31 | }executed 24 times by 1 test: end of block | 24 |
32 | | - |
33 | static int | - |
34 | pkey_gost_mac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) | - |
35 | { | - |
36 | struct gost_mac_pmeth_data *dst_data, *src_data; | - |
37 | | - |
38 | if (pkey_gost_mac_init(dst) == 0TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) | 0-8 |
39 | return never executed: return 0; 0;never executed: return 0; | 0 |
40 | | - |
41 | src_data = EVP_PKEY_CTX_get_data(src); | - |
42 | dst_data = EVP_PKEY_CTX_get_data(dst); | - |
43 | | - |
44 | *dst_data = *src_data; | - |
45 | | - |
46 | returnexecuted 8 times by 1 test: return 1; 1;executed 8 times by 1 test: return 1; | 8 |
47 | } | - |
48 | | - |
49 | static int | - |
50 | pkey_gost_mac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) | - |
51 | { | - |
52 | struct gost_mac_pmeth_data *data = EVP_PKEY_CTX_get_data(ctx); | - |
53 | unsigned char *keydata; | - |
54 | | - |
55 | if (!data->key_setTRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) { | 0-8 |
56 | ERR_put_error(50,(0xfff),(102),__FILE__,113); | - |
57 | return never executed: return 0; 0;never executed: return 0; | 0 |
58 | } | - |
59 | | - |
60 | keydata = malloc(32); | - |
61 | if (keydata == TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
62 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
63 | ) { | - |
64 | ERR_put_error(50,(0xfff),((1|64)),__FILE__,119); | - |
65 | return never executed: return 0; 0;never executed: return 0; | 0 |
66 | } | - |
67 | memcpy(keydata, data->key, 32); | - |
68 | EVP_PKEY_assign(pkey, 815, keydata); | - |
69 | | - |
70 | returnexecuted 8 times by 1 test: return 1; 1;executed 8 times by 1 test: return 1; | 8 |
71 | } | - |
72 | | - |
73 | static int | - |
74 | pkey_gost_mac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | - |
75 | { | - |
76 | struct gost_mac_pmeth_data *data = EVP_PKEY_CTX_get_data(ctx); | - |
77 | | - |
78 | switch (type) { | - |
79 | caseexecuted 8 times by 1 test: case 1: 1:executed 8 times by 1 test: case 1: | 8 |
80 | if (EVP_MD_type(p2) != 815TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) { | 0-8 |
81 | ERR_put_error(50,(0xfff),(100),__FILE__,136); | - |
82 | return never executed: return 0; 0;never executed: return 0; | 0 |
83 | } | - |
84 | data->md = p2; | - |
85 | returnexecuted 8 times by 1 test: return 1; 1;executed 8 times by 1 test: return 1; | 8 |
86 | | - |
87 | caseexecuted 8 times by 1 test: case 6: 6:executed 8 times by 1 test: case 6: | 8 |
88 | if (p1 != 32TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
) { | 0-8 |
89 | ERR_put_error(50,(0xfff),(101),__FILE__,144); | - |
90 | return never executed: return 0; 0;never executed: return 0; | 0 |
91 | } | - |
92 | | - |
93 | memcpy(data->key, p2, 32); | - |
94 | data->key_set = 1; | - |
95 | returnexecuted 8 times by 1 test: return 1; 1;executed 8 times by 1 test: return 1; | 8 |
96 | | - |
97 | caseexecuted 8 times by 1 test: case 7: 7:executed 8 times by 1 test: case 7: | 8 |
98 | { | - |
99 | EVP_MD_CTX *mctx = p2; | - |
100 | void *key; | - |
101 | | - |
102 | if (!data->key_setTRUE | evaluated 8 times by 1 test | FALSE | never evaluated |
) { | 0-8 |
103 | EVP_PKEY *pkey = EVP_PKEY_CTX_get0_pkey(ctx); | - |
104 | if (pkey == TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
105 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
106 | ) { | - |
107 | ERR_put_error(50,(0xfff),(102),__FILE__,160); | - |
108 | return never executed: return 0; 0;never executed: return 0; | 0 |
109 | } | - |
110 | key = EVP_PKEY_get0(pkey); | - |
111 | if (key == TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
112 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
113 | ) { | - |
114 | ERR_put_error(50,(0xfff),(102),__FILE__,165); | - |
115 | return never executed: return 0; 0;never executed: return 0; | 0 |
116 | } | - |
117 | }executed 8 times by 1 test: end of block else { | 8 |
118 | key = &(data->key); | - |
119 | } never executed: end of block | 0 |
120 | if (mctx->digest->md_ctrl == TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
121 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
122 | ) | - |
123 | return never executed: return 0; 0;never executed: return 0; | 0 |
124 | returnexecuted 8 times by 1 test: return mctx->digest->md_ctrl(mctx, 0x3, 32 * 8, key); mctx->digest->md_ctrl(mctx, 0x3, 32 * 8,executed 8 times by 1 test: return mctx->digest->md_ctrl(mctx, 0x3, 32 * 8, key); | 8 |
125 | key);executed 8 times by 1 test: return mctx->digest->md_ctrl(mctx, 0x3, 32 * 8, key); | 8 |
126 | } | - |
127 | | - |
128 | } | - |
129 | | - |
130 | return never executed: return -2; -2;never executed: return -2; | 0 |
131 | } | - |
132 | | - |
133 | static int | - |
134 | pkey_gost_mac_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value) | - |
135 | { | - |
136 | if (value == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
137 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
138 | ) | - |
139 | return never executed: return 0; 0;never executed: return 0; | 0 |
140 | if ( | - |
141 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
142 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
143 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
144 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
145 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
146 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
148 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
150 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
151 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
152 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
153 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
154 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
155 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
156 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
157 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
158 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
159 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
160 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
161 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
162 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
163 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
164 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
165 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
166 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
167 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
168 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
169 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
170 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
171 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
172 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
173 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
174 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
175 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
176 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
177 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
178 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
179 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
180 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
181 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
183 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
184 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
185 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
186 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
187 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
188 | typeTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
189 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
190 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
191 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
192 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
193 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
194 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
195 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
196 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
197 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
198 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
199 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
200 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
201 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
202 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
203 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
204 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
205 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
206 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
207 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
208 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
209 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
210 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
211 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
212 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
213 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
214 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
215 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "key" ))[3] - __s2[3]); | 0 |
216 | "key"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "key" ))[3] - __s2[3]); | 0 |
217 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
218 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
219 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
220 | "key"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
221 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
222 | == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
223 | void *p = (void *)value; | - |
224 | return never executed: return pkey_gost_mac_ctrl(ctx, 6, strlen(value), p); pkey_gost_mac_ctrl(ctx, 6,never executed: return pkey_gost_mac_ctrl(ctx, 6, strlen(value), p); | 0 |
225 | strlen(value), p); never executed: return pkey_gost_mac_ctrl(ctx, 6, strlen(value), p); | 0 |
226 | } | - |
227 | if ( | - |
228 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
229 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
230 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
231 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
232 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
233 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
234 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
235 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
236 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
238 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
239 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
240 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
241 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
242 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
243 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
244 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
245 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
246 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
247 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
248 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
249 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
250 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
251 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
252 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
253 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
254 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
255 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
256 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
257 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
258 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
259 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
260 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
261 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
262 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
263 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
264 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
265 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
266 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
267 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
268 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
269 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
270 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
271 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
272 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
273 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
274 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
275 | typeTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( type ))[3] - __s2[3]); | 0 |
276 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
277 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
278 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
279 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
280 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
281 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
282 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
283 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
284 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
285 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
286 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
287 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
288 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
289 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
290 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
291 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
292 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
293 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
294 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
295 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
296 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
297 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
298 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
299 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
300 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
301 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
302 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "hexkey" ))[3] - __s2[3]); | 0 |
303 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "hexkey" ))[3] - __s2[3]); | 0 |
304 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
305 | typeTRUE | never evaluated | FALSE | never evaluated |
| 0 |
306 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
307 | "hexkey"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
308 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
309 | == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
310 | unsigned char *key; | - |
311 | int r; | - |
312 | long keylen; | - |
313 | | - |
314 | key = string_to_hex(value, &keylen); | - |
315 | if (key == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
316 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
317 | ) | - |
318 | return never executed: return 0; 0;never executed: return 0; | 0 |
319 | r = pkey_gost_mac_ctrl(ctx, 6, keylen, | - |
320 | key); | - |
321 | free(key); | - |
322 | return never executed: return r; r;never executed: return r; | 0 |
323 | } | - |
324 | return never executed: return -2; -2;never executed: return -2; | 0 |
325 | } | - |
326 | | - |
327 | static int | - |
328 | pkey_gost_mac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx) | - |
329 | { | - |
330 | returnexecuted 8 times by 1 test: return 1; 1;executed 8 times by 1 test: return 1; | 8 |
331 | } | - |
332 | | - |
333 | static int | - |
334 | pkey_gost_mac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, | - |
335 | EVP_MD_CTX *mctx) | - |
336 | { | - |
337 | | - |
338 | unsigned int tmpsiglen = *siglen; | - |
339 | int ret; | - |
340 | | - |
341 | if (sig == TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
342 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 8 times by 1 test |
| 0-8 |
343 | ) { | - |
344 | *siglen = 4; | - |
345 | return never executed: return 1; 1;never executed: return 1; | 0 |
346 | } | - |
347 | | - |
348 | ret = EVP_DigestFinal_ex(mctx, sig, &tmpsiglen); | - |
349 | *siglen = tmpsiglen; | - |
350 | returnexecuted 8 times by 1 test: return ret; ret;executed 8 times by 1 test: return ret; | 8 |
351 | } | - |
352 | | - |
353 | const EVP_PKEY_METHOD gostimit_pkey_meth = { | - |
354 | .pkey_id = 815, | - |
355 | | - |
356 | .init = pkey_gost_mac_init, | - |
357 | .cleanup = pkey_gost_mac_cleanup, | - |
358 | .copy = pkey_gost_mac_copy, | - |
359 | | - |
360 | .keygen = pkey_gost_mac_keygen, | - |
361 | | - |
362 | .signctx_init = pkey_gost_mac_signctx_init, | - |
363 | .signctx = pkey_gost_mac_signctx, | - |
364 | | - |
365 | .ctrl = pkey_gost_mac_ctrl, | - |
366 | .ctrl_str = pkey_gost_mac_ctrl_str, | - |
367 | }; | - |
| | |