| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/t1_lib.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||
| 7 | static int tls_decrypt_ticket(SSL *s, const unsigned char *tick, int ticklen, | - | ||||||||||||||||||||||||
| 8 | const unsigned char *sess_id, int sesslen, | - | ||||||||||||||||||||||||
| 9 | SSL_SESSION **psess); | - | ||||||||||||||||||||||||
| 10 | - | |||||||||||||||||||||||||
| 11 | SSL3_ENC_METHOD TLSv1_enc_data = { | - | ||||||||||||||||||||||||
| 12 | .enc = tls1_enc, | - | ||||||||||||||||||||||||
| 13 | .enc_flags = 0, | - | ||||||||||||||||||||||||
| 14 | }; | - | ||||||||||||||||||||||||
| 15 | - | |||||||||||||||||||||||||
| 16 | SSL3_ENC_METHOD TLSv1_1_enc_data = { | - | ||||||||||||||||||||||||
| 17 | .enc = tls1_enc, | - | ||||||||||||||||||||||||
| 18 | .enc_flags = (1 << 0), | - | ||||||||||||||||||||||||
| 19 | }; | - | ||||||||||||||||||||||||
| 20 | - | |||||||||||||||||||||||||
| 21 | SSL3_ENC_METHOD TLSv1_2_enc_data = { | - | ||||||||||||||||||||||||
| 22 | .enc = tls1_enc, | - | ||||||||||||||||||||||||
| 23 | .enc_flags = (1 << 0)|(1 << 1)| | - | ||||||||||||||||||||||||
| 24 | (1 << 2)|(1 << 4), | - | ||||||||||||||||||||||||
| 25 | }; | - | ||||||||||||||||||||||||
| 26 | - | |||||||||||||||||||||||||
| 27 | long | - | ||||||||||||||||||||||||
| 28 | tls1_default_timeout(void) | - | ||||||||||||||||||||||||
| 29 | { | - | ||||||||||||||||||||||||
| 30 | - | |||||||||||||||||||||||||
| 31 | - | |||||||||||||||||||||||||
| 32 | return executed 181 times by 13 tests: (60 * 60 * 2);return (60 * 60 * 2);Executed by:
executed 181 times by 13 tests: return (60 * 60 * 2);Executed by:
| 181 | ||||||||||||||||||||||||
| 33 | } | - | ||||||||||||||||||||||||
| 34 | - | |||||||||||||||||||||||||
| 35 | int | - | ||||||||||||||||||||||||
| 36 | tls1_new(SSL *s) | - | ||||||||||||||||||||||||
| 37 | { | - | ||||||||||||||||||||||||
| 38 | if (!ssl3_new(s)
| 0-169 | ||||||||||||||||||||||||
| 39 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 40 | s->method->internal->ssl_clear(s); | - | ||||||||||||||||||||||||
| 41 | return executed 169 times by 11 tests: (1);return (1);Executed by:
executed 169 times by 11 tests: return (1);Executed by:
| 169 | ||||||||||||||||||||||||
| 42 | } | - | ||||||||||||||||||||||||
| 43 | - | |||||||||||||||||||||||||
| 44 | void | - | ||||||||||||||||||||||||
| 45 | tls1_free(SSL *s) | - | ||||||||||||||||||||||||
| 46 | { | - | ||||||||||||||||||||||||
| 47 | if (s ==
| 0-163 | ||||||||||||||||||||||||
| 48 | ((void *)0)
| 0-163 | ||||||||||||||||||||||||
| 49 | ) | - | ||||||||||||||||||||||||
| 50 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 51 | - | |||||||||||||||||||||||||
| 52 | free(s->internal->tlsext_session_ticket); | - | ||||||||||||||||||||||||
| 53 | ssl3_free(s); | - | ||||||||||||||||||||||||
| 54 | } executed 163 times by 11 tests: end of blockExecuted by:
| 163 | ||||||||||||||||||||||||
| 55 | - | |||||||||||||||||||||||||
| 56 | void | - | ||||||||||||||||||||||||
| 57 | tls1_clear(SSL *s) | - | ||||||||||||||||||||||||
| 58 | { | - | ||||||||||||||||||||||||
| 59 | ssl3_clear(s); | - | ||||||||||||||||||||||||
| 60 | s->version = s->method->internal->version; | - | ||||||||||||||||||||||||
| 61 | } executed 623 times by 11 tests: end of blockExecuted by:
| 623 | ||||||||||||||||||||||||
| 62 | - | |||||||||||||||||||||||||
| 63 | static int nid_list[] = { | - | ||||||||||||||||||||||||
| 64 | 721, | - | ||||||||||||||||||||||||
| 65 | 722, | - | ||||||||||||||||||||||||
| 66 | 723, | - | ||||||||||||||||||||||||
| 67 | 724, | - | ||||||||||||||||||||||||
| 68 | 725, | - | ||||||||||||||||||||||||
| 69 | 726, | - | ||||||||||||||||||||||||
| 70 | 727, | - | ||||||||||||||||||||||||
| 71 | 728, | - | ||||||||||||||||||||||||
| 72 | 729, | - | ||||||||||||||||||||||||
| 73 | 730, | - | ||||||||||||||||||||||||
| 74 | 731, | - | ||||||||||||||||||||||||
| 75 | 732, | - | ||||||||||||||||||||||||
| 76 | 733, | - | ||||||||||||||||||||||||
| 77 | 734, | - | ||||||||||||||||||||||||
| 78 | 708, | - | ||||||||||||||||||||||||
| 79 | 709, | - | ||||||||||||||||||||||||
| 80 | 710, | - | ||||||||||||||||||||||||
| 81 | 711, | - | ||||||||||||||||||||||||
| 82 | 409, | - | ||||||||||||||||||||||||
| 83 | 712, | - | ||||||||||||||||||||||||
| 84 | 713, | - | ||||||||||||||||||||||||
| 85 | 714, | - | ||||||||||||||||||||||||
| 86 | 415, | - | ||||||||||||||||||||||||
| 87 | 715, | - | ||||||||||||||||||||||||
| 88 | 716, | - | ||||||||||||||||||||||||
| 89 | 928, | - | ||||||||||||||||||||||||
| 90 | 932, | - | ||||||||||||||||||||||||
| 91 | 934, | - | ||||||||||||||||||||||||
| 92 | 950, | - | ||||||||||||||||||||||||
| 93 | }; | - | ||||||||||||||||||||||||
| 94 | static const uint8_t ecformats_default[] = { | - | ||||||||||||||||||||||||
| 95 | 0, | - | ||||||||||||||||||||||||
| 96 | }; | - | ||||||||||||||||||||||||
| 97 | static const uint16_t eccurves_default[] = { | - | ||||||||||||||||||||||||
| 98 | 29, | - | ||||||||||||||||||||||||
| 99 | 23, | - | ||||||||||||||||||||||||
| 100 | 24, | - | ||||||||||||||||||||||||
| 101 | }; | - | ||||||||||||||||||||||||
| 102 | - | |||||||||||||||||||||||||
| 103 | int | - | ||||||||||||||||||||||||
| 104 | tls1_ec_curve_id2nid(const uint16_t curve_id) | - | ||||||||||||||||||||||||
| 105 | { | - | ||||||||||||||||||||||||
| 106 | - | |||||||||||||||||||||||||
| 107 | if ((
| 0-84 | ||||||||||||||||||||||||
| 108 | ((
| 0-84 | ||||||||||||||||||||||||
| 109 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 110 | return executed 84 times by 2 tests: nid_list[curve_id - 1];return nid_list[curve_id - 1];Executed by:
executed 84 times by 2 tests: return nid_list[curve_id - 1];Executed by:
| 84 | ||||||||||||||||||||||||
| 111 | } | - | ||||||||||||||||||||||||
| 112 | - | |||||||||||||||||||||||||
| 113 | uint16_t | - | ||||||||||||||||||||||||
| 114 | tls1_ec_nid2curve_id(const int nid) | - | ||||||||||||||||||||||||
| 115 | { | - | ||||||||||||||||||||||||
| 116 | - | |||||||||||||||||||||||||
| 117 | switch (nid) { | - | ||||||||||||||||||||||||
| 118 | case never executed: 721:case 721:never executed: case 721: | 0 | ||||||||||||||||||||||||
| 119 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 120 | case never executed: 722:case 722:never executed: case 722: | 0 | ||||||||||||||||||||||||
| 121 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 122 | case never executed: 723:case 723:never executed: case 723: | 0 | ||||||||||||||||||||||||
| 123 | return never executed: 3;return 3;never executed: return 3; | 0 | ||||||||||||||||||||||||
| 124 | case never executed: 724:case 724:never executed: case 724: | 0 | ||||||||||||||||||||||||
| 125 | return never executed: 4;return 4;never executed: return 4; | 0 | ||||||||||||||||||||||||
| 126 | case never executed: 725:case 725:never executed: case 725: | 0 | ||||||||||||||||||||||||
| 127 | return never executed: 5;return 5;never executed: return 5; | 0 | ||||||||||||||||||||||||
| 128 | case never executed: 726:case 726:never executed: case 726: | 0 | ||||||||||||||||||||||||
| 129 | return never executed: 6;return 6;never executed: return 6; | 0 | ||||||||||||||||||||||||
| 130 | case never executed: 727:case 727:never executed: case 727: | 0 | ||||||||||||||||||||||||
| 131 | return never executed: 7;return 7;never executed: return 7; | 0 | ||||||||||||||||||||||||
| 132 | case never executed: 728:case 728:never executed: case 728: | 0 | ||||||||||||||||||||||||
| 133 | return never executed: 8;return 8;never executed: return 8; | 0 | ||||||||||||||||||||||||
| 134 | case never executed: 729:case 729:never executed: case 729: | 0 | ||||||||||||||||||||||||
| 135 | return never executed: 9;return 9;never executed: return 9; | 0 | ||||||||||||||||||||||||
| 136 | case never executed: 730:case 730:never executed: case 730: | 0 | ||||||||||||||||||||||||
| 137 | return never executed: 10;return 10;never executed: return 10; | 0 | ||||||||||||||||||||||||
| 138 | case never executed: 731:case 731:never executed: case 731: | 0 | ||||||||||||||||||||||||
| 139 | return never executed: 11;return 11;never executed: return 11; | 0 | ||||||||||||||||||||||||
| 140 | case never executed: 732:case 732:never executed: case 732: | 0 | ||||||||||||||||||||||||
| 141 | return never executed: 12;return 12;never executed: return 12; | 0 | ||||||||||||||||||||||||
| 142 | case never executed: 733:case 733:never executed: case 733: | 0 | ||||||||||||||||||||||||
| 143 | return never executed: 13;return 13;never executed: return 13; | 0 | ||||||||||||||||||||||||
| 144 | case never executed: 734:case 734:never executed: case 734: | 0 | ||||||||||||||||||||||||
| 145 | return never executed: 14;return 14;never executed: return 14; | 0 | ||||||||||||||||||||||||
| 146 | case never executed: 708:case 708:never executed: case 708: | 0 | ||||||||||||||||||||||||
| 147 | return never executed: 15;return 15;never executed: return 15; | 0 | ||||||||||||||||||||||||
| 148 | case never executed: 709:case 709:never executed: case 709: | 0 | ||||||||||||||||||||||||
| 149 | return never executed: 16;return 16;never executed: return 16; | 0 | ||||||||||||||||||||||||
| 150 | case never executed: 710:case 710:never executed: case 710: | 0 | ||||||||||||||||||||||||
| 151 | return never executed: 17;return 17;never executed: return 17; | 0 | ||||||||||||||||||||||||
| 152 | case never executed: 711:case 711:never executed: case 711: | 0 | ||||||||||||||||||||||||
| 153 | return never executed: 18;return 18;never executed: return 18; | 0 | ||||||||||||||||||||||||
| 154 | case executed 1 time by 1 test: 409:case 409:Executed by:
executed 1 time by 1 test: case 409:Executed by:
| 1 | ||||||||||||||||||||||||
| 155 | return executed 1 time by 1 test: 19;return 19;Executed by:
executed 1 time by 1 test: return 19;Executed by:
| 1 | ||||||||||||||||||||||||
| 156 | case never executed: 712:case 712:never executed: case 712: | 0 | ||||||||||||||||||||||||
| 157 | return never executed: 20;return 20;never executed: return 20; | 0 | ||||||||||||||||||||||||
| 158 | case executed 1 time by 1 test: 713:case 713:Executed by:
executed 1 time by 1 test: case 713:Executed by:
| 1 | ||||||||||||||||||||||||
| 159 | return executed 1 time by 1 test: 21;return 21;Executed by:
executed 1 time by 1 test: return 21;Executed by:
| 1 | ||||||||||||||||||||||||
| 160 | case never executed: 714:case 714:never executed: case 714: | 0 | ||||||||||||||||||||||||
| 161 | return never executed: 22;return 22;never executed: return 22; | 0 | ||||||||||||||||||||||||
| 162 | case executed 80 times by 2 tests: 415:case 415:Executed by:
executed 80 times by 2 tests: case 415:Executed by:
| 80 | ||||||||||||||||||||||||
| 163 | return executed 80 times by 2 tests: 23;return 23;Executed by:
executed 80 times by 2 tests: return 23;Executed by:
| 80 | ||||||||||||||||||||||||
| 164 | case executed 9 times by 2 tests: 715:case 715:Executed by:
executed 9 times by 2 tests: case 715:Executed by:
| 9 | ||||||||||||||||||||||||
| 165 | return executed 9 times by 2 tests: 24;return 24;Executed by:
executed 9 times by 2 tests: return 24;Executed by:
| 9 | ||||||||||||||||||||||||
| 166 | case never executed: 716:case 716:never executed: case 716: | 0 | ||||||||||||||||||||||||
| 167 | return never executed: 25;return 25;never executed: return 25; | 0 | ||||||||||||||||||||||||
| 168 | case never executed: 928:case 928:never executed: case 928: | 0 | ||||||||||||||||||||||||
| 169 | return never executed: 26;return 26;never executed: return 26; | 0 | ||||||||||||||||||||||||
| 170 | case never executed: 932:case 932:never executed: case 932: | 0 | ||||||||||||||||||||||||
| 171 | return never executed: 27;return 27;never executed: return 27; | 0 | ||||||||||||||||||||||||
| 172 | case never executed: 934:case 934:never executed: case 934: | 0 | ||||||||||||||||||||||||
| 173 | return never executed: 28;return 28;never executed: return 28; | 0 | ||||||||||||||||||||||||
| 174 | case executed 13 times by 2 tests: 950:case 950:Executed by:
executed 13 times by 2 tests: case 950:Executed by:
| 13 | ||||||||||||||||||||||||
| 175 | return executed 13 times by 2 tests: 29;return 29;Executed by:
executed 13 times by 2 tests: return 29;Executed by:
| 13 | ||||||||||||||||||||||||
| 176 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 177 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 178 | } | - | ||||||||||||||||||||||||
| 179 | } | - | ||||||||||||||||||||||||
| 180 | - | |||||||||||||||||||||||||
| 181 | - | |||||||||||||||||||||||||
| 182 | - | |||||||||||||||||||||||||
| 183 | - | |||||||||||||||||||||||||
| 184 | - | |||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||
| 186 | void | - | ||||||||||||||||||||||||
| 187 | tls1_get_formatlist(SSL *s, int client_formats, const uint8_t **pformats, | - | ||||||||||||||||||||||||
| 188 | size_t *pformatslen) | - | ||||||||||||||||||||||||
| 189 | { | - | ||||||||||||||||||||||||
| 190 | if (client_formats != 0
| 0-72 | ||||||||||||||||||||||||
| 191 | *pformats = (s->session->internal)->tlsext_ecpointformatlist; | - | ||||||||||||||||||||||||
| 192 | *pformatslen = (s->session->internal)->tlsext_ecpointformatlist_length; | - | ||||||||||||||||||||||||
| 193 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 194 | } | - | ||||||||||||||||||||||||
| 195 | - | |||||||||||||||||||||||||
| 196 | *pformats = s->internal->tlsext_ecpointformatlist; | - | ||||||||||||||||||||||||
| 197 | *pformatslen = s->internal->tlsext_ecpointformatlist_length; | - | ||||||||||||||||||||||||
| 198 | if (*
| 2-70 | ||||||||||||||||||||||||
| 199 | ((void *)0)
| 2-70 | ||||||||||||||||||||||||
| 200 | ) { | - | ||||||||||||||||||||||||
| 201 | *pformats = ecformats_default; | - | ||||||||||||||||||||||||
| 202 | *pformatslen = sizeof(ecformats_default); | - | ||||||||||||||||||||||||
| 203 | } executed 70 times by 4 tests: end of blockExecuted by:
| 70 | ||||||||||||||||||||||||
| 204 | } executed 72 times by 4 tests: end of blockExecuted by:
| 72 | ||||||||||||||||||||||||
| 205 | - | |||||||||||||||||||||||||
| 206 | - | |||||||||||||||||||||||||
| 207 | - | |||||||||||||||||||||||||
| 208 | - | |||||||||||||||||||||||||
| 209 | - | |||||||||||||||||||||||||
| 210 | - | |||||||||||||||||||||||||
| 211 | void | - | ||||||||||||||||||||||||
| 212 | tls1_get_curvelist(SSL *s, int client_curves, const uint16_t **pcurves, | - | ||||||||||||||||||||||||
| 213 | size_t *pcurveslen) | - | ||||||||||||||||||||||||
| 214 | { | - | ||||||||||||||||||||||||
| 215 | if (client_curves != 0
| 60-129 | ||||||||||||||||||||||||
| 216 | *pcurves = (s->session->internal)->tlsext_supportedgroups; | - | ||||||||||||||||||||||||
| 217 | *pcurveslen = (s->session->internal)->tlsext_supportedgroups_length; | - | ||||||||||||||||||||||||
| 218 | return; executed 60 times by 2 tests: return;Executed by:
| 60 | ||||||||||||||||||||||||
| 219 | } | - | ||||||||||||||||||||||||
| 220 | - | |||||||||||||||||||||||||
| 221 | *pcurves = s->internal->tlsext_supportedgroups; | - | ||||||||||||||||||||||||
| 222 | *pcurveslen = s->internal->tlsext_supportedgroups_length; | - | ||||||||||||||||||||||||
| 223 | if (*
| 62-67 | ||||||||||||||||||||||||
| 224 | ((void *)0)
| 62-67 | ||||||||||||||||||||||||
| 225 | ) { | - | ||||||||||||||||||||||||
| 226 | *pcurves = eccurves_default; | - | ||||||||||||||||||||||||
| 227 | *pcurveslen = sizeof(eccurves_default) / 2; | - | ||||||||||||||||||||||||
| 228 | } executed 62 times by 3 tests: end of blockExecuted by:
| 62 | ||||||||||||||||||||||||
| 229 | } executed 129 times by 4 tests: end of blockExecuted by:
| 129 | ||||||||||||||||||||||||
| 230 | - | |||||||||||||||||||||||||
| 231 | int | - | ||||||||||||||||||||||||
| 232 | tls1_set_groups(uint16_t **out_group_ids, size_t *out_group_ids_len, | - | ||||||||||||||||||||||||
| 233 | const int *groups, size_t ngroups) | - | ||||||||||||||||||||||||
| 234 | { | - | ||||||||||||||||||||||||
| 235 | uint16_t *group_ids; | - | ||||||||||||||||||||||||
| 236 | size_t i; | - | ||||||||||||||||||||||||
| 237 | - | |||||||||||||||||||||||||
| 238 | group_ids = calloc(ngroups, sizeof(uint16_t)); | - | ||||||||||||||||||||||||
| 239 | if (group_ids ==
| 0-57 | ||||||||||||||||||||||||
| 240 | ((void *)0)
| 0-57 | ||||||||||||||||||||||||
| 241 | ) | - | ||||||||||||||||||||||||
| 242 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 243 | - | |||||||||||||||||||||||||
| 244 | for (i = 0; i < ngroups
| 57-73 | ||||||||||||||||||||||||
| 245 | group_ids[i] = tls1_ec_nid2curve_id(groups[i]); | - | ||||||||||||||||||||||||
| 246 | if (group_ids[i] == 0
| 0-73 | ||||||||||||||||||||||||
| 247 | free(group_ids); | - | ||||||||||||||||||||||||
| 248 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 249 | } | - | ||||||||||||||||||||||||
| 250 | } executed 73 times by 2 tests: end of blockExecuted by:
| 73 | ||||||||||||||||||||||||
| 251 | - | |||||||||||||||||||||||||
| 252 | free(*out_group_ids); | - | ||||||||||||||||||||||||
| 253 | *out_group_ids = group_ids; | - | ||||||||||||||||||||||||
| 254 | *out_group_ids_len = ngroups; | - | ||||||||||||||||||||||||
| 255 | - | |||||||||||||||||||||||||
| 256 | return executed 57 times by 2 tests: 1;return 1;Executed by:
executed 57 times by 2 tests: return 1;Executed by:
| 57 | ||||||||||||||||||||||||
| 257 | } | - | ||||||||||||||||||||||||
| 258 | - | |||||||||||||||||||||||||
| 259 | int | - | ||||||||||||||||||||||||
| 260 | tls1_set_groups_list(uint16_t **out_group_ids, size_t *out_group_ids_len, | - | ||||||||||||||||||||||||
| 261 | const char *groups) | - | ||||||||||||||||||||||||
| 262 | { | - | ||||||||||||||||||||||||
| 263 | uint16_t *new_group_ids, *group_ids = | - | ||||||||||||||||||||||||
| 264 | ((void *)0) | - | ||||||||||||||||||||||||
| 265 | ; | - | ||||||||||||||||||||||||
| 266 | size_t ngroups = 0; | - | ||||||||||||||||||||||||
| 267 | char *gs, *p, *q; | - | ||||||||||||||||||||||||
| 268 | int nid; | - | ||||||||||||||||||||||||
| 269 | - | |||||||||||||||||||||||||
| 270 | if ((
| 0 | ||||||||||||||||||||||||
| 271 | (__extension__ (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
| 272 | groups
| 0 | ||||||||||||||||||||||||
| 273 | )
| 0 | ||||||||||||||||||||||||
| 274 | groups
| 0 | ||||||||||||||||||||||||
| 275 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
| 276 | groups
| 0 | ||||||||||||||||||||||||
| 277 | ) == 1)
| 0 | ||||||||||||||||||||||||
| 278 | groups
| 0 | ||||||||||||||||||||||||
| 279 | ))[0] == '\0'
| 0 | ||||||||||||||||||||||||
| 280 | groups
| 0 | ||||||||||||||||||||||||
| 281 | ) + 1; char *__retval = (char *) malloc (__len); if (__retval != ((void *)0)
never executed: __retval = (char *) memcpy (__retval, groups , __len); | 0 | ||||||||||||||||||||||||
| 282 | groups
never executed: __retval = (char *) memcpy (__retval, groups , __len); | 0 | ||||||||||||||||||||||||
| 283 | , __len); __retval; })) : __strdup (
| 0 | ||||||||||||||||||||||||
| 284 | groups
| 0 | ||||||||||||||||||||||||
| 285 | )))
| 0 | ||||||||||||||||||||||||
| 286 | ) ==
| 0 | ||||||||||||||||||||||||
| 287 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 288 | ) | - | ||||||||||||||||||||||||
| 289 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 290 | - | |||||||||||||||||||||||||
| 291 | q = gs; | - | ||||||||||||||||||||||||
| 292 | while ((
| 0 | ||||||||||||||||||||||||
| 293 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
| 294 | ":"
| 0 | ||||||||||||||||||||||||
| 295 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
| 296 | ":"
| 0 | ||||||||||||||||||||||||
| 297 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
| 298 | ":"
| 0 | ||||||||||||||||||||||||
| 299 | ) == 1) && (__r0 = ((const char *) (
| 0 | ||||||||||||||||||||||||
| 300 | ":"
| 0 | ||||||||||||||||||||||||
| 301 | ))[0], ((const char *) (
| 0 | ||||||||||||||||||||||||
| 302 | ":"
| 0 | ||||||||||||||||||||||||
| 303 | ))[0] != '\0') ? ((__r1 = ((const char *) (
| 0 | ||||||||||||||||||||||||
| 304 | ":"
| 0 | ||||||||||||||||||||||||
| 305 | ))[1], ((const char *) (
| 0 | ||||||||||||||||||||||||
| 306 | ":"
| 0 | ||||||||||||||||||||||||
| 307 | ))[1] == '\0') ? __strsep_1c (
| 0 | ||||||||||||||||||||||||
| 308 | &q
| 0 | ||||||||||||||||||||||||
| 309 | , __r0) : ((__r2 = ((const char *) (
| 0 | ||||||||||||||||||||||||
| 310 | ":"
| 0 | ||||||||||||||||||||||||
| 311 | ))[2], __r2 == '\0') ? __strsep_2c (
| 0 | ||||||||||||||||||||||||
| 312 | &q
| 0 | ||||||||||||||||||||||||
| 313 | , __r0, __r1) : (((const char *) (
| 0 | ||||||||||||||||||||||||
| 314 | ":"
| 0 | ||||||||||||||||||||||||
| 315 | ))[3] == '\0' ? __strsep_3c (
| 0 | ||||||||||||||||||||||||
| 316 | &q
| 0 | ||||||||||||||||||||||||
| 317 | , __r0, __r1, __r2) : __strsep_g (
| 0 | ||||||||||||||||||||||||
| 318 | &q
| 0 | ||||||||||||||||||||||||
| 319 | ,
| 0 | ||||||||||||||||||||||||
| 320 | ":"
| 0 | ||||||||||||||||||||||||
| 321 | )))) : __strsep_g (
| 0 | ||||||||||||||||||||||||
| 322 | &q
| 0 | ||||||||||||||||||||||||
| 323 | ,
| 0 | ||||||||||||||||||||||||
| 324 | ":"
| 0 | ||||||||||||||||||||||||
| 325 | )); })
| 0 | ||||||||||||||||||||||||
| 326 | ) !=
| 0 | ||||||||||||||||||||||||
| 327 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 328 | ) { | - | ||||||||||||||||||||||||
| 329 | nid = OBJ_sn2nid(p); | - | ||||||||||||||||||||||||
| 330 | if (nid == 0
| 0 | ||||||||||||||||||||||||
| 331 | nid = OBJ_ln2nid(p); never executed: nid = OBJ_ln2nid(p); | 0 | ||||||||||||||||||||||||
| 332 | if (nid == 0
| 0 | ||||||||||||||||||||||||
| 333 | nid = EC_curve_nist2nid(p); never executed: nid = EC_curve_nist2nid(p); | 0 | ||||||||||||||||||||||||
| 334 | if (nid == 0
| 0 | ||||||||||||||||||||||||
| 335 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 336 | - | |||||||||||||||||||||||||
| 337 | if ((
| 0 | ||||||||||||||||||||||||
| 338 | sizeof(uint16_t))) ==
| 0 | ||||||||||||||||||||||||
| 339 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 340 | ) | - | ||||||||||||||||||||||||
| 341 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 342 | group_ids = new_group_ids; | - | ||||||||||||||||||||||||
| 343 | - | |||||||||||||||||||||||||
| 344 | group_ids[ngroups] = tls1_ec_nid2curve_id(nid); | - | ||||||||||||||||||||||||
| 345 | if (group_ids[ngroups] == 0
| 0 | ||||||||||||||||||||||||
| 346 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 347 | - | |||||||||||||||||||||||||
| 348 | ngroups++; | - | ||||||||||||||||||||||||
| 349 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 350 | - | |||||||||||||||||||||||||
| 351 | free(gs); | - | ||||||||||||||||||||||||
| 352 | free(*out_group_ids); | - | ||||||||||||||||||||||||
| 353 | *out_group_ids = group_ids; | - | ||||||||||||||||||||||||
| 354 | *out_group_ids_len = ngroups; | - | ||||||||||||||||||||||||
| 355 | - | |||||||||||||||||||||||||
| 356 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 357 | - | |||||||||||||||||||||||||
| 358 | err: | - | ||||||||||||||||||||||||
| 359 | free(gs); | - | ||||||||||||||||||||||||
| 360 | free(group_ids); | - | ||||||||||||||||||||||||
| 361 | - | |||||||||||||||||||||||||
| 362 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 363 | } | - | ||||||||||||||||||||||||
| 364 | - | |||||||||||||||||||||||||
| 365 | - | |||||||||||||||||||||||||
| 366 | int | - | ||||||||||||||||||||||||
| 367 | tls1_check_curve(SSL *s, const uint16_t curve_id) | - | ||||||||||||||||||||||||
| 368 | { | - | ||||||||||||||||||||||||
| 369 | const uint16_t *curves; | - | ||||||||||||||||||||||||
| 370 | size_t curveslen, i; | - | ||||||||||||||||||||||||
| 371 | - | |||||||||||||||||||||||||
| 372 | tls1_get_curvelist(s, 0, &curves, &curveslen); | - | ||||||||||||||||||||||||
| 373 | - | |||||||||||||||||||||||||
| 374 | for (i = 0; i < curveslen
| 0-51 | ||||||||||||||||||||||||
| 375 | if (curves[i] == curve_id
| 23-28 | ||||||||||||||||||||||||
| 376 | return executed 28 times by 2 tests: (1);return (1);Executed by:
executed 28 times by 2 tests: return (1);Executed by:
| 28 | ||||||||||||||||||||||||
| 377 | } executed 23 times by 1 test: end of blockExecuted by:
| 23 | ||||||||||||||||||||||||
| 378 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 379 | } | - | ||||||||||||||||||||||||
| 380 | - | |||||||||||||||||||||||||
| 381 | int | - | ||||||||||||||||||||||||
| 382 | tls1_get_shared_curve(SSL *s) | - | ||||||||||||||||||||||||
| 383 | { | - | ||||||||||||||||||||||||
| 384 | size_t preflen, supplen, i, j; | - | ||||||||||||||||||||||||
| 385 | const uint16_t *pref, *supp; | - | ||||||||||||||||||||||||
| 386 | unsigned long server_pref; | - | ||||||||||||||||||||||||
| 387 | - | |||||||||||||||||||||||||
| 388 | - | |||||||||||||||||||||||||
| 389 | if (s->server == 0
| 0-60 | ||||||||||||||||||||||||
| 390 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 391 | - | |||||||||||||||||||||||||
| 392 | - | |||||||||||||||||||||||||
| 393 | server_pref = (s->internal->options & 0x00400000L); | - | ||||||||||||||||||||||||
| 394 | tls1_get_curvelist(s, (server_pref == 0), &pref, &preflen); | - | ||||||||||||||||||||||||
| 395 | tls1_get_curvelist(s, (server_pref != 0), &supp, &supplen); | - | ||||||||||||||||||||||||
| 396 | - | |||||||||||||||||||||||||
| 397 | for (i = 0; i < preflen
| 4-102 | ||||||||||||||||||||||||
| 398 | for (j = 0; j < supplen
| 46-102 | ||||||||||||||||||||||||
| 399 | if (pref[i] == supp[j]
| 46-56 | ||||||||||||||||||||||||
| 400 | return executed 56 times by 2 tests: (tls1_ec_curve_id2nid(pref[i]));return (tls1_ec_curve_id2nid(pref[i]));Executed by:
executed 56 times by 2 tests: return (tls1_ec_curve_id2nid(pref[i]));Executed by:
| 56 | ||||||||||||||||||||||||
| 401 | } executed 46 times by 1 test: end of blockExecuted by:
| 46 | ||||||||||||||||||||||||
| 402 | } executed 46 times by 1 test: end of blockExecuted by:
| 46 | ||||||||||||||||||||||||
| 403 | return executed 4 times by 1 test: (0);return (0);Executed by:
executed 4 times by 1 test: return (0);Executed by:
| 4 | ||||||||||||||||||||||||
| 404 | } | - | ||||||||||||||||||||||||
| 405 | - | |||||||||||||||||||||||||
| 406 | - | |||||||||||||||||||||||||
| 407 | static int | - | ||||||||||||||||||||||||
| 408 | tls1_set_ec_id(uint16_t *curve_id, uint8_t *comp_id, EC_KEY *ec) | - | ||||||||||||||||||||||||
| 409 | { | - | ||||||||||||||||||||||||
| 410 | const EC_GROUP *grp; | - | ||||||||||||||||||||||||
| 411 | const EC_METHOD *meth; | - | ||||||||||||||||||||||||
| 412 | int is_prime = 0; | - | ||||||||||||||||||||||||
| 413 | int nid, id; | - | ||||||||||||||||||||||||
| 414 | - | |||||||||||||||||||||||||
| 415 | if (ec ==
| 0 | ||||||||||||||||||||||||
| 416 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 417 | ) | - | ||||||||||||||||||||||||
| 418 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 419 | - | |||||||||||||||||||||||||
| 420 | - | |||||||||||||||||||||||||
| 421 | if ((
| 0 | ||||||||||||||||||||||||
| 422 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 423 | ) | - | ||||||||||||||||||||||||
| 424 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 425 | if ((
| 0 | ||||||||||||||||||||||||
| 426 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 427 | ) | - | ||||||||||||||||||||||||
| 428 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 429 | if (EC_METHOD_get_field_type(meth) == 406
| 0 | ||||||||||||||||||||||||
| 430 | is_prime = 1; never executed: is_prime = 1; | 0 | ||||||||||||||||||||||||
| 431 | - | |||||||||||||||||||||||||
| 432 | - | |||||||||||||||||||||||||
| 433 | nid = EC_GROUP_get_curve_name(grp); | - | ||||||||||||||||||||||||
| 434 | id = tls1_ec_nid2curve_id(nid); | - | ||||||||||||||||||||||||
| 435 | - | |||||||||||||||||||||||||
| 436 | - | |||||||||||||||||||||||||
| 437 | if (id != 0
| 0 | ||||||||||||||||||||||||
| 438 | * never executed: curve_id = id;*curve_id = id;never executed: *curve_id = id; | 0 | ||||||||||||||||||||||||
| 439 | else | - | ||||||||||||||||||||||||
| 440 | * never executed: curve_id = is_prime*curve_id = is_prime ? 0xff01 : 0xff02;
never executed: *curve_id = is_prime ? 0xff01 : 0xff02; | 0 | ||||||||||||||||||||||||
| 441 | - | |||||||||||||||||||||||||
| 442 | - | |||||||||||||||||||||||||
| 443 | if (comp_id !=
| 0 | ||||||||||||||||||||||||
| 444 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 445 | ) { | - | ||||||||||||||||||||||||
| 446 | if (EC_KEY_get0_public_key(ec) ==
| 0 | ||||||||||||||||||||||||
| 447 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 448 | ) | - | ||||||||||||||||||||||||
| 449 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 450 | - | |||||||||||||||||||||||||
| 451 | if (EC_KEY_get_conv_form(ec) == POINT_CONVERSION_COMPRESSED
| 0 | ||||||||||||||||||||||||
| 452 | *comp_id = is_prime
| 0 | ||||||||||||||||||||||||
| 453 | 1 : | - | ||||||||||||||||||||||||
| 454 | 2; | - | ||||||||||||||||||||||||
| 455 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 456 | *comp_id = 0; | - | ||||||||||||||||||||||||
| 457 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 458 | } | - | ||||||||||||||||||||||||
| 459 | return never executed: (1);return (1);never executed: return (1); | 0 | ||||||||||||||||||||||||
| 460 | } | - | ||||||||||||||||||||||||
| 461 | - | |||||||||||||||||||||||||
| 462 | - | |||||||||||||||||||||||||
| 463 | static int | - | ||||||||||||||||||||||||
| 464 | tls1_check_ec_key(SSL *s, const uint16_t *curve_id, const uint8_t *comp_id) | - | ||||||||||||||||||||||||
| 465 | { | - | ||||||||||||||||||||||||
| 466 | size_t curveslen, formatslen, i; | - | ||||||||||||||||||||||||
| 467 | const uint16_t *curves; | - | ||||||||||||||||||||||||
| 468 | const uint8_t *formats; | - | ||||||||||||||||||||||||
| 469 | - | |||||||||||||||||||||||||
| 470 | - | |||||||||||||||||||||||||
| 471 | - | |||||||||||||||||||||||||
| 472 | - | |||||||||||||||||||||||||
| 473 | - | |||||||||||||||||||||||||
| 474 | tls1_get_formatlist(s, 1, &formats, &formatslen); | - | ||||||||||||||||||||||||
| 475 | if (comp_id !=
| 0 | ||||||||||||||||||||||||
| 476 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 477 | && formats !=
| 0 | ||||||||||||||||||||||||
| 478 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 479 | ) { | - | ||||||||||||||||||||||||
| 480 | for (i = 0; i < formatslen
| 0 | ||||||||||||||||||||||||
| 481 | if (formats[i] == *comp_id
| 0 | ||||||||||||||||||||||||
| 482 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 483 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 484 | if (i == formatslen
| 0 | ||||||||||||||||||||||||
| 485 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 486 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 487 | - | |||||||||||||||||||||||||
| 488 | - | |||||||||||||||||||||||||
| 489 | - | |||||||||||||||||||||||||
| 490 | - | |||||||||||||||||||||||||
| 491 | tls1_get_curvelist(s, 1, &curves, &curveslen); | - | ||||||||||||||||||||||||
| 492 | if (curve_id !=
| 0 | ||||||||||||||||||||||||
| 493 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 494 | && curves !=
| 0 | ||||||||||||||||||||||||
| 495 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 496 | ) { | - | ||||||||||||||||||||||||
| 497 | for (i = 0; i < curveslen
| 0 | ||||||||||||||||||||||||
| 498 | if (curves[i] == *curve_id
| 0 | ||||||||||||||||||||||||
| 499 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 500 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 501 | if (i == curveslen
| 0 | ||||||||||||||||||||||||
| 502 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 503 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 504 | - | |||||||||||||||||||||||||
| 505 | return never executed: (1);return (1);never executed: return (1); | 0 | ||||||||||||||||||||||||
| 506 | } | - | ||||||||||||||||||||||||
| 507 | - | |||||||||||||||||||||||||
| 508 | - | |||||||||||||||||||||||||
| 509 | int | - | ||||||||||||||||||||||||
| 510 | tls1_check_ec_server_key(SSL *s) | - | ||||||||||||||||||||||||
| 511 | { | - | ||||||||||||||||||||||||
| 512 | CERT_PKEY *cpk = s->cert->pkeys + 3; | - | ||||||||||||||||||||||||
| 513 | uint16_t curve_id; | - | ||||||||||||||||||||||||
| 514 | uint8_t comp_id; | - | ||||||||||||||||||||||||
| 515 | EVP_PKEY *pkey; | - | ||||||||||||||||||||||||
| 516 | int rv; | - | ||||||||||||||||||||||||
| 517 | - | |||||||||||||||||||||||||
| 518 | if (cpk->x509 ==
| 0 | ||||||||||||||||||||||||
| 519 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 520 | || cpk->privatekey ==
| 0 | ||||||||||||||||||||||||
| 521 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 522 | ) | - | ||||||||||||||||||||||||
| 523 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 524 | if ((
| 0 | ||||||||||||||||||||||||
| 525 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 526 | ) | - | ||||||||||||||||||||||||
| 527 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 528 | rv = tls1_set_ec_id(&curve_id, &comp_id, pkey->pkey.ec); | - | ||||||||||||||||||||||||
| 529 | EVP_PKEY_free(pkey); | - | ||||||||||||||||||||||||
| 530 | if (rv != 1
| 0 | ||||||||||||||||||||||||
| 531 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 532 | - | |||||||||||||||||||||||||
| 533 | return never executed: tls1_check_ec_key(s, &curve_id, &comp_id);return tls1_check_ec_key(s, &curve_id, &comp_id);never executed: return tls1_check_ec_key(s, &curve_id, &comp_id); | 0 | ||||||||||||||||||||||||
| 534 | } | - | ||||||||||||||||||||||||
| 535 | - | |||||||||||||||||||||||||
| 536 | - | |||||||||||||||||||||||||
| 537 | int | - | ||||||||||||||||||||||||
| 538 | tls1_check_ec_tmp_key(SSL *s) | - | ||||||||||||||||||||||||
| 539 | { | - | ||||||||||||||||||||||||
| 540 | EC_KEY *ec = s->cert->ecdh_tmp; | - | ||||||||||||||||||||||||
| 541 | uint16_t curve_id; | - | ||||||||||||||||||||||||
| 542 | - | |||||||||||||||||||||||||
| 543 | - | |||||||||||||||||||||||||
| 544 | if (tls1_get_shared_curve(s) != 0
| 4-28 | ||||||||||||||||||||||||
| 545 | return executed 28 times by 2 tests: (1);return (1);Executed by:
executed 28 times by 2 tests: return (1);Executed by:
| 28 | ||||||||||||||||||||||||
| 546 | - | |||||||||||||||||||||||||
| 547 | if (ec ==
| 0-4 | ||||||||||||||||||||||||
| 548 | ((void *)0)
| 0-4 | ||||||||||||||||||||||||
| 549 | ) | - | ||||||||||||||||||||||||
| 550 | return executed 4 times by 1 test: (0);return (0);Executed by:
executed 4 times by 1 test: return (0);Executed by:
| 4 | ||||||||||||||||||||||||
| 551 | - | |||||||||||||||||||||||||
| 552 | if (tls1_set_ec_id(&curve_id,
| 0 | ||||||||||||||||||||||||
| 553 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 554 | , ec) != 1
| 0 | ||||||||||||||||||||||||
| 555 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 556 | - | |||||||||||||||||||||||||
| 557 | return never executed: tls1_check_ec_key(s, &curve_id, return tls1_check_ec_key(s, &curve_id, ((void *)0) );never executed: return tls1_check_ec_key(s, &curve_id, ((void *)0) ); | 0 | ||||||||||||||||||||||||
| 558 | ((void *)0) never executed: return tls1_check_ec_key(s, &curve_id, ((void *)0) ); | 0 | ||||||||||||||||||||||||
| 559 | ); never executed: return tls1_check_ec_key(s, &curve_id, ((void *)0) ); | 0 | ||||||||||||||||||||||||
| 560 | } | - | ||||||||||||||||||||||||
| 561 | - | |||||||||||||||||||||||||
| 562 | - | |||||||||||||||||||||||||
| 563 | - | |||||||||||||||||||||||||
| 564 | - | |||||||||||||||||||||||||
| 565 | - | |||||||||||||||||||||||||
| 566 | - | |||||||||||||||||||||||||
| 567 | static unsigned char tls12_sigalgs[] = { | - | ||||||||||||||||||||||||
| 568 | 6, 1, | - | ||||||||||||||||||||||||
| 569 | 6, 3, | - | ||||||||||||||||||||||||
| 570 | - | |||||||||||||||||||||||||
| 571 | 239, 239, | - | ||||||||||||||||||||||||
| 572 | - | |||||||||||||||||||||||||
| 573 | - | |||||||||||||||||||||||||
| 574 | 5, 1, | - | ||||||||||||||||||||||||
| 575 | 5, 3, | - | ||||||||||||||||||||||||
| 576 | - | |||||||||||||||||||||||||
| 577 | 4, 1, | - | ||||||||||||||||||||||||
| 578 | 4, 3, | - | ||||||||||||||||||||||||
| 579 | - | |||||||||||||||||||||||||
| 580 | - | |||||||||||||||||||||||||
| 581 | 238, 238, | - | ||||||||||||||||||||||||
| 582 | 237, 237, | - | ||||||||||||||||||||||||
| 583 | - | |||||||||||||||||||||||||
| 584 | - | |||||||||||||||||||||||||
| 585 | 3, 1, | - | ||||||||||||||||||||||||
| 586 | 3, 3, | - | ||||||||||||||||||||||||
| 587 | - | |||||||||||||||||||||||||
| 588 | 2, 1, | - | ||||||||||||||||||||||||
| 589 | 2, 3, | - | ||||||||||||||||||||||||
| 590 | }; | - | ||||||||||||||||||||||||
| 591 | - | |||||||||||||||||||||||||
| 592 | void | - | ||||||||||||||||||||||||
| 593 | tls12_get_req_sig_algs(SSL *s, unsigned char **sigalgs, size_t *sigalgs_len) | - | ||||||||||||||||||||||||
| 594 | { | - | ||||||||||||||||||||||||
| 595 | *sigalgs = tls12_sigalgs; | - | ||||||||||||||||||||||||
| 596 | *sigalgs_len = sizeof(tls12_sigalgs); | - | ||||||||||||||||||||||||
| 597 | } executed 45 times by 4 tests: end of blockExecuted by:
| 45 | ||||||||||||||||||||||||
| 598 | - | |||||||||||||||||||||||||
| 599 | int | - | ||||||||||||||||||||||||
| 600 | ssl_check_clienthello_tlsext_early(SSL *s) | - | ||||||||||||||||||||||||
| 601 | { | - | ||||||||||||||||||||||||
| 602 | int ret = 3; | - | ||||||||||||||||||||||||
| 603 | int al = 112; | - | ||||||||||||||||||||||||
| 604 | if (s->ctx !=
| 0-65 | ||||||||||||||||||||||||
| 605 | ((void *)0)
| 0-65 | ||||||||||||||||||||||||
| 606 | && s->ctx->internal->tlsext_servername_callback != 0
| 4-61 | ||||||||||||||||||||||||
| 607 | ret = s->ctx->internal->tlsext_servername_callback(s, &al, executed 4 times by 1 test: ret = s->ctx->internal->tlsext_servername_callback(s, &al, s->ctx->internal->tlsext_servername_arg);Executed by:
| 4 | ||||||||||||||||||||||||
| 608 | s->ctx->internal->tlsext_servername_arg); executed 4 times by 1 test: ret = s->ctx->internal->tlsext_servername_callback(s, &al, s->ctx->internal->tlsext_servername_arg);Executed by:
| 4 | ||||||||||||||||||||||||
| 609 | else if (s->initial_ctx !=
| 0-61 | ||||||||||||||||||||||||
| 610 | ((void *)0)
| 0-61 | ||||||||||||||||||||||||
| 611 | && s->initial_ctx->internal->tlsext_servername_callback != 0
| 0-61 | ||||||||||||||||||||||||
| 612 | ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, never executed: ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, s->initial_ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 613 | s->initial_ctx->internal->tlsext_servername_arg); never executed: ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, s->initial_ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 614 | - | |||||||||||||||||||||||||
| 615 | switch (ret) { | - | ||||||||||||||||||||||||
| 616 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 617 | ssl3_send_alert(s, 2, al); | - | ||||||||||||||||||||||||
| 618 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 619 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||||||||
| 620 | ssl3_send_alert(s, 1, al); | - | ||||||||||||||||||||||||
| 621 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 622 | case executed 61 times by 2 tests: 3:case 3:Executed by:
executed 61 times by 2 tests: case 3:Executed by:
| 61 | ||||||||||||||||||||||||
| 623 | s->internal->servername_done = 0; | - | ||||||||||||||||||||||||
| 624 | default executed 65 times by 3 tests: :default:Executed by:
executed 65 times by 3 tests: default:Executed by:
code before this statement executed 61 times by 2 tests: default:Executed by:
| 61-65 | ||||||||||||||||||||||||
| 625 | return executed 65 times by 3 tests: 1;return 1;Executed by:
executed 65 times by 3 tests: return 1;Executed by:
| 65 | ||||||||||||||||||||||||
| 626 | } | - | ||||||||||||||||||||||||
| 627 | } | - | ||||||||||||||||||||||||
| 628 | - | |||||||||||||||||||||||||
| 629 | int | - | ||||||||||||||||||||||||
| 630 | ssl_check_clienthello_tlsext_late(SSL *s) | - | ||||||||||||||||||||||||
| 631 | { | - | ||||||||||||||||||||||||
| 632 | int ret = 0; | - | ||||||||||||||||||||||||
| 633 | int al = 0; | - | ||||||||||||||||||||||||
| 634 | - | |||||||||||||||||||||||||
| 635 | - | |||||||||||||||||||||||||
| 636 | - | |||||||||||||||||||||||||
| 637 | - | |||||||||||||||||||||||||
| 638 | - | |||||||||||||||||||||||||
| 639 | - | |||||||||||||||||||||||||
| 640 | if ((
| 4-61 | ||||||||||||||||||||||||
| 641 | s->ctx
| 0-4 | ||||||||||||||||||||||||
| 642 | int r; | - | ||||||||||||||||||||||||
| 643 | CERT_PKEY *certpkey; | - | ||||||||||||||||||||||||
| 644 | certpkey = ssl_get_server_send_pkey(s); | - | ||||||||||||||||||||||||
| 645 | - | |||||||||||||||||||||||||
| 646 | if (certpkey ==
| 0-4 | ||||||||||||||||||||||||
| 647 | ((void *)0)
| 0-4 | ||||||||||||||||||||||||
| 648 | ) { | - | ||||||||||||||||||||||||
| 649 | s->internal->tlsext_status_expected = 0; | - | ||||||||||||||||||||||||
| 650 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 651 | } | - | ||||||||||||||||||||||||
| 652 | - | |||||||||||||||||||||||||
| 653 | - | |||||||||||||||||||||||||
| 654 | - | |||||||||||||||||||||||||
| 655 | s->cert->key = certpkey; | - | ||||||||||||||||||||||||
| 656 | r = s->ctx->internal->tlsext_status_cb(s, | - | ||||||||||||||||||||||||
| 657 | s->ctx->internal->tlsext_status_arg); | - | ||||||||||||||||||||||||
| 658 | switch (r) { | - | ||||||||||||||||||||||||
| 659 | - | |||||||||||||||||||||||||
| 660 | case executed 4 times by 1 test: 3:case 3:Executed by:
executed 4 times by 1 test: case 3:Executed by:
| 4 | ||||||||||||||||||||||||
| 661 | s->internal->tlsext_status_expected = 0; | - | ||||||||||||||||||||||||
| 662 | break; executed 4 times by 1 test: break;Executed by:
| 4 | ||||||||||||||||||||||||
| 663 | - | |||||||||||||||||||||||||
| 664 | case never executed: 0:case 0:never executed: case 0: | 0 | ||||||||||||||||||||||||
| 665 | if (s->internal->tlsext_ocsp_resp
| 0 | ||||||||||||||||||||||||
| 666 | s->internal->tlsext_status_expected = 1; never executed: s->internal->tlsext_status_expected = 1; | 0 | ||||||||||||||||||||||||
| 667 | else | - | ||||||||||||||||||||||||
| 668 | s->internal->tlsext_status_expected = 0; never executed: s->internal->tlsext_status_expected = 0; | 0 | ||||||||||||||||||||||||
| 669 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 670 | - | |||||||||||||||||||||||||
| 671 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 672 | ret = 2; | - | ||||||||||||||||||||||||
| 673 | al = 80; | - | ||||||||||||||||||||||||
| 674 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||||||||
| 675 | } | - | ||||||||||||||||||||||||
| 676 | } executed 4 times by 1 test: elseend of blockExecuted by:
| 4 | ||||||||||||||||||||||||
| 677 | s->internal->tlsext_status_expected = 0; executed 61 times by 2 tests: s->internal->tlsext_status_expected = 0;Executed by:
| 61 | ||||||||||||||||||||||||
| 678 | - | |||||||||||||||||||||||||
| 679 | err: code before this statement executed 65 times by 3 tests: err:Executed by:
| 65 | ||||||||||||||||||||||||
| 680 | switch (ret) { | - | ||||||||||||||||||||||||
| 681 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 682 | ssl3_send_alert(s, 2, al); | - | ||||||||||||||||||||||||
| 683 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 684 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||||||||
| 685 | ssl3_send_alert(s, 1, al); | - | ||||||||||||||||||||||||
| 686 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 687 | default executed 65 times by 3 tests: :default:Executed by:
executed 65 times by 3 tests: default:Executed by:
| 65 | ||||||||||||||||||||||||
| 688 | return executed 65 times by 3 tests: 1;return 1;Executed by:
executed 65 times by 3 tests: return 1;Executed by:
| 65 | ||||||||||||||||||||||||
| 689 | } | - | ||||||||||||||||||||||||
| 690 | } | - | ||||||||||||||||||||||||
| 691 | - | |||||||||||||||||||||||||
| 692 | int | - | ||||||||||||||||||||||||
| 693 | ssl_check_serverhello_tlsext(SSL *s) | - | ||||||||||||||||||||||||
| 694 | { | - | ||||||||||||||||||||||||
| 695 | int ret = 3; | - | ||||||||||||||||||||||||
| 696 | int al = 112; | - | ||||||||||||||||||||||||
| 697 | - | |||||||||||||||||||||||||
| 698 | ret = 0; | - | ||||||||||||||||||||||||
| 699 | - | |||||||||||||||||||||||||
| 700 | if (s->ctx !=
| 0-63 | ||||||||||||||||||||||||
| 701 | ((void *)0)
| 0-63 | ||||||||||||||||||||||||
| 702 | && s->ctx->internal->tlsext_servername_callback != 0
| 0-63 | ||||||||||||||||||||||||
| 703 | ret = s->ctx->internal->tlsext_servername_callback(s, &al, never executed: ret = s->ctx->internal->tlsext_servername_callback(s, &al, s->ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 704 | s->ctx->internal->tlsext_servername_arg); never executed: ret = s->ctx->internal->tlsext_servername_callback(s, &al, s->ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 705 | else if (s->initial_ctx !=
| 0-63 | ||||||||||||||||||||||||
| 706 | ((void *)0)
| 0-63 | ||||||||||||||||||||||||
| 707 | && s->initial_ctx->internal->tlsext_servername_callback != 0
| 0-63 | ||||||||||||||||||||||||
| 708 | ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, never executed: ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, s->initial_ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 709 | s->initial_ctx->internal->tlsext_servername_arg); never executed: ret = s->initial_ctx->internal->tlsext_servername_callback(s, &al, s->initial_ctx->internal->tlsext_servername_arg); | 0 | ||||||||||||||||||||||||
| 710 | - | |||||||||||||||||||||||||
| 711 | - | |||||||||||||||||||||||||
| 712 | - | |||||||||||||||||||||||||
| 713 | - | |||||||||||||||||||||||||
| 714 | if ((
| 0-59 | ||||||||||||||||||||||||
| 715 | s->ctx
| 0-4 | ||||||||||||||||||||||||
| 716 | int r; | - | ||||||||||||||||||||||||
| 717 | - | |||||||||||||||||||||||||
| 718 | - | |||||||||||||||||||||||||
| 719 | - | |||||||||||||||||||||||||
| 720 | free(s->internal->tlsext_ocsp_resp); | - | ||||||||||||||||||||||||
| 721 | s->internal->tlsext_ocsp_resp = | - | ||||||||||||||||||||||||
| 722 | ((void *)0) | - | ||||||||||||||||||||||||
| 723 | ; | - | ||||||||||||||||||||||||
| 724 | s->internal->tlsext_ocsp_resplen = -1; | - | ||||||||||||||||||||||||
| 725 | r = s->ctx->internal->tlsext_status_cb(s, | - | ||||||||||||||||||||||||
| 726 | s->ctx->internal->tlsext_status_arg); | - | ||||||||||||||||||||||||
| 727 | if (r == 0
| 0-4 | ||||||||||||||||||||||||
| 728 | al = 113; | - | ||||||||||||||||||||||||
| 729 | ret = 2; | - | ||||||||||||||||||||||||
| 730 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 731 | if (r < 0
| 0-4 | ||||||||||||||||||||||||
| 732 | al = 80; | - | ||||||||||||||||||||||||
| 733 | ret = 2; | - | ||||||||||||||||||||||||
| 734 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 735 | } executed 4 times by 1 test: end of blockExecuted by:
| 4 | ||||||||||||||||||||||||
| 736 | - | |||||||||||||||||||||||||
| 737 | switch (ret) { | - | ||||||||||||||||||||||||
| 738 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 739 | ssl3_send_alert(s, 2, al); | - | ||||||||||||||||||||||||
| 740 | - | |||||||||||||||||||||||||
| 741 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 742 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||||||||
| 743 | ssl3_send_alert(s, 1, al); | - | ||||||||||||||||||||||||
| 744 | - | |||||||||||||||||||||||||
| 745 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 746 | case never executed: 3:case 3:never executed: case 3: | 0 | ||||||||||||||||||||||||
| 747 | s->internal->servername_done = 0; | - | ||||||||||||||||||||||||
| 748 | default executed 63 times by 2 tests: default:Executed by:
code before this statement never executed: default:executed 63 times by 2 tests: :default:Executed by:
code before this statement never executed: default:executed 63 times by 2 tests: default:Executed by:
| 0-63 | ||||||||||||||||||||||||
| 749 | return executed 63 times by 2 tests: 1;return 1;Executed by:
executed 63 times by 2 tests: return 1;Executed by:
| 63 | ||||||||||||||||||||||||
| 750 | } | - | ||||||||||||||||||||||||
| 751 | } | - | ||||||||||||||||||||||||
| 752 | int | - | ||||||||||||||||||||||||
| 753 | tls1_process_ticket(SSL *s, const unsigned char *session_id, int session_id_len, | - | ||||||||||||||||||||||||
| 754 | CBS *ext_block, SSL_SESSION **ret) | - | ||||||||||||||||||||||||
| 755 | { | - | ||||||||||||||||||||||||
| 756 | CBS extensions; | - | ||||||||||||||||||||||||
| 757 | - | |||||||||||||||||||||||||
| 758 | s->internal->tlsext_ticket_expected = 0; | - | ||||||||||||||||||||||||
| 759 | *ret = | - | ||||||||||||||||||||||||
| 760 | ((void *)0) | - | ||||||||||||||||||||||||
| 761 | ; | - | ||||||||||||||||||||||||
| 762 | - | |||||||||||||||||||||||||
| 763 | - | |||||||||||||||||||||||||
| 764 | - | |||||||||||||||||||||||||
| 765 | - | |||||||||||||||||||||||||
| 766 | - | |||||||||||||||||||||||||
| 767 | if (SSL_ctrl((s),32,0,
| 4-61 | ||||||||||||||||||||||||
| 768 | ((void *)0)
| 4-61 | ||||||||||||||||||||||||
| 769 | ) & 0x00004000L
| 4-61 | ||||||||||||||||||||||||
| 770 | return executed 4 times by 1 test: 0;return 0;Executed by:
executed 4 times by 1 test: return 0;Executed by:
| 4 | ||||||||||||||||||||||||
| 771 | - | |||||||||||||||||||||||||
| 772 | - | |||||||||||||||||||||||||
| 773 | - | |||||||||||||||||||||||||
| 774 | - | |||||||||||||||||||||||||
| 775 | - | |||||||||||||||||||||||||
| 776 | if (CBS_len(ext_block) == 0
| 2-59 | ||||||||||||||||||||||||
| 777 | return executed 2 times by 1 test: 0;return 0;Executed by:
executed 2 times by 1 test: return 0;Executed by:
| 2 | ||||||||||||||||||||||||
| 778 | - | |||||||||||||||||||||||||
| 779 | if (!CBS_get_u16_length_prefixed(ext_block, &extensions)
| 0-59 | ||||||||||||||||||||||||
| 780 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 781 | - | |||||||||||||||||||||||||
| 782 | while (CBS_len(&extensions) > 0
| 0-107 | ||||||||||||||||||||||||
| 783 | uint16_t ext_type; | - | ||||||||||||||||||||||||
| 784 | CBS ext_data; | - | ||||||||||||||||||||||||
| 785 | - | |||||||||||||||||||||||||
| 786 | if (!CBS_get_u16(&extensions, &ext_type)
| 0-107 | ||||||||||||||||||||||||
| 787 | !CBS_get_u16_length_prefixed(&extensions, &ext_data)
| 0-107 | ||||||||||||||||||||||||
| 788 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 789 | - | |||||||||||||||||||||||||
| 790 | if (ext_type == 35
| 48-59 | ||||||||||||||||||||||||
| 791 | int r; | - | ||||||||||||||||||||||||
| 792 | if (CBS_len(&ext_data) == 0
| 0-59 | ||||||||||||||||||||||||
| 793 | - | |||||||||||||||||||||||||
| 794 | - | |||||||||||||||||||||||||
| 795 | s->internal->tlsext_ticket_expected = 1; | - | ||||||||||||||||||||||||
| 796 | return executed 59 times by 1 test: 1;return 1;Executed by:
executed 59 times by 1 test: return 1;Executed by:
| 59 | ||||||||||||||||||||||||
| 797 | } | - | ||||||||||||||||||||||||
| 798 | if (s->internal->tls_session_secret_cb !=
| 0 | ||||||||||||||||||||||||
| 799 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 800 | ) { | - | ||||||||||||||||||||||||
| 801 | - | |||||||||||||||||||||||||
| 802 | - | |||||||||||||||||||||||||
| 803 | - | |||||||||||||||||||||||||
| 804 | - | |||||||||||||||||||||||||
| 805 | - | |||||||||||||||||||||||||
| 806 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 807 | } | - | ||||||||||||||||||||||||
| 808 | - | |||||||||||||||||||||||||
| 809 | r = tls_decrypt_ticket(s, CBS_data(&ext_data), | - | ||||||||||||||||||||||||
| 810 | CBS_len(&ext_data), session_id, session_id_len, ret); | - | ||||||||||||||||||||||||
| 811 | - | |||||||||||||||||||||||||
| 812 | switch (r) { | - | ||||||||||||||||||||||||
| 813 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 814 | s->internal->tlsext_ticket_expected = 1; | - | ||||||||||||||||||||||||
| 815 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 816 | case never executed: 3:case 3:never executed: case 3: | 0 | ||||||||||||||||||||||||
| 817 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||
| 818 | case never executed: 4:case 4:never executed: case 4: | 0 | ||||||||||||||||||||||||
| 819 | s->internal->tlsext_ticket_expected = 1; | - | ||||||||||||||||||||||||
| 820 | return never executed: 3;return 3;never executed: return 3; | 0 | ||||||||||||||||||||||||
| 821 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 822 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 823 | } | - | ||||||||||||||||||||||||
| 824 | } | - | ||||||||||||||||||||||||
| 825 | } executed 48 times by 1 test: end of blockExecuted by:
| 48 | ||||||||||||||||||||||||
| 826 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 827 | } | - | ||||||||||||||||||||||||
| 828 | static int | - | ||||||||||||||||||||||||
| 829 | tls_decrypt_ticket(SSL *s, const unsigned char *etick, int eticklen, | - | ||||||||||||||||||||||||
| 830 | const unsigned char *sess_id, int sesslen, SSL_SESSION **psess) | - | ||||||||||||||||||||||||
| 831 | { | - | ||||||||||||||||||||||||
| 832 | SSL_SESSION *sess; | - | ||||||||||||||||||||||||
| 833 | unsigned char *sdec; | - | ||||||||||||||||||||||||
| 834 | const unsigned char *p; | - | ||||||||||||||||||||||||
| 835 | int slen, mlen, renew_ticket = 0; | - | ||||||||||||||||||||||||
| 836 | unsigned char tick_hmac[64]; | - | ||||||||||||||||||||||||
| 837 | HMAC_CTX hctx; | - | ||||||||||||||||||||||||
| 838 | EVP_CIPHER_CTX ctx; | - | ||||||||||||||||||||||||
| 839 | SSL_CTX *tctx = s->initial_ctx; | - | ||||||||||||||||||||||||
| 840 | - | |||||||||||||||||||||||||
| 841 | - | |||||||||||||||||||||||||
| 842 | - | |||||||||||||||||||||||||
| 843 | - | |||||||||||||||||||||||||
| 844 | - | |||||||||||||||||||||||||
| 845 | - | |||||||||||||||||||||||||
| 846 | - | |||||||||||||||||||||||||
| 847 | if (eticklen < 16 + 16
| 0 | ||||||||||||||||||||||||
| 848 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 849 | - | |||||||||||||||||||||||||
| 850 | - | |||||||||||||||||||||||||
| 851 | HMAC_CTX_init(&hctx); | - | ||||||||||||||||||||||||
| 852 | EVP_CIPHER_CTX_init(&ctx); | - | ||||||||||||||||||||||||
| 853 | if (tctx->internal->tlsext_ticket_key_cb
| 0 | ||||||||||||||||||||||||
| 854 | unsigned char *nctick = (unsigned char *)etick; | - | ||||||||||||||||||||||||
| 855 | int rv = tctx->internal->tlsext_ticket_key_cb(s, | - | ||||||||||||||||||||||||
| 856 | nctick, nctick + 16, &ctx, &hctx, 0); | - | ||||||||||||||||||||||||
| 857 | if (rv < 0
| 0 | ||||||||||||||||||||||||
| 858 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 859 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 860 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 861 | } | - | ||||||||||||||||||||||||
| 862 | if (rv == 0
| 0 | ||||||||||||||||||||||||
| 863 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 864 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 865 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 866 | } | - | ||||||||||||||||||||||||
| 867 | if (rv == 2
| 0 | ||||||||||||||||||||||||
| 868 | renew_ticket = 1; never executed: renew_ticket = 1; | 0 | ||||||||||||||||||||||||
| 869 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 870 | - | |||||||||||||||||||||||||
| 871 | if (timingsafe_memcmp(etick,
| 0 | ||||||||||||||||||||||||
| 872 | tctx->internal->tlsext_tick_key_name, 16)
| 0 | ||||||||||||||||||||||||
| 873 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 874 | HMAC_Init_ex(&hctx, tctx->internal->tlsext_tick_hmac_key, | - | ||||||||||||||||||||||||
| 875 | 16, EVP_sha256(), | - | ||||||||||||||||||||||||
| 876 | ((void *)0) | - | ||||||||||||||||||||||||
| 877 | ); | - | ||||||||||||||||||||||||
| 878 | EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), | - | ||||||||||||||||||||||||
| 879 | ((void *)0) | - | ||||||||||||||||||||||||
| 880 | , | - | ||||||||||||||||||||||||
| 881 | tctx->internal->tlsext_tick_aes_key, etick + 16); | - | ||||||||||||||||||||||||
| 882 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 883 | - | |||||||||||||||||||||||||
| 884 | - | |||||||||||||||||||||||||
| 885 | - | |||||||||||||||||||||||||
| 886 | - | |||||||||||||||||||||||||
| 887 | - | |||||||||||||||||||||||||
| 888 | mlen = (EVP_MD_size((&hctx)->md)); | - | ||||||||||||||||||||||||
| 889 | if (mlen < 0
| 0 | ||||||||||||||||||||||||
| 890 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 891 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 892 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 893 | } | - | ||||||||||||||||||||||||
| 894 | - | |||||||||||||||||||||||||
| 895 | - | |||||||||||||||||||||||||
| 896 | if (eticklen <= 16 + EVP_CIPHER_CTX_iv_length(&ctx) + mlen
| 0 | ||||||||||||||||||||||||
| 897 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 898 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 899 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 900 | } | - | ||||||||||||||||||||||||
| 901 | eticklen -= mlen; | - | ||||||||||||||||||||||||
| 902 | - | |||||||||||||||||||||||||
| 903 | - | |||||||||||||||||||||||||
| 904 | if (HMAC_Update(&hctx, etick, eticklen) <= 0
| 0 | ||||||||||||||||||||||||
| 905 | HMAC_Final(&hctx, tick_hmac,
| 0 | ||||||||||||||||||||||||
| 906 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 907 | ) <= 0
| 0 | ||||||||||||||||||||||||
| 908 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 909 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 910 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 911 | } | - | ||||||||||||||||||||||||
| 912 | - | |||||||||||||||||||||||||
| 913 | HMAC_CTX_cleanup(&hctx); | - | ||||||||||||||||||||||||
| 914 | if (timingsafe_memcmp(tick_hmac, etick + eticklen, mlen)
| 0 | ||||||||||||||||||||||||
| 915 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 916 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 917 | } | - | ||||||||||||||||||||||||
| 918 | - | |||||||||||||||||||||||||
| 919 | - | |||||||||||||||||||||||||
| 920 | - | |||||||||||||||||||||||||
| 921 | p = etick + 16 + EVP_CIPHER_CTX_iv_length(&ctx); | - | ||||||||||||||||||||||||
| 922 | eticklen -= 16 + EVP_CIPHER_CTX_iv_length(&ctx); | - | ||||||||||||||||||||||||
| 923 | sdec = malloc(eticklen); | - | ||||||||||||||||||||||||
| 924 | if (sdec ==
| 0 | ||||||||||||||||||||||||
| 925 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 926 | || | - | ||||||||||||||||||||||||
| 927 | EVP_DecryptUpdate(&ctx, sdec, &slen, p, eticklen) <= 0
| 0 | ||||||||||||||||||||||||
| 928 | free(sdec); | - | ||||||||||||||||||||||||
| 929 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 930 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 931 | } | - | ||||||||||||||||||||||||
| 932 | if (EVP_DecryptFinal_ex(&ctx, sdec + slen, &mlen) <= 0
| 0 | ||||||||||||||||||||||||
| 933 | free(sdec); | - | ||||||||||||||||||||||||
| 934 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 935 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 936 | } | - | ||||||||||||||||||||||||
| 937 | slen += mlen; | - | ||||||||||||||||||||||||
| 938 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||||||||||||||||||||
| 939 | p = sdec; | - | ||||||||||||||||||||||||
| 940 | - | |||||||||||||||||||||||||
| 941 | sess = d2i_SSL_SESSION( | - | ||||||||||||||||||||||||
| 942 | ((void *)0) | - | ||||||||||||||||||||||||
| 943 | , &p, slen); | - | ||||||||||||||||||||||||
| 944 | free(sdec); | - | ||||||||||||||||||||||||
| 945 | if (sess
| 0 | ||||||||||||||||||||||||
| 946 | - | |||||||||||||||||||||||||
| 947 | - | |||||||||||||||||||||||||
| 948 | - | |||||||||||||||||||||||||
| 949 | - | |||||||||||||||||||||||||
| 950 | - | |||||||||||||||||||||||||
| 951 | if (sesslen
| 0 | ||||||||||||||||||||||||
| 952 | memcpy(sess->session_id, sess_id, sesslen); never executed: memcpy(sess->session_id, sess_id, sesslen); | 0 | ||||||||||||||||||||||||
| 953 | sess->session_id_length = sesslen; | - | ||||||||||||||||||||||||
| 954 | *psess = sess; | - | ||||||||||||||||||||||||
| 955 | if (renew_ticket
| 0 | ||||||||||||||||||||||||
| 956 | return never executed: 4;return 4;never executed: return 4; | 0 | ||||||||||||||||||||||||
| 957 | else | - | ||||||||||||||||||||||||
| 958 | return never executed: 3;return 3;never executed: return 3; | 0 | ||||||||||||||||||||||||
| 959 | } | - | ||||||||||||||||||||||||
| 960 | ERR_clear_error(); | - | ||||||||||||||||||||||||
| 961 | - | |||||||||||||||||||||||||
| 962 | - | |||||||||||||||||||||||||
| 963 | return never executed: 2;return 2;never executed: return 2; | 0 | ||||||||||||||||||||||||
| 964 | } | - | ||||||||||||||||||||||||
| 965 | - | |||||||||||||||||||||||||
| 966 | - | |||||||||||||||||||||||||
| 967 | - | |||||||||||||||||||||||||
| 968 | typedef struct { | - | ||||||||||||||||||||||||
| 969 | int nid; | - | ||||||||||||||||||||||||
| 970 | int id; | - | ||||||||||||||||||||||||
| 971 | } tls12_lookup; | - | ||||||||||||||||||||||||
| 972 | - | |||||||||||||||||||||||||
| 973 | static tls12_lookup tls12_md[] = { | - | ||||||||||||||||||||||||
| 974 | {4, 1}, | - | ||||||||||||||||||||||||
| 975 | {64, 2}, | - | ||||||||||||||||||||||||
| 976 | {675, 3}, | - | ||||||||||||||||||||||||
| 977 | {672, 4}, | - | ||||||||||||||||||||||||
| 978 | {673, 5}, | - | ||||||||||||||||||||||||
| 979 | {674, 6}, | - | ||||||||||||||||||||||||
| 980 | {809, 237}, | - | ||||||||||||||||||||||||
| 981 | {941, 238}, | - | ||||||||||||||||||||||||
| 982 | {942, 239} | - | ||||||||||||||||||||||||
| 983 | }; | - | ||||||||||||||||||||||||
| 984 | - | |||||||||||||||||||||||||
| 985 | static tls12_lookup tls12_sig[] = { | - | ||||||||||||||||||||||||
| 986 | {6, 1}, | - | ||||||||||||||||||||||||
| 987 | {408, 3}, | - | ||||||||||||||||||||||||
| 988 | {811, 237}, | - | ||||||||||||||||||||||||
| 989 | }; | - | ||||||||||||||||||||||||
| 990 | - | |||||||||||||||||||||||||
| 991 | static int | - | ||||||||||||||||||||||||
| 992 | tls12_find_id(int nid, tls12_lookup *table, size_t tlen) | - | ||||||||||||||||||||||||
| 993 | { | - | ||||||||||||||||||||||||
| 994 | size_t i; | - | ||||||||||||||||||||||||
| 995 | for (i = 0; i < tlen
| 0-259 | ||||||||||||||||||||||||
| 996 | if (table[i].nid == nid
| 98-161 | ||||||||||||||||||||||||
| 997 | return executed 98 times by 3 tests: table[i].id;return table[i].id;Executed by:
executed 98 times by 3 tests: return table[i].id;Executed by:
| 98 | ||||||||||||||||||||||||
| 998 | } executed 161 times by 3 tests: end of blockExecuted by:
| 161 | ||||||||||||||||||||||||
| 999 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 1000 | } | - | ||||||||||||||||||||||||
| 1001 | - | |||||||||||||||||||||||||
| 1002 | int | - | ||||||||||||||||||||||||
| 1003 | tls12_get_hashid(const EVP_MD *md) | - | ||||||||||||||||||||||||
| 1004 | { | - | ||||||||||||||||||||||||
| 1005 | if (md ==
| 0-33 | ||||||||||||||||||||||||
| 1006 | ((void *)0)
| 0-33 | ||||||||||||||||||||||||
| 1007 | ) | - | ||||||||||||||||||||||||
| 1008 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 1009 | - | |||||||||||||||||||||||||
| 1010 | return executed 33 times by 3 tests: tls12_find_id(EVP_MD_type(md), tls12_md,return tls12_find_id(EVP_MD_type(md), tls12_md, sizeof(tls12_md) / sizeof(tls12_lookup));Executed by:
executed 33 times by 3 tests: return tls12_find_id(EVP_MD_type(md), tls12_md, sizeof(tls12_md) / sizeof(tls12_lookup));Executed by:
| 33 | ||||||||||||||||||||||||
| 1011 | sizeof(tls12_md) / sizeof(tls12_lookup)); executed 33 times by 3 tests: return tls12_find_id(EVP_MD_type(md), tls12_md, sizeof(tls12_md) / sizeof(tls12_lookup));Executed by:
| 33 | ||||||||||||||||||||||||
| 1012 | } | - | ||||||||||||||||||||||||
| 1013 | - | |||||||||||||||||||||||||
| 1014 | int | - | ||||||||||||||||||||||||
| 1015 | tls12_get_sigid(const EVP_PKEY *pk) | - | ||||||||||||||||||||||||
| 1016 | { | - | ||||||||||||||||||||||||
| 1017 | if (pk ==
| 0-65 | ||||||||||||||||||||||||
| 1018 | ((void *)0)
| 0-65 | ||||||||||||||||||||||||
| 1019 | ) | - | ||||||||||||||||||||||||
| 1020 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||||||||
| 1021 | - | |||||||||||||||||||||||||
| 1022 | return executed 65 times by 3 tests: tls12_find_id(pk->type, tls12_sig,return tls12_find_id(pk->type, tls12_sig, sizeof(tls12_sig) / sizeof(tls12_lookup));Executed by:
executed 65 times by 3 tests: return tls12_find_id(pk->type, tls12_sig, sizeof(tls12_sig) / sizeof(tls12_lookup));Executed by:
| 65 | ||||||||||||||||||||||||
| 1023 | sizeof(tls12_sig) / sizeof(tls12_lookup)); executed 65 times by 3 tests: return tls12_find_id(pk->type, tls12_sig, sizeof(tls12_sig) / sizeof(tls12_lookup));Executed by:
| 65 | ||||||||||||||||||||||||
| 1024 | } | - | ||||||||||||||||||||||||
| 1025 | - | |||||||||||||||||||||||||
| 1026 | int | - | ||||||||||||||||||||||||
| 1027 | tls12_get_hashandsig(CBB *cbb, const EVP_PKEY *pk, const EVP_MD *md) | - | ||||||||||||||||||||||||
| 1028 | { | - | ||||||||||||||||||||||||
| 1029 | int hash_id, sig_id; | - | ||||||||||||||||||||||||
| 1030 | - | |||||||||||||||||||||||||
| 1031 | if ((
| 0-33 | ||||||||||||||||||||||||
| 1032 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1033 | if ((
| 0-33 | ||||||||||||||||||||||||
| 1034 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1035 | - | |||||||||||||||||||||||||
| 1036 | if (!CBB_add_u8(cbb, hash_id)
| 0-33 | ||||||||||||||||||||||||
| 1037 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1038 | if (!CBB_add_u8(cbb, sig_id)
| 0-33 | ||||||||||||||||||||||||
| 1039 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1040 | - | |||||||||||||||||||||||||
| 1041 | return executed 33 times by 3 tests: 1;return 1;Executed by:
executed 33 times by 3 tests: return 1;Executed by:
| 33 | ||||||||||||||||||||||||
| 1042 | } | - | ||||||||||||||||||||||||
| 1043 | - | |||||||||||||||||||||||||
| 1044 | const EVP_MD * | - | ||||||||||||||||||||||||
| 1045 | tls12_get_hash(unsigned char hash_alg) | - | ||||||||||||||||||||||||
| 1046 | { | - | ||||||||||||||||||||||||
| 1047 | switch (hash_alg) { | - | ||||||||||||||||||||||||
| 1048 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 1049 | return never executed: EVP_sha1();return EVP_sha1();never executed: return EVP_sha1(); | 0 | ||||||||||||||||||||||||
| 1050 | case never executed: 3:case 3:never executed: case 3: | 0 | ||||||||||||||||||||||||
| 1051 | return never executed: EVP_sha224();return EVP_sha224();never executed: return EVP_sha224(); | 0 | ||||||||||||||||||||||||
| 1052 | case never executed: 4:case 4:never executed: case 4: | 0 | ||||||||||||||||||||||||
| 1053 | return never executed: EVP_sha256();return EVP_sha256();never executed: return EVP_sha256(); | 0 | ||||||||||||||||||||||||
| 1054 | case never executed: 5:case 5:never executed: case 5: | 0 | ||||||||||||||||||||||||
| 1055 | return never executed: EVP_sha384();return EVP_sha384();never executed: return EVP_sha384(); | 0 | ||||||||||||||||||||||||
| 1056 | case executed 112 times by 3 tests: 6:case 6:Executed by:
executed 112 times by 3 tests: case 6:Executed by:
| 112 | ||||||||||||||||||||||||
| 1057 | return executed 112 times by 3 tests: EVP_sha512();return EVP_sha512();Executed by:
executed 112 times by 3 tests: return EVP_sha512();Executed by:
| 112 | ||||||||||||||||||||||||
| 1058 | - | |||||||||||||||||||||||||
| 1059 | case never executed: 237:case 237:never executed: case 237: | 0 | ||||||||||||||||||||||||
| 1060 | return never executed: EVP_gostr341194();return EVP_gostr341194();never executed: return EVP_gostr341194(); | 0 | ||||||||||||||||||||||||
| 1061 | case never executed: 238:case 238:never executed: case 238: | 0 | ||||||||||||||||||||||||
| 1062 | return never executed: EVP_streebog256();return EVP_streebog256();never executed: return EVP_streebog256(); | 0 | ||||||||||||||||||||||||
| 1063 | case executed 40 times by 3 tests: 239:case 239:Executed by:
executed 40 times by 3 tests: case 239:Executed by:
| 40 | ||||||||||||||||||||||||
| 1064 | return executed 40 times by 3 tests: EVP_streebog512();return EVP_streebog512();Executed by:
executed 40 times by 3 tests: return EVP_streebog512();Executed by:
| 40 | ||||||||||||||||||||||||
| 1065 | - | |||||||||||||||||||||||||
| 1066 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 1067 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 1068 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 1069 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 1070 | } | - | ||||||||||||||||||||||||
| 1071 | } | - | ||||||||||||||||||||||||
| 1072 | - | |||||||||||||||||||||||||
| 1073 | - | |||||||||||||||||||||||||
| 1074 | - | |||||||||||||||||||||||||
| 1075 | int | - | ||||||||||||||||||||||||
| 1076 | tls1_process_sigalgs(SSL *s, CBS *cbs) | - | ||||||||||||||||||||||||
| 1077 | { | - | ||||||||||||||||||||||||
| 1078 | const EVP_MD *md; | - | ||||||||||||||||||||||||
| 1079 | CERT *c = s->cert; | - | ||||||||||||||||||||||||
| 1080 | int idx; | - | ||||||||||||||||||||||||
| 1081 | - | |||||||||||||||||||||||||
| 1082 | - | |||||||||||||||||||||||||
| 1083 | if (!(s->method->internal->ssl3_enc->enc_flags & (1 << 1))
| 0-40 | ||||||||||||||||||||||||
| 1084 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 1085 | - | |||||||||||||||||||||||||
| 1086 | - | |||||||||||||||||||||||||
| 1087 | if (c ==
| 0-40 | ||||||||||||||||||||||||
| 1088 | ((void *)0)
| 0-40 | ||||||||||||||||||||||||
| 1089 | ) | - | ||||||||||||||||||||||||
| 1090 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1091 | - | |||||||||||||||||||||||||
| 1092 | c->pkeys[1].digest = | - | ||||||||||||||||||||||||
| 1093 | ((void *)0) | - | ||||||||||||||||||||||||
| 1094 | ; | - | ||||||||||||||||||||||||
| 1095 | c->pkeys[0].digest = | - | ||||||||||||||||||||||||
| 1096 | ((void *)0) | - | ||||||||||||||||||||||||
| 1097 | ; | - | ||||||||||||||||||||||||
| 1098 | c->pkeys[3].digest = | - | ||||||||||||||||||||||||
| 1099 | ((void *)0) | - | ||||||||||||||||||||||||
| 1100 | ; | - | ||||||||||||||||||||||||
| 1101 | c->pkeys[4].digest = | - | ||||||||||||||||||||||||
| 1102 | ((void *)0) | - | ||||||||||||||||||||||||
| 1103 | ; | - | ||||||||||||||||||||||||
| 1104 | - | |||||||||||||||||||||||||
| 1105 | while (CBS_len(cbs) > 0
| 40-520 | ||||||||||||||||||||||||
| 1106 | uint8_t hash_alg, sig_alg; | - | ||||||||||||||||||||||||
| 1107 | - | |||||||||||||||||||||||||
| 1108 | if (!CBS_get_u8(cbs, &hash_alg)
| 0-520 | ||||||||||||||||||||||||
| 1109 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 1110 | - | |||||||||||||||||||||||||
| 1111 | switch (sig_alg) { | - | ||||||||||||||||||||||||
| 1112 | case executed 200 times by 3 tests: 1:case 1:Executed by:
executed 200 times by 3 tests: case 1:Executed by:
| 200 | ||||||||||||||||||||||||
| 1113 | idx = 1; | - | ||||||||||||||||||||||||
| 1114 | break; executed 200 times by 3 tests: break;Executed by:
| 200 | ||||||||||||||||||||||||
| 1115 | case executed 200 times by 3 tests: 3:case 3:Executed by:
executed 200 times by 3 tests: case 3:Executed by:
| 200 | ||||||||||||||||||||||||
| 1116 | idx = 3; | - | ||||||||||||||||||||||||
| 1117 | break; executed 200 times by 3 tests: break;Executed by:
| 200 | ||||||||||||||||||||||||
| 1118 | case executed 40 times by 3 tests: 237:case 237:Executed by:
executed 40 times by 3 tests: case 237:Executed by:
| 40 | ||||||||||||||||||||||||
| 1119 | case executed 40 times by 3 tests: 238:case 238:Executed by:
executed 40 times by 3 tests: case 238:Executed by:
| 40 | ||||||||||||||||||||||||
| 1120 | case executed 40 times by 3 tests: 239:case 239:Executed by:
executed 40 times by 3 tests: case 239:Executed by:
| 40 | ||||||||||||||||||||||||
| 1121 | idx = 4; | - | ||||||||||||||||||||||||
| 1122 | break; executed 120 times by 3 tests: break;Executed by:
| 120 | ||||||||||||||||||||||||
| 1123 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 1124 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
| 1125 | } | - | ||||||||||||||||||||||||
| 1126 | - | |||||||||||||||||||||||||
| 1127 | if (c->pkeys[idx].digest ==
| 120-400 | ||||||||||||||||||||||||
| 1128 | ((void *)0)
| 120-400 | ||||||||||||||||||||||||
| 1129 | ) { | - | ||||||||||||||||||||||||
| 1130 | md = tls12_get_hash(hash_alg); | - | ||||||||||||||||||||||||
| 1131 | if (md
| 0-120 | ||||||||||||||||||||||||
| 1132 | c->pkeys[idx].digest = md; | - | ||||||||||||||||||||||||
| 1133 | if (idx == 1
| 40-80 | ||||||||||||||||||||||||
| 1134 | c->pkeys[0].digest = md; executed 40 times by 3 tests: c->pkeys[0].digest = md;Executed by:
| 40 | ||||||||||||||||||||||||
| 1135 | } executed 120 times by 3 tests: end of blockExecuted by:
| 120 | ||||||||||||||||||||||||
| 1136 | } executed 120 times by 3 tests: end of blockExecuted by:
| 120 | ||||||||||||||||||||||||
| 1137 | - | |||||||||||||||||||||||||
| 1138 | } executed 520 times by 3 tests: end of blockExecuted by:
| 520 | ||||||||||||||||||||||||
| 1139 | - | |||||||||||||||||||||||||
| 1140 | - | |||||||||||||||||||||||||
| 1141 | - | |||||||||||||||||||||||||
| 1142 | - | |||||||||||||||||||||||||
| 1143 | - | |||||||||||||||||||||||||
| 1144 | if (!c->pkeys[1].digest
| 0-40 | ||||||||||||||||||||||||
| 1145 | c->pkeys[1].digest = EVP_sha1(); | - | ||||||||||||||||||||||||
| 1146 | c->pkeys[0].digest = EVP_sha1(); | - | ||||||||||||||||||||||||
| 1147 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 1148 | if (!c->pkeys[3].digest
| 0-40 | ||||||||||||||||||||||||
| 1149 | c->pkeys[3].digest = EVP_sha1(); never executed: c->pkeys[3].digest = EVP_sha1(); | 0 | ||||||||||||||||||||||||
| 1150 | - | |||||||||||||||||||||||||
| 1151 | if (!c->pkeys[4].digest
| 0-40 | ||||||||||||||||||||||||
| 1152 | c->pkeys[4].digest = EVP_gostr341194(); never executed: c->pkeys[4].digest = EVP_gostr341194(); | 0 | ||||||||||||||||||||||||
| 1153 | - | |||||||||||||||||||||||||
| 1154 | return executed 40 times by 3 tests: 1;return 1;Executed by:
executed 40 times by 3 tests: return 1;Executed by:
| 40 | ||||||||||||||||||||||||
| 1155 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |