OpenCoverage

s3_cbc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/s3_cbc.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2static unsigned-
3constant_time_lt(unsigned a, unsigned b)-
4{-
5 a -= b;-
6 return
executed 29976 times by 1 test: return ((unsigned)((int)(a) >> (sizeof(int) * 8 - 1)));
Executed by:
  • ssltest
((unsigned)((int)(a) >> (sizeof(int) * 8 - 1)));
executed 29976 times by 1 test: return ((unsigned)((int)(a) >> (sizeof(int) * 8 - 1)));
Executed by:
  • ssltest
29976
7}-
8-
9-
10static unsigned-
11constant_time_ge(unsigned a, unsigned b)-
12{-
13 a -= b;-
14 return
executed 243952 times by 1 test: return ((unsigned)((int)(~a) >> (sizeof(int) * 8 - 1)));
Executed by:
  • ssltest
((unsigned)((int)(~a) >> (sizeof(int) * 8 - 1)));
executed 243952 times by 1 test: return ((unsigned)((int)(~a) >> (sizeof(int) * 8 - 1)));
Executed by:
  • ssltest
243952
15}-
16-
17-
18static unsigned char-
19constant_time_eq_8(unsigned a, unsigned b)-
20{-
21 unsigned c = a ^ b;-
22 c--;-
23 return
executed 2576 times by 1 test: return ((unsigned char)(((unsigned)((int)(c) >> (sizeof(int) * 8 - 1)))));
Executed by:
  • ssltest
((unsigned char)(((unsigned)((int)(c) >> (sizeof(int) * 8 - 1)))));
executed 2576 times by 1 test: return ((unsigned char)(((unsigned)((int)(c) >> (sizeof(int) * 8 - 1)))));
Executed by:
  • ssltest
2576
24}-
25int-
26tls1_cbc_remove_padding(const SSL* s, SSL3_RECORD *rec, unsigned block_size,-
27 unsigned mac_size)-
28{-
29 unsigned padding_length, good, to_check, i;-
30 const unsigned overhead = 1 + mac_size;-
31-
32-
33 if ((
(s->method->in...gs & (1 << 0))Description
TRUEevaluated 76 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 108 times by 1 test
Evaluated by:
  • ssltest
s->method->internal->ssl3_enc->enc_flags & (1 << 0))
(s->method->in...gs & (1 << 0))Description
TRUEevaluated 76 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 108 times by 1 test
Evaluated by:
  • ssltest
) {
76-108
34-
35-
36-
37 if (overhead + block_size > rec->length
overhead + blo... > rec->lengthDescription
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ssltest
)
0-76
38 return
never executed: return 0;
0;
never executed: return 0;
0
39-
40 rec->data += block_size;-
41 rec->input += block_size;-
42 rec->length -= block_size;-
43 }
executed 76 times by 1 test: end of block
Executed by:
  • ssltest
else if (overhead > rec->length
overhead > rec->lengthDescription
TRUEnever evaluated
FALSEevaluated 108 times by 1 test
Evaluated by:
  • ssltest
)
0-108
44 return
never executed: return 0;
0;
never executed: return 0;
0
45-
46 padding_length = rec->data[rec->length - 1];-
47-
48 good = constant_time_ge(rec->length, overhead + padding_length);-
49 to_check = 255;-
50 if (to_check > rec->length - 1
to_check > rec->length - 1Description
TRUEevaluated 110 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 74 times by 1 test
Evaluated by:
  • ssltest
)
74-110
51 to_check = rec->length - 1;
executed 110 times by 1 test: to_check = rec->length - 1;
Executed by:
  • ssltest
110
52-
53 for (i = 0; i < to_check
i < to_checkDescription
TRUEevaluated 23816 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++) {
184-23816
54 unsigned char mask = constant_time_ge(padding_length, i);-
55 unsigned char b = rec->data[rec->length - 1 - i];-
56-
57-
58 good &= ~(mask&(padding_length ^ b));-
59 }
executed 23816 times by 1 test: end of block
Executed by:
  • ssltest
23816
60-
61-
62-
63-
64-
65 good &= good >> 4;-
66 good &= good >> 2;-
67 good &= good >> 1;-
68 good <<= sizeof(good)*8 - 1;-
69 good = ((unsigned)((int)(good) >> (sizeof(int) * 8 - 1)));-
70-
71 padding_length = good & (padding_length + 1);-
72 rec->length -= padding_length;-
73 rec->type |= padding_length<<8;-
74-
75 return
executed 184 times by 1 test: return (int)((good & 1) | (~good & -1));
Executed by:
  • ssltest
(int)((good & 1) | (~good & -1));
executed 184 times by 1 test: return (int)((good & 1) | (~good & -1));
Executed by:
  • ssltest
184
76}-
77void-
78ssl3_cbc_copy_mac(unsigned char* out, const SSL3_RECORD *rec,-
79 unsigned md_size, unsigned orig_len)-
80{-
81-
82 unsigned char rotated_mac_buf[64 + 64];-
83 unsigned char *rotated_mac;-
84-
85-
86-
87-
88-
89 unsigned mac_end = rec->length;-
90 unsigned mac_start = mac_end - md_size;-
91-
92-
93 unsigned scan_start = 0;-
94 unsigned i, j;-
95 unsigned div_spoiler;-
96 unsigned rotate_offset;-
97-
98 (void)((orig_len >= md_size) ? 0 : (OpenSSLDie(__FILE__, 217, "orig_len >= md_size"),1));-
99 (void)((md_size <= 64) ? 0 : (OpenSSLDie(__FILE__, 218, "md_size <= EVP_MAX_MD_SIZE"),1));-
100-
101-
102 rotated_mac = rotated_mac_buf + ((0 - (size_t)rotated_mac_buf)&63);-
103-
104-
105-
106 if (orig_len > md_size + 255 + 1
orig_len > md_size + 255 + 1Description
TRUEevaluated 74 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 110 times by 1 test
Evaluated by:
  • ssltest
)
74-110
107 scan_start = orig_len - (md_size + 255 + 1);
executed 74 times by 1 test: scan_start = orig_len - (md_size + 255 + 1);
Executed by:
  • ssltest
74
108-
109-
110-
111-
112-
113-
114-
115 div_spoiler = md_size >> 1;-
116 div_spoiler <<= (sizeof(div_spoiler) - 1) * 8;-
117 rotate_offset = (div_spoiler + mac_start - scan_start) % md_size;-
118-
119 memset(rotated_mac, 0, md_size);-
120 for (i = scan_start, j = 0; i < orig_len
i < orig_lenDescription
TRUEevaluated 25752 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++) {
184-25752
121 unsigned char mac_started = constant_time_ge(i, mac_start);-
122 unsigned char mac_ended = constant_time_ge(i, mac_end);-
123 unsigned char b = rec->data[i];-
124 rotated_mac[j++] |= b & mac_started & ~mac_ended;-
125 j &= constant_time_lt(j, md_size);-
126 }
executed 25752 times by 1 test: end of block
Executed by:
  • ssltest
25752
127-
128-
129-
130 j = 0;-
131 for (i = 0; i < md_size
i < md_sizeDescription
TRUEevaluated 4224 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++) {
184-4224
132-
133 ((volatile unsigned char *)rotated_mac)[rotate_offset^32];-
134 out[j++] = rotated_mac[rotate_offset++];-
135 rotate_offset &= constant_time_lt(rotate_offset, md_size);-
136 }
executed 4224 times by 1 test: end of block
Executed by:
  • ssltest
4224
137}
executed 184 times by 1 test: end of block
Executed by:
  • ssltest
184
138static void-
139tls1_md5_final_raw(void* ctx, unsigned char *md_out)-
140{-
141 MD5_CTX *md5 = ctx;-
142 (*((md_out)++)=(unsigned char)(md5->A), *((md_out)++)=(unsigned char)(md5->A>>8), *((md_out)++)=(unsigned char)(md5->A>>16), *((md_out)++)=(unsigned char)(md5->A>>24));-
143 (*((md_out)++)=(unsigned char)(md5->B), *((md_out)++)=(unsigned char)(md5->B>>8), *((md_out)++)=(unsigned char)(md5->B>>16), *((md_out)++)=(unsigned char)(md5->B>>24));-
144 (*((md_out)++)=(unsigned char)(md5->C), *((md_out)++)=(unsigned char)(md5->C>>8), *((md_out)++)=(unsigned char)(md5->C>>16), *((md_out)++)=(unsigned char)(md5->C>>24));-
145 (*((md_out)++)=(unsigned char)(md5->D), *((md_out)++)=(unsigned char)(md5->D>>8), *((md_out)++)=(unsigned char)(md5->D>>16), *((md_out)++)=(unsigned char)(md5->D>>24));-
146}
never executed: end of block
0
147-
148static void-
149tls1_sha1_final_raw(void* ctx, unsigned char *md_out)-
150{-
151 SHA_CTX *sha1 = ctx;-
152 (*((md_out)++)=(unsigned char)(((sha1->h0)>>24)&0xff), *((md_out)++)=(unsigned char)(((sha1->h0)>>16)&0xff), *((md_out)++)=(unsigned char)(((sha1->h0)>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha1->h0) )&0xff));-
153 (*((md_out)++)=(unsigned char)(((sha1->h1)>>24)&0xff), *((md_out)++)=(unsigned char)(((sha1->h1)>>16)&0xff), *((md_out)++)=(unsigned char)(((sha1->h1)>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha1->h1) )&0xff));-
154 (*((md_out)++)=(unsigned char)(((sha1->h2)>>24)&0xff), *((md_out)++)=(unsigned char)(((sha1->h2)>>16)&0xff), *((md_out)++)=(unsigned char)(((sha1->h2)>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha1->h2) )&0xff));-
155 (*((md_out)++)=(unsigned char)(((sha1->h3)>>24)&0xff), *((md_out)++)=(unsigned char)(((sha1->h3)>>16)&0xff), *((md_out)++)=(unsigned char)(((sha1->h3)>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha1->h3) )&0xff));-
156 (*((md_out)++)=(unsigned char)(((sha1->h4)>>24)&0xff), *((md_out)++)=(unsigned char)(((sha1->h4)>>16)&0xff), *((md_out)++)=(unsigned char)(((sha1->h4)>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha1->h4) )&0xff));-
157}
executed 1008 times by 1 test: end of block
Executed by:
  • ssltest
1008
158-
159static void-
160tls1_sha256_final_raw(void* ctx, unsigned char *md_out)-
161{-
162 SHA256_CTX *sha256 = ctx;-
163 unsigned i;-
164-
165 for (i = 0; i < 8
i < 8Description
TRUEevaluated 2016 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 252 times by 1 test
Evaluated by:
  • ssltest
; i++) {
252-2016
166 (*((md_out)++)=(unsigned char)(((sha256->h[i])>>24)&0xff), *((md_out)++)=(unsigned char)(((sha256->h[i])>>16)&0xff), *((md_out)++)=(unsigned char)(((sha256->h[i])>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha256->h[i]) )&0xff));-
167 }
executed 2016 times by 1 test: end of block
Executed by:
  • ssltest
2016
168}
executed 252 times by 1 test: end of block
Executed by:
  • ssltest
252
169-
170static void-
171tls1_sha512_final_raw(void* ctx, unsigned char *md_out)-
172{-
173 SHA512_CTX *sha512 = ctx;-
174 unsigned i;-
175-
176 for (i = 0; i < 8
i < 8Description
TRUEevaluated 224 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 28 times by 1 test
Evaluated by:
  • ssltest
; i++) {
28-224
177 (*((md_out)++)=(unsigned char)(((sha512->h[i])>>56)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>>48)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>>40)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>>32)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>>24)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>>16)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i])>> 8)&0xff), *((md_out)++)=(unsigned char)(((sha512->h[i]) )&0xff));-
178 }
executed 224 times by 1 test: end of block
Executed by:
  • ssltest
224
179}
executed 28 times by 1 test: end of block
Executed by:
  • ssltest
28
180char-
181ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx)-
182{-
183 switch (EVP_MD_type(EVP_MD_CTX_md(ctx))) {-
184 case
never executed: case 4:
4:
never executed: case 4:
0
185 case
executed 144 times by 1 test: case 64:
Executed by:
  • ssltest
64:
executed 144 times by 1 test: case 64:
Executed by:
  • ssltest
144
186 case
never executed: case 675:
675:
never executed: case 675:
0
187 case
executed 36 times by 1 test: case 672:
Executed by:
  • ssltest
672:
executed 36 times by 1 test: case 672:
Executed by:
  • ssltest
36
188 case
executed 4 times by 1 test: case 673:
Executed by:
  • ssltest
673:
executed 4 times by 1 test: case 673:
Executed by:
  • ssltest
4
189 case
never executed: case 674:
674:
never executed: case 674:
0
190 return
executed 184 times by 1 test: return 1;
Executed by:
  • ssltest
1;
executed 184 times by 1 test: return 1;
Executed by:
  • ssltest
184
191 default
never executed: default:
:
never executed: default:
0
192 return
never executed: return 0;
0;
never executed: return 0;
0
193 }-
194}-
195int-
196ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char* md_out,-
197 size_t* md_out_size, const unsigned char header[13],-
198 const unsigned char *data, size_t data_plus_mac_size,-
199 size_t data_plus_mac_plus_padding_size, const unsigned char *mac_secret,-
200 unsigned mac_secret_length)-
201{-
202 union {-
203-
204-
205-
206-
207-
208 unsigned long align;-
209 unsigned char c[sizeof(SHA512_CTX)];-
210 } md_state;-
211 void (*md_final_raw)(void *ctx, unsigned char *md_out);-
212 void (*md_transform)(void *ctx, const unsigned char *block);-
213 unsigned md_size, md_block_size = 64;-
214 unsigned header_length, variance_blocks,-
215 len, max_mac_bytes, num_blocks,-
216 num_starting_blocks, k, mac_end_offset, c, index_a, index_b;-
217 unsigned int bits;-
218 unsigned char length_bytes[16];-
219-
220 unsigned char hmac_pad[128];-
221 unsigned char first_block[128];-
222 unsigned char mac_out[64];-
223 unsigned i, j, md_out_size_u;-
224 EVP_MD_CTX md_ctx;-
225-
226-
227 unsigned md_length_size = 8;-
228 char length_is_big_endian = 1;-
229-
230-
231-
232 (void)((data_plus_mac_plus_padding_size < 1024*1024) ? 0 : (OpenSSLDie(__FILE__, 403, "data_plus_mac_plus_padding_size < 1024*1024"),1));-
233-
234 switch (EVP_MD_type(EVP_MD_CTX_md(ctx))) {-
235 case
never executed: case 4:
4:
never executed: case 4:
0
236 MD5_Init((MD5_CTX*)md_state.c);-
237 md_final_raw = tls1_md5_final_raw;-
238 md_transform = (void(*)(void *ctx, const unsigned char *block)) MD5_Transform;-
239 md_size = 16;-
240 length_is_big_endian = 0;-
241 break;
never executed: break;
0
242 case
executed 144 times by 1 test: case 64:
Executed by:
  • ssltest
64:
executed 144 times by 1 test: case 64:
Executed by:
  • ssltest
144
243 SHA1_Init((SHA_CTX*)md_state.c);-
244 md_final_raw = tls1_sha1_final_raw;-
245 md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA1_Transform;-
246 md_size = 20;-
247 break;
executed 144 times by 1 test: break;
Executed by:
  • ssltest
144
248 case
never executed: case 675:
675:
never executed: case 675:
0
249 SHA224_Init((SHA256_CTX*)md_state.c);-
250 md_final_raw = tls1_sha256_final_raw;-
251 md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;-
252 md_size = 224/8;-
253 break;
never executed: break;
0
254 case
executed 36 times by 1 test: case 672:
Executed by:
  • ssltest
672:
executed 36 times by 1 test: case 672:
Executed by:
  • ssltest
36
255 SHA256_Init((SHA256_CTX*)md_state.c);-
256 md_final_raw = tls1_sha256_final_raw;-
257 md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;-
258 md_size = 32;-
259 break;
executed 36 times by 1 test: break;
Executed by:
  • ssltest
36
260 case
executed 4 times by 1 test: case 673:
Executed by:
  • ssltest
673:
executed 4 times by 1 test: case 673:
Executed by:
  • ssltest
4
261 SHA384_Init((SHA512_CTX*)md_state.c);-
262 md_final_raw = tls1_sha512_final_raw;-
263 md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;-
264 md_size = 384/8;-
265 md_block_size = 128;-
266 md_length_size = 16;-
267 break;
executed 4 times by 1 test: break;
Executed by:
  • ssltest
4
268 case
never executed: case 674:
674:
never executed: case 674:
0
269 SHA512_Init((SHA512_CTX*)md_state.c);-
270 md_final_raw = tls1_sha512_final_raw;-
271 md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;-
272 md_size = 64;-
273 md_block_size = 128;-
274 md_length_size = 16;-
275 break;
never executed: break;
0
276 default
never executed: default:
:
never executed: default:
0
277-
278-
279-
280 (void)((0) ? 0 : (OpenSSLDie(__FILE__, 451, "0"),1));-
281 if (md_out_size
md_out_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
282 *
never executed: *md_out_size = 0;
md_out_size = 0;
never executed: *md_out_size = 0;
0
283 return
never executed: return 0;
0;
never executed: return 0;
0
284 }-
285-
286 (void)((md_length_size <= 16) ? 0 : (OpenSSLDie(__FILE__, 457, "md_length_size <= MAX_HASH_BIT_COUNT_BYTES"),1));-
287 (void)((md_block_size <= 128) ? 0 : (OpenSSLDie(__FILE__, 458, "md_block_size <= MAX_HASH_BLOCK_SIZE"),1));-
288 (void)((md_size <= 64) ? 0 : (OpenSSLDie(__FILE__, 459, "md_size <= EVP_MAX_MD_SIZE"),1));-
289-
290 header_length = 13;-
291 variance_blocks = 6;-
292-
293-
294 len = data_plus_mac_plus_padding_size + header_length;-
295-
296-
297 max_mac_bytes = len - md_size - 1;-
298-
299 num_blocks = (max_mac_bytes + 1 + md_length_size + md_block_size - 1) / md_block_size;-
300-
301-
302-
303-
304-
305-
306 num_starting_blocks = 0;-
307-
308-
309 k = 0;-
310-
311-
312 mac_end_offset = data_plus_mac_size + header_length - md_size;-
313-
314-
315 c = mac_end_offset % md_block_size;-
316-
317-
318 index_a = mac_end_offset / md_block_size;-
319-
320-
321 index_b = (mac_end_offset + md_length_size) / md_block_size;-
322-
323-
324-
325 if (num_blocks > variance_blocks
num_blocks > variance_blocksDescription
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
) {
0-184
326 num_starting_blocks = num_blocks - variance_blocks;-
327 k = md_block_size*num_starting_blocks;-
328 }
never executed: end of block
0
329-
330 bits = 8*mac_end_offset;-
331-
332 bits += 8*md_block_size;-
333 memset(hmac_pad, 0, md_block_size);-
334 (void)((mac_secret_length <= sizeof(hmac_pad)) ? 0 : (OpenSSLDie(__FILE__, 516, "mac_secret_length <= sizeof(hmac_pad)"),1));-
335 memcpy(hmac_pad, mac_secret, mac_secret_length);-
336 for (i = 0; i < md_block_size
i < md_block_sizeDescription
TRUEevaluated 12032 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++)
184-12032
337 hmac_pad[i] ^= 0x36;
executed 12032 times by 1 test: hmac_pad[i] ^= 0x36;
Executed by:
  • ssltest
12032
338-
339 md_transform(md_state.c, hmac_pad);-
340-
341 if (length_is_big_endian
length_is_big_endianDescription
TRUEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
) {
0-184
342 memset(length_bytes, 0, md_length_size - 4);-
343 length_bytes[md_length_size - 4] = (unsigned char)(bits >> 24);-
344 length_bytes[md_length_size - 3] = (unsigned char)(bits >> 16);-
345 length_bytes[md_length_size - 2] = (unsigned char)(bits >> 8);-
346 length_bytes[md_length_size - 1] = (unsigned char)bits;-
347 }
executed 184 times by 1 test: end of block
Executed by:
  • ssltest
else {
184
348 memset(length_bytes, 0, md_length_size);-
349 length_bytes[md_length_size - 5] = (unsigned char)(bits >> 24);-
350 length_bytes[md_length_size - 6] = (unsigned char)(bits >> 16);-
351 length_bytes[md_length_size - 7] = (unsigned char)(bits >> 8);-
352 length_bytes[md_length_size - 8] = (unsigned char)bits;-
353 }
never executed: end of block
0
354-
355 if (k > 0
k > 0Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
) {
0-184
356-
357 memcpy(first_block, header, 13);-
358 memcpy(first_block + 13, data, md_block_size - 13);-
359 md_transform(md_state.c, first_block);-
360 for (i = 1; i < k/md_block_size
i < k/md_block_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
361 md_transform(md_state.c, data + md_block_size*i - 13);
never executed: md_transform(md_state.c, data + md_block_size*i - 13);
0
362 }
never executed: end of block
0
363-
364 memset(mac_out, 0, sizeof(mac_out));-
365-
366-
367-
368-
369-
370 for (i = num_starting_blocks; i <= num_starting_blocks + variance_blocks
i <= num_start...ariance_blocksDescription
TRUEevaluated 1288 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++) {
184-1288
371 unsigned char block[128];-
372 unsigned char is_block_a = constant_time_eq_8(i, index_a);-
373 unsigned char is_block_b = constant_time_eq_8(i, index_b);-
374 for (j = 0; j < md_block_size
j < md_block_sizeDescription
TRUEevaluated 84224 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 1288 times by 1 test
Evaluated by:
  • ssltest
; j++) {
1288-84224
375 unsigned char b = 0, is_past_c, is_past_cp1;-
376 if (k < header_length
k < header_lengthDescription
TRUEevaluated 2392 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 81832 times by 1 test
Evaluated by:
  • ssltest
)
2392-81832
377 b = header[k];
executed 2392 times by 1 test: b = header[k];
Executed by:
  • ssltest
2392
378 else if (k < data_plus_mac_plus_padding_size + header_length
k < data_plus_... header_lengthDescription
TRUEevaluated 26704 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 55128 times by 1 test
Evaluated by:
  • ssltest
)
26704-55128
379 b = data[k - header_length];
executed 26704 times by 1 test: b = data[k - header_length];
Executed by:
  • ssltest
26704
380 k++;-
381-
382 is_past_c = is_block_a & constant_time_ge(j, c);-
383 is_past_cp1 = is_block_a & constant_time_ge(j, c + 1);-
384-
385-
386-
387 b = (b&~is_past_c) | (0x80&is_past_c);-
388-
389-
390-
391 b = b&~is_past_cp1;-
392-
393-
394-
395-
396 b &= ~is_block_b | is_block_a;-
397-
398-
399-
400 if (j >= md_block_size - md_length_size
j >= md_block_...md_length_sizeDescription
TRUEevaluated 10528 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 73696 times by 1 test
Evaluated by:
  • ssltest
) {
10528-73696
401-
402 b = (b&~is_block_b) | (is_block_b&length_bytes[j - (md_block_size - md_length_size)]);-
403 }
executed 10528 times by 1 test: end of block
Executed by:
  • ssltest
10528
404 block[j] = b;-
405 }
executed 84224 times by 1 test: end of block
Executed by:
  • ssltest
84224
406-
407 md_transform(md_state.c, block);-
408 md_final_raw(md_state.c, block);-
409-
410 for (j = 0; j < md_size
j < md_sizeDescription
TRUEevaluated 29568 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 1288 times by 1 test
Evaluated by:
  • ssltest
; j++)
1288-29568
411 mac_out[j] |= block[j]&is_block_b;
executed 29568 times by 1 test: mac_out[j] |= block[j]&is_block_b;
Executed by:
  • ssltest
29568
412 }
executed 1288 times by 1 test: end of block
Executed by:
  • ssltest
1288
413-
414 EVP_MD_CTX_init(&md_ctx);-
415 if (!EVP_DigestInit_ex(&md_ctx, ctx->digest,
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
416 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
417 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
) {
0-184
418 EVP_MD_CTX_cleanup(&md_ctx);-
419 return
never executed: return 0;
0;
never executed: return 0;
0
420 }-
421-
422-
423 for (i = 0; i < md_block_size
i < md_block_sizeDescription
TRUEevaluated 12032 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
; i++)
184-12032
424 hmac_pad[i] ^= 0x6a;
executed 12032 times by 1 test: hmac_pad[i] ^= 0x6a;
Executed by:
  • ssltest
12032
425-
426 EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size);-
427 EVP_DigestUpdate(&md_ctx, mac_out, md_size);-
428-
429 EVP_DigestFinal(&md_ctx, md_out, &md_out_size_u);-
430 if (md_out_size
md_out_sizeDescription
TRUEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-184
431 *
executed 184 times by 1 test: *md_out_size = md_out_size_u;
Executed by:
  • ssltest
md_out_size = md_out_size_u;
executed 184 times by 1 test: *md_out_size = md_out_size_u;
Executed by:
  • ssltest
184
432 EVP_MD_CTX_cleanup(&md_ctx);-
433-
434 return
executed 184 times by 1 test: return 1;
Executed by:
  • ssltest
1;
executed 184 times by 1 test: return 1;
Executed by:
  • ssltest
184
435}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2