OpenCoverage

t1_enc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/t1_enc.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6int tls1_PRF(SSL *s, const unsigned char *secret, size_t secret_len,-
7 const void *seed1, size_t seed1_len, const void *seed2, size_t seed2_len,-
8 const void *seed3, size_t seed3_len, const void *seed4, size_t seed4_len,-
9 const void *seed5, size_t seed5_len, unsigned char *out, size_t out_len);-
10-
11void-
12tls1_cleanup_key_block(SSL *s)-
13{-
14 freezero((s->s3->internal)->hs.key_block, (s->s3->internal)->hs.key_block_len);-
15 (s->s3->internal)->hs.key_block = -
16 ((void *)0)-
17 ;-
18 (s->s3->internal)->hs.key_block_len = 0;-
19}
executed 1192 times by 11 tests: end of block
Executed by:
  • cipher_list
  • cipherstest
  • clienttest
  • libssl.so.46.0.1
  • servertest
  • ssl_versions
  • ssltest
  • tls_ext_alpn
  • tls_prf
  • tlsexttest
  • tlstest
1192
20-
21int-
22tls1_init_finished_mac(SSL *s)-
23{-
24 BIO_free((s->s3->internal)->handshake_buffer);-
25-
26 (s->s3->internal)->handshake_buffer = BIO_new(BIO_s_mem());-
27 if ((
(s->s3->intern...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 139 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
s->s3->internal)->handshake_buffer ==
(s->s3->intern...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 139 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
0-139
28 ((void *)0)
(s->s3->intern...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 139 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
0-139
29 )-
30 return
never executed: return (0);
(0);
never executed: return (0);
0
31-
32 (void)(int)BIO_ctrl((s->s3->internal)->handshake_buffer,9,(0x01),-
33 ((void *)0)-
34 );-
35-
36 return
executed 139 times by 4 tests: return (1);
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
(1);
executed 139 times by 4 tests: return (1);
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
139
37}-
38-
39int-
40tls1_finish_mac(SSL *s, const unsigned char *buf, int len)-
41{-
42 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEevaluated 1152 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
)
0-1152
43 return
never executed: return 0;
0;
never executed: return 0;
0
44-
45 if (!tls1_handshake_hash_update(s, buf, len)
!tls1_handshak...e(s, buf, len)Description
TRUEnever evaluated
FALSEevaluated 1152 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
)
0-1152
46 return
never executed: return 0;
0;
never executed: return 0;
0
47-
48 if ((
(s->s3->intern...ndshake_bufferDescription
TRUEevaluated 352 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 800 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
s->s3->internal)->handshake_buffer
(s->s3->intern...ndshake_bufferDescription
TRUEevaluated 352 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 800 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
&&
352-800
49 !(s->s3->flags & 0x0020)
!(s->s3->flags & 0x0020)Description
TRUEevaluated 347 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 5 times by 1 test
Evaluated by:
  • ssltest
) {
5-347
50 BIO_write((s->s3->internal)->handshake_buffer, (void *)buf, len);-
51 return
executed 347 times by 4 tests: return 1;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
1;
executed 347 times by 4 tests: return 1;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
347
52 }-
53-
54 return
executed 805 times by 3 tests: return 1;
Executed by:
  • servertest
  • ssltest
  • tlstest
1;
executed 805 times by 3 tests: return 1;
Executed by:
  • servertest
  • ssltest
  • tlstest
805
55}-
56-
57int-
58tls1_digest_cached_records(SSL *s)-
59{-
60 long hdatalen;-
61 void *hdata;-
62-
63 hdatalen = BIO_ctrl((s->s3->internal)->handshake_buffer,3,0,(char *)&hdata);-
64 if (hdatalen <= 0
hdatalen <= 0Description
TRUEnever evaluated
FALSEevaluated 128 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
) {
0-128
65 SSL_error_internal(s, 332, __FILE__, 200);-
66 goto
never executed: goto err;
err;
never executed: goto err;
0
67 }-
68-
69 if (!(s->s3->flags & 0x0020)
!(s->s3->flags & 0x0020)Description
TRUEevaluated 123 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 5 times by 1 test
Evaluated by:
  • ssltest
) {
5-123
70 BIO_free((s->s3->internal)->handshake_buffer);-
71 (s->s3->internal)->handshake_buffer = -
72 ((void *)0)-
73 ;-
74 }
executed 123 times by 3 tests: end of block
Executed by:
  • servertest
  • ssltest
  • tlstest
123
75-
76 return
executed 128 times by 3 tests: return 1;
Executed by:
  • servertest
  • ssltest
  • tlstest
1;
executed 128 times by 3 tests: return 1;
Executed by:
  • servertest
  • ssltest
  • tlstest
128
77-
78 err:-
79 return
never executed: return 0;
0;
never executed: return 0;
0
80}-
81-
82void-
83tls1_record_sequence_increment(unsigned char *seq)-
84{-
85 int i;-
86-
87 for (i = 8 - 1; i >= 0
i >= 0Description
TRUEevaluated 752 times by 3 tests
Evaluated by:
  • clienttest
  • ssltest
  • tlstest
FALSEnever evaluated
; i--) {
0-752
88 if (++
++seq[i] != 0Description
TRUEevaluated 752 times by 3 tests
Evaluated by:
  • clienttest
  • ssltest
  • tlstest
FALSEnever evaluated
seq[i] != 0
++seq[i] != 0Description
TRUEevaluated 752 times by 3 tests
Evaluated by:
  • clienttest
  • ssltest
  • tlstest
FALSEnever evaluated
)
0-752
89 break;
executed 752 times by 3 tests: break;
Executed by:
  • clienttest
  • ssltest
  • tlstest
752
90 }
never executed: end of block
0
91}
executed 752 times by 3 tests: end of block
Executed by:
  • clienttest
  • ssltest
  • tlstest
752
92-
93-
94-
95-
96static int-
97tls1_P_hash(const EVP_MD *md, const unsigned char *secret, size_t secret_len,-
98 const void *seed1, size_t seed1_len, const void *seed2, size_t seed2_len,-
99 const void *seed3, size_t seed3_len, const void *seed4, size_t seed4_len,-
100 const void *seed5, size_t seed5_len, unsigned char *out, size_t out_len)-
101{-
102 unsigned char A1[64], hmac[64];-
103 size_t A1_len, hmac_len;-
104 EVP_MD_CTX ctx;-
105 EVP_PKEY *mac_key;-
106 int ret = 0;-
107 int chunk;-
108 size_t i;-
109-
110 chunk = EVP_MD_size(md);-
111 (void)((chunk >= 0) ? 0 : (OpenSSLDie(__FILE__, 244, "chunk >= 0"),1));-
112-
113 EVP_MD_CTX_init(&ctx);-
114-
115 mac_key = EVP_PKEY_new_mac_key(855, -
116 ((void *)0)-
117 , secret, secret_len);-
118 if (!mac_key
!mac_keyDescription
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1644
119 goto
never executed: goto err;
err;
never executed: goto err;
0
120 if (!EVP_DigestSignInit(&ctx,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-1644
121 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-1644
122 , md,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-1644
123 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-1644
124 , mac_key)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1644
125 goto
never executed: goto err;
err;
never executed: goto err;
0
126 if (seed1
seed1Description
TRUEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
&& !EVP_DigestUpdate(&ctx,seed1,seed1_len)
!EVP_DigestUpd...ed1,seed1_len)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1644
127 goto
never executed: goto err;
err;
never executed: goto err;
0
128 if (seed2
seed2Description
TRUEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
&& !EVP_DigestUpdate(&ctx,seed2,seed2_len)
!EVP_DigestUpd...ed2,seed2_len)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1644
129 goto
never executed: goto err;
err;
never executed: goto err;
0
130 if (seed3
seed3Description
TRUEevaluated 952 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 692 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed3,seed3_len)
!EVP_DigestUpd...ed3,seed3_len)Description
TRUEnever evaluated
FALSEevaluated 952 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-952
131 goto
never executed: goto err;
err;
never executed: goto err;
0
132 if (seed4
seed4Description
TRUEevaluated 952 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 692 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed4,seed4_len)
!EVP_DigestUpd...ed4,seed4_len)Description
TRUEnever evaluated
FALSEevaluated 952 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-952
133 goto
never executed: goto err;
err;
never executed: goto err;
0
134 if (seed5
seed5Description
TRUEevaluated 768 times by 1 test
Evaluated by:
  • tls_prf
FALSEevaluated 876 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed5,seed5_len)
!EVP_DigestUpd...ed5,seed5_len)Description
TRUEnever evaluated
FALSEevaluated 768 times by 1 test
Evaluated by:
  • tls_prf
)
0-876
135 goto
never executed: goto err;
err;
never executed: goto err;
0
136 if (!EVP_DigestSignFinal(&ctx, A1, &A1_len)
!EVP_DigestSig..., A1, &A1_len)Description
TRUEnever evaluated
FALSEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1644
137 goto
never executed: goto err;
err;
never executed: goto err;
0
138-
139 for (;;) {-
140 if (!EVP_DigestSignInit(&ctx,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-4318
141 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-4318
142 , md,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-4318
143 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-4318
144 , mac_key)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-4318
145 goto
never executed: goto err;
err;
never executed: goto err;
0
146 if (!EVP_DigestUpdate(&ctx,A1,A1_len)
!EVP_DigestUpd...ctx,A1,A1_len)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-4318
147 goto
never executed: goto err;
err;
never executed: goto err;
0
148 if (seed1
seed1Description
TRUEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
&& !EVP_DigestUpdate(&ctx,seed1,seed1_len)
!EVP_DigestUpd...ed1,seed1_len)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-4318
149 goto
never executed: goto err;
err;
never executed: goto err;
0
150 if (seed2
seed2Description
TRUEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
&& !EVP_DigestUpdate(&ctx,seed2,seed2_len)
!EVP_DigestUpd...ed2,seed2_len)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-4318
151 goto
never executed: goto err;
err;
never executed: goto err;
0
152 if (seed3
seed3Description
TRUEevaluated 3334 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 984 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed3,seed3_len)
!EVP_DigestUpd...ed3,seed3_len)Description
TRUEnever evaluated
FALSEevaluated 3334 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-3334
153 goto
never executed: goto err;
err;
never executed: goto err;
0
154 if (seed4
seed4Description
TRUEevaluated 2728 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 1590 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed4,seed4_len)
!EVP_DigestUpd...ed4,seed4_len)Description
TRUEnever evaluated
FALSEevaluated 2728 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-2728
155 goto
never executed: goto err;
err;
never executed: goto err;
0
156 if (seed5
seed5Description
TRUEevaluated 2252 times by 1 test
Evaluated by:
  • tls_prf
FALSEevaluated 2066 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
&& !EVP_DigestUpdate(&ctx,seed5,seed5_len)
!EVP_DigestUpd...ed5,seed5_len)Description
TRUEnever evaluated
FALSEevaluated 2252 times by 1 test
Evaluated by:
  • tls_prf
)
0-2252
157 goto
never executed: goto err;
err;
never executed: goto err;
0
158 if (!EVP_DigestSignFinal(&ctx, hmac, &hmac_len)
!EVP_DigestSig...ac, &hmac_len)Description
TRUEnever evaluated
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-4318
159 goto
never executed: goto err;
err;
never executed: goto err;
0
160-
161 if (hmac_len > out_len
hmac_len > out_lenDescription
TRUEevaluated 1524 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 2794 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
1524-2794
162 hmac_len = out_len;
executed 1524 times by 3 tests: hmac_len = out_len;
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1524
163-
164 for (i = 0; i < hmac_len
i < hmac_lenDescription
TRUEevaluated 85792 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 4318 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
; i++)
4318-85792
165 out[i] ^= hmac[i];
executed 85792 times by 3 tests: out[i] ^= hmac[i];
Executed by:
  • ssltest
  • tls_prf
  • tlstest
85792
166-
167 out += hmac_len;-
168 out_len -= hmac_len;-
169-
170 if (out_len == 0
out_len == 0Description
TRUEevaluated 1644 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
1644-2674
171 break;
executed 1644 times by 3 tests: break;
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1644
172-
173 if (!EVP_DigestSignInit(&ctx,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-2674
174 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-2674
175 , md,
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-2674
176 ((void *)0)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-2674
177 , mac_key)
!EVP_DigestSig...)0) , mac_key)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-2674
178 goto
never executed: goto err;
err;
never executed: goto err;
0
179 if (!EVP_DigestUpdate(&ctx,A1,A1_len)
!EVP_DigestUpd...ctx,A1,A1_len)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-2674
180 goto
never executed: goto err;
err;
never executed: goto err;
0
181 if (!EVP_DigestSignFinal(&ctx, A1, &A1_len)
!EVP_DigestSig..., A1, &A1_len)Description
TRUEnever evaluated
FALSEevaluated 2674 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-2674
182 goto
never executed: goto err;
err;
never executed: goto err;
0
183 }
executed 2674 times by 3 tests: end of block
Executed by:
  • ssltest
  • tls_prf
  • tlstest
2674
184 ret = 1;-
185-
186 err:
code before this statement executed 1644 times by 3 tests: err:
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1644
187 EVP_PKEY_free(mac_key);-
188 EVP_MD_CTX_cleanup(&ctx);-
189-
190 explicit_bzero(A1, sizeof(A1));-
191 explicit_bzero(hmac, sizeof(hmac));-
192-
193 return
executed 1644 times by 3 tests: return ret;
Executed by:
  • ssltest
  • tls_prf
  • tlstest
ret;
executed 1644 times by 3 tests: return ret;
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1644
194}-
195-
196int-
197tls1_PRF(SSL *s, const unsigned char *secret, size_t secret_len,-
198 const void *seed1, size_t seed1_len, const void *seed2, size_t seed2_len,-
199 const void *seed3, size_t seed3_len, const void *seed4, size_t seed4_len,-
200 const void *seed5, size_t seed5_len, unsigned char *out, size_t out_len)-
201{-
202 const EVP_MD *md;-
203 size_t half_len;-
204-
205 memset(out, 0, out_len);-
206-
207 if (!ssl_get_handshake_evp_md(s, &md)
!ssl_get_hands...evp_md(s, &md)Description
TRUEnever evaluated
FALSEevaluated 1248 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-1248
208 return
never executed: return (0);
(0);
never executed: return (0);
0
209-
210 if (md->type == 114
md->type == 114Description
TRUEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
FALSEevaluated 852 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
) {
396-852
211-
212-
213-
214-
215 half_len = secret_len - (secret_len / 2);-
216 if (!tls1_P_hash(EVP_md5(), secret, half_len, seed1, seed1_len,
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
0-396
217 seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
0-396
218 seed5, seed5_len, out, out_len)
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
)
0-396
219 return
never executed: return (0);
(0);
never executed: return (0);
0
220-
221 secret += secret_len - half_len;-
222 if (!tls1_P_hash(EVP_sha1(), secret, half_len, seed1, seed1_len,
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
0-396
223 seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
0-396
224 seed5, seed5_len, out, out_len)
!tls1_P_hash(E... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 396 times by 2 tests
Evaluated by:
  • ssltest
  • tls_prf
)
0-396
225 return
never executed: return (0);
(0);
never executed: return (0);
0
226-
227 return
executed 396 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tls_prf
(1);
executed 396 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tls_prf
396
228 }-
229-
230 if (!tls1_P_hash(md, secret, secret_len, seed1, seed1_len,
!tls1_P_hash(m... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 852 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-852
231 seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
!tls1_P_hash(m... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 852 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
0-852
232 seed5, seed5_len, out, out_len)
!tls1_P_hash(m... out, out_len)Description
TRUEnever evaluated
FALSEevaluated 852 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
)
0-852
233 return
never executed: return (0);
(0);
never executed: return (0);
0
234-
235 return
executed 852 times by 3 tests: return (1);
Executed by:
  • ssltest
  • tls_prf
  • tlstest
(1);
executed 852 times by 3 tests: return (1);
Executed by:
  • ssltest
  • tls_prf
  • tlstest
852
236}-
237-
238static int-
239tls1_generate_key_block(SSL *s, unsigned char *km, int num)-
240{-
241 if (num < 0
num < 0Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-126
242 return
never executed: return (0);
(0);
never executed: return (0);
0
243-
244 return
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
tls1_PRF(s,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
245 s->session->master_key, s->session->master_key_length,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
246 "key expansion", 13,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
247 s->s3->server_random, 32,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
248 s->s3->client_random, 32,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
249
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
250 ((void *)0)
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
251 , 0,
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
252 ((void *)0)
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
253 , 0, km, num);
executed 126 times by 2 tests: return tls1_PRF(s, s->session->master_key, s->session->master_key_length, "key expansion", 13, s->s3->server_random, 32, s->s3->client_random, 32, ((void *)0) , 0, ((void *)0) , 0, km, num);
Executed by:
  • ssltest
  • tlstest
126
254}-
255-
256-
257-
258-
259-
260static int-
261tls1_aead_ctx_init(SSL_AEAD_CTX **aead_ctx)-
262{-
263 if (*
*aead_ctx != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
aead_ctx !=
*aead_ctx != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
264 ((void *)0)
*aead_ctx != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
265 ) {-
266 EVP_AEAD_CTX_cleanup(&(*aead_ctx)->ctx);-
267 return
never executed: return (1);
(1);
never executed: return (1);
0
268 }-
269-
270 *aead_ctx = malloc(sizeof(SSL_AEAD_CTX));-
271 if (*
*aead_ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
aead_ctx ==
*aead_ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
272 ((void *)0)
*aead_ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
273 ) {-
274 ERR_put_error(20,(0xfff),((1|64)),__FILE__,385);-
275 return
never executed: return (0);
(0);
never executed: return (0);
0
276 }-
277-
278 return
executed 92 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
(1);
executed 92 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
92
279}-
280-
281static int-
282tls1_change_cipher_state_aead(SSL *s, char is_read, const unsigned char *key,-
283 unsigned key_len, const unsigned char *iv, unsigned iv_len)-
284{-
285 const EVP_AEAD *aead = (s->s3->internal)->tmp.new_aead;-
286 SSL_AEAD_CTX *aead_ctx;-
287-
288 if (is_read
is_readDescription
TRUEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
46
289 ssl_clear_cipher_read_state(s);-
290 if (!tls1_aead_ctx_init(&s->internal->aead_read_ctx)
!tls1_aead_ctx...aead_read_ctx)Description
TRUEnever evaluated
FALSEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-46
291 return
never executed: return 0;
0;
never executed: return 0;
0
292 aead_ctx = s->internal->aead_read_ctx;-
293 }
executed 46 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
46
294-
295 ssl_clear_cipher_write_state(s);-
296 if (!tls1_aead_ctx_init(&s->internal->aead_write_ctx)
!tls1_aead_ctx...ead_write_ctx)Description
TRUEnever evaluated
FALSEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-46
297 return
never executed: return 0;
0;
never executed: return 0;
0
298 aead_ctx = s->internal->aead_write_ctx;-
299 }
executed 46 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
46
300-
301 if (!EVP_AEAD_CTX_init(&aead_ctx->ctx, aead, key, key_len,
!EVP_AEAD_CTX_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
302 0,
!EVP_AEAD_CTX_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
303 ((void *)0)
!EVP_AEAD_CTX_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-92
304 )
!EVP_AEAD_CTX_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-92
305 return
never executed: return (0);
(0);
never executed: return (0);
0
306 if (iv_len > sizeof(aead_ctx->fixed_nonce)
iv_len > sizeo...->fixed_nonce)Description
TRUEnever evaluated
FALSEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
0-92
307 ERR_put_error(20,(0xfff),((4|64)),__FILE__,416);-
308 return
never executed: return (0);
(0);
never executed: return (0);
0
309 }-
310 memcpy(aead_ctx->fixed_nonce, iv, iv_len);-
311 aead_ctx->fixed_nonce_len = iv_len;-
312 aead_ctx->variable_nonce_len = 8;-
313 aead_ctx->variable_nonce_in_record =-
314 ((s->s3->internal)->hs.new_cipher->algorithm2 &-
315 (1 << 22)) != 0;-
316 aead_ctx->xor_fixed_nonce =-
317 (s->s3->internal)->hs.new_cipher->algorithm_enc == 0x00001000L;-
318 aead_ctx->tag_len = EVP_AEAD_max_overhead(aead);-
319-
320 if (aead_ctx->xor_fixed_nonce
aead_ctx->xor_fixed_nonceDescription
TRUEevaluated 68 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 24 times by 1 test
Evaluated by:
  • ssltest
) {
24-68
321 if (aead_ctx->fixed_nonce_len != EVP_AEAD_nonce_length(aead)
aead_ctx->fixe...e_length(aead)Description
TRUEnever evaluated
FALSEevaluated 68 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
||
0-68
322 aead_ctx->variable_nonce_len > EVP_AEAD_nonce_length(aead)
aead_ctx->vari...e_length(aead)Description
TRUEnever evaluated
FALSEevaluated 68 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
0-68
323 ERR_put_error(20,(0xfff),((4|64)),__FILE__,432);-
324 return
never executed: return (0);
(0);
never executed: return (0);
0
325 }-
326 }
executed 68 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
68
327 if (aead_ctx->variable_nonce_len + aead_ctx->fixed_nonce_len !=
aead_ctx->vari...e_length(aead)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • ssltest
0-24
328 EVP_AEAD_nonce_length(aead)
aead_ctx->vari...e_length(aead)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • ssltest
) {
0-24
329 ERR_put_error(20,(0xfff),((4|64)),__FILE__,438);-
330 return
never executed: return (0);
(0);
never executed: return (0);
0
331 }-
332 }
executed 24 times by 1 test: end of block
Executed by:
  • ssltest
24
333-
334 return
executed 92 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
(1);
executed 92 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
92
335}-
336-
337-
338-
339-
340-
341-
342-
343static int-
344tls1_change_cipher_state_cipher(SSL *s, char is_read,-
345 const unsigned char *mac_secret, unsigned int mac_secret_size,-
346 const unsigned char *key, unsigned int key_len, const unsigned char *iv,-
347 unsigned int iv_len)-
348{-
349 EVP_CIPHER_CTX *cipher_ctx;-
350 const EVP_CIPHER *cipher;-
351 EVP_MD_CTX *mac_ctx;-
352 EVP_PKEY *mac_key;-
353 const EVP_MD *mac;-
354 int mac_type;-
355-
356 cipher = (s->s3->internal)->tmp.new_sym_enc;-
357 mac = (s->s3->internal)->tmp.new_hash;-
358 mac_type = (s->s3->internal)->tmp.new_mac_pkey_type;-
359-
360 if (is_read
is_readDescription
TRUEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
) {
80
361 if ((
(s->s3->intern...orithm2 & 0x04Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
s->s3->internal)->hs.new_cipher->algorithm2 & 0x04
(s->s3->intern...orithm2 & 0x04Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
)
0-80
362 s->internal->mac_flags |= 1;
never executed: s->internal->mac_flags |= 1;
0
363 else-
364 s->internal->mac_flags &= ~1;
executed 80 times by 1 test: s->internal->mac_flags &= ~1;
Executed by:
  • ssltest
80
365-
366 ssl_clear_cipher_read_state(s);-
367-
368 if ((
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
cipher_ctx = EVP_CIPHER_CTX_new()) ==
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
369 ((void *)0)
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
370 )-
371 goto
never executed: goto err;
err;
never executed: goto err;
0
372 s->enc_read_ctx = cipher_ctx;-
373 if ((
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
mac_ctx = EVP_MD_CTX_new()) ==
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
374 ((void *)0)
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
375 )-
376 goto
never executed: goto err;
err;
never executed: goto err;
0
377 s->read_hash = mac_ctx;-
378 }
executed 80 times by 1 test: end of block
Executed by:
  • ssltest
else {
80
379 if ((
(s->s3->intern...orithm2 & 0x04Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
s->s3->internal)->hs.new_cipher->algorithm2 & 0x04
(s->s3->intern...orithm2 & 0x04Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
)
0-80
380 s->internal->mac_flags |= 2;
never executed: s->internal->mac_flags |= 2;
0
381 else-
382 s->internal->mac_flags &= ~2;
executed 80 times by 1 test: s->internal->mac_flags &= ~2;
Executed by:
  • ssltest
80
383 if (!(s->method->internal->version == 0xFEFF)
!(s->method->i...ion == 0xFEFF)Description
TRUEevaluated 58 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
)
22-58
384 ssl_clear_cipher_write_state(s);
executed 58 times by 1 test: ssl_clear_cipher_write_state(s);
Executed by:
  • ssltest
58
385-
386 if ((
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
cipher_ctx = EVP_CIPHER_CTX_new()) ==
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
387 ((void *)0)
(cipher_ctx = ...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
388 )-
389 goto
never executed: goto err;
err;
never executed: goto err;
0
390 s->internal->enc_write_ctx = cipher_ctx;-
391 if ((
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
mac_ctx = EVP_MD_CTX_new()) ==
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
392 ((void *)0)
(mac_ctx = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
393 )-
394 goto
never executed: goto err;
err;
never executed: goto err;
0
395 s->internal->write_hash = mac_ctx;-
396 }
executed 80 times by 1 test: end of block
Executed by:
  • ssltest
80
397-
398 EVP_CipherInit_ex(cipher_ctx, cipher, -
399 ((void *)0)-
400 , key, iv, !is_read);-
401-
402 if ((
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
mac_key = EVP_PKEY_new_mac_key(mac_type,
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
0-160
403 ((void *)0)
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
0-160
404 , mac_secret,
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
0-160
405 mac_secret_size)) ==
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
0-160
406 ((void *)0)
(mac_key = EVP...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
0-160
407 )-
408 goto
never executed: goto err;
err;
never executed: goto err;
0
409 EVP_DigestSignInit(mac_ctx, -
410 ((void *)0)-
411 , mac, -
412 ((void *)0)-
413 , mac_key);-
414 EVP_PKEY_free(mac_key);-
415-
416 if ((
(s->s3->intern...== 0x00000200LDescription
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
s->s3->internal)->hs.new_cipher->algorithm_enc == 0x00000200L
(s->s3->intern...== 0x00000200LDescription
TRUEnever evaluated
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
) {
0-160
417 int nid;-
418 if ((
(s->s3->intern...rithm2 & 0x040Description
TRUEnever evaluated
FALSEnever evaluated
s->s3->internal)->hs.new_cipher->algorithm2 & 0x040
(s->s3->intern...rithm2 & 0x040Description
TRUEnever evaluated
FALSEnever evaluated
)
0
419 nid = 824;
never executed: nid = 824;
0
420 else-
421 nid = 945;
never executed: nid = 945;
0
422-
423 EVP_CIPHER_CTX_ctrl(cipher_ctx, 0x19, nid, 0);-
424 if ((
(s->s3->intern...== 0x00000008LDescription
TRUEnever evaluated
FALSEnever evaluated
s->s3->internal)->hs.new_cipher->algorithm_mac == 0x00000008L
(s->s3->intern...== 0x00000008LDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
425 EVP_MD_CTX_ctrl(mac_ctx, 0x4, nid, 0);
never executed: EVP_MD_CTX_ctrl(mac_ctx, 0x4, nid, 0);
0
426 }
never executed: end of block
0
427-
428 return
executed 160 times by 1 test: return (1);
Executed by:
  • ssltest
(1);
executed 160 times by 1 test: return (1);
Executed by:
  • ssltest
160
429-
430err:-
431 ERR_put_error(20,(0xfff),((1|64)),__FILE__,530);-
432 return
never executed: return (0);
(0);
never executed: return (0);
0
433}-
434-
435int-
436tls1_change_cipher_state(SSL *s, int which)-
437{-
438 const unsigned char *client_write_mac_secret, *server_write_mac_secret;-
439 const unsigned char *client_write_key, *server_write_key;-
440 const unsigned char *client_write_iv, *server_write_iv;-
441 const unsigned char *mac_secret, *key, *iv;-
442 int mac_secret_size, key_len, iv_len;-
443 unsigned char *key_block, *seq;-
444 const EVP_CIPHER *cipher;-
445 const EVP_AEAD *aead;-
446 char is_read, use_client_keys;-
447-
448 cipher = (s->s3->internal)->tmp.new_sym_enc;-
449 aead = (s->s3->internal)->tmp.new_aead;-
450-
451-
452-
453-
454-
455-
456 is_read = (which & 0x01) != 0;-
457-
458-
459-
460-
461-
462-
463 use_client_keys = ((
(which == (0x10|0x02))Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 189 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
which == (0x10|0x02))
(which == (0x10|0x02))Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 189 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
||
63-189
464 (
(which == (0x20|0x01))Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
which == (0x20|0x01))
(which == (0x20|0x01))Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
);
63-126
465-
466-
467-
468-
469-
470 if (!(s->method->internal->version == 0xFEFF)
!(s->method->i...ion == 0xFEFF)Description
TRUEevaluated 208 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 44 times by 1 test
Evaluated by:
  • ssltest
) {
44-208
471 seq = is_read
is_readDescription
TRUEevaluated 104 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 104 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
? (s->s3->internal)->read_sequence : (s->s3->internal)->write_sequence;
104
472 memset(seq, 0, 8);-
473 }
executed 208 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
208
474-
475 if (aead !=
aead != ((void *)0)Description
TRUEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
92-160
476 ((void *)0)
aead != ((void *)0)Description
TRUEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
92-160
477 ) {-
478 key_len = EVP_AEAD_key_length(aead);-
479 iv_len = ((((s->s3->internal)->hs.new_cipher->algorithm2 >> 24) & 0xf) * 2);-
480 }
executed 92 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
92
481 key_len = EVP_CIPHER_key_length(cipher);-
482 iv_len = EVP_CIPHER_iv_length(cipher);-
483 }
executed 160 times by 1 test: end of block
Executed by:
  • ssltest
160
484-
485 mac_secret_size = s->s3->tmp.new_mac_secret_size;-
486-
487 key_block = (s->s3->internal)->hs.key_block;-
488 client_write_mac_secret = key_block;-
489 key_block += mac_secret_size;-
490 server_write_mac_secret = key_block;-
491 key_block += mac_secret_size;-
492 client_write_key = key_block;-
493 key_block += key_len;-
494 server_write_key = key_block;-
495 key_block += key_len;-
496 client_write_iv = key_block;-
497 key_block += iv_len;-
498 server_write_iv = key_block;-
499 key_block += iv_len;-
500-
501 if (use_client_keys
use_client_keysDescription
TRUEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
126
502 mac_secret = client_write_mac_secret;-
503 key = client_write_key;-
504 iv = client_write_iv;-
505 }
executed 126 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
126
506 mac_secret = server_write_mac_secret;-
507 key = server_write_key;-
508 iv = server_write_iv;-
509 }
executed 126 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
126
510-
511 if (key_block - (s->s3->internal)->hs.key_block != (s->s3->internal)->hs.key_block_len
key_block - (s....key_block_lenDescription
TRUEnever evaluated
FALSEevaluated 252 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
0-252
512 SSL_error_internal(s, (4|64), __FILE__, 609);-
513 goto
never executed: goto err2;
err2;
never executed: goto err2;
0
514 }-
515-
516 if (is_read
is_readDescription
TRUEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
126
517 memcpy((s->s3->internal)->read_mac_secret, mac_secret, mac_secret_size);-
518 (s->s3->internal)->read_mac_secret_size = mac_secret_size;-
519 }
executed 126 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
126
520 memcpy((s->s3->internal)->write_mac_secret, mac_secret, mac_secret_size);-
521 (s->s3->internal)->write_mac_secret_size = mac_secret_size;-
522 }
executed 126 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
126
523-
524 if (aead !=
aead != ((void *)0)Description
TRUEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
92-160
525 ((void *)0)
aead != ((void *)0)Description
TRUEevaluated 92 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 160 times by 1 test
Evaluated by:
  • ssltest
92-160
526 ) {-
527 return
executed 92 times by 2 tests: return tls1_change_cipher_state_aead(s, is_read, key, key_len, iv, iv_len);
Executed by:
  • ssltest
  • tlstest
tls1_change_cipher_state_aead(s, is_read, key, key_len,
executed 92 times by 2 tests: return tls1_change_cipher_state_aead(s, is_read, key, key_len, iv, iv_len);
Executed by:
  • ssltest
  • tlstest
92
528 iv, iv_len);
executed 92 times by 2 tests: return tls1_change_cipher_state_aead(s, is_read, key, key_len, iv, iv_len);
Executed by:
  • ssltest
  • tlstest
92
529 }-
530-
531 return
executed 160 times by 1 test: return tls1_change_cipher_state_cipher(s, is_read, mac_secret, mac_secret_size, key, key_len, iv, iv_len);
Executed by:
  • ssltest
tls1_change_cipher_state_cipher(s, is_read,
executed 160 times by 1 test: return tls1_change_cipher_state_cipher(s, is_read, mac_secret, mac_secret_size, key, key_len, iv, iv_len);
Executed by:
  • ssltest
160
532 mac_secret, mac_secret_size, key, key_len, iv, iv_len);
executed 160 times by 1 test: return tls1_change_cipher_state_cipher(s, is_read, mac_secret, mac_secret_size, key, key_len, iv, iv_len);
Executed by:
  • ssltest
160
533-
534err2:-
535 return
never executed: return (0);
(0);
never executed: return (0);
0
536}-
537-
538int-
539tls1_setup_key_block(SSL *s)-
540{-
541 unsigned char *key_block;-
542 int mac_type = 0, mac_secret_size = 0;-
543 int key_block_len, key_len, iv_len;-
544 const EVP_CIPHER *cipher = -
545 ((void *)0)-
546 ;-
547 const EVP_AEAD *aead = -
548 ((void *)0)-
549 ;-
550 const EVP_MD *mac = -
551 ((void *)0)-
552 ;-
553 int ret = 0;-
554-
555 if ((
(s->s3->intern...block_len != 0Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
s->s3->internal)->hs.key_block_len != 0
(s->s3->intern...block_len != 0Description
TRUEevaluated 63 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
63-126
556 return
executed 63 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
(1);
executed 63 times by 2 tests: return (1);
Executed by:
  • ssltest
  • tlstest
63
557-
558 if (s->session->cipher
s->session->cipherDescription
TRUEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEnever evaluated
&&
0-126
559 (
(s->session->c...& 0x00000040L)Description
TRUEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
s->session->cipher->algorithm_mac & 0x00000040L)
(s->session->c...& 0x00000040L)Description
TRUEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
) {
46-80
560 if (!ssl_cipher_get_evp_aead(s->session, &aead)
!ssl_cipher_ge...ession, &aead)Description
TRUEnever evaluated
FALSEevaluated 46 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
0-46
561 SSL_error_internal(s, 138, __FILE__, 650);-
562 return
never executed: return (0);
(0);
never executed: return (0);
0
563 }-
564 key_len = EVP_AEAD_key_length(aead);-
565 iv_len = (((s->session->cipher->algorithm2 >> 24) & 0xf) * 2);-
566 }
executed 46 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
46
567 if (!ssl_cipher_get_evp(s->session, &cipher, &mac, &mac_type,
!ssl_cipher_ge...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
0-80
568 &mac_secret_size)
!ssl_cipher_ge...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 80 times by 1 test
Evaluated by:
  • ssltest
) {
0-80
569 SSL_error_internal(s, 138, __FILE__, 658);-
570 return
never executed: return (0);
(0);
never executed: return (0);
0
571 }-
572 key_len = EVP_CIPHER_key_length(cipher);-
573 iv_len = EVP_CIPHER_iv_length(cipher);-
574 }
executed 80 times by 1 test: end of block
Executed by:
  • ssltest
80
575-
576 (s->s3->internal)->tmp.new_aead = aead;-
577 (s->s3->internal)->tmp.new_sym_enc = cipher;-
578 (s->s3->internal)->tmp.new_hash = mac;-
579 (s->s3->internal)->tmp.new_mac_pkey_type = mac_type;-
580 s->s3->tmp.new_mac_secret_size = mac_secret_size;-
581-
582 tls1_cleanup_key_block(s);-
583-
584 if ((
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
key_block = reallocarray(
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
585 ((void *)0)
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
586 , mac_secret_size + key_len + iv_len,
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
587 2)) ==
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
588 ((void *)0)
(key_block = r...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
589 ) {-
590 SSL_error_internal(s, (1|64), __FILE__, 675);-
591 goto
never executed: goto err;
err;
never executed: goto err;
0
592 }-
593 key_block_len = (mac_secret_size + key_len + iv_len) * 2;-
594-
595 (s->s3->internal)->hs.key_block_len = key_block_len;-
596 (s->s3->internal)->hs.key_block = key_block;-
597-
598 if (!tls1_generate_key_block(s, key_block, key_block_len)
!tls1_generate...key_block_len)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-126
599 goto
never executed: goto err;
err;
never executed: goto err;
0
600-
601 if (!(s->internal->options & 0x00000800L)
!(s->internal-...& 0x00000800L)Description
TRUEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEnever evaluated
&&
0-126
602 s->method->internal->version <= 0x0301
s->method->int...sion <= 0x0301Description
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 90 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
36-90
603-
604-
605-
606-
607 (s->s3->internal)->need_empty_fragments = 1;-
608-
609 if (s->session->cipher !=
s->session->ci...!= ((void *)0)Description
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-36
610 ((void *)0)
s->session->ci...!= ((void *)0)Description
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-36
611 ) {-
612 if (s->session->cipher->algorithm_enc == 0x00000010L
s->session->ci...== 0x00000010LDescription
TRUEnever evaluated
FALSEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
)
0-36
613 (
never executed: (s->s3->internal)->need_empty_fragments = 0;
s->s3->internal)->need_empty_fragments = 0;
never executed: (s->s3->internal)->need_empty_fragments = 0;
0
614-
615-
616 if (s->session->cipher->algorithm_enc == 0x00000004L
s->session->ci...== 0x00000004LDescription
TRUEnever evaluated
FALSEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
)
0-36
617 (
never executed: (s->s3->internal)->need_empty_fragments = 0;
s->s3->internal)->need_empty_fragments = 0;
never executed: (s->s3->internal)->need_empty_fragments = 0;
0
618-
619 }
executed 36 times by 1 test: end of block
Executed by:
  • ssltest
36
620 }
executed 36 times by 1 test: end of block
Executed by:
  • ssltest
36
621-
622 ret = 1;-
623-
624 err:
code before this statement executed 126 times by 2 tests: err:
Executed by:
  • ssltest
  • tlstest
126
625 return
executed 126 times by 2 tests: return (ret);
Executed by:
  • ssltest
  • tlstest
(ret);
executed 126 times by 2 tests: return (ret);
Executed by:
  • ssltest
  • tlstest
126
626}-
627int-
628tls1_enc(SSL *s, int send)-
629{-
630 const SSL_AEAD_CTX *aead;-
631 const EVP_CIPHER *enc;-
632 EVP_CIPHER_CTX *ds;-
633 SSL3_RECORD *rec;-
634 unsigned char *seq;-
635 unsigned long l;-
636 int bs, i, j, k, pad = 0, ret, mac_size = 0;-
637-
638 if (send
sendDescription
TRUEevaluated 820 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 700 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
) {
700-820
639 aead = s->internal->aead_write_ctx;-
640 rec = &(s->s3->internal)->wrec;-
641 seq = (s->s3->internal)->write_sequence;-
642 }
executed 820 times by 4 tests: end of block
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
else {
820
643 aead = s->internal->aead_read_ctx;-
644 rec = &(s->s3->internal)->rrec;-
645 seq = (s->s3->internal)->read_sequence;-
646 }
executed 700 times by 3 tests: end of block
Executed by:
  • servertest
  • ssltest
  • tlstest
700
647-
648 if (aead
aeadDescription
TRUEevaluated 214 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 1306 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
) {
214-1306
649 unsigned char ad[13], *in, *out, nonce[16];-
650 size_t out_len, pad_len = 0;-
651 unsigned int nonce_used;-
652-
653 if ((
(s->method->in...ion == 0xFEFF)Description
TRUEnever evaluated
FALSEevaluated 214 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
s->method->internal->version == 0xFEFF)
(s->method->in...ion == 0xFEFF)Description
TRUEnever evaluated
FALSEevaluated 214 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
0-214
654 dtls1_build_sequence_number(ad, seq,-
655 send ? (s->d1->internal)->w_epoch : (s->d1->internal)->r_epoch);-
656 }
never executed: end of block
else {
0
657 memcpy(ad, seq, 8);-
658 tls1_record_sequence_increment(seq);-
659 }
executed 214 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
214
660-
661 ad[8] = rec->type;-
662 ad[9] = (unsigned char)(s->version >> 8);-
663 ad[10] = (unsigned char)(s->version);-
664-
665 if (aead->variable_nonce_len > 8
aead->variable_nonce_len > 8Description
TRUEnever evaluated
FALSEevaluated 214 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
||
0-214
666 aead->variable_nonce_len > sizeof(nonce)
aead->variable... sizeof(nonce)Description
TRUEnever evaluated
FALSEevaluated 214 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-214
667 return
never executed: return -1;
-1;
never executed: return -1;
0
668-
669 if (aead->xor_fixed_nonce
aead->xor_fixed_nonceDescription
TRUEevaluated 154 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
) {
60-154
670 if (aead->fixed_nonce_len > sizeof(nonce)
aead->fixed_no... sizeof(nonce)Description
TRUEnever evaluated
FALSEevaluated 154 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
||
0-154
671 aead->variable_nonce_len > aead->fixed_nonce_len
aead->variable...ixed_nonce_lenDescription
TRUEnever evaluated
FALSEevaluated 154 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-154
672 return
never executed: return -1;
-1;
never executed: return -1;
0
673 pad_len = aead->fixed_nonce_len - aead->variable_nonce_len;-
674 }
executed 154 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
154
675 if (aead->fixed_nonce_len +
aead->fixed_no... sizeof(nonce)Description
TRUEnever evaluated
FALSEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
0-60
676 aead->variable_nonce_len > sizeof(nonce)
aead->fixed_no... sizeof(nonce)Description
TRUEnever evaluated
FALSEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
)
0-60
677 return
never executed: return -1;
-1;
never executed: return -1;
0
678 }
executed 60 times by 1 test: end of block
Executed by:
  • ssltest
60
679-
680 if (send
sendDescription
TRUEevaluated 130 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
84-130
681 size_t len = rec->length;-
682 size_t eivlen = 0;-
683 in = rec->input;-
684 out = rec->data;-
685-
686 if (aead->xor_fixed_nonce
aead->xor_fixed_nonceDescription
TRUEevaluated 94 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
) {
36-94
687-
688-
689-
690-
691-
692 memset(nonce, 0, pad_len);-
693 memcpy(nonce + pad_len, ad,-
694 aead->variable_nonce_len);-
695 for (i = 0; i < aead->fixed_nonce_len
i < aead->fixed_nonce_lenDescription
TRUEevaluated 1128 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 94 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
; i++)
94-1128
696 nonce[i] ^= aead->fixed_nonce[i];
executed 1128 times by 2 tests: nonce[i] ^= aead->fixed_nonce[i];
Executed by:
  • ssltest
  • tlstest
1128
697 nonce_used = aead->fixed_nonce_len;-
698 }
executed 94 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
94
699-
700-
701-
702-
703 memcpy(nonce, aead->fixed_nonce,-
704 aead->fixed_nonce_len);-
705 nonce_used = aead->fixed_nonce_len;-
706 memcpy(nonce + nonce_used, ad,-
707 aead->variable_nonce_len);-
708 nonce_used += aead->variable_nonce_len;-
709 }
executed 36 times by 1 test: end of block
Executed by:
  • ssltest
36
710 if (aead->variable_nonce_in_record
aead->variable_nonce_in_recordDescription
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 94 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
36-94
711 memcpy(out, ad, aead->variable_nonce_len);-
712 len -= aead->variable_nonce_len;-
713 eivlen = aead->variable_nonce_len;-
714 }
executed 36 times by 1 test: end of block
Executed by:
  • ssltest
36
715-
716 ad[11] = len >> 8;-
717 ad[12] = len & 0xff;-
718-
719 if (!EVP_AEAD_CTX_seal(&aead->ctx,
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 130 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-130
720 out + eivlen, &out_len, len + aead->tag_len, nonce,
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 130 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-130
721 nonce_used, in + eivlen, len, ad, sizeof(ad))
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 130 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-130
722 return
never executed: return -1;
-1;
never executed: return -1;
0
723 if (aead->variable_nonce_in_record
aead->variable_nonce_in_recordDescription
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 94 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
36-94
724 out_len += aead->variable_nonce_len;
executed 36 times by 1 test: out_len += aead->variable_nonce_len;
Executed by:
  • ssltest
36
725 }
executed 130 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
130
726-
727 size_t len = rec->length;-
728-
729 if (rec->data != rec->input
rec->data != rec->inputDescription
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-84
730 return
never executed: return -1;
-1;
never executed: return -1;
0
731 out = in = rec->input;-
732-
733 if (len < aead->variable_nonce_len
len < aead->variable_nonce_lenDescription
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-84
734 return
never executed: return 0;
0;
never executed: return 0;
0
735-
736 if (aead->xor_fixed_nonce
aead->xor_fixed_nonceDescription
TRUEevaluated 60 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 24 times by 1 test
Evaluated by:
  • ssltest
) {
24-60
737-
738-
739-
740-
741-
742 memset(nonce, 0, pad_len);-
743 memcpy(nonce + pad_len, ad,-
744 aead->variable_nonce_len);-
745 for (i = 0; i < aead->fixed_nonce_len
i < aead->fixed_nonce_lenDescription
TRUEevaluated 720 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 60 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
; i++)
60-720
746 nonce[i] ^= aead->fixed_nonce[i];
executed 720 times by 2 tests: nonce[i] ^= aead->fixed_nonce[i];
Executed by:
  • ssltest
  • tlstest
720
747 nonce_used = aead->fixed_nonce_len;-
748 }
executed 60 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
else {
60
749 memcpy(nonce, aead->fixed_nonce,-
750 aead->fixed_nonce_len);-
751 nonce_used = aead->fixed_nonce_len;-
752-
753 memcpy(nonce + nonce_used,-
754 aead->variable_nonce_in_record ? in : ad,-
755 aead->variable_nonce_len);-
756 nonce_used += aead->variable_nonce_len;-
757 }
executed 24 times by 1 test: end of block
Executed by:
  • ssltest
24
758-
759 if (aead->variable_nonce_in_record
aead->variable_nonce_in_recordDescription
TRUEevaluated 24 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 60 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
) {
24-60
760 in += aead->variable_nonce_len;-
761 len -= aead->variable_nonce_len;-
762 out += aead->variable_nonce_len;-
763 }
executed 24 times by 1 test: end of block
Executed by:
  • ssltest
24
764-
765 if (len < aead->tag_len
len < aead->tag_lenDescription
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-84
766 return
never executed: return 0;
0;
never executed: return 0;
0
767 len -= aead->tag_len;-
768-
769 ad[11] = len >> 8;-
770 ad[12] = len & 0xff;-
771-
772 if (!EVP_AEAD_CTX_open(&aead->ctx, out, &out_len, len,
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-84
773 nonce, nonce_used, in, len + aead->tag_len, ad,
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-84
774 sizeof(ad))
!EVP_AEAD_CTX_...d, sizeof(ad))Description
TRUEnever evaluated
FALSEevaluated 84 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-84
775 return
never executed: return -1;
-1;
never executed: return -1;
0
776-
777 rec->data = rec->input = out;-
778 }
executed 84 times by 2 tests: end of block
Executed by:
  • ssltest
  • tlstest
84
779-
780 rec->length = out_len;-
781-
782 return
executed 214 times by 2 tests: return 1;
Executed by:
  • ssltest
  • tlstest
1;
executed 214 times by 2 tests: return 1;
Executed by:
  • ssltest
  • tlstest
214
783 }-
784-
785 if (send
sendDescription
TRUEevaluated 690 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 616 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
) {
616-690
786 if (EVP_MD_CTX_md(s->internal->write_hash)
EVP_MD_CTX_md(...l->write_hash)Description
TRUEevaluated 210 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 480 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
) {
210-480
787 int n = EVP_MD_size(EVP_MD_CTX_md(s->internal->write_hash));-
788 (void)((n >= 0) ? 0 : (OpenSSLDie(__FILE__, 889, "n >= 0"),1));-
789 }
executed 210 times by 1 test: end of block
Executed by:
  • ssltest
210
790 ds = s->internal->enc_write_ctx;-
791 if (s->internal->enc_write_ctx ==
s->internal->e...== ((void *)0)Description
TRUEevaluated 480 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ssltest
210-480
792 ((void *)0)
s->internal->e...== ((void *)0)Description
TRUEevaluated 480 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ssltest
210-480
793 )-
794 enc =
executed 480 times by 4 tests: enc = ((void *)0) ;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
480
795 ((void *)0)
executed 480 times by 4 tests: enc = ((void *)0) ;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
480
796 ;
executed 480 times by 4 tests: enc = ((void *)0) ;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
480
797 else {-
798 int ivlen = 0;-
799 enc = EVP_CIPHER_CTX_cipher(s->internal->enc_write_ctx);-
800 if ((
(s->method->in...gs & (1 << 0))Description
TRUEevaluated 66 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 144 times by 1 test
Evaluated by:
  • ssltest
s->method->internal->ssl3_enc->enc_flags & (1 << 0))
(s->method->in...gs & (1 << 0))Description
TRUEevaluated 66 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 144 times by 1 test
Evaluated by:
  • ssltest
&&
66-144
801 (
(EVP_CIPHER_fl...xF0007) == 0x2Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 6 times by 1 test
Evaluated by:
  • ssltest
EVP_CIPHER_flags(enc) & 0xF0007) == 0x2
(EVP_CIPHER_fl...xF0007) == 0x2Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 6 times by 1 test
Evaluated by:
  • ssltest
)
6-60
802 ivlen = EVP_CIPHER_iv_length(enc);
executed 60 times by 1 test: ivlen = EVP_CIPHER_iv_length(enc);
Executed by:
  • ssltest
60
803 if (ivlen > 1
ivlen > 1Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 150 times by 1 test
Evaluated by:
  • ssltest
) {
60-150
804 if (rec->data != rec->input
rec->data != rec->inputDescription
TRUEnever evaluated
FALSEevaluated 60 times by 1 test
Evaluated by:
  • ssltest
) {
0-60
805 }
never executed: end of block
else
0
806 arc4random_buf(rec->input, ivlen);
executed 60 times by 1 test: arc4random_buf(rec->input, ivlen);
Executed by:
  • ssltest
60
807 }-
808 }
executed 210 times by 1 test: end of block
Executed by:
  • ssltest
210
809 } else {-
810 if (EVP_MD_CTX_md(s->read_hash)
EVP_MD_CTX_md(s->read_hash)Description
TRUEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 464 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
) {
152-464
811 int n = EVP_MD_size(EVP_MD_CTX_md(s->read_hash));-
812 (void)((n >= 0) ? 0 : (OpenSSLDie(__FILE__, 917, "n >= 0"),1));-
813 }
executed 152 times by 1 test: end of block
Executed by:
  • ssltest
152
814 ds = s->enc_read_ctx;-
815 if (s->enc_read_ctx ==
s->enc_read_ctx == ((void *)0)Description
TRUEevaluated 464 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
152-464
816 ((void *)0)
s->enc_read_ctx == ((void *)0)Description
TRUEevaluated 464 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
152-464
817 )-
818 enc =
executed 464 times by 3 tests: enc = ((void *)0) ;
Executed by:
  • servertest
  • ssltest
  • tlstest
464
819 ((void *)0)
executed 464 times by 3 tests: enc = ((void *)0) ;
Executed by:
  • servertest
  • ssltest
  • tlstest
464
820 ;
executed 464 times by 3 tests: enc = ((void *)0) ;
Executed by:
  • servertest
  • ssltest
  • tlstest
464
821 else-
822 enc = EVP_CIPHER_CTX_cipher(s->enc_read_ctx);
executed 152 times by 1 test: enc = EVP_CIPHER_CTX_cipher(s->enc_read_ctx);
Executed by:
  • ssltest
152
823 }-
824-
825 if ((
(s->session == ((void *)0) )Description
TRUEevaluated 45 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 1261 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
s->session ==
(s->session == ((void *)0) )Description
TRUEevaluated 45 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 1261 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
45-1261
826 ((void *)0)
(s->session == ((void *)0) )Description
TRUEevaluated 45 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 1261 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
45-1261
827 )
(s->session == ((void *)0) )Description
TRUEevaluated 45 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 1261 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
|| (
(ds == ((void *)0) )Description
TRUEevaluated 899 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
ds ==
(ds == ((void *)0) )Description
TRUEevaluated 899 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
45-1261
828 ((void *)0)
(ds == ((void *)0) )Description
TRUEevaluated 899 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
362-899
829 )
(ds == ((void *)0) )Description
TRUEevaluated 899 times by 4 tests
Evaluated by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
|| (
(enc == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
enc ==
(enc == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
0-899
830 ((void *)0)
(enc == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
0-362
831 )
(enc == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
) {
0-362
832 memmove(rec->data, rec->input, rec->length);-
833 rec->input = rec->data;-
834 ret = 1;-
835 }
executed 944 times by 4 tests: end of block
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
else {
944
836 l = rec->length;-
837 bs = EVP_CIPHER_block_size(ds->cipher);-
838-
839 if (bs != 1
bs != 1Description
TRUEevaluated 352 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 10 times by 1 test
Evaluated by:
  • ssltest
&& send
sendDescription
TRUEevaluated 204 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 148 times by 1 test
Evaluated by:
  • ssltest
) {
10-352
840 i = bs - ((int)l % bs);-
841-
842-
843-
844-
845 j = i - 1;-
846 for (k = (int)l; k < (int)(l + i)
k < (int)(l + i)Description
TRUEevaluated 2576 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 204 times by 1 test
Evaluated by:
  • ssltest
; k++)
204-2576
847 rec->input[k] = j;
executed 2576 times by 1 test: rec->input[k] = j;
Executed by:
  • ssltest
2576
848 l += i;-
849 rec->length += i;-
850 }
executed 204 times by 1 test: end of block
Executed by:
  • ssltest
204
851-
852 if (!send
!sendDescription
TRUEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ssltest
) {
152-210
853 if (l == 0
l == 0Description
TRUEnever evaluated
FALSEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
|| l % bs != 0
l % bs != 0Description
TRUEnever evaluated
FALSEevaluated 152 times by 1 test
Evaluated by:
  • ssltest
)
0-152
854 return
never executed: return 0;
0;
never executed: return 0;
0
855 }
executed 152 times by 1 test: end of block
Executed by:
  • ssltest
152
856-
857 i = EVP_Cipher(ds, rec->data, rec->input, l);-
858 if ((
(EVP_CIPHER_fl...r) & 0x100000)Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
EVP_CIPHER_flags(ds->cipher) &
(EVP_CIPHER_fl...r) & 0x100000)Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
(EVP_CIPHER_fl... 0) : (i == 0)Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
0-362
859 0x100000)
(EVP_CIPHER_fl...r) & 0x100000)Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
? (i < 0) : (i == 0)
(EVP_CIPHER_fl... 0) : (i == 0)Description
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
)
0-362
860 return
never executed: return -1;
-1;
never executed: return -1;
0
861-
862 ret = 1;-
863 if (EVP_MD_CTX_md(s->read_hash) !=
EVP_MD_CTX_md(...!= ((void *)0)Description
TRUEevaluated 333 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 29 times by 1 test
Evaluated by:
  • ssltest
29-333
864 ((void *)0)
EVP_MD_CTX_md(...!= ((void *)0)Description
TRUEevaluated 333 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 29 times by 1 test
Evaluated by:
  • ssltest
29-333
865 )-
866 mac_size = EVP_MD_size(EVP_MD_CTX_md(s->read_hash));
executed 333 times by 1 test: mac_size = EVP_MD_size(EVP_MD_CTX_md(s->read_hash));
Executed by:
  • ssltest
333
867 if ((
(bs != 1)Description
TRUEevaluated 352 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 10 times by 1 test
Evaluated by:
  • ssltest
bs != 1)
(bs != 1)Description
TRUEevaluated 352 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 10 times by 1 test
Evaluated by:
  • ssltest
&& !send
!sendDescription
TRUEevaluated 148 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 204 times by 1 test
Evaluated by:
  • ssltest
)
10-352
868 ret = tls1_cbc_remove_padding(s, rec, bs, mac_size);
executed 148 times by 1 test: ret = tls1_cbc_remove_padding(s, rec, bs, mac_size);
Executed by:
  • ssltest
148
869 if (pad
padDescription
TRUEnever evaluated
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
&& !send
!sendDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-362
870 rec->length -= pad;
never executed: rec->length -= pad;
0
871 }
executed 362 times by 1 test: end of block
Executed by:
  • ssltest
362
872 return
executed 1306 times by 4 tests: return ret;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
ret;
executed 1306 times by 4 tests: return ret;
Executed by:
  • clienttest
  • servertest
  • ssltest
  • tlstest
1306
873}-
874-
875int-
876tls1_final_finish_mac(SSL *s, const char *str, int str_len, unsigned char *out)-
877{-
878 unsigned char buf[64];-
879 size_t hash_len;-
880-
881 if (str_len < 0
str_len < 0Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-356
882 return
never executed: return 0;
0;
never executed: return 0;
0
883-
884 if (!tls1_handshake_hash_value(s, buf, sizeof(buf), &hash_len)
!tls1_handshak...f), &hash_len)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-356
885 return
never executed: return 0;
0;
never executed: return 0;
0
886-
887 if (!tls1_PRF(s, s->session->master_key, s->session->master_key_length,
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
888 str, str_len, buf, hash_len,
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
889 ((void *)0)
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
890 , 0,
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
891 ((void *)0)
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
892 , 0,
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
893 ((void *)0)
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
894 , 0,
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-356
895 out, 12)
!tls1_PRF(s, s... , 0, out, 12)Description
TRUEnever evaluated
FALSEevaluated 356 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-356
896 return
never executed: return 0;
0;
never executed: return 0;
0
897-
898 return
executed 356 times by 2 tests: return 12;
Executed by:
  • ssltest
  • tlstest
12;
executed 356 times by 2 tests: return 12;
Executed by:
  • ssltest
  • tlstest
356
899}-
900-
901int-
902tls1_mac(SSL *ssl, unsigned char *md, int send)-
903{-
904 SSL3_RECORD *rec;-
905 unsigned char *seq;-
906 EVP_MD_CTX *hash;-
907 size_t md_size, orig_len;-
908 EVP_MD_CTX hmac, *mac_ctx;-
909 unsigned char header[13];-
910 int stream_mac = (send
sendDescription
TRUEevaluated 276 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 196 times by 1 test
Evaluated by:
  • ssltest
?
196-276
911 (ssl->internal->mac_flags & 2) :-
912 (ssl->internal->mac_flags & 1));-
913 int t;-
914-
915 if (send
sendDescription
TRUEevaluated 276 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 196 times by 1 test
Evaluated by:
  • ssltest
) {
196-276
916 rec = &(ssl->s3->internal->wrec);-
917 seq = &(ssl->s3->internal->write_sequence[0]);-
918 hash = ssl->internal->write_hash;-
919 }
executed 276 times by 1 test: end of block
Executed by:
  • ssltest
else {
276
920 rec = &(ssl->s3->internal->rrec);-
921 seq = &(ssl->s3->internal->read_sequence[0]);-
922 hash = ssl->read_hash;-
923 }
executed 196 times by 1 test: end of block
Executed by:
  • ssltest
196
924-
925 t = EVP_MD_size(EVP_MD_CTX_md(hash));-
926 (void)((t >= 0) ? 0 : (OpenSSLDie(__FILE__, 1013, "t >= 0"),1));-
927 md_size = t;-
928-
929-
930 if (stream_mac
stream_macDescription
TRUEnever evaluated
FALSEevaluated 472 times by 1 test
Evaluated by:
  • ssltest
) {
0-472
931 mac_ctx = hash;-
932 }
never executed: end of block
else {
0
933 if (!EVP_MD_CTX_copy(&hmac, hash)
!EVP_MD_CTX_copy(&hmac, hash)Description
TRUEnever evaluated
FALSEevaluated 472 times by 1 test
Evaluated by:
  • ssltest
)
0-472
934 return
never executed: return -1;
-1;
never executed: return -1;
0
935 mac_ctx = &hmac;-
936 }
executed 472 times by 1 test: end of block
Executed by:
  • ssltest
472
937-
938 if ((
(ssl->method->...ion == 0xFEFF)Description
TRUEevaluated 110 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
ssl->method->internal->version == 0xFEFF)
(ssl->method->...ion == 0xFEFF)Description
TRUEevaluated 110 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
)
110-362
939 dtls1_build_sequence_number(header, seq,
executed 110 times by 1 test: dtls1_build_sequence_number(header, seq, send ? (ssl->d1->internal)->w_epoch : (ssl->d1->internal)->r_epoch);
Executed by:
  • ssltest
110
940 send ? (ssl->d1->internal)->w_epoch : (ssl->d1->internal)->r_epoch);
executed 110 times by 1 test: dtls1_build_sequence_number(header, seq, send ? (ssl->d1->internal)->w_epoch : (ssl->d1->internal)->r_epoch);
Executed by:
  • ssltest
110
941 else-
942 memcpy(header, seq, 8);
executed 362 times by 1 test: memcpy(header, seq, 8);
Executed by:
  • ssltest
362
943-
944-
945 orig_len = rec->length + md_size + ((unsigned int)rec->type >> 8);-
946 rec->type &= 0xff;-
947-
948 header[8] = rec->type;-
949 header[9] = (unsigned char)(ssl->version >> 8);-
950 header[10] = (unsigned char)(ssl->version);-
951 header[11] = (rec->length) >> 8;-
952 header[12] = (rec->length) & 0xff;-
953-
954 if (!send
!sendDescription
TRUEevaluated 196 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 276 times by 1 test
Evaluated by:
  • ssltest
&&
196-276
955 (
(EVP_CIPHER_CT...xF0007) == 0x2Description
TRUEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 12 times by 1 test
Evaluated by:
  • ssltest
EVP_CIPHER_CTX_flags(ssl->enc_read_ctx) & 0xF0007) == 0x2
(EVP_CIPHER_CT...xF0007) == 0x2Description
TRUEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 12 times by 1 test
Evaluated by:
  • ssltest
&&
12-184
956 ssl3_cbc_record_digest_supported(mac_ctx)
ssl3_cbc_recor...orted(mac_ctx)Description
TRUEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
) {
0-184
957-
958-
959-
960-
961 if (!ssl3_cbc_digest_record(mac_ctx,
!ssl3_cbc_dige...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
962 md, &md_size, header, rec->input,
!ssl3_cbc_dige...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
963 rec->length + md_size, orig_len,
!ssl3_cbc_dige...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
964 ssl->s3->internal->read_mac_secret,
!ssl3_cbc_dige...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
0-184
965 ssl->s3->internal->read_mac_secret_size)
!ssl3_cbc_dige...c_secret_size)Description
TRUEnever evaluated
FALSEevaluated 184 times by 1 test
Evaluated by:
  • ssltest
)
0-184
966 return
never executed: return -1;
-1;
never executed: return -1;
0
967 }
executed 184 times by 1 test: end of block
Executed by:
  • ssltest
else {
184
968 EVP_DigestUpdate(mac_ctx,header,sizeof(header));-
969 EVP_DigestUpdate(mac_ctx,rec->input,rec->length);-
970 t = EVP_DigestSignFinal(mac_ctx, md, &md_size);-
971 (void)((t > 0) ? 0 : (OpenSSLDie(__FILE__, 1058, "t > 0"),1));-
972 }
executed 288 times by 1 test: end of block
Executed by:
  • ssltest
288
973-
974 if (!stream_mac
!stream_macDescription
TRUEevaluated 472 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-472
975 EVP_MD_CTX_cleanup(&hmac);
executed 472 times by 1 test: EVP_MD_CTX_cleanup(&hmac);
Executed by:
  • ssltest
472
976-
977 if (!(ssl->method->internal->version == 0xFEFF)
!(ssl->method-...ion == 0xFEFF)Description
TRUEevaluated 362 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 110 times by 1 test
Evaluated by:
  • ssltest
)
110-362
978 tls1_record_sequence_increment(seq);
executed 362 times by 1 test: tls1_record_sequence_increment(seq);
Executed by:
  • ssltest
362
979-
980 return
executed 472 times by 1 test: return (md_size);
Executed by:
  • ssltest
(md_size);
executed 472 times by 1 test: return (md_size);
Executed by:
  • ssltest
472
981}-
982-
983int-
984tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p,-
985 int len)-
986{-
987 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-126
988 return
never executed: return 0;
0;
never executed: return 0;
0
989-
990 if (!tls1_PRF(s, p, len,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
991 "master secret", 13,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
992 s->s3->client_random, 32,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
993 ((void *)0)
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
994 , 0,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
995 s->s3->server_random, 32,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
996 ((void *)0)
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
997 , 0,
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-126
998 s->session->master_key, 48)
!tls1_PRF(s, p...aster_key, 48)Description
TRUEnever evaluated
FALSEevaluated 126 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
)
0-126
999 return
never executed: return 0;
0;
never executed: return 0;
0
1000-
1001 return
executed 126 times by 2 tests: return (48);
Executed by:
  • ssltest
  • tlstest
(48);
executed 126 times by 2 tests: return (48);
Executed by:
  • ssltest
  • tlstest
126
1002}-
1003-
1004int-
1005tls1_export_keying_material(SSL *s, unsigned char *out, size_t olen,-
1006 const char *label, size_t llen, const unsigned char *context,-
1007 size_t contextlen, int use_context)-
1008{-
1009 unsigned char *val = -
1010 ((void *)0)-
1011 ;-
1012 size_t vallen, currentvalpos;-
1013 int rv;-
1014-
1015-
1016-
1017-
1018-
1019-
1020 vallen = llen + 32 * 2;-
1021 if (use_context
use_contextDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1022 vallen += 2 + contextlen;-
1023 }
never executed: end of block
0
1024-
1025 val = malloc(vallen);-
1026 if (val ==
val == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1027 ((void *)0)
val == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1028 )-
1029 goto
never executed: goto err2;
err2;
never executed: goto err2;
0
1030 currentvalpos = 0;-
1031 memcpy(val + currentvalpos, (unsigned char *) label, llen);-
1032 currentvalpos += llen;-
1033 memcpy(val + currentvalpos, s->s3->client_random, 32);-
1034 currentvalpos += 32;-
1035 memcpy(val + currentvalpos, s->s3->server_random, 32);-
1036 currentvalpos += 32;-
1037-
1038 if (use_context
use_contextDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1039 val[currentvalpos] = (contextlen >> 8) & 0xff;-
1040 currentvalpos++;-
1041 val[currentvalpos] = contextlen & 0xff;-
1042 currentvalpos++;-
1043 if ((
(contextlen > 0)Description
TRUEnever evaluated
FALSEnever evaluated
contextlen > 0)
(contextlen > 0)Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(context != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
context !=
(context != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
1044 ((void *)0)
(context != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
1045 )
(context != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1046 memcpy(val + currentvalpos, context, contextlen);-
1047 }
never executed: end of block
0
1048 }
never executed: end of block
0
1049-
1050-
1051-
1052-
1053-
1054-
1055 if (memcmp(val, "client finished",
memcmp(val, "c...hed", 15) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1056 15) == 0
memcmp(val, "c...hed", 15) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1057 goto
never executed: goto err1;
err1;
never executed: goto err1;
0
1058 if (memcmp(val, "server finished",
memcmp(val, "s...hed", 15) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1059 15) == 0
memcmp(val, "s...hed", 15) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1060 goto
never executed: goto err1;
err1;
never executed: goto err1;
0
1061 if (memcmp(val, "master secret",
memcmp(val, "m...ret", 13) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1062 13) == 0
memcmp(val, "m...ret", 13) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1063 goto
never executed: goto err1;
err1;
never executed: goto err1;
0
1064 if (memcmp(val, "key expansion",
memcmp(val, "k...ion", 13) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1065 13) == 0
memcmp(val, "k...ion", 13) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1066 goto
never executed: goto err1;
err1;
never executed: goto err1;
0
1067-
1068 rv = tls1_PRF(s, s->session->master_key, s->session->master_key_length,-
1069 val, vallen, -
1070 ((void *)0)-
1071 , 0, -
1072 ((void *)0)-
1073 , 0, -
1074 ((void *)0)-
1075 , 0, -
1076 ((void *)0)-
1077 , 0, out, olen);-
1078-
1079 goto
never executed: goto ret;
ret;
never executed: goto ret;
0
1080err1:-
1081 SSL_error_internal(s, 367, __FILE__, 1150);-
1082 rv = 0;-
1083 goto
never executed: goto ret;
ret;
never executed: goto ret;
0
1084err2:-
1085 SSL_error_internal(s, (1|64), __FILE__, 1154);-
1086 rv = 0;-
1087ret:
code before this statement never executed: ret:
0
1088 free(val);-
1089-
1090 return
never executed: return (rv);
(rv);
never executed: return (rv);
0
1091}-
1092-
1093int-
1094tls1_alert_code(int code)-
1095{-
1096 switch (code) {-
1097 case
executed 126 times by 2 tests: case 0:
Executed by:
  • ssltest
  • tlstest
0:
executed 126 times by 2 tests: case 0:
Executed by:
  • ssltest
  • tlstest
126
1098 return
executed 126 times by 2 tests: return (0);
Executed by:
  • ssltest
  • tlstest
(0);
executed 126 times by 2 tests: return (0);
Executed by:
  • ssltest
  • tlstest
126
1099 case
never executed: case 10:
10:
never executed: case 10:
0
1100 return
never executed: return (10);
(10);
never executed: return (10);
0
1101 case
never executed: case 20:
20:
never executed: case 20:
0
1102 return
never executed: return (20);
(20);
never executed: return (20);
0
1103 case
never executed: case 21:
21:
never executed: case 21:
0
1104 return
never executed: return (21);
(21);
never executed: return (21);
0
1105 case
never executed: case 22:
22:
never executed: case 22:
0
1106 return
never executed: return (22);
(22);
never executed: return (22);
0
1107 case
never executed: case 30:
30:
never executed: case 30:
0
1108 return
never executed: return (30);
(30);
never executed: return (30);
0
1109 case
never executed: case 40:
40:
never executed: case 40:
0
1110 return
never executed: return (40);
(40);
never executed: return (40);
0
1111 case
never executed: case 41:
41:
never executed: case 41:
0
1112 return
never executed: return (-1);
(-1);
never executed: return (-1);
0
1113 case
never executed: case 42:
42:
never executed: case 42:
0
1114 return
never executed: return (42);
(42);
never executed: return (42);
0
1115 case
never executed: case 43:
43:
never executed: case 43:
0
1116 return
never executed: return (43);
(43);
never executed: return (43);
0
1117 case
never executed: case 44:
44:
never executed: case 44:
0
1118 return
never executed: return (44);
(44);
never executed: return (44);
0
1119 case
never executed: case 45:
45:
never executed: case 45:
0
1120 return
never executed: return (45);
(45);
never executed: return (45);
0
1121 case
never executed: case 46:
46:
never executed: case 46:
0
1122 return
never executed: return (46);
(46);
never executed: return (46);
0
1123 case
never executed: case 47:
47:
never executed: case 47:
0
1124 return
never executed: return (47);
(47);
never executed: return (47);
0
1125 case
never executed: case 48:
48:
never executed: case 48:
0
1126 return
never executed: return (48);
(48);
never executed: return (48);
0
1127 case
never executed: case 49:
49:
never executed: case 49:
0
1128 return
never executed: return (49);
(49);
never executed: return (49);
0
1129 case
never executed: case 50:
50:
never executed: case 50:
0
1130 return
never executed: return (50);
(50);
never executed: return (50);
0
1131 case
never executed: case 51:
51:
never executed: case 51:
0
1132 return
never executed: return (51);
(51);
never executed: return (51);
0
1133 case
never executed: case 60:
60:
never executed: case 60:
0
1134 return
never executed: return (60);
(60);
never executed: return (60);
0
1135 case
never executed: case 70:
70:
never executed: case 70:
0
1136 return
never executed: return (70);
(70);
never executed: return (70);
0
1137 case
never executed: case 71:
71:
never executed: case 71:
0
1138 return
never executed: return (71);
(71);
never executed: return (71);
0
1139 case
never executed: case 80:
80:
never executed: case 80:
0
1140 return
never executed: return (80);
(80);
never executed: return (80);
0
1141 case
never executed: case 86:
86:
never executed: case 86:
0
1142 return
never executed: return(86);
(86);
never executed: return(86);
0
1143 case
never executed: case 90:
90:
never executed: case 90:
0
1144 return
never executed: return (90);
(90);
never executed: return (90);
0
1145 case
never executed: case 100:
100:
never executed: case 100:
0
1146 return
never executed: return (100);
(100);
never executed: return (100);
0
1147 case
never executed: case 110:
110:
never executed: case 110:
0
1148 return
never executed: return (110);
(110);
never executed: return (110);
0
1149 case
never executed: case 111:
111:
never executed: case 111:
0
1150 return
never executed: return (111);
(111);
never executed: return (111);
0
1151 case
never executed: case 112:
112:
never executed: case 112:
0
1152 return
never executed: return (112);
(112);
never executed: return (112);
0
1153 case
never executed: case 113:
113:
never executed: case 113:
0
1154 return
never executed: return (113);
(113);
never executed: return (113);
0
1155 case
never executed: case 114:
114:
never executed: case 114:
0
1156 return
never executed: return (114);
(114);
never executed: return (114);
0
1157 case
never executed: case 115:
115:
never executed: case 115:
0
1158 return
never executed: return (115);
(115);
never executed: return (115);
0
1159 default
never executed: default:
:
never executed: default:
0
1160 return
never executed: return (-1);
(-1);
never executed: return (-1);
0
1161 }-
1162}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2