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