| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/t1_enc.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||
| 6 | int 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 | - | |||||||||||||||||||||||||
| 11 | void | - | ||||||||||||||||||||||||
| 12 | tls1_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 blockExecuted by:
| 1192 | ||||||||||||||||||||||||
| 20 | - | |||||||||||||||||||||||||
| 21 | int | - | ||||||||||||||||||||||||
| 22 | tls1_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 ((
| 0-139 | ||||||||||||||||||||||||
| 28 | ((void *)0)
| 0-139 | ||||||||||||||||||||||||
| 29 | ) | - | ||||||||||||||||||||||||
| 30 | return never executed: (0);return (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: (1);return (1);Executed by:
executed 139 times by 4 tests: return (1);Executed by:
| 139 | ||||||||||||||||||||||||
| 37 | } | - | ||||||||||||||||||||||||
| 38 | - | |||||||||||||||||||||||||
| 39 | int | - | ||||||||||||||||||||||||
| 40 | tls1_finish_mac(SSL *s, const unsigned char *buf, int len) | - | ||||||||||||||||||||||||
| 41 | { | - | ||||||||||||||||||||||||
| 42 | if (len < 0
| 0-1152 | ||||||||||||||||||||||||
| 43 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 44 | - | |||||||||||||||||||||||||
| 45 | if (!tls1_handshake_hash_update(s, buf, len)
| 0-1152 | ||||||||||||||||||||||||
| 46 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 47 | - | |||||||||||||||||||||||||
| 48 | if ((
| 352-800 | ||||||||||||||||||||||||
| 49 | !(s->s3->flags & 0x0020)
| 5-347 | ||||||||||||||||||||||||
| 50 | BIO_write((s->s3->internal)->handshake_buffer, (void *)buf, len); | - | ||||||||||||||||||||||||
| 51 | return executed 347 times by 4 tests: 1;return 1;Executed by:
executed 347 times by 4 tests: return 1;Executed by:
| 347 | ||||||||||||||||||||||||
| 52 | } | - | ||||||||||||||||||||||||
| 53 | - | |||||||||||||||||||||||||
| 54 | return executed 805 times by 3 tests: 1;return 1;Executed by:
executed 805 times by 3 tests: return 1;Executed by:
| 805 | ||||||||||||||||||||||||
| 55 | } | - | ||||||||||||||||||||||||
| 56 | - | |||||||||||||||||||||||||
| 57 | int | - | ||||||||||||||||||||||||
| 58 | tls1_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
| 0-128 | ||||||||||||||||||||||||
| 65 | SSL_error_internal(s, 332, __FILE__, 200); | - | ||||||||||||||||||||||||
| 66 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 67 | } | - | ||||||||||||||||||||||||
| 68 | - | |||||||||||||||||||||||||
| 69 | if (!(s->s3->flags & 0x0020)
| 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 blockExecuted by:
| 123 | ||||||||||||||||||||||||
| 75 | - | |||||||||||||||||||||||||
| 76 | return executed 128 times by 3 tests: 1;return 1;Executed by:
executed 128 times by 3 tests: return 1;Executed by:
| 128 | ||||||||||||||||||||||||
| 77 | - | |||||||||||||||||||||||||
| 78 | err: | - | ||||||||||||||||||||||||
| 79 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 80 | } | - | ||||||||||||||||||||||||
| 81 | - | |||||||||||||||||||||||||
| 82 | void | - | ||||||||||||||||||||||||
| 83 | tls1_record_sequence_increment(unsigned char *seq) | - | ||||||||||||||||||||||||
| 84 | { | - | ||||||||||||||||||||||||
| 85 | int i; | - | ||||||||||||||||||||||||
| 86 | - | |||||||||||||||||||||||||
| 87 | for (i = 8 - 1; i >= 0
| 0-752 | ||||||||||||||||||||||||
| 88 | if (++
| 0-752 | ||||||||||||||||||||||||
| 89 | break; executed 752 times by 3 tests: break;Executed by:
| 752 | ||||||||||||||||||||||||
| 90 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 91 | } executed 752 times by 3 tests: end of blockExecuted by:
| 752 | ||||||||||||||||||||||||
| 92 | - | |||||||||||||||||||||||||
| 93 | - | |||||||||||||||||||||||||
| 94 | - | |||||||||||||||||||||||||
| 95 | - | |||||||||||||||||||||||||
| 96 | static int | - | ||||||||||||||||||||||||
| 97 | tls1_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
| 0-1644 | ||||||||||||||||||||||||
| 119 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 120 | if (!EVP_DigestSignInit(&ctx,
| 0-1644 | ||||||||||||||||||||||||
| 121 | ((void *)0)
| 0-1644 | ||||||||||||||||||||||||
| 122 | , md,
| 0-1644 | ||||||||||||||||||||||||
| 123 | ((void *)0)
| 0-1644 | ||||||||||||||||||||||||
| 124 | , mac_key)
| 0-1644 | ||||||||||||||||||||||||
| 125 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 126 | if (seed1
| 0-1644 | ||||||||||||||||||||||||
| 127 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 128 | if (seed2
| 0-1644 | ||||||||||||||||||||||||
| 129 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 130 | if (seed3
| 0-952 | ||||||||||||||||||||||||
| 131 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 132 | if (seed4
| 0-952 | ||||||||||||||||||||||||
| 133 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 134 | if (seed5
| 0-876 | ||||||||||||||||||||||||
| 135 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 136 | if (!EVP_DigestSignFinal(&ctx, A1, &A1_len)
| 0-1644 | ||||||||||||||||||||||||
| 137 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 138 | - | |||||||||||||||||||||||||
| 139 | for (;;) { | - | ||||||||||||||||||||||||
| 140 | if (!EVP_DigestSignInit(&ctx,
| 0-4318 | ||||||||||||||||||||||||
| 141 | ((void *)0)
| 0-4318 | ||||||||||||||||||||||||
| 142 | , md,
| 0-4318 | ||||||||||||||||||||||||
| 143 | ((void *)0)
| 0-4318 | ||||||||||||||||||||||||
| 144 | , mac_key)
| 0-4318 | ||||||||||||||||||||||||
| 145 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 146 | if (!EVP_DigestUpdate(&ctx,A1,A1_len)
| 0-4318 | ||||||||||||||||||||||||
| 147 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 148 | if (seed1
| 0-4318 | ||||||||||||||||||||||||
| 149 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 150 | if (seed2
| 0-4318 | ||||||||||||||||||||||||
| 151 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 152 | if (seed3
| 0-3334 | ||||||||||||||||||||||||
| 153 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 154 | if (seed4
| 0-2728 | ||||||||||||||||||||||||
| 155 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 156 | if (seed5
| 0-2252 | ||||||||||||||||||||||||
| 157 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 158 | if (!EVP_DigestSignFinal(&ctx, hmac, &hmac_len)
| 0-4318 | ||||||||||||||||||||||||
| 159 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 160 | - | |||||||||||||||||||||||||
| 161 | if (hmac_len > out_len
| 1524-2794 | ||||||||||||||||||||||||
| 162 | hmac_len = out_len; executed 1524 times by 3 tests: hmac_len = out_len;Executed by:
| 1524 | ||||||||||||||||||||||||
| 163 | - | |||||||||||||||||||||||||
| 164 | for (i = 0; i < hmac_len
| 4318-85792 | ||||||||||||||||||||||||
| 165 | out[i] ^= hmac[i]; executed 85792 times by 3 tests: out[i] ^= hmac[i];Executed by:
| 85792 | ||||||||||||||||||||||||
| 166 | - | |||||||||||||||||||||||||
| 167 | out += hmac_len; | - | ||||||||||||||||||||||||
| 168 | out_len -= hmac_len; | - | ||||||||||||||||||||||||
| 169 | - | |||||||||||||||||||||||||
| 170 | if (out_len == 0
| 1644-2674 | ||||||||||||||||||||||||
| 171 | break; executed 1644 times by 3 tests: break;Executed by:
| 1644 | ||||||||||||||||||||||||
| 172 | - | |||||||||||||||||||||||||
| 173 | if (!EVP_DigestSignInit(&ctx,
| 0-2674 | ||||||||||||||||||||||||
| 174 | ((void *)0)
| 0-2674 | ||||||||||||||||||||||||
| 175 | , md,
| 0-2674 | ||||||||||||||||||||||||
| 176 | ((void *)0)
| 0-2674 | ||||||||||||||||||||||||
| 177 | , mac_key)
| 0-2674 | ||||||||||||||||||||||||
| 178 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 179 | if (!EVP_DigestUpdate(&ctx,A1,A1_len)
| 0-2674 | ||||||||||||||||||||||||
| 180 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 181 | if (!EVP_DigestSignFinal(&ctx, A1, &A1_len)
| 0-2674 | ||||||||||||||||||||||||
| 182 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 183 | } executed 2674 times by 3 tests: end of blockExecuted by:
| 2674 | ||||||||||||||||||||||||
| 184 | ret = 1; | - | ||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||
| 186 | err: code before this statement executed 1644 times by 3 tests: err:Executed by:
| 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: ret;return ret;Executed by:
executed 1644 times by 3 tests: return ret;Executed by:
| 1644 | ||||||||||||||||||||||||
| 194 | } | - | ||||||||||||||||||||||||
| 195 | - | |||||||||||||||||||||||||
| 196 | int | - | ||||||||||||||||||||||||
| 197 | tls1_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)
| 0-1248 | ||||||||||||||||||||||||
| 208 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 209 | - | |||||||||||||||||||||||||
| 210 | if (md->type == 114
| 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,
| 0-396 | ||||||||||||||||||||||||
| 217 | seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
| 0-396 | ||||||||||||||||||||||||
| 218 | seed5, seed5_len, out, out_len)
| 0-396 | ||||||||||||||||||||||||
| 219 | return never executed: (0);return (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,
| 0-396 | ||||||||||||||||||||||||
| 223 | seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
| 0-396 | ||||||||||||||||||||||||
| 224 | seed5, seed5_len, out, out_len)
| 0-396 | ||||||||||||||||||||||||
| 225 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 226 | - | |||||||||||||||||||||||||
| 227 | return executed 396 times by 2 tests: (1);return (1);Executed by:
executed 396 times by 2 tests: return (1);Executed by:
| 396 | ||||||||||||||||||||||||
| 228 | } | - | ||||||||||||||||||||||||
| 229 | - | |||||||||||||||||||||||||
| 230 | if (!tls1_P_hash(md, secret, secret_len, seed1, seed1_len,
| 0-852 | ||||||||||||||||||||||||
| 231 | seed2, seed2_len, seed3, seed3_len, seed4, seed4_len,
| 0-852 | ||||||||||||||||||||||||
| 232 | seed5, seed5_len, out, out_len)
| 0-852 | ||||||||||||||||||||||||
| 233 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 234 | - | |||||||||||||||||||||||||
| 235 | return executed 852 times by 3 tests: (1);return (1);Executed by:
executed 852 times by 3 tests: return (1);Executed by:
| 852 | ||||||||||||||||||||||||
| 236 | } | - | ||||||||||||||||||||||||
| 237 | - | |||||||||||||||||||||||||
| 238 | static int | - | ||||||||||||||||||||||||
| 239 | tls1_generate_key_block(SSL *s, unsigned char *km, int num) | - | ||||||||||||||||||||||||
| 240 | { | - | ||||||||||||||||||||||||
| 241 | if (num < 0
| 0-126 | ||||||||||||||||||||||||
| 242 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 243 | - | |||||||||||||||||||||||||
| 244 | return executed 126 times by 2 tests: tls1_PRF(s,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:
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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 126 | ||||||||||||||||||||||||
| 254 | } | - | ||||||||||||||||||||||||
| 255 | - | |||||||||||||||||||||||||
| 256 | - | |||||||||||||||||||||||||
| 257 | - | |||||||||||||||||||||||||
| 258 | - | |||||||||||||||||||||||||
| 259 | - | |||||||||||||||||||||||||
| 260 | static int | - | ||||||||||||||||||||||||
| 261 | tls1_aead_ctx_init(SSL_AEAD_CTX **aead_ctx) | - | ||||||||||||||||||||||||
| 262 | { | - | ||||||||||||||||||||||||
| 263 | if (*
| 0-92 | ||||||||||||||||||||||||
| 264 | ((void *)0)
| 0-92 | ||||||||||||||||||||||||
| 265 | ) { | - | ||||||||||||||||||||||||
| 266 | EVP_AEAD_CTX_cleanup(&(*aead_ctx)->ctx); | - | ||||||||||||||||||||||||
| 267 | return never executed: (1);return (1);never executed: return (1); | 0 | ||||||||||||||||||||||||
| 268 | } | - | ||||||||||||||||||||||||
| 269 | - | |||||||||||||||||||||||||
| 270 | *aead_ctx = malloc(sizeof(SSL_AEAD_CTX)); | - | ||||||||||||||||||||||||
| 271 | if (*
| 0-92 | ||||||||||||||||||||||||
| 272 | ((void *)0)
| 0-92 | ||||||||||||||||||||||||
| 273 | ) { | - | ||||||||||||||||||||||||
| 274 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,385); | - | ||||||||||||||||||||||||
| 275 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 276 | } | - | ||||||||||||||||||||||||
| 277 | - | |||||||||||||||||||||||||
| 278 | return executed 92 times by 2 tests: (1);return (1);Executed by:
executed 92 times by 2 tests: return (1);Executed by:
| 92 | ||||||||||||||||||||||||
| 279 | } | - | ||||||||||||||||||||||||
| 280 | - | |||||||||||||||||||||||||
| 281 | static int | - | ||||||||||||||||||||||||
| 282 | tls1_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
| 46 | ||||||||||||||||||||||||
| 289 | ssl_clear_cipher_read_state(s); | - | ||||||||||||||||||||||||
| 290 | if (!tls1_aead_ctx_init(&s->internal->aead_read_ctx)
| 0-46 | ||||||||||||||||||||||||
| 291 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 292 | aead_ctx = s->internal->aead_read_ctx; | - | ||||||||||||||||||||||||
| 293 | } executed 46 times by 2 tests: else {end of blockExecuted by:
| 46 | ||||||||||||||||||||||||
| 294 | - | |||||||||||||||||||||||||
| 295 | ssl_clear_cipher_write_state(s); | - | ||||||||||||||||||||||||
| 296 | if (!tls1_aead_ctx_init(&s->internal->aead_write_ctx)
| 0-46 | ||||||||||||||||||||||||
| 297 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 298 | aead_ctx = s->internal->aead_write_ctx; | - | ||||||||||||||||||||||||
| 299 | } executed 46 times by 2 tests: end of blockExecuted by:
| 46 | ||||||||||||||||||||||||
| 300 | - | |||||||||||||||||||||||||
| 301 | if (!EVP_AEAD_CTX_init(&aead_ctx->ctx, aead, key, key_len,
| 0-92 | ||||||||||||||||||||||||
| 302 | 0,
| 0-92 | ||||||||||||||||||||||||
| 303 | ((void *)0)
| 0-92 | ||||||||||||||||||||||||
| 304 | )
| 0-92 | ||||||||||||||||||||||||
| 305 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 306 | if (iv_len > sizeof(aead_ctx->fixed_nonce)
| 0-92 | ||||||||||||||||||||||||
| 307 | ERR_put_error(20,(0xfff),((4|64)),__FILE__,416); | - | ||||||||||||||||||||||||
| 308 | return never executed: (0);return (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
| 24-68 | ||||||||||||||||||||||||
| 321 | if (aead_ctx->fixed_nonce_len != EVP_AEAD_nonce_length(aead)
| 0-68 | ||||||||||||||||||||||||
| 322 | aead_ctx->variable_nonce_len > EVP_AEAD_nonce_length(aead)
| 0-68 | ||||||||||||||||||||||||
| 323 | ERR_put_error(20,(0xfff),((4|64)),__FILE__,432); | - | ||||||||||||||||||||||||
| 324 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 325 | } | - | ||||||||||||||||||||||||
| 326 | } executed 68 times by 2 tests: else {end of blockExecuted by:
| 68 | ||||||||||||||||||||||||
| 327 | if (aead_ctx->variable_nonce_len + aead_ctx->fixed_nonce_len !=
| 0-24 | ||||||||||||||||||||||||
| 328 | EVP_AEAD_nonce_length(aead)
| 0-24 | ||||||||||||||||||||||||
| 329 | ERR_put_error(20,(0xfff),((4|64)),__FILE__,438); | - | ||||||||||||||||||||||||
| 330 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 331 | } | - | ||||||||||||||||||||||||
| 332 | } executed 24 times by 1 test: end of blockExecuted by:
| 24 | ||||||||||||||||||||||||
| 333 | - | |||||||||||||||||||||||||
| 334 | return executed 92 times by 2 tests: (1);return (1);Executed by:
executed 92 times by 2 tests: return (1);Executed by:
| 92 | ||||||||||||||||||||||||
| 335 | } | - | ||||||||||||||||||||||||
| 336 | - | |||||||||||||||||||||||||
| 337 | - | |||||||||||||||||||||||||
| 338 | - | |||||||||||||||||||||||||
| 339 | - | |||||||||||||||||||||||||
| 340 | - | |||||||||||||||||||||||||
| 341 | - | |||||||||||||||||||||||||
| 342 | - | |||||||||||||||||||||||||
| 343 | static int | - | ||||||||||||||||||||||||
| 344 | tls1_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
| 80 | ||||||||||||||||||||||||
| 361 | if ((
| 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:
| 80 | ||||||||||||||||||||||||
| 365 | - | |||||||||||||||||||||||||
| 366 | ssl_clear_cipher_read_state(s); | - | ||||||||||||||||||||||||
| 367 | - | |||||||||||||||||||||||||
| 368 | if ((
| 0-80 | ||||||||||||||||||||||||
| 369 | ((void *)0)
| 0-80 | ||||||||||||||||||||||||
| 370 | ) | - | ||||||||||||||||||||||||
| 371 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 372 | s->enc_read_ctx = cipher_ctx; | - | ||||||||||||||||||||||||
| 373 | if ((
| 0-80 | ||||||||||||||||||||||||
| 374 | ((void *)0)
| 0-80 | ||||||||||||||||||||||||
| 375 | ) | - | ||||||||||||||||||||||||
| 376 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 377 | s->read_hash = mac_ctx; | - | ||||||||||||||||||||||||
| 378 | } executed 80 times by 1 test: else {end of blockExecuted by:
| 80 | ||||||||||||||||||||||||
| 379 | if ((
| 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:
| 80 | ||||||||||||||||||||||||
| 383 | if (!(s->method->internal->version == 0xFEFF)
| 22-58 | ||||||||||||||||||||||||
| 384 | ssl_clear_cipher_write_state(s); executed 58 times by 1 test: ssl_clear_cipher_write_state(s);Executed by:
| 58 | ||||||||||||||||||||||||
| 385 | - | |||||||||||||||||||||||||
| 386 | if ((
| 0-80 | ||||||||||||||||||||||||
| 387 | ((void *)0)
| 0-80 | ||||||||||||||||||||||||
| 388 | ) | - | ||||||||||||||||||||||||
| 389 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 390 | s->internal->enc_write_ctx = cipher_ctx; | - | ||||||||||||||||||||||||
| 391 | if ((
| 0-80 | ||||||||||||||||||||||||
| 392 | ((void *)0)
| 0-80 | ||||||||||||||||||||||||
| 393 | ) | - | ||||||||||||||||||||||||
| 394 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 395 | s->internal->write_hash = mac_ctx; | - | ||||||||||||||||||||||||
| 396 | } executed 80 times by 1 test: end of blockExecuted by:
| 80 | ||||||||||||||||||||||||
| 397 | - | |||||||||||||||||||||||||
| 398 | EVP_CipherInit_ex(cipher_ctx, cipher, | - | ||||||||||||||||||||||||
| 399 | ((void *)0) | - | ||||||||||||||||||||||||
| 400 | , key, iv, !is_read); | - | ||||||||||||||||||||||||
| 401 | - | |||||||||||||||||||||||||
| 402 | if ((
| 0-160 | ||||||||||||||||||||||||
| 403 | ((void *)0)
| 0-160 | ||||||||||||||||||||||||
| 404 | , mac_secret,
| 0-160 | ||||||||||||||||||||||||
| 405 | mac_secret_size)) ==
| 0-160 | ||||||||||||||||||||||||
| 406 | ((void *)0)
| 0-160 | ||||||||||||||||||||||||
| 407 | ) | - | ||||||||||||||||||||||||
| 408 | goto never executed: err;goto 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 ((
| 0-160 | ||||||||||||||||||||||||
| 417 | int nid; | - | ||||||||||||||||||||||||
| 418 | if ((
| 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 ((
| 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: (1);return (1);Executed by:
executed 160 times by 1 test: return (1);Executed by:
| 160 | ||||||||||||||||||||||||
| 429 | - | |||||||||||||||||||||||||
| 430 | err: | - | ||||||||||||||||||||||||
| 431 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,530); | - | ||||||||||||||||||||||||
| 432 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 433 | } | - | ||||||||||||||||||||||||
| 434 | - | |||||||||||||||||||||||||
| 435 | int | - | ||||||||||||||||||||||||
| 436 | tls1_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 = ((
| 63-189 | ||||||||||||||||||||||||
| 464 | (
| 63-126 | ||||||||||||||||||||||||
| 465 | - | |||||||||||||||||||||||||
| 466 | - | |||||||||||||||||||||||||
| 467 | - | |||||||||||||||||||||||||
| 468 | - | |||||||||||||||||||||||||
| 469 | - | |||||||||||||||||||||||||
| 470 | if (!(s->method->internal->version == 0xFEFF)
| 44-208 | ||||||||||||||||||||||||
| 471 | seq = is_read
| 104 | ||||||||||||||||||||||||
| 472 | memset(seq, 0, 8); | - | ||||||||||||||||||||||||
| 473 | } executed 208 times by 2 tests: end of blockExecuted by:
| 208 | ||||||||||||||||||||||||
| 474 | - | |||||||||||||||||||||||||
| 475 | if (aead !=
| 92-160 | ||||||||||||||||||||||||
| 476 | ((void *)0)
| 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: else {end of blockExecuted by:
| 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 blockExecuted by:
| 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
| 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: else {end of blockExecuted by:
| 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 blockExecuted by:
| 126 | ||||||||||||||||||||||||
| 510 | - | |||||||||||||||||||||||||
| 511 | if (key_block - (s->s3->internal)->hs.key_block != (s->s3->internal)->hs.key_block_len
| 0-252 | ||||||||||||||||||||||||
| 512 | SSL_error_internal(s, (4|64), __FILE__, 609); | - | ||||||||||||||||||||||||
| 513 | goto never executed: err2;goto err2;never executed: goto err2; | 0 | ||||||||||||||||||||||||
| 514 | } | - | ||||||||||||||||||||||||
| 515 | - | |||||||||||||||||||||||||
| 516 | if (is_read
| 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: else {end of blockExecuted by:
| 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 blockExecuted by:
| 126 | ||||||||||||||||||||||||
| 523 | - | |||||||||||||||||||||||||
| 524 | if (aead !=
| 92-160 | ||||||||||||||||||||||||
| 525 | ((void *)0)
| 92-160 | ||||||||||||||||||||||||
| 526 | ) { | - | ||||||||||||||||||||||||
| 527 | return executed 92 times by 2 tests: tls1_change_cipher_state_aead(s, is_read, key, key_len,return tls1_change_cipher_state_aead(s, is_read, key, key_len, iv, iv_len);Executed by:
executed 92 times by 2 tests: return tls1_change_cipher_state_aead(s, is_read, key, key_len, iv, iv_len);Executed by:
| 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:
| 92 | ||||||||||||||||||||||||
| 529 | } | - | ||||||||||||||||||||||||
| 530 | - | |||||||||||||||||||||||||
| 531 | return executed 160 times by 1 test: tls1_change_cipher_state_cipher(s, is_read,return tls1_change_cipher_state_cipher(s, is_read, mac_secret, mac_secret_size, key, key_len, iv, iv_len);Executed by:
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:
| 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:
| 160 | ||||||||||||||||||||||||
| 533 | - | |||||||||||||||||||||||||
| 534 | err2: | - | ||||||||||||||||||||||||
| 535 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 536 | } | - | ||||||||||||||||||||||||
| 537 | - | |||||||||||||||||||||||||
| 538 | int | - | ||||||||||||||||||||||||
| 539 | tls1_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 ((
| 63-126 | ||||||||||||||||||||||||
| 556 | return executed 63 times by 2 tests: (1);return (1);Executed by:
executed 63 times by 2 tests: return (1);Executed by:
| 63 | ||||||||||||||||||||||||
| 557 | - | |||||||||||||||||||||||||
| 558 | if (s->session->cipher
| 0-126 | ||||||||||||||||||||||||
| 559 | (
| 46-80 | ||||||||||||||||||||||||
| 560 | if (!ssl_cipher_get_evp_aead(s->session, &aead)
| 0-46 | ||||||||||||||||||||||||
| 561 | SSL_error_internal(s, 138, __FILE__, 650); | - | ||||||||||||||||||||||||
| 562 | return never executed: (0);return (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: else {end of blockExecuted by:
| 46 | ||||||||||||||||||||||||
| 567 | if (!ssl_cipher_get_evp(s->session, &cipher, &mac, &mac_type,
| 0-80 | ||||||||||||||||||||||||
| 568 | &mac_secret_size)
| 0-80 | ||||||||||||||||||||||||
| 569 | SSL_error_internal(s, 138, __FILE__, 658); | - | ||||||||||||||||||||||||
| 570 | return never executed: (0);return (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 blockExecuted by:
| 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 ((
| 0-126 | ||||||||||||||||||||||||
| 585 | ((void *)0)
| 0-126 | ||||||||||||||||||||||||
| 586 | , mac_secret_size + key_len + iv_len,
| 0-126 | ||||||||||||||||||||||||
| 587 | 2)) ==
| 0-126 | ||||||||||||||||||||||||
| 588 | ((void *)0)
| 0-126 | ||||||||||||||||||||||||
| 589 | ) { | - | ||||||||||||||||||||||||
| 590 | SSL_error_internal(s, (1|64), __FILE__, 675); | - | ||||||||||||||||||||||||
| 591 | goto never executed: err;goto 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)
| 0-126 | ||||||||||||||||||||||||
| 599 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 600 | - | |||||||||||||||||||||||||
| 601 | if (!(s->internal->options & 0x00000800L)
| 0-126 | ||||||||||||||||||||||||
| 602 | s->method->internal->version <= 0x0301
| 36-90 | ||||||||||||||||||||||||
| 603 | - | |||||||||||||||||||||||||
| 604 | - | |||||||||||||||||||||||||
| 605 | - | |||||||||||||||||||||||||
| 606 | - | |||||||||||||||||||||||||
| 607 | (s->s3->internal)->need_empty_fragments = 1; | - | ||||||||||||||||||||||||
| 608 | - | |||||||||||||||||||||||||
| 609 | if (s->session->cipher !=
| 0-36 | ||||||||||||||||||||||||
| 610 | ((void *)0)
| 0-36 | ||||||||||||||||||||||||
| 611 | ) { | - | ||||||||||||||||||||||||
| 612 | if (s->session->cipher->algorithm_enc == 0x00000010L
| 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
| 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 blockExecuted by:
| 36 | ||||||||||||||||||||||||
| 620 | } executed 36 times by 1 test: end of blockExecuted by:
| 36 | ||||||||||||||||||||||||
| 621 | - | |||||||||||||||||||||||||
| 622 | ret = 1; | - | ||||||||||||||||||||||||
| 623 | - | |||||||||||||||||||||||||
| 624 | err: code before this statement executed 126 times by 2 tests: err:Executed by:
| 126 | ||||||||||||||||||||||||
| 625 | return executed 126 times by 2 tests: (ret);return (ret);Executed by:
executed 126 times by 2 tests: return (ret);Executed by:
| 126 | ||||||||||||||||||||||||
| 626 | } | - | ||||||||||||||||||||||||
| 627 | int | - | ||||||||||||||||||||||||
| 628 | tls1_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
| 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: else {end of blockExecuted by:
| 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 blockExecuted by:
| 700 | ||||||||||||||||||||||||
| 647 | - | |||||||||||||||||||||||||
| 648 | if (aead
| 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 ((
| 0-214 | ||||||||||||||||||||||||
| 654 | dtls1_build_sequence_number(ad, seq, | - | ||||||||||||||||||||||||
| 655 | send ? (s->d1->internal)->w_epoch : (s->d1->internal)->r_epoch); | - | ||||||||||||||||||||||||
| 656 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 657 | memcpy(ad, seq, 8); | - | ||||||||||||||||||||||||
| 658 | tls1_record_sequence_increment(seq); | - | ||||||||||||||||||||||||
| 659 | } executed 214 times by 2 tests: end of blockExecuted by:
| 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
| 0-214 | ||||||||||||||||||||||||
| 666 | aead->variable_nonce_len > sizeof(nonce)
| 0-214 | ||||||||||||||||||||||||
| 667 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 668 | - | |||||||||||||||||||||||||
| 669 | if (aead->xor_fixed_nonce
| 60-154 | ||||||||||||||||||||||||
| 670 | if (aead->fixed_nonce_len > sizeof(nonce)
| 0-154 | ||||||||||||||||||||||||
| 671 | aead->variable_nonce_len > aead->fixed_nonce_len
| 0-154 | ||||||||||||||||||||||||
| 672 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 673 | pad_len = aead->fixed_nonce_len - aead->variable_nonce_len; | - | ||||||||||||||||||||||||
| 674 | } executed 154 times by 2 tests: else {end of blockExecuted by:
| 154 | ||||||||||||||||||||||||
| 675 | if (aead->fixed_nonce_len +
| 0-60 | ||||||||||||||||||||||||
| 676 | aead->variable_nonce_len > sizeof(nonce)
| 0-60 | ||||||||||||||||||||||||
| 677 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 678 | } executed 60 times by 1 test: end of blockExecuted by:
| 60 | ||||||||||||||||||||||||
| 679 | - | |||||||||||||||||||||||||
| 680 | if (send
| 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
| 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
| 94-1128 | ||||||||||||||||||||||||
| 696 | nonce[i] ^= aead->fixed_nonce[i]; executed 1128 times by 2 tests: nonce[i] ^= aead->fixed_nonce[i];Executed by:
| 1128 | ||||||||||||||||||||||||
| 697 | nonce_used = aead->fixed_nonce_len; | - | ||||||||||||||||||||||||
| 698 | } executed 94 times by 2 tests: else {end of blockExecuted by:
| 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 blockExecuted by:
| 36 | ||||||||||||||||||||||||
| 710 | if (aead->variable_nonce_in_record
| 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 blockExecuted by:
| 36 | ||||||||||||||||||||||||
| 715 | - | |||||||||||||||||||||||||
| 716 | ad[11] = len >> 8; | - | ||||||||||||||||||||||||
| 717 | ad[12] = len & 0xff; | - | ||||||||||||||||||||||||
| 718 | - | |||||||||||||||||||||||||
| 719 | if (!EVP_AEAD_CTX_seal(&aead->ctx,
| 0-130 | ||||||||||||||||||||||||
| 720 | out + eivlen, &out_len, len + aead->tag_len, nonce,
| 0-130 | ||||||||||||||||||||||||
| 721 | nonce_used, in + eivlen, len, ad, sizeof(ad))
| 0-130 | ||||||||||||||||||||||||
| 722 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 723 | if (aead->variable_nonce_in_record
| 36-94 | ||||||||||||||||||||||||
| 724 | out_len += aead->variable_nonce_len; executed 36 times by 1 test: out_len += aead->variable_nonce_len;Executed by:
| 36 | ||||||||||||||||||||||||
| 725 | } executed 130 times by 2 tests: else {end of blockExecuted by:
| 130 | ||||||||||||||||||||||||
| 726 | - | |||||||||||||||||||||||||
| 727 | size_t len = rec->length; | - | ||||||||||||||||||||||||
| 728 | - | |||||||||||||||||||||||||
| 729 | if (rec->data != rec->input
| 0-84 | ||||||||||||||||||||||||
| 730 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 731 | out = in = rec->input; | - | ||||||||||||||||||||||||
| 732 | - | |||||||||||||||||||||||||
| 733 | if (len < aead->variable_nonce_len
| 0-84 | ||||||||||||||||||||||||
| 734 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 735 | - | |||||||||||||||||||||||||
| 736 | if (aead->xor_fixed_nonce
| 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
| 60-720 | ||||||||||||||||||||||||
| 746 | nonce[i] ^= aead->fixed_nonce[i]; executed 720 times by 2 tests: nonce[i] ^= aead->fixed_nonce[i];Executed by:
| 720 | ||||||||||||||||||||||||
| 747 | nonce_used = aead->fixed_nonce_len; | - | ||||||||||||||||||||||||
| 748 | } executed 60 times by 2 tests: else {end of blockExecuted by:
| 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 blockExecuted by:
| 24 | ||||||||||||||||||||||||
| 758 | - | |||||||||||||||||||||||||
| 759 | if (aead->variable_nonce_in_record
| 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 blockExecuted by:
| 24 | ||||||||||||||||||||||||
| 764 | - | |||||||||||||||||||||||||
| 765 | if (len < aead->tag_len
| 0-84 | ||||||||||||||||||||||||
| 766 | return never executed: 0;return 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,
| 0-84 | ||||||||||||||||||||||||
| 773 | nonce, nonce_used, in, len + aead->tag_len, ad,
| 0-84 | ||||||||||||||||||||||||
| 774 | sizeof(ad))
| 0-84 | ||||||||||||||||||||||||
| 775 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 776 | - | |||||||||||||||||||||||||
| 777 | rec->data = rec->input = out; | - | ||||||||||||||||||||||||
| 778 | } executed 84 times by 2 tests: end of blockExecuted by:
| 84 | ||||||||||||||||||||||||
| 779 | - | |||||||||||||||||||||||||
| 780 | rec->length = out_len; | - | ||||||||||||||||||||||||
| 781 | - | |||||||||||||||||||||||||
| 782 | return executed 214 times by 2 tests: 1;return 1;Executed by:
executed 214 times by 2 tests: return 1;Executed by:
| 214 | ||||||||||||||||||||||||
| 783 | } | - | ||||||||||||||||||||||||
| 784 | - | |||||||||||||||||||||||||
| 785 | if (send
| 616-690 | ||||||||||||||||||||||||
| 786 | if (EVP_MD_CTX_md(s->internal->write_hash)
| 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 blockExecuted by:
| 210 | ||||||||||||||||||||||||
| 790 | ds = s->internal->enc_write_ctx; | - | ||||||||||||||||||||||||
| 791 | if (s->internal->enc_write_ctx ==
| 210-480 | ||||||||||||||||||||||||
| 792 | ((void *)0)
| 210-480 | ||||||||||||||||||||||||
| 793 | ) | - | ||||||||||||||||||||||||
| 794 | enc = executed 480 times by 4 tests: enc = ((void *)0) ;Executed by:
| 480 | ||||||||||||||||||||||||
| 795 | ((void *)0) executed 480 times by 4 tests: enc = ((void *)0) ;Executed by:
| 480 | ||||||||||||||||||||||||
| 796 | ; executed 480 times by 4 tests: enc = ((void *)0) ;Executed by:
| 480 | ||||||||||||||||||||||||
| 797 | else { | - | ||||||||||||||||||||||||
| 798 | int ivlen = 0; | - | ||||||||||||||||||||||||
| 799 | enc = EVP_CIPHER_CTX_cipher(s->internal->enc_write_ctx); | - | ||||||||||||||||||||||||
| 800 | if ((
| 66-144 | ||||||||||||||||||||||||
| 801 | (
| 6-60 | ||||||||||||||||||||||||
| 802 | ivlen = EVP_CIPHER_iv_length(enc); executed 60 times by 1 test: ivlen = EVP_CIPHER_iv_length(enc);Executed by:
| 60 | ||||||||||||||||||||||||
| 803 | if (ivlen > 1
| 60-150 | ||||||||||||||||||||||||
| 804 | if (rec->data != rec->input
| 0-60 | ||||||||||||||||||||||||
| 805 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
| 806 | arc4random_buf(rec->input, ivlen); executed 60 times by 1 test: arc4random_buf(rec->input, ivlen);Executed by:
| 60 | ||||||||||||||||||||||||
| 807 | } | - | ||||||||||||||||||||||||
| 808 | } executed 210 times by 1 test: end of blockExecuted by:
| 210 | ||||||||||||||||||||||||
| 809 | } else { | - | ||||||||||||||||||||||||
| 810 | if (EVP_MD_CTX_md(s->read_hash)
| 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 blockExecuted by:
| 152 | ||||||||||||||||||||||||
| 814 | ds = s->enc_read_ctx; | - | ||||||||||||||||||||||||
| 815 | if (s->enc_read_ctx ==
| 152-464 | ||||||||||||||||||||||||
| 816 | ((void *)0)
| 152-464 | ||||||||||||||||||||||||
| 817 | ) | - | ||||||||||||||||||||||||
| 818 | enc = executed 464 times by 3 tests: enc = ((void *)0) ;Executed by:
| 464 | ||||||||||||||||||||||||
| 819 | ((void *)0) executed 464 times by 3 tests: enc = ((void *)0) ;Executed by:
| 464 | ||||||||||||||||||||||||
| 820 | ; executed 464 times by 3 tests: enc = ((void *)0) ;Executed by:
| 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:
| 152 | ||||||||||||||||||||||||
| 823 | } | - | ||||||||||||||||||||||||
| 824 | - | |||||||||||||||||||||||||
| 825 | if ((
| 45-1261 | ||||||||||||||||||||||||
| 826 | ((void *)0)
| 45-1261 | ||||||||||||||||||||||||
| 827 | )
| 45-1261 | ||||||||||||||||||||||||
| 828 | ((void *)0)
| 362-899 | ||||||||||||||||||||||||
| 829 | )
| 0-899 | ||||||||||||||||||||||||
| 830 | ((void *)0)
| 0-362 | ||||||||||||||||||||||||
| 831 | )
| 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: else {end of blockExecuted by:
| 944 | ||||||||||||||||||||||||
| 836 | l = rec->length; | - | ||||||||||||||||||||||||
| 837 | bs = EVP_CIPHER_block_size(ds->cipher); | - | ||||||||||||||||||||||||
| 838 | - | |||||||||||||||||||||||||
| 839 | if (bs != 1
| 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)
| 204-2576 | ||||||||||||||||||||||||
| 847 | rec->input[k] = j; executed 2576 times by 1 test: rec->input[k] = j;Executed by:
| 2576 | ||||||||||||||||||||||||
| 848 | l += i; | - | ||||||||||||||||||||||||
| 849 | rec->length += i; | - | ||||||||||||||||||||||||
| 850 | } executed 204 times by 1 test: end of blockExecuted by:
| 204 | ||||||||||||||||||||||||
| 851 | - | |||||||||||||||||||||||||
| 852 | if (!send
| 152-210 | ||||||||||||||||||||||||
| 853 | if (l == 0
| 0-152 | ||||||||||||||||||||||||
| 854 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 855 | } executed 152 times by 1 test: end of blockExecuted by:
| 152 | ||||||||||||||||||||||||
| 856 | - | |||||||||||||||||||||||||
| 857 | i = EVP_Cipher(ds, rec->data, rec->input, l); | - | ||||||||||||||||||||||||
| 858 | if ((
| 0-362 | ||||||||||||||||||||||||
| 859 | 0x100000)
| 0-362 | ||||||||||||||||||||||||
| 860 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 861 | - | |||||||||||||||||||||||||
| 862 | ret = 1; | - | ||||||||||||||||||||||||
| 863 | if (EVP_MD_CTX_md(s->read_hash) !=
| 29-333 | ||||||||||||||||||||||||
| 864 | ((void *)0)
| 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:
| 333 | ||||||||||||||||||||||||
| 867 | if ((
| 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:
| 148 | ||||||||||||||||||||||||
| 869 | if (pad
| 0-362 | ||||||||||||||||||||||||
| 870 | rec->length -= pad; never executed: rec->length -= pad; | 0 | ||||||||||||||||||||||||
| 871 | } executed 362 times by 1 test: end of blockExecuted by:
| 362 | ||||||||||||||||||||||||
| 872 | return executed 1306 times by 4 tests: ret;return ret;Executed by:
executed 1306 times by 4 tests: return ret;Executed by:
| 1306 | ||||||||||||||||||||||||
| 873 | } | - | ||||||||||||||||||||||||
| 874 | - | |||||||||||||||||||||||||
| 875 | int | - | ||||||||||||||||||||||||
| 876 | tls1_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
| 0-356 | ||||||||||||||||||||||||
| 882 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 883 | - | |||||||||||||||||||||||||
| 884 | if (!tls1_handshake_hash_value(s, buf, sizeof(buf), &hash_len)
| 0-356 | ||||||||||||||||||||||||
| 885 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 886 | - | |||||||||||||||||||||||||
| 887 | if (!tls1_PRF(s, s->session->master_key, s->session->master_key_length,
| 0-356 | ||||||||||||||||||||||||
| 888 | str, str_len, buf, hash_len,
| 0-356 | ||||||||||||||||||||||||
| 889 | ((void *)0)
| 0-356 | ||||||||||||||||||||||||
| 890 | , 0,
| 0-356 | ||||||||||||||||||||||||
| 891 | ((void *)0)
| 0-356 | ||||||||||||||||||||||||
| 892 | , 0,
| 0-356 | ||||||||||||||||||||||||
| 893 | ((void *)0)
| 0-356 | ||||||||||||||||||||||||
| 894 | , 0,
| 0-356 | ||||||||||||||||||||||||
| 895 | out, 12)
| 0-356 | ||||||||||||||||||||||||
| 896 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 897 | - | |||||||||||||||||||||||||
| 898 | return executed 356 times by 2 tests: 12;return 12;Executed by:
executed 356 times by 2 tests: return 12;Executed by:
| 356 | ||||||||||||||||||||||||
| 899 | } | - | ||||||||||||||||||||||||
| 900 | - | |||||||||||||||||||||||||
| 901 | int | - | ||||||||||||||||||||||||
| 902 | tls1_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
| 196-276 | ||||||||||||||||||||||||
| 911 | (ssl->internal->mac_flags & 2) : | - | ||||||||||||||||||||||||
| 912 | (ssl->internal->mac_flags & 1)); | - | ||||||||||||||||||||||||
| 913 | int t; | - | ||||||||||||||||||||||||
| 914 | - | |||||||||||||||||||||||||
| 915 | if (send
| 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: else {end of blockExecuted by:
| 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 blockExecuted by:
| 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
| 0-472 | ||||||||||||||||||||||||
| 931 | mac_ctx = hash; | - | ||||||||||||||||||||||||
| 932 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 933 | if (!EVP_MD_CTX_copy(&hmac, hash)
| 0-472 | ||||||||||||||||||||||||
| 934 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 935 | mac_ctx = &hmac; | - | ||||||||||||||||||||||||
| 936 | } executed 472 times by 1 test: end of blockExecuted by:
| 472 | ||||||||||||||||||||||||
| 937 | - | |||||||||||||||||||||||||
| 938 | if ((
| 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:
| 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:
| 110 | ||||||||||||||||||||||||
| 941 | else | - | ||||||||||||||||||||||||
| 942 | memcpy(header, seq, 8); executed 362 times by 1 test: memcpy(header, seq, 8);Executed by:
| 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
| 196-276 | ||||||||||||||||||||||||
| 955 | (
| 12-184 | ||||||||||||||||||||||||
| 956 | ssl3_cbc_record_digest_supported(mac_ctx)
| 0-184 | ||||||||||||||||||||||||
| 957 | - | |||||||||||||||||||||||||
| 958 | - | |||||||||||||||||||||||||
| 959 | - | |||||||||||||||||||||||||
| 960 | - | |||||||||||||||||||||||||
| 961 | if (!ssl3_cbc_digest_record(mac_ctx,
| 0-184 | ||||||||||||||||||||||||
| 962 | md, &md_size, header, rec->input,
| 0-184 | ||||||||||||||||||||||||
| 963 | rec->length + md_size, orig_len,
| 0-184 | ||||||||||||||||||||||||
| 964 | ssl->s3->internal->read_mac_secret,
| 0-184 | ||||||||||||||||||||||||
| 965 | ssl->s3->internal->read_mac_secret_size)
| 0-184 | ||||||||||||||||||||||||
| 966 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 967 | } executed 184 times by 1 test: else {end of blockExecuted by:
| 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 blockExecuted by:
| 288 | ||||||||||||||||||||||||
| 973 | - | |||||||||||||||||||||||||
| 974 | if (!stream_mac
| 0-472 | ||||||||||||||||||||||||
| 975 | EVP_MD_CTX_cleanup(&hmac); executed 472 times by 1 test: EVP_MD_CTX_cleanup(&hmac);Executed by:
| 472 | ||||||||||||||||||||||||
| 976 | - | |||||||||||||||||||||||||
| 977 | if (!(ssl->method->internal->version == 0xFEFF)
| 110-362 | ||||||||||||||||||||||||
| 978 | tls1_record_sequence_increment(seq); executed 362 times by 1 test: tls1_record_sequence_increment(seq);Executed by:
| 362 | ||||||||||||||||||||||||
| 979 | - | |||||||||||||||||||||||||
| 980 | return executed 472 times by 1 test: (md_size);return (md_size);Executed by:
executed 472 times by 1 test: return (md_size);Executed by:
| 472 | ||||||||||||||||||||||||
| 981 | } | - | ||||||||||||||||||||||||
| 982 | - | |||||||||||||||||||||||||
| 983 | int | - | ||||||||||||||||||||||||
| 984 | tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p, | - | ||||||||||||||||||||||||
| 985 | int len) | - | ||||||||||||||||||||||||
| 986 | { | - | ||||||||||||||||||||||||
| 987 | if (len < 0
| 0-126 | ||||||||||||||||||||||||
| 988 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 989 | - | |||||||||||||||||||||||||
| 990 | if (!tls1_PRF(s, p, len,
| 0-126 | ||||||||||||||||||||||||
| 991 | "master secret", 13,
| 0-126 | ||||||||||||||||||||||||
| 992 | s->s3->client_random, 32,
| 0-126 | ||||||||||||||||||||||||
| 993 | ((void *)0)
| 0-126 | ||||||||||||||||||||||||
| 994 | , 0,
| 0-126 | ||||||||||||||||||||||||
| 995 | s->s3->server_random, 32,
| 0-126 | ||||||||||||||||||||||||
| 996 | ((void *)0)
| 0-126 | ||||||||||||||||||||||||
| 997 | , 0,
| 0-126 | ||||||||||||||||||||||||
| 998 | s->session->master_key, 48)
| 0-126 | ||||||||||||||||||||||||
| 999 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1000 | - | |||||||||||||||||||||||||
| 1001 | return executed 126 times by 2 tests: (48);return (48);Executed by:
executed 126 times by 2 tests: return (48);Executed by:
| 126 | ||||||||||||||||||||||||
| 1002 | } | - | ||||||||||||||||||||||||
| 1003 | - | |||||||||||||||||||||||||
| 1004 | int | - | ||||||||||||||||||||||||
| 1005 | tls1_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
| 0 | ||||||||||||||||||||||||
| 1022 | vallen += 2 + contextlen; | - | ||||||||||||||||||||||||
| 1023 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 1024 | - | |||||||||||||||||||||||||
| 1025 | val = malloc(vallen); | - | ||||||||||||||||||||||||
| 1026 | if (val ==
| 0 | ||||||||||||||||||||||||
| 1027 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 1028 | ) | - | ||||||||||||||||||||||||
| 1029 | goto never executed: err2;goto 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
| 0 | ||||||||||||||||||||||||
| 1039 | val[currentvalpos] = (contextlen >> 8) & 0xff; | - | ||||||||||||||||||||||||
| 1040 | currentvalpos++; | - | ||||||||||||||||||||||||
| 1041 | val[currentvalpos] = contextlen & 0xff; | - | ||||||||||||||||||||||||
| 1042 | currentvalpos++; | - | ||||||||||||||||||||||||
| 1043 | if ((
| 0 | ||||||||||||||||||||||||
| 1044 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 1045 | )
| 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",
| 0 | ||||||||||||||||||||||||
| 1056 | 15) == 0
| 0 | ||||||||||||||||||||||||
| 1057 | goto never executed: err1;goto err1;never executed: goto err1; | 0 | ||||||||||||||||||||||||
| 1058 | if (memcmp(val, "server finished",
| 0 | ||||||||||||||||||||||||
| 1059 | 15) == 0
| 0 | ||||||||||||||||||||||||
| 1060 | goto never executed: err1;goto err1;never executed: goto err1; | 0 | ||||||||||||||||||||||||
| 1061 | if (memcmp(val, "master secret",
| 0 | ||||||||||||||||||||||||
| 1062 | 13) == 0
| 0 | ||||||||||||||||||||||||
| 1063 | goto never executed: err1;goto err1;never executed: goto err1; | 0 | ||||||||||||||||||||||||
| 1064 | if (memcmp(val, "key expansion",
| 0 | ||||||||||||||||||||||||
| 1065 | 13) == 0
| 0 | ||||||||||||||||||||||||
| 1066 | goto never executed: err1;goto 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: ret;goto ret;never executed: goto ret; | 0 | ||||||||||||||||||||||||
| 1080 | err1: | - | ||||||||||||||||||||||||
| 1081 | SSL_error_internal(s, 367, __FILE__, 1150); | - | ||||||||||||||||||||||||
| 1082 | rv = 0; | - | ||||||||||||||||||||||||
| 1083 | goto never executed: ret;goto ret;never executed: goto ret; | 0 | ||||||||||||||||||||||||
| 1084 | err2: | - | ||||||||||||||||||||||||
| 1085 | SSL_error_internal(s, (1|64), __FILE__, 1154); | - | ||||||||||||||||||||||||
| 1086 | rv = 0; | - | ||||||||||||||||||||||||
| 1087 | ret: code before this statement never executed: ret: | 0 | ||||||||||||||||||||||||
| 1088 | free(val); | - | ||||||||||||||||||||||||
| 1089 | - | |||||||||||||||||||||||||
| 1090 | return never executed: (rv);return (rv);never executed: return (rv); | 0 | ||||||||||||||||||||||||
| 1091 | } | - | ||||||||||||||||||||||||
| 1092 | - | |||||||||||||||||||||||||
| 1093 | int | - | ||||||||||||||||||||||||
| 1094 | tls1_alert_code(int code) | - | ||||||||||||||||||||||||
| 1095 | { | - | ||||||||||||||||||||||||
| 1096 | switch (code) { | - | ||||||||||||||||||||||||
| 1097 | case executed 126 times by 2 tests: 0:case 0:Executed by:
executed 126 times by 2 tests: case 0:Executed by:
| 126 | ||||||||||||||||||||||||
| 1098 | return executed 126 times by 2 tests: (0);return (0);Executed by:
executed 126 times by 2 tests: return (0);Executed by:
| 126 | ||||||||||||||||||||||||
| 1099 | case never executed: 10:case 10:never executed: case 10: | 0 | ||||||||||||||||||||||||
| 1100 | return never executed: (10);return (10);never executed: return (10); | 0 | ||||||||||||||||||||||||
| 1101 | case never executed: 20:case 20:never executed: case 20: | 0 | ||||||||||||||||||||||||
| 1102 | return never executed: (20);return (20);never executed: return (20); | 0 | ||||||||||||||||||||||||
| 1103 | case never executed: 21:case 21:never executed: case 21: | 0 | ||||||||||||||||||||||||
| 1104 | return never executed: (21);return (21);never executed: return (21); | 0 | ||||||||||||||||||||||||
| 1105 | case never executed: 22:case 22:never executed: case 22: | 0 | ||||||||||||||||||||||||
| 1106 | return never executed: (22);return (22);never executed: return (22); | 0 | ||||||||||||||||||||||||
| 1107 | case never executed: 30:case 30:never executed: case 30: | 0 | ||||||||||||||||||||||||
| 1108 | return never executed: (30);return (30);never executed: return (30); | 0 | ||||||||||||||||||||||||
| 1109 | case never executed: 40:case 40:never executed: case 40: | 0 | ||||||||||||||||||||||||
| 1110 | return never executed: (40);return (40);never executed: return (40); | 0 | ||||||||||||||||||||||||
| 1111 | case never executed: 41:case 41:never executed: case 41: | 0 | ||||||||||||||||||||||||
| 1112 | return never executed: (-1);return (-1);never executed: return (-1); | 0 | ||||||||||||||||||||||||
| 1113 | case never executed: 42:case 42:never executed: case 42: | 0 | ||||||||||||||||||||||||
| 1114 | return never executed: (42);return (42);never executed: return (42); | 0 | ||||||||||||||||||||||||
| 1115 | case never executed: 43:case 43:never executed: case 43: | 0 | ||||||||||||||||||||||||
| 1116 | return never executed: (43);return (43);never executed: return (43); | 0 | ||||||||||||||||||||||||
| 1117 | case never executed: 44:case 44:never executed: case 44: | 0 | ||||||||||||||||||||||||
| 1118 | return never executed: (44);return (44);never executed: return (44); | 0 | ||||||||||||||||||||||||
| 1119 | case never executed: 45:case 45:never executed: case 45: | 0 | ||||||||||||||||||||||||
| 1120 | return never executed: (45);return (45);never executed: return (45); | 0 | ||||||||||||||||||||||||
| 1121 | case never executed: 46:case 46:never executed: case 46: | 0 | ||||||||||||||||||||||||
| 1122 | return never executed: (46);return (46);never executed: return (46); | 0 | ||||||||||||||||||||||||
| 1123 | case never executed: 47:case 47:never executed: case 47: | 0 | ||||||||||||||||||||||||
| 1124 | return never executed: (47);return (47);never executed: return (47); | 0 | ||||||||||||||||||||||||
| 1125 | case never executed: 48:case 48:never executed: case 48: | 0 | ||||||||||||||||||||||||
| 1126 | return never executed: (48);return (48);never executed: return (48); | 0 | ||||||||||||||||||||||||
| 1127 | case never executed: 49:case 49:never executed: case 49: | 0 | ||||||||||||||||||||||||
| 1128 | return never executed: (49);return (49);never executed: return (49); | 0 | ||||||||||||||||||||||||
| 1129 | case never executed: 50:case 50:never executed: case 50: | 0 | ||||||||||||||||||||||||
| 1130 | return never executed: (50);return (50);never executed: return (50); | 0 | ||||||||||||||||||||||||
| 1131 | case never executed: 51:case 51:never executed: case 51: | 0 | ||||||||||||||||||||||||
| 1132 | return never executed: (51);return (51);never executed: return (51); | 0 | ||||||||||||||||||||||||
| 1133 | case never executed: 60:case 60:never executed: case 60: | 0 | ||||||||||||||||||||||||
| 1134 | return never executed: (60);return (60);never executed: return (60); | 0 | ||||||||||||||||||||||||
| 1135 | case never executed: 70:case 70:never executed: case 70: | 0 | ||||||||||||||||||||||||
| 1136 | return never executed: (70);return (70);never executed: return (70); | 0 | ||||||||||||||||||||||||
| 1137 | case never executed: 71:case 71:never executed: case 71: | 0 | ||||||||||||||||||||||||
| 1138 | return never executed: (71);return (71);never executed: return (71); | 0 | ||||||||||||||||||||||||
| 1139 | case never executed: 80:case 80:never executed: case 80: | 0 | ||||||||||||||||||||||||
| 1140 | return never executed: (80);return (80);never executed: return (80); | 0 | ||||||||||||||||||||||||
| 1141 | case never executed: 86:case 86:never executed: case 86: | 0 | ||||||||||||||||||||||||
| 1142 | return never executed: (86);return(86);never executed: return(86); | 0 | ||||||||||||||||||||||||
| 1143 | case never executed: 90:case 90:never executed: case 90: | 0 | ||||||||||||||||||||||||
| 1144 | return never executed: (90);return (90);never executed: return (90); | 0 | ||||||||||||||||||||||||
| 1145 | case never executed: 100:case 100:never executed: case 100: | 0 | ||||||||||||||||||||||||
| 1146 | return never executed: (100);return (100);never executed: return (100); | 0 | ||||||||||||||||||||||||
| 1147 | case never executed: 110:case 110:never executed: case 110: | 0 | ||||||||||||||||||||||||
| 1148 | return never executed: (110);return (110);never executed: return (110); | 0 | ||||||||||||||||||||||||
| 1149 | case never executed: 111:case 111:never executed: case 111: | 0 | ||||||||||||||||||||||||
| 1150 | return never executed: (111);return (111);never executed: return (111); | 0 | ||||||||||||||||||||||||
| 1151 | case never executed: 112:case 112:never executed: case 112: | 0 | ||||||||||||||||||||||||
| 1152 | return never executed: (112);return (112);never executed: return (112); | 0 | ||||||||||||||||||||||||
| 1153 | case never executed: 113:case 113:never executed: case 113: | 0 | ||||||||||||||||||||||||
| 1154 | return never executed: (113);return (113);never executed: return (113); | 0 | ||||||||||||||||||||||||
| 1155 | case never executed: 114:case 114:never executed: case 114: | 0 | ||||||||||||||||||||||||
| 1156 | return never executed: (114);return (114);never executed: return (114); | 0 | ||||||||||||||||||||||||
| 1157 | case never executed: 115:case 115:never executed: case 115: | 0 | ||||||||||||||||||||||||
| 1158 | return never executed: (115);return (115);never executed: return (115); | 0 | ||||||||||||||||||||||||
| 1159 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 1160 | return never executed: (-1);return (-1);never executed: return (-1); | 0 | ||||||||||||||||||||||||
| 1161 | } | - | ||||||||||||||||||||||||
| 1162 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |