OpenCoverage

bio_ok.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/bio_ok.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3static int ok_write(BIO *h, const char *buf, int num);-
4static int ok_read(BIO *h, char *buf, int size);-
5static long ok_ctrl(BIO *h, int cmd, long arg1, void *arg2);-
6static int ok_new(BIO *h);-
7static int ok_free(BIO *data);-
8static long ok_callback_ctrl(BIO *h, int cmd, BIO_info_cb *fp);-
9-
10static int sig_out(BIO *b);-
11static int sig_in(BIO *b);-
12static int block_out(BIO *b);-
13static int block_in(BIO *b);-
14-
15-
16-
17-
18-
19typedef struct ok_struct {-
20 size_t buf_len;-
21 size_t buf_off;-
22 size_t buf_len_save;-
23 size_t buf_off_save;-
24 int cont;-
25 int finished;-
26 EVP_MD_CTX *md;-
27 int blockout;-
28 int sigio;-
29 unsigned char buf[((1024*4)+ 4 + 3*64)];-
30} BIO_OK_CTX;-
31-
32static const BIO_METHOD methods_ok = {-
33 (10|0x0200),-
34 "reliable",-
35-
36 bwrite_conv,-
37 ok_write,-
38-
39 bread_conv,-
40 ok_read,-
41 -
42 ((void *)0)-
43 ,-
44 -
45 ((void *)0)-
46 ,-
47 ok_ctrl,-
48 ok_new,-
49 ok_free,-
50 ok_callback_ctrl,-
51};-
52-
53const BIO_METHOD *BIO_f_reliable(void)-
54{-
55 return
never executed: return &methods_ok;
&methods_ok;
never executed: return &methods_ok;
0
56}-
57-
58static int ok_new(BIO *bi)-
59{-
60 BIO_OK_CTX *ctx;-
61-
62 if ((
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx = CRYPTO_zalloc(sizeof(*ctx), __FILE__, 136)) ==
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
63 ((void *)0)
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
64 ) {-
65 ERR_put_error(6,(200),((1|64)),__FILE__,137);-
66 return
never executed: return 0;
0;
never executed: return 0;
0
67 }-
68-
69 ctx->cont = 1;-
70 ctx->sigio = 1;-
71 ctx->md = EVP_MD_CTX_new();-
72 if (ctx->md ==
ctx->md == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
73 ((void *)0)
ctx->md == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
74 ) {-
75 CRYPTO_free(ctx, __FILE__, 145);-
76 return
never executed: return 0;
0;
never executed: return 0;
0
77 }-
78 BIO_set_init(bi, 0);-
79 BIO_set_data(bi, ctx);-
80-
81 return
never executed: return 1;
1;
never executed: return 1;
0
82}-
83-
84static int ok_free(BIO *a)-
85{-
86 BIO_OK_CTX *ctx;-
87-
88 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
89 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
90 )-
91 return
never executed: return 0;
0;
never executed: return 0;
0
92-
93 ctx = BIO_get_data(a);-
94-
95 EVP_MD_CTX_free(ctx->md);-
96 CRYPTO_clear_free(ctx, sizeof(BIO_OK_CTX), __FILE__, 164);-
97 BIO_set_data(a, -
98 ((void *)0)-
99 );-
100 BIO_set_init(a, 0);-
101-
102 return
never executed: return 1;
1;
never executed: return 1;
0
103}-
104-
105static int ok_read(BIO *b, char *out, int outl)-
106{-
107 int ret = 0, i, n;-
108 BIO_OK_CTX *ctx;-
109 BIO *next;-
110-
111 if (out ==
out == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
112 ((void *)0)
out == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
113 )-
114 return
never executed: return 0;
0;
never executed: return 0;
0
115-
116 ctx = BIO_get_data(b);-
117 next = BIO_next(b);-
118-
119 if ((
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
ctx ==
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
120 ((void *)0)
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
121 )
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
next ==
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
122 ((void *)0)
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
123 )
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(BIO_get_init(b) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
BIO_get_init(b) == 0)
(BIO_get_init(b) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
124 return
never executed: return 0;
0;
never executed: return 0;
0
125-
126 while (outl > 0
outl > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
127-
128-
129 if (ctx->blockout
ctx->blockoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
130 i = ctx->buf_len - ctx->buf_off;-
131 if (i > outl
i > outlDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
132 i = outl;
never executed: i = outl;
0
133 memcpy(out, &(ctx->buf[ctx->buf_off]), i);-
134 ret += i;-
135 out += i;-
136 outl -= i;-
137 ctx->buf_off += i;-
138-
139-
140 if (ctx->buf_len == ctx->buf_off
ctx->buf_len == ctx->buf_offDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
141 ctx->buf_off = 0;-
142-
143-
144-
145-
146 if (ctx->buf_len_save - ctx->buf_off_save > 0
ctx->buf_len_s...f_off_save > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
147 ctx->buf_len = ctx->buf_len_save - ctx->buf_off_save;-
148 memmove(ctx->buf, &(ctx->buf[ctx->buf_off_save]),-
149 ctx->buf_len);-
150 }
never executed: end of block
else {
0
151 ctx->buf_len = 0;-
152 }
never executed: end of block
0
153 ctx->blockout = 0;-
154 }
never executed: end of block
0
155 }
never executed: end of block
0
156-
157-
158 if (outl == 0
outl == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
159 break;
never executed: break;
0
160-
161-
162 n = ((1024*4)+ 4 + 3*64) - ctx->buf_len;-
163 i = BIO_read(next, &(ctx->buf[ctx->buf_len]), n);-
164-
165 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
166 break;
never executed: break;
0
167-
168 ctx->buf_len += i;-
169-
170-
171 if (ctx->sigio == 1
ctx->sigio == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
172 if (!sig_in(b)
!sig_in(b)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
173 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
174 return
never executed: return 0;
0;
never executed: return 0;
0
175 }-
176 }
never executed: end of block
0
177-
178-
179 if (ctx->sigio == 0
ctx->sigio == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
180 if (!block_in(b)
!block_in(b)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
181 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
182 return
never executed: return 0;
0;
never executed: return 0;
0
183 }-
184 }
never executed: end of block
0
185-
186-
187 if (ctx->cont <= 0
ctx->cont <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
188 break;
never executed: break;
0
189-
190 }
never executed: end of block
0
191-
192 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
193 BIO_copy_next_retry(b);-
194 return
never executed: return ret;
ret;
never executed: return ret;
0
195}-
196-
197static int ok_write(BIO *b, const char *in, int inl)-
198{-
199 int ret = 0, n, i;-
200 BIO_OK_CTX *ctx;-
201 BIO *next;-
202-
203 if (inl <= 0
inl <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
204 return
never executed: return inl;
inl;
never executed: return inl;
0
205-
206 ctx = BIO_get_data(b);-
207 next = BIO_next(b);-
208 ret = inl;-
209-
210 if ((
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
ctx ==
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
211 ((void *)0)
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
212 )
(ctx == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
next ==
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
213 ((void *)0)
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
214 )
(next == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(BIO_get_init(b) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
BIO_get_init(b) == 0)
(BIO_get_init(b) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
215 return
never executed: return 0;
0;
never executed: return 0;
0
216-
217 if (ctx->sigio
ctx->sigioDescription
TRUEnever evaluated
FALSEnever evaluated
&& !sig_out(b)
!sig_out(b)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
218 return
never executed: return 0;
0;
never executed: return 0;
0
219-
220 do {-
221 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
222 n = ctx->buf_len - ctx->buf_off;-
223 while (ctx->blockout
ctx->blockoutDescription
TRUEnever evaluated
FALSEnever evaluated
&& n > 0
n > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
224 i = BIO_write(next, &(ctx->buf[ctx->buf_off]), n);-
225 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
226 BIO_copy_next_retry(b);-
227 if (!BIO_test_flags(b, 0x08)
!BIO_test_flags(b, 0x08)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
228 ctx->cont = 0;
never executed: ctx->cont = 0;
0
229 return
never executed: return i;
i;
never executed: return i;
0
230 }-
231 ctx->buf_off += i;-
232 n -= i;-
233 }
never executed: end of block
0
234-
235-
236 ctx->blockout = 0;-
237 if (ctx->buf_len == ctx->buf_off
ctx->buf_len == ctx->buf_offDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
238 ctx->buf_len = 4;-
239 ctx->buf_off = 0;-
240 }
never executed: end of block
0
241-
242 if ((
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
in ==
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
243 ((void *)0)
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
244 )
(in == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(inl <= 0)Description
TRUEnever evaluated
FALSEnever evaluated
inl <= 0)
(inl <= 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
245 return
never executed: return 0;
0;
never executed: return 0;
0
246-
247 n = (
(inl + ctx->bu... (1024*4) + 4)Description
TRUEnever evaluated
FALSEnever evaluated
inl + ctx->buf_len > (1024*4) + 4)
(inl + ctx->bu... (1024*4) + 4)Description
TRUEnever evaluated
FALSEnever evaluated
?
0
248 (int)((1024*4) + 4 - ctx->buf_len) : inl;-
249-
250 memcpy(&ctx->buf[ctx->buf_len], in, n);-
251 ctx->buf_len += n;-
252 inl -= n;-
253 in += n;-
254-
255 if (ctx->buf_len >= (1024*4) + 4
ctx->buf_len >= (1024*4) + 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
256 if (!block_out(b)
!block_out(b)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
257 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
258 return
never executed: return 0;
0;
never executed: return 0;
0
259 }-
260 }
never executed: end of block
0
261 }
never executed: end of block
while (inl > 0
inl > 0Description
TRUEnever evaluated
FALSEnever evaluated
);
0
262-
263 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
264 BIO_copy_next_retry(b);-
265 return
never executed: return ret;
ret;
never executed: return ret;
0
266}-
267-
268static long ok_ctrl(BIO *b, int cmd, long num, void *ptr)-
269{-
270 BIO_OK_CTX *ctx;-
271 EVP_MD *md;-
272 const EVP_MD **ppmd;-
273 long ret = 1;-
274 int i;-
275 BIO *next;-
276-
277 ctx = BIO_get_data(b);-
278 next = BIO_next(b);-
279-
280 switch (cmd) {-
281 case
never executed: case 1:
1:
never executed: case 1:
0
282 ctx->buf_len = 0;-
283 ctx->buf_off = 0;-
284 ctx->buf_len_save = 0;-
285 ctx->buf_off_save = 0;-
286 ctx->cont = 1;-
287 ctx->finished = 0;-
288 ctx->blockout = 0;-
289 ctx->sigio = 1;-
290 ret = BIO_ctrl(next, cmd, num, ptr);-
291 break;
never executed: break;
0
292 case
never executed: case 2:
2:
never executed: case 2:
0
293 if (ctx->cont <= 0
ctx->cont <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
294 ret = 1;
never executed: ret = 1;
0
295 else-
296 ret = BIO_ctrl(next, cmd, num, ptr);
never executed: ret = BIO_ctrl(next, cmd, num, ptr);
0
297 break;
never executed: break;
0
298 case
never executed: case 10:
10:
never executed: case 10:
0
299 case
never executed: case 13:
13:
never executed: case 13:
0
300 ret = ctx->blockout
ctx->blockoutDescription
TRUEnever evaluated
FALSEnever evaluated
? ctx->buf_len - ctx->buf_off : 0;
0
301 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
302 ret = BIO_ctrl(next, cmd, num, ptr);
never executed: ret = BIO_ctrl(next, cmd, num, ptr);
0
303 break;
never executed: break;
0
304 case
never executed: case 11:
11:
never executed: case 11:
0
305-
306 if (ctx->blockout == 0
ctx->blockout == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
307 if (!block_out(b)
!block_out(b)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
308 return
never executed: return 0;
0;
never executed: return 0;
0
309-
310 while (ctx->blockout
ctx->blockoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
311 i = ok_write(b, -
312 ((void *)0)-
313 , 0);-
314 if (i < 0
i < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
315 ret = i;-
316 break;
never executed: break;
0
317 }-
318 }
never executed: end of block
0
319-
320 ctx->finished = 1;-
321 ctx->buf_off = ctx->buf_len = 0;-
322 ctx->cont = (int)ret;-
323-
324-
325 ret = BIO_ctrl(next, cmd, num, ptr);-
326 break;
never executed: break;
0
327 case
never executed: case 101:
101:
never executed: case 101:
0
328 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
329 ret = BIO_ctrl(next, cmd, num, ptr);-
330 BIO_copy_next_retry(b);-
331 break;
never executed: break;
0
332 case
never executed: case 3:
3:
never executed: case 3:
0
333 ret = (long)ctx->cont;-
334 break;
never executed: break;
0
335 case
never executed: case 111:
111:
never executed: case 111:
0
336 md = ptr;-
337 if (!EVP_DigestInit_ex(ctx->md, md,
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
338 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
339 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
340 return
never executed: return 0;
0;
never executed: return 0;
0
341 BIO_set_init(b, 1);-
342 break;
never executed: break;
0
343 case
never executed: case 112:
112:
never executed: case 112:
0
344 if (BIO_get_init(b)
BIO_get_init(b)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
345 ppmd = ptr;-
346 *ppmd = EVP_MD_CTX_md(ctx->md);-
347 }
never executed: end of block
else
0
348 ret = 0;
never executed: ret = 0;
0
349 break;
never executed: break;
0
350 default
never executed: default:
:
never executed: default:
0
351 ret = BIO_ctrl(next, cmd, num, ptr);-
352 break;
never executed: break;
0
353 }-
354 return
never executed: return ret;
ret;
never executed: return ret;
0
355}-
356-
357static long ok_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)-
358{-
359 long ret = 1;-
360 BIO *next;-
361-
362 next = BIO_next(b);-
363-
364 if (next ==
next == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
365 ((void *)0)
next == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
366 )-
367 return
never executed: return 0;
0;
never executed: return 0;
0
368-
369 switch (cmd) {-
370 default
never executed: default:
:
never executed: default:
0
371 ret = BIO_callback_ctrl(next, cmd, fp);-
372 break;
never executed: break;
0
373 }-
374-
375 return
never executed: return ret;
ret;
never executed: return ret;
0
376}-
377-
378static void longswap(void *_ptr, size_t len)-
379{-
380 const union {-
381 long one;-
382 char little;-
383 } is_endian = {-
384 1-
385 };-
386-
387 if (is_endian.little
is_endian.littleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
388 size_t i;-
389 unsigned char *p = _ptr, c;-
390-
391 for (i = 0; i < len
i < lenDescription
TRUEnever evaluated
FALSEnever evaluated
; i += 4) {
0
392 c = p[0], p[0] = p[3], p[3] = c;-
393 c = p[1], p[1] = p[2], p[2] = c;-
394 }
never executed: end of block
0
395 }
never executed: end of block
0
396}
never executed: end of block
0
397-
398static int sig_out(BIO *b)-
399{-
400 BIO_OK_CTX *ctx;-
401 EVP_MD_CTX *md;-
402 const EVP_MD *digest;-
403 int md_size;-
404 void *md_data;-
405-
406 ctx = BIO_get_data(b);-
407 md = ctx->md;-
408 digest = EVP_MD_CTX_md(md);-
409 md_size = EVP_MD_size(digest);-
410 md_data = EVP_MD_CTX_md_data(md);-
411-
412 if (ctx->buf_len + 2 * md_size > (1024*4)
ctx->buf_len +...ize > (1024*4)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
413 return
never executed: return 1;
1;
never executed: return 1;
0
414-
415 if (!EVP_DigestInit_ex(md, digest,
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
416 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
417 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
418 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
419-
420-
421-
422-
423 if (RAND_bytes(md_data, md_size) <= 0
RAND_bytes(md_... md_size) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
424 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
425 memcpy(&(ctx->buf[ctx->buf_len]), md_data, md_size);-
426 longswap(&(ctx->buf[ctx->buf_len]), md_size);-
427 ctx->buf_len += md_size;-
428-
429 if (!EVP_DigestUpdate(md, "The quick brown fox jumped over the lazy dog's back.", strlen("The quick brown fox jumped over the lazy dog's back."))
!EVP_DigestUpd...dog's back."))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
430 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
431 if (!EVP_DigestFinal_ex(md, &(ctx->buf[ctx->buf_len]),
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
432 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
433 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
434 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
435 ctx->buf_len += md_size;-
436 ctx->blockout = 1;-
437 ctx->sigio = 0;-
438 return
never executed: return 1;
1;
never executed: return 1;
0
439 berr:-
440 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
441 return
never executed: return 0;
0;
never executed: return 0;
0
442}-
443-
444static int sig_in(BIO *b)-
445{-
446 BIO_OK_CTX *ctx;-
447 EVP_MD_CTX *md;-
448 unsigned char tmp[64];-
449 int ret = 0;-
450 const EVP_MD *digest;-
451 int md_size;-
452 void *md_data;-
453-
454 ctx = BIO_get_data(b);-
455 md = ctx->md;-
456 digest = EVP_MD_CTX_md(md);-
457 md_size = EVP_MD_size(digest);-
458 md_data = EVP_MD_CTX_md_data(md);-
459-
460 if ((
(int)(ctx->buf... < 2 * md_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
int)(ctx->buf_len - ctx->buf_off) < 2 * md_size
(int)(ctx->buf... < 2 * md_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
461 return
never executed: return 1;
1;
never executed: return 1;
0
462-
463 if (!EVP_DigestInit_ex(md, digest,
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
464 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
465 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
466 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
467 memcpy(md_data, &(ctx->buf[ctx->buf_off]), md_size);-
468 longswap(md_data, md_size);-
469 ctx->buf_off += md_size;-
470-
471 if (!EVP_DigestUpdate(md, "The quick brown fox jumped over the lazy dog's back.", strlen("The quick brown fox jumped over the lazy dog's back."))
!EVP_DigestUpd...dog's back."))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
472 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
473 if (!EVP_DigestFinal_ex(md, tmp,
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
474 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
475 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
476 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
477 ret = memcmp(&(ctx->buf[ctx->buf_off]), tmp, md_size) == 0;-
478 ctx->buf_off += md_size;-
479 if (ret == 1
ret == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
480 ctx->sigio = 0;-
481 if (ctx->buf_len != ctx->buf_off
ctx->buf_len != ctx->buf_offDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
482 memmove(ctx->buf, &(ctx->buf[ctx->buf_off]),-
483 ctx->buf_len - ctx->buf_off);-
484 }
never executed: end of block
0
485 ctx->buf_len -= ctx->buf_off;-
486 ctx->buf_off = 0;-
487 }
never executed: end of block
else {
0
488 ctx->cont = 0;-
489 }
never executed: end of block
0
490 return
never executed: return 1;
1;
never executed: return 1;
0
491 berr:-
492 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
493 return
never executed: return 0;
0;
never executed: return 0;
0
494}-
495-
496static int block_out(BIO *b)-
497{-
498 BIO_OK_CTX *ctx;-
499 EVP_MD_CTX *md;-
500 unsigned long tl;-
501 const EVP_MD *digest;-
502 int md_size;-
503-
504 ctx = BIO_get_data(b);-
505 md = ctx->md;-
506 digest = EVP_MD_CTX_md(md);-
507 md_size = EVP_MD_size(digest);-
508-
509 tl = ctx->buf_len - 4;-
510 ctx->buf[0] = (unsigned char)(tl >> 24);-
511 ctx->buf[1] = (unsigned char)(tl >> 16);-
512 ctx->buf[2] = (unsigned char)(tl >> 8);-
513 ctx->buf[3] = (unsigned char)(tl);-
514 if (!EVP_DigestUpdate(md,
!EVP_DigestUpd...->buf[4]), tl)Description
TRUEnever evaluated
FALSEnever evaluated
0
515 (unsigned char *)&(ctx->buf[4]), tl)
!EVP_DigestUpd...->buf[4]), tl)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
516 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
517 if (!EVP_DigestFinal_ex(md, &(ctx->buf[ctx->buf_len]),
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
518 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
519 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
520 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
521 ctx->buf_len += md_size;-
522 ctx->blockout = 1;-
523 return
never executed: return 1;
1;
never executed: return 1;
0
524 berr:-
525 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
526 return
never executed: return 0;
0;
never executed: return 0;
0
527}-
528-
529static int block_in(BIO *b)-
530{-
531 BIO_OK_CTX *ctx;-
532 EVP_MD_CTX *md;-
533 unsigned long tl = 0;-
534 unsigned char tmp[64];-
535 int md_size;-
536-
537 ctx = BIO_get_data(b);-
538 md = ctx->md;-
539 md_size = EVP_MD_size(EVP_MD_CTX_md(md));-
540-
541 -
542 ((void) (0))-
543 ;-
544 tl = ctx->buf[0];-
545 tl <<= 8;-
546 tl |= ctx->buf[1];-
547 tl <<= 8;-
548 tl |= ctx->buf[2];-
549 tl <<= 8;-
550 tl |= ctx->buf[3];-
551-
552 if (ctx->buf_len < tl + 4 + md_size
ctx->buf_len <... + 4 + md_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
553 return
never executed: return 1;
1;
never executed: return 1;
0
554-
555 if (!EVP_DigestUpdate(md,
!EVP_DigestUpd...->buf[4]), tl)Description
TRUEnever evaluated
FALSEnever evaluated
0
556 (unsigned char *)&(ctx->buf[4]), tl)
!EVP_DigestUpd...->buf[4]), tl)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
557 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
558 if (!EVP_DigestFinal_ex(md, tmp,
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
559 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
560 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
561 goto
never executed: goto berr;
berr;
never executed: goto berr;
0
562 if (memcmp(&(ctx->buf[tl + 4]), tmp, md_size) == 0
memcmp(&(ctx->... md_size) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
563-
564 ctx->buf_off_save = tl + 4 + md_size;-
565 ctx->buf_len_save = ctx->buf_len;-
566 ctx->buf_off = 4;-
567 ctx->buf_len = tl + 4;-
568 ctx->blockout = 1;-
569 }
never executed: end of block
else {
0
570 ctx->cont = 0;-
571 }
never executed: end of block
0
572 return
never executed: return 1;
1;
never executed: return 1;
0
573 berr:-
574 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
575 return
never executed: return 0;
0;
never executed: return 0;
0
576}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2