| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/ssl_cert.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||
| 2 | - | |||||||||||||||||||
| 3 | - | |||||||||||||||||||
| 4 | - | |||||||||||||||||||
| 5 | int | - | ||||||||||||||||||
| 6 | SSL_get_ex_data_X509_STORE_CTX_idx(void) | - | ||||||||||||||||||
| 7 | { | - | ||||||||||||||||||
| 8 | static volatile int ssl_x509_store_ctx_idx = -1; | - | ||||||||||||||||||
| 9 | int got_write_lock = 0; | - | ||||||||||||||||||
| 10 | - | |||||||||||||||||||
| 11 | CRYPTO_lock(1|4,12,__FILE__,139); | - | ||||||||||||||||||
| 12 | - | |||||||||||||||||||
| 13 | if (ssl_x509_store_ctx_idx < 0
| 63-211 | ||||||||||||||||||
| 14 | CRYPTO_lock(2|4,12,__FILE__,142); | - | ||||||||||||||||||
| 15 | CRYPTO_lock(1|8,12,__FILE__,143); | - | ||||||||||||||||||
| 16 | got_write_lock = 1; | - | ||||||||||||||||||
| 17 | - | |||||||||||||||||||
| 18 | if (ssl_x509_store_ctx_idx < 0
| 0-63 | ||||||||||||||||||
| 19 | ssl_x509_store_ctx_idx = | - | ||||||||||||||||||
| 20 | X509_STORE_CTX_get_ex_new_index( | - | ||||||||||||||||||
| 21 | 0, "SSL for verify callback", | - | ||||||||||||||||||
| 22 | ((void *)0) | - | ||||||||||||||||||
| 23 | , | - | ||||||||||||||||||
| 24 | ((void *)0) | - | ||||||||||||||||||
| 25 | , | - | ||||||||||||||||||
| 26 | ((void *)0) | - | ||||||||||||||||||
| 27 | ); | - | ||||||||||||||||||
| 28 | } executed 63 times by 13 tests: end of blockExecuted by:
| 63 | ||||||||||||||||||
| 29 | } executed 63 times by 13 tests: end of blockExecuted by:
| 63 | ||||||||||||||||||
| 30 | - | |||||||||||||||||||
| 31 | if (got_write_lock
| 63-211 | ||||||||||||||||||
| 32 | CRYPTO_lock(2|8,12,__FILE__,154); executed 63 times by 13 tests: CRYPTO_lock(2|8,12,__FILE__,154);Executed by:
| 63 | ||||||||||||||||||
| 33 | else | - | ||||||||||||||||||
| 34 | CRYPTO_lock(2|4,12,__FILE__,156); executed 211 times by 8 tests: CRYPTO_lock(2|4,12,__FILE__,156);Executed by:
| 211 | ||||||||||||||||||
| 35 | - | |||||||||||||||||||
| 36 | return executed 274 times by 13 tests: ssl_x509_store_ctx_idx;return ssl_x509_store_ctx_idx;Executed by:
executed 274 times by 13 tests: return ssl_x509_store_ctx_idx;Executed by:
| 274 | ||||||||||||||||||
| 37 | } | - | ||||||||||||||||||
| 38 | - | |||||||||||||||||||
| 39 | static void | - | ||||||||||||||||||
| 40 | ssl_cert_set_default_md(CERT *cert) | - | ||||||||||||||||||
| 41 | { | - | ||||||||||||||||||
| 42 | - | |||||||||||||||||||
| 43 | cert->pkeys[1].digest = EVP_sha1(); | - | ||||||||||||||||||
| 44 | cert->pkeys[0].digest = EVP_sha1(); | - | ||||||||||||||||||
| 45 | cert->pkeys[3].digest = EVP_sha1(); | - | ||||||||||||||||||
| 46 | - | |||||||||||||||||||
| 47 | cert->pkeys[4].digest = EVP_gostr341194(); | - | ||||||||||||||||||
| 48 | - | |||||||||||||||||||
| 49 | } executed 416 times by 13 tests: end of blockExecuted by:
| 416 | ||||||||||||||||||
| 50 | - | |||||||||||||||||||
| 51 | CERT * | - | ||||||||||||||||||
| 52 | ssl_cert_new(void) | - | ||||||||||||||||||
| 53 | { | - | ||||||||||||||||||
| 54 | CERT *ret; | - | ||||||||||||||||||
| 55 | - | |||||||||||||||||||
| 56 | ret = calloc(1, sizeof(CERT)); | - | ||||||||||||||||||
| 57 | if (ret ==
| 0-214 | ||||||||||||||||||
| 58 | ((void *)0)
| 0-214 | ||||||||||||||||||
| 59 | ) { | - | ||||||||||||||||||
| 60 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,180); | - | ||||||||||||||||||
| 61 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 62 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 63 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 64 | } | - | ||||||||||||||||||
| 65 | ret->key = &(ret->pkeys[0]); | - | ||||||||||||||||||
| 66 | ret->references = 1; | - | ||||||||||||||||||
| 67 | ssl_cert_set_default_md(ret); | - | ||||||||||||||||||
| 68 | return executed 214 times by 13 tests: (ret);return (ret);Executed by:
executed 214 times by 13 tests: return (ret);Executed by:
| 214 | ||||||||||||||||||
| 69 | } | - | ||||||||||||||||||
| 70 | - | |||||||||||||||||||
| 71 | CERT * | - | ||||||||||||||||||
| 72 | ssl_cert_dup(CERT *cert) | - | ||||||||||||||||||
| 73 | { | - | ||||||||||||||||||
| 74 | CERT *ret; | - | ||||||||||||||||||
| 75 | int i; | - | ||||||||||||||||||
| 76 | - | |||||||||||||||||||
| 77 | ret = calloc(1, sizeof(CERT)); | - | ||||||||||||||||||
| 78 | if (ret ==
| 0-202 | ||||||||||||||||||
| 79 | ((void *)0)
| 0-202 | ||||||||||||||||||
| 80 | ) { | - | ||||||||||||||||||
| 81 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,197); | - | ||||||||||||||||||
| 82 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 83 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 84 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 85 | } | - | ||||||||||||||||||
| 86 | - | |||||||||||||||||||
| 87 | - | |||||||||||||||||||
| 88 | - | |||||||||||||||||||
| 89 | - | |||||||||||||||||||
| 90 | - | |||||||||||||||||||
| 91 | ret->key = &ret->pkeys[cert->key - &cert->pkeys[0]]; | - | ||||||||||||||||||
| 92 | - | |||||||||||||||||||
| 93 | ret->valid = cert->valid; | - | ||||||||||||||||||
| 94 | ret->mask_k = cert->mask_k; | - | ||||||||||||||||||
| 95 | ret->mask_a = cert->mask_a; | - | ||||||||||||||||||
| 96 | - | |||||||||||||||||||
| 97 | if (cert->dh_tmp !=
| 49-153 | ||||||||||||||||||
| 98 | ((void *)0)
| 49-153 | ||||||||||||||||||
| 99 | ) { | - | ||||||||||||||||||
| 100 | ret->dh_tmp = DHparams_dup(cert->dh_tmp); | - | ||||||||||||||||||
| 101 | if (ret->dh_tmp ==
| 0-49 | ||||||||||||||||||
| 102 | ((void *)0)
| 0-49 | ||||||||||||||||||
| 103 | ) { | - | ||||||||||||||||||
| 104 | ERR_put_error(20,(0xfff),(5),__FILE__,214); | - | ||||||||||||||||||
| 105 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 106 | } | - | ||||||||||||||||||
| 107 | if (cert->dh_tmp->priv_key
| 0-49 | ||||||||||||||||||
| 108 | BIGNUM *b = BN_dup(cert->dh_tmp->priv_key); | - | ||||||||||||||||||
| 109 | if (!b
| 0 | ||||||||||||||||||
| 110 | ERR_put_error(20,(0xfff),(3),__FILE__,220); | - | ||||||||||||||||||
| 111 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 112 | } | - | ||||||||||||||||||
| 113 | ret->dh_tmp->priv_key = b; | - | ||||||||||||||||||
| 114 | } never executed: end of block | 0 | ||||||||||||||||||
| 115 | if (cert->dh_tmp->pub_key
| 0-49 | ||||||||||||||||||
| 116 | BIGNUM *b = BN_dup(cert->dh_tmp->pub_key); | - | ||||||||||||||||||
| 117 | if (!b
| 0 | ||||||||||||||||||
| 118 | ERR_put_error(20,(0xfff),(3),__FILE__,228); | - | ||||||||||||||||||
| 119 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 120 | } | - | ||||||||||||||||||
| 121 | ret->dh_tmp->pub_key = b; | - | ||||||||||||||||||
| 122 | } never executed: end of block | 0 | ||||||||||||||||||
| 123 | } executed 49 times by 1 test: end of blockExecuted by:
| 49 | ||||||||||||||||||
| 124 | ret->dh_tmp_cb = cert->dh_tmp_cb; | - | ||||||||||||||||||
| 125 | ret->dh_tmp_auto = cert->dh_tmp_auto; | - | ||||||||||||||||||
| 126 | - | |||||||||||||||||||
| 127 | if (cert->ecdh_tmp
| 0-202 | ||||||||||||||||||
| 128 | ret->ecdh_tmp = EC_KEY_dup(cert->ecdh_tmp); | - | ||||||||||||||||||
| 129 | if (ret->ecdh_tmp ==
| 0 | ||||||||||||||||||
| 130 | ((void *)0)
| 0 | ||||||||||||||||||
| 131 | ) { | - | ||||||||||||||||||
| 132 | ERR_put_error(20,(0xfff),(16),__FILE__,240); | - | ||||||||||||||||||
| 133 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 134 | } | - | ||||||||||||||||||
| 135 | } never executed: end of block | 0 | ||||||||||||||||||
| 136 | - | |||||||||||||||||||
| 137 | for (i = 0; i < 5
| 202-1010 | ||||||||||||||||||
| 138 | if (cert->pkeys[i].x509 !=
| 63-947 | ||||||||||||||||||
| 139 | ((void *)0)
| 63-947 | ||||||||||||||||||
| 140 | ) { | - | ||||||||||||||||||
| 141 | ret->pkeys[i].x509 = cert->pkeys[i].x509; | - | ||||||||||||||||||
| 142 | CRYPTO_add_lock(&ret->pkeys[i].x509->references,1,3, | - | ||||||||||||||||||
| 143 | __FILE__ | - | ||||||||||||||||||
| 144 | , | - | ||||||||||||||||||
| 145 | 249 | - | ||||||||||||||||||
| 146 | ) | - | ||||||||||||||||||
| 147 | ; | - | ||||||||||||||||||
| 148 | } executed 63 times by 3 tests: end of blockExecuted by:
| 63 | ||||||||||||||||||
| 149 | - | |||||||||||||||||||
| 150 | if (cert->pkeys[i].privatekey !=
| 63-947 | ||||||||||||||||||
| 151 | ((void *)0)
| 63-947 | ||||||||||||||||||
| 152 | ) { | - | ||||||||||||||||||
| 153 | ret->pkeys[i].privatekey = cert->pkeys[i].privatekey; | - | ||||||||||||||||||
| 154 | CRYPTO_add_lock(&ret->pkeys[i].privatekey->references,1,10, | - | ||||||||||||||||||
| 155 | __FILE__ | - | ||||||||||||||||||
| 156 | , | - | ||||||||||||||||||
| 157 | 255 | - | ||||||||||||||||||
| 158 | ) | - | ||||||||||||||||||
| 159 | ; | - | ||||||||||||||||||
| 160 | - | |||||||||||||||||||
| 161 | switch (i) { | - | ||||||||||||||||||
| 162 | - | |||||||||||||||||||
| 163 | - | |||||||||||||||||||
| 164 | - | |||||||||||||||||||
| 165 | - | |||||||||||||||||||
| 166 | - | |||||||||||||||||||
| 167 | - | |||||||||||||||||||
| 168 | case executed 63 times by 3 tests: 0:case 0:Executed by:
executed 63 times by 3 tests: case 0:Executed by:
| 63 | ||||||||||||||||||
| 169 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||
| 170 | - | |||||||||||||||||||
| 171 | break; executed 63 times by 3 tests: break;Executed by:
| 63 | ||||||||||||||||||
| 172 | - | |||||||||||||||||||
| 173 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||
| 174 | - | |||||||||||||||||||
| 175 | break; never executed: break; | 0 | ||||||||||||||||||
| 176 | - | |||||||||||||||||||
| 177 | case never executed: 3:case 3:never executed: case 3: | 0 | ||||||||||||||||||
| 178 | - | |||||||||||||||||||
| 179 | break; never executed: break; | 0 | ||||||||||||||||||
| 180 | - | |||||||||||||||||||
| 181 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||
| 182 | - | |||||||||||||||||||
| 183 | ERR_put_error(20,(0xfff),(274),__FILE__,279); | - | ||||||||||||||||||
| 184 | } never executed: end of block | 0 | ||||||||||||||||||
| 185 | } | - | ||||||||||||||||||
| 186 | } executed 1010 times by 11 tests: end of blockExecuted by:
| 1010 | ||||||||||||||||||
| 187 | - | |||||||||||||||||||
| 188 | - | |||||||||||||||||||
| 189 | - | |||||||||||||||||||
| 190 | - | |||||||||||||||||||
| 191 | - | |||||||||||||||||||
| 192 | - | |||||||||||||||||||
| 193 | ret->references = 1; | - | ||||||||||||||||||
| 194 | - | |||||||||||||||||||
| 195 | - | |||||||||||||||||||
| 196 | - | |||||||||||||||||||
| 197 | - | |||||||||||||||||||
| 198 | ssl_cert_set_default_md(ret); | - | ||||||||||||||||||
| 199 | - | |||||||||||||||||||
| 200 | return executed 202 times by 11 tests: (ret);return (ret);Executed by:
executed 202 times by 11 tests: return (ret);Executed by:
| 202 | ||||||||||||||||||
| 201 | - | |||||||||||||||||||
| 202 | err: | - | ||||||||||||||||||
| 203 | DH_free(ret->dh_tmp); | - | ||||||||||||||||||
| 204 | EC_KEY_free(ret->ecdh_tmp); | - | ||||||||||||||||||
| 205 | - | |||||||||||||||||||
| 206 | for (i = 0; i < 5
| 0 | ||||||||||||||||||
| 207 | X509_free(ret->pkeys[i].x509); | - | ||||||||||||||||||
| 208 | EVP_PKEY_free(ret->pkeys[i].privatekey); | - | ||||||||||||||||||
| 209 | } never executed: end of block | 0 | ||||||||||||||||||
| 210 | free (ret); | - | ||||||||||||||||||
| 211 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 212 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 213 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 214 | } | - | ||||||||||||||||||
| 215 | - | |||||||||||||||||||
| 216 | - | |||||||||||||||||||
| 217 | void | - | ||||||||||||||||||
| 218 | ssl_cert_free(CERT *c) | - | ||||||||||||||||||
| 219 | { | - | ||||||||||||||||||
| 220 | int i; | - | ||||||||||||||||||
| 221 | - | |||||||||||||||||||
| 222 | if (c ==
| 0-402 | ||||||||||||||||||
| 223 | ((void *)0)
| 0-402 | ||||||||||||||||||
| 224 | ) | - | ||||||||||||||||||
| 225 | return; never executed: return; | 0 | ||||||||||||||||||
| 226 | - | |||||||||||||||||||
| 227 | i = CRYPTO_add_lock(&c->references,-1,13,__FILE__,319); | - | ||||||||||||||||||
| 228 | if (i > 0
| 0-402 | ||||||||||||||||||
| 229 | return; never executed: return; | 0 | ||||||||||||||||||
| 230 | - | |||||||||||||||||||
| 231 | DH_free(c->dh_tmp); | - | ||||||||||||||||||
| 232 | EC_KEY_free(c->ecdh_tmp); | - | ||||||||||||||||||
| 233 | - | |||||||||||||||||||
| 234 | for (i = 0; i < 5
| 402-2010 | ||||||||||||||||||
| 235 | X509_free(c->pkeys[i].x509); | - | ||||||||||||||||||
| 236 | EVP_PKEY_free(c->pkeys[i].privatekey); | - | ||||||||||||||||||
| 237 | } executed 2010 times by 13 tests: end of blockExecuted by:
| 2010 | ||||||||||||||||||
| 238 | - | |||||||||||||||||||
| 239 | free(c); | - | ||||||||||||||||||
| 240 | } executed 402 times by 13 tests: end of blockExecuted by:
| 402 | ||||||||||||||||||
| 241 | - | |||||||||||||||||||
| 242 | int | - | ||||||||||||||||||
| 243 | ssl_cert_inst(CERT **o) | - | ||||||||||||||||||
| 244 | { | - | ||||||||||||||||||
| 245 | if (o ==
| 0-126 | ||||||||||||||||||
| 246 | ((void *)0)
| 0-126 | ||||||||||||||||||
| 247 | ) { | - | ||||||||||||||||||
| 248 | ERR_put_error(20,(0xfff),((3|64)),__FILE__,349); | - | ||||||||||||||||||
| 249 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 250 | } | - | ||||||||||||||||||
| 251 | if (*
| 0-126 | ||||||||||||||||||
| 252 | ((void *)0)
| 0-126 | ||||||||||||||||||
| 253 | ) { | - | ||||||||||||||||||
| 254 | if ((*
| 0 | ||||||||||||||||||
| 255 | ((void *)0)
| 0 | ||||||||||||||||||
| 256 | ) { | - | ||||||||||||||||||
| 257 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,354); | - | ||||||||||||||||||
| 258 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 259 | } | - | ||||||||||||||||||
| 260 | } never executed: end of block | 0 | ||||||||||||||||||
| 261 | return executed 126 times by 3 tests: (1);return (1);Executed by:
executed 126 times by 3 tests: return (1);Executed by:
| 126 | ||||||||||||||||||
| 262 | } | - | ||||||||||||||||||
| 263 | - | |||||||||||||||||||
| 264 | - | |||||||||||||||||||
| 265 | SESS_CERT * | - | ||||||||||||||||||
| 266 | ssl_sess_cert_new(void) | - | ||||||||||||||||||
| 267 | { | - | ||||||||||||||||||
| 268 | SESS_CERT *ret; | - | ||||||||||||||||||
| 269 | - | |||||||||||||||||||
| 270 | ret = calloc(1, sizeof *ret); | - | ||||||||||||||||||
| 271 | if (ret ==
| 0-70 | ||||||||||||||||||
| 272 | ((void *)0)
| 0-70 | ||||||||||||||||||
| 273 | ) { | - | ||||||||||||||||||
| 274 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,369); | - | ||||||||||||||||||
| 275 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 276 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 277 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 278 | } | - | ||||||||||||||||||
| 279 | ret->peer_key = &(ret->peer_pkeys[0]); | - | ||||||||||||||||||
| 280 | ret->references = 1; | - | ||||||||||||||||||
| 281 | - | |||||||||||||||||||
| 282 | return executed 70 times by 2 tests: ret;return ret;Executed by:
executed 70 times by 2 tests: return ret;Executed by:
| 70 | ||||||||||||||||||
| 283 | } | - | ||||||||||||||||||
| 284 | - | |||||||||||||||||||
| 285 | void | - | ||||||||||||||||||
| 286 | ssl_sess_cert_free(SESS_CERT *sc) | - | ||||||||||||||||||
| 287 | { | - | ||||||||||||||||||
| 288 | int i; | - | ||||||||||||||||||
| 289 | - | |||||||||||||||||||
| 290 | if (sc ==
| 70-140 | ||||||||||||||||||
| 291 | ((void *)0)
| 70-140 | ||||||||||||||||||
| 292 | ) | - | ||||||||||||||||||
| 293 | return; executed 140 times by 5 tests: return;Executed by:
| 140 | ||||||||||||||||||
| 294 | - | |||||||||||||||||||
| 295 | i = CRYPTO_add_lock(&sc->references,-1,15,__FILE__,386); | - | ||||||||||||||||||
| 296 | if (i > 0
| 0-70 | ||||||||||||||||||
| 297 | return; never executed: return; | 0 | ||||||||||||||||||
| 298 | - | |||||||||||||||||||
| 299 | sk_pop_free(((_STACK*) (1 ? (sc->cert_chain) : (struct stack_st_X509*)0)), ((void (*)(void *)) ((1 ? (X509_free) : (void (*)(X509 *))0)))); | - | ||||||||||||||||||
| 300 | for (i = 0; i < 5
| 70-350 | ||||||||||||||||||
| 301 | X509_free(sc->peer_pkeys[i].x509); executed 350 times by 2 tests: X509_free(sc->peer_pkeys[i].x509);Executed by:
| 350 | ||||||||||||||||||
| 302 | - | |||||||||||||||||||
| 303 | DH_free(sc->peer_dh_tmp); | - | ||||||||||||||||||
| 304 | EC_KEY_free(sc->peer_ecdh_tmp); | - | ||||||||||||||||||
| 305 | free(sc->peer_x25519_tmp); | - | ||||||||||||||||||
| 306 | - | |||||||||||||||||||
| 307 | free(sc); | - | ||||||||||||||||||
| 308 | } executed 70 times by 2 tests: end of blockExecuted by:
| 70 | ||||||||||||||||||
| 309 | - | |||||||||||||||||||
| 310 | int | - | ||||||||||||||||||
| 311 | ssl_verify_cert_chain(SSL *s, struct stack_st_X509 *sk) | - | ||||||||||||||||||
| 312 | { | - | ||||||||||||||||||
| 313 | X509_STORE_CTX ctx; | - | ||||||||||||||||||
| 314 | X509 *x; | - | ||||||||||||||||||
| 315 | int ret; | - | ||||||||||||||||||
| 316 | - | |||||||||||||||||||
| 317 | if ((
| 0-60 | ||||||||||||||||||
| 318 | ((void *)0)
| 0-60 | ||||||||||||||||||
| 319 | )
| 0-60 | ||||||||||||||||||
| 320 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 321 | - | |||||||||||||||||||
| 322 | x = ((X509 *)sk_value(((_STACK*) (1 ? (sk) : (struct stack_st_X509*)0)), (0))); | - | ||||||||||||||||||
| 323 | if (!X509_STORE_CTX_init(&ctx, s->ctx->cert_store, x, sk)
| 0-60 | ||||||||||||||||||
| 324 | SSL_error_internal(s, 11, __FILE__, 413); | - | ||||||||||||||||||
| 325 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 326 | } | - | ||||||||||||||||||
| 327 | X509_STORE_CTX_set_ex_data(&ctx, | - | ||||||||||||||||||
| 328 | SSL_get_ex_data_X509_STORE_CTX_idx(), s); | - | ||||||||||||||||||
| 329 | - | |||||||||||||||||||
| 330 | - | |||||||||||||||||||
| 331 | - | |||||||||||||||||||
| 332 | - | |||||||||||||||||||
| 333 | - | |||||||||||||||||||
| 334 | - | |||||||||||||||||||
| 335 | X509_STORE_CTX_set_default(&ctx, | - | ||||||||||||||||||
| 336 | s->server ? "ssl_client" : "ssl_server"); | - | ||||||||||||||||||
| 337 | - | |||||||||||||||||||
| 338 | - | |||||||||||||||||||
| 339 | - | |||||||||||||||||||
| 340 | - | |||||||||||||||||||
| 341 | - | |||||||||||||||||||
| 342 | X509_VERIFY_PARAM_set1(X509_STORE_CTX_get0_param(&ctx), s->param); | - | ||||||||||||||||||
| 343 | - | |||||||||||||||||||
| 344 | if (s->internal->verify_callback
| 14-46 | ||||||||||||||||||
| 345 | X509_STORE_CTX_set_verify_cb(&ctx, s->internal->verify_callback); executed 14 times by 1 test: X509_STORE_CTX_set_verify_cb(&ctx, s->internal->verify_callback);Executed by:
| 14 | ||||||||||||||||||
| 346 | - | |||||||||||||||||||
| 347 | if (s->ctx->internal->app_verify_callback !=
| 18-42 | ||||||||||||||||||
| 348 | ((void *)0)
| 18-42 | ||||||||||||||||||
| 349 | ) | - | ||||||||||||||||||
| 350 | ret = s->ctx->internal->app_verify_callback(&ctx, executed 18 times by 2 tests: ret = s->ctx->internal->app_verify_callback(&ctx, s->ctx->internal->app_verify_arg);Executed by:
| 18 | ||||||||||||||||||
| 351 | s->ctx->internal->app_verify_arg); executed 18 times by 2 tests: ret = s->ctx->internal->app_verify_callback(&ctx, s->ctx->internal->app_verify_arg);Executed by:
| 18 | ||||||||||||||||||
| 352 | else | - | ||||||||||||||||||
| 353 | ret = X509_verify_cert(&ctx); executed 42 times by 1 test: ret = X509_verify_cert(&ctx);Executed by:
| 42 | ||||||||||||||||||
| 354 | - | |||||||||||||||||||
| 355 | s->verify_result = ctx.error; | - | ||||||||||||||||||
| 356 | X509_STORE_CTX_cleanup(&ctx); | - | ||||||||||||||||||
| 357 | - | |||||||||||||||||||
| 358 | return executed 60 times by 2 tests: (ret);return (ret);Executed by:
executed 60 times by 2 tests: return (ret);Executed by:
| 60 | ||||||||||||||||||
| 359 | } | - | ||||||||||||||||||
| 360 | - | |||||||||||||||||||
| 361 | static void | - | ||||||||||||||||||
| 362 | set_client_CA_list(struct stack_st_X509_NAME **ca_list, | - | ||||||||||||||||||
| 363 | struct stack_st_X509_NAME *name_list) | - | ||||||||||||||||||
| 364 | { | - | ||||||||||||||||||
| 365 | sk_pop_free(((_STACK*) (1 ? (*ca_list) : (struct stack_st_X509_NAME*)0)), ((void (*)(void *)) ((1 ? (X509_NAME_free) : (void (*)(X509_NAME *))0)))); | - | ||||||||||||||||||
| 366 | *ca_list = name_list; | - | ||||||||||||||||||
| 367 | } never executed: end of block | 0 | ||||||||||||||||||
| 368 | - | |||||||||||||||||||
| 369 | struct stack_st_X509_NAME * | - | ||||||||||||||||||
| 370 | SSL_dup_CA_list(const struct stack_st_X509_NAME *sk) | - | ||||||||||||||||||
| 371 | { | - | ||||||||||||||||||
| 372 | int i; | - | ||||||||||||||||||
| 373 | struct stack_st_X509_NAME *ret; | - | ||||||||||||||||||
| 374 | X509_NAME *name; | - | ||||||||||||||||||
| 375 | - | |||||||||||||||||||
| 376 | ret = ((struct stack_st_X509_NAME *)sk_new_null()); | - | ||||||||||||||||||
| 377 | for (i = 0; i < sk_num(((_STACK*) (1 ? (sk) : (struct stack_st_X509_NAME*)0)))
| 0 | ||||||||||||||||||
| 378 | name = X509_NAME_dup(((X509_NAME *)sk_value(((_STACK*) (1 ? (sk) : (struct stack_st_X509_NAME*)0)), (i)))); | - | ||||||||||||||||||
| 379 | if ((
| 0 | ||||||||||||||||||
| 380 | ((void *)0)
| 0 | ||||||||||||||||||
| 381 | )
| 0 | ||||||||||||||||||
| 382 | sk_pop_free(((_STACK*) (1 ? (ret) : (struct stack_st_X509_NAME*)0)), ((void (*)(void *)) ((1 ? (X509_NAME_free) : (void (*)(X509_NAME *))0)))); | - | ||||||||||||||||||
| 383 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 384 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 385 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 386 | } | - | ||||||||||||||||||
| 387 | } never executed: end of block | 0 | ||||||||||||||||||
| 388 | return never executed: (ret);return (ret);never executed: return (ret); | 0 | ||||||||||||||||||
| 389 | } | - | ||||||||||||||||||
| 390 | - | |||||||||||||||||||
| 391 | void | - | ||||||||||||||||||
| 392 | SSL_set_client_CA_list(SSL *s, struct stack_st_X509_NAME *name_list) | - | ||||||||||||||||||
| 393 | { | - | ||||||||||||||||||
| 394 | set_client_CA_list(&(s->internal->client_CA), name_list); | - | ||||||||||||||||||
| 395 | } never executed: end of block | 0 | ||||||||||||||||||
| 396 | - | |||||||||||||||||||
| 397 | void | - | ||||||||||||||||||
| 398 | SSL_CTX_set_client_CA_list(SSL_CTX *ctx, struct stack_st_X509_NAME *name_list) | - | ||||||||||||||||||
| 399 | { | - | ||||||||||||||||||
| 400 | set_client_CA_list(&(ctx->internal->client_CA), name_list); | - | ||||||||||||||||||
| 401 | } never executed: end of block | 0 | ||||||||||||||||||
| 402 | - | |||||||||||||||||||
| 403 | struct stack_st_X509_NAME * | - | ||||||||||||||||||
| 404 | SSL_CTX_get_client_CA_list(const SSL_CTX *ctx) | - | ||||||||||||||||||
| 405 | { | - | ||||||||||||||||||
| 406 | return never executed: (ctx->internal->client_CA);return (ctx->internal->client_CA);never executed: return (ctx->internal->client_CA); | 0 | ||||||||||||||||||
| 407 | } | - | ||||||||||||||||||
| 408 | - | |||||||||||||||||||
| 409 | struct stack_st_X509_NAME * | - | ||||||||||||||||||
| 410 | SSL_get_client_CA_list(const SSL *s) | - | ||||||||||||||||||
| 411 | { | - | ||||||||||||||||||
| 412 | if (s->internal->type == 0x1000
| 0-7 | ||||||||||||||||||
| 413 | - | |||||||||||||||||||
| 414 | if (((
| 0 | ||||||||||||||||||
| 415 | (
| 0 | ||||||||||||||||||
| 416 | ((void *)0)
| 0 | ||||||||||||||||||
| 417 | )
| 0 | ||||||||||||||||||
| 418 | return never executed: ((s->s3->internal)->tmp.ca_names);return ((s->s3->internal)->tmp.ca_names);never executed: return ((s->s3->internal)->tmp.ca_names); | 0 | ||||||||||||||||||
| 419 | else | - | ||||||||||||||||||
| 420 | return never executed: (return ( ((void *)0) );never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 421 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 422 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||||||||
| 423 | } else { | - | ||||||||||||||||||
| 424 | if (s->internal->client_CA !=
| 0-7 | ||||||||||||||||||
| 425 | ((void *)0)
| 0-7 | ||||||||||||||||||
| 426 | ) | - | ||||||||||||||||||
| 427 | return never executed: (s->internal->client_CA);return (s->internal->client_CA);never executed: return (s->internal->client_CA); | 0 | ||||||||||||||||||
| 428 | else | - | ||||||||||||||||||
| 429 | return executed 7 times by 1 test: (s->ctx->internal->client_CA);return (s->ctx->internal->client_CA);Executed by:
executed 7 times by 1 test: return (s->ctx->internal->client_CA);Executed by:
| 7 | ||||||||||||||||||
| 430 | } | - | ||||||||||||||||||
| 431 | } | - | ||||||||||||||||||
| 432 | - | |||||||||||||||||||
| 433 | static int | - | ||||||||||||||||||
| 434 | add_client_CA(struct stack_st_X509_NAME **sk, X509 *x) | - | ||||||||||||||||||
| 435 | { | - | ||||||||||||||||||
| 436 | X509_NAME *name; | - | ||||||||||||||||||
| 437 | - | |||||||||||||||||||
| 438 | if (x ==
| 0 | ||||||||||||||||||
| 439 | ((void *)0)
| 0 | ||||||||||||||||||
| 440 | ) | - | ||||||||||||||||||
| 441 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 442 | if ((*
| 0 | ||||||||||||||||||
| 443 | ((void *)0)
| 0 | ||||||||||||||||||
| 444 | )
| 0 | ||||||||||||||||||
| 445 | ((void *)0)
| 0 | ||||||||||||||||||
| 446 | )
| 0 | ||||||||||||||||||
| 447 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 448 | - | |||||||||||||||||||
| 449 | if ((
| 0 | ||||||||||||||||||
| 450 | ((void *)0)
| 0 | ||||||||||||||||||
| 451 | ) | - | ||||||||||||||||||
| 452 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 453 | - | |||||||||||||||||||
| 454 | if (!sk_push(((_STACK*) (1 ? (*sk) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (name) : (X509_NAME*)0)))
| 0 | ||||||||||||||||||
| 455 | X509_NAME_free(name); | - | ||||||||||||||||||
| 456 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||
| 457 | } | - | ||||||||||||||||||
| 458 | return never executed: (1);return (1);never executed: return (1); | 0 | ||||||||||||||||||
| 459 | } | - | ||||||||||||||||||
| 460 | - | |||||||||||||||||||
| 461 | int | - | ||||||||||||||||||
| 462 | SSL_add_client_CA(SSL *ssl, X509 *x) | - | ||||||||||||||||||
| 463 | { | - | ||||||||||||||||||
| 464 | return never executed: (add_client_CA(&(ssl->internal->client_CA), x));return (add_client_CA(&(ssl->internal->client_CA), x));never executed: return (add_client_CA(&(ssl->internal->client_CA), x)); | 0 | ||||||||||||||||||
| 465 | } | - | ||||||||||||||||||
| 466 | - | |||||||||||||||||||
| 467 | int | - | ||||||||||||||||||
| 468 | SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x) | - | ||||||||||||||||||
| 469 | { | - | ||||||||||||||||||
| 470 | return never executed: (add_client_CA(&(ctx->internal->client_CA), x));return (add_client_CA(&(ctx->internal->client_CA), x));never executed: return (add_client_CA(&(ctx->internal->client_CA), x)); | 0 | ||||||||||||||||||
| 471 | } | - | ||||||||||||||||||
| 472 | - | |||||||||||||||||||
| 473 | static int | - | ||||||||||||||||||
| 474 | xname_cmp(const X509_NAME * const *a, const X509_NAME * const *b) | - | ||||||||||||||||||
| 475 | { | - | ||||||||||||||||||
| 476 | return never executed: (X509_NAME_cmp(*a, *b));return (X509_NAME_cmp(*a, *b));never executed: return (X509_NAME_cmp(*a, *b)); | 0 | ||||||||||||||||||
| 477 | } | - | ||||||||||||||||||
| 478 | struct stack_st_X509_NAME * | - | ||||||||||||||||||
| 479 | SSL_load_client_CA_file(const char *file) | - | ||||||||||||||||||
| 480 | { | - | ||||||||||||||||||
| 481 | BIO *in; | - | ||||||||||||||||||
| 482 | X509 *x = | - | ||||||||||||||||||
| 483 | ((void *)0) | - | ||||||||||||||||||
| 484 | ; | - | ||||||||||||||||||
| 485 | X509_NAME *xn = | - | ||||||||||||||||||
| 486 | ((void *)0) | - | ||||||||||||||||||
| 487 | ; | - | ||||||||||||||||||
| 488 | struct stack_st_X509_NAME *ret = | - | ||||||||||||||||||
| 489 | ((void *)0) | - | ||||||||||||||||||
| 490 | , *sk; | - | ||||||||||||||||||
| 491 | - | |||||||||||||||||||
| 492 | sk = ((struct stack_st_X509_NAME *)sk_new(((int (*)(const void *, const void *)) ((1 ? (xname_cmp) : (int (*)(const X509_NAME * const *, const X509_NAME * const *))0))))); | - | ||||||||||||||||||
| 493 | - | |||||||||||||||||||
| 494 | in = BIO_new(BIO_s_file()); | - | ||||||||||||||||||
| 495 | - | |||||||||||||||||||
| 496 | if ((
| 0 | ||||||||||||||||||
| 497 | ((void *)0)
| 0 | ||||||||||||||||||
| 498 | )
| 0 | ||||||||||||||||||
| 499 | ((void *)0)
| 0 | ||||||||||||||||||
| 500 | )
| 0 | ||||||||||||||||||
| 501 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,569); | - | ||||||||||||||||||
| 502 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 503 | } | - | ||||||||||||||||||
| 504 | - | |||||||||||||||||||
| 505 | if (!BIO_ctrl(in,108, 0x01|0x02,(char *)file)
| 0 | ||||||||||||||||||
| 506 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 507 | - | |||||||||||||||||||
| 508 | for (;;) { | - | ||||||||||||||||||
| 509 | if (PEM_read_bio_X509(in, &x,
| 0 | ||||||||||||||||||
| 510 | ((void *)0)
| 0 | ||||||||||||||||||
| 511 | ,
| 0 | ||||||||||||||||||
| 512 | ((void *)0)
| 0 | ||||||||||||||||||
| 513 | ) ==
| 0 | ||||||||||||||||||
| 514 | ((void *)0)
| 0 | ||||||||||||||||||
| 515 | ) | - | ||||||||||||||||||
| 516 | break; never executed: break; | 0 | ||||||||||||||||||
| 517 | if (ret ==
| 0 | ||||||||||||||||||
| 518 | ((void *)0)
| 0 | ||||||||||||||||||
| 519 | ) { | - | ||||||||||||||||||
| 520 | ret = ((struct stack_st_X509_NAME *)sk_new_null()); | - | ||||||||||||||||||
| 521 | if (ret ==
| 0 | ||||||||||||||||||
| 522 | ((void *)0)
| 0 | ||||||||||||||||||
| 523 | ) { | - | ||||||||||||||||||
| 524 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,582); | - | ||||||||||||||||||
| 525 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 526 | } | - | ||||||||||||||||||
| 527 | } never executed: end of block | 0 | ||||||||||||||||||
| 528 | if ((
| 0 | ||||||||||||||||||
| 529 | ((void *)0)
| 0 | ||||||||||||||||||
| 530 | ) goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 531 | - | |||||||||||||||||||
| 532 | xn = X509_NAME_dup(xn); | - | ||||||||||||||||||
| 533 | if (xn ==
| 0 | ||||||||||||||||||
| 534 | ((void *)0)
| 0 | ||||||||||||||||||
| 535 | ) | - | ||||||||||||||||||
| 536 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 537 | if (sk_find(((_STACK*) (1 ? (sk) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))) >= 0
| 0 | ||||||||||||||||||
| 538 | X509_NAME_free(xn); never executed: X509_NAME_free(xn); | 0 | ||||||||||||||||||
| 539 | else { | - | ||||||||||||||||||
| 540 | sk_push(((_STACK*) (1 ? (sk) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))); | - | ||||||||||||||||||
| 541 | sk_push(((_STACK*) (1 ? (ret) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))); | - | ||||||||||||||||||
| 542 | } never executed: end of block | 0 | ||||||||||||||||||
| 543 | } | - | ||||||||||||||||||
| 544 | - | |||||||||||||||||||
| 545 | if (0) { | - | ||||||||||||||||||
| 546 | err: | - | ||||||||||||||||||
| 547 | sk_pop_free(((_STACK*) (1 ? (ret) : (struct stack_st_X509_NAME*)0)), ((void (*)(void *)) ((1 ? (X509_NAME_free) : (void (*)(X509_NAME *))0)))); | - | ||||||||||||||||||
| 548 | ret = | - | ||||||||||||||||||
| 549 | ((void *)0) | - | ||||||||||||||||||
| 550 | ; | - | ||||||||||||||||||
| 551 | } never executed: end of block | 0 | ||||||||||||||||||
| 552 | sk_free(((_STACK*) (1 ? (sk) : (struct stack_st_X509_NAME*)0))); | - | ||||||||||||||||||
| 553 | BIO_free(in); | - | ||||||||||||||||||
| 554 | X509_free(x); | - | ||||||||||||||||||
| 555 | if (ret !=
| 0 | ||||||||||||||||||
| 556 | ((void *)0)
| 0 | ||||||||||||||||||
| 557 | ) | - | ||||||||||||||||||
| 558 | ERR_clear_error(); never executed: ERR_clear_error(); | 0 | ||||||||||||||||||
| 559 | - | |||||||||||||||||||
| 560 | return never executed: (ret);return (ret);never executed: return (ret); | 0 | ||||||||||||||||||
| 561 | } | - | ||||||||||||||||||
| 562 | int | - | ||||||||||||||||||
| 563 | SSL_add_file_cert_subjects_to_stack(struct stack_st_X509_NAME *stack, | - | ||||||||||||||||||
| 564 | const char *file) | - | ||||||||||||||||||
| 565 | { | - | ||||||||||||||||||
| 566 | BIO *in; | - | ||||||||||||||||||
| 567 | X509 *x = | - | ||||||||||||||||||
| 568 | ((void *)0) | - | ||||||||||||||||||
| 569 | ; | - | ||||||||||||||||||
| 570 | X509_NAME *xn = | - | ||||||||||||||||||
| 571 | ((void *)0) | - | ||||||||||||||||||
| 572 | ; | - | ||||||||||||||||||
| 573 | int ret = 1; | - | ||||||||||||||||||
| 574 | int (*oldcmp)(const X509_NAME * const *a, const X509_NAME * const *b); | - | ||||||||||||||||||
| 575 | - | |||||||||||||||||||
| 576 | oldcmp = ((int (*)(const X509_NAME * const *,const X509_NAME * const *)) sk_set_cmp_func(((_STACK*) (1 ? (stack) : (struct stack_st_X509_NAME*)0)), ((int (*)(const void *, const void *)) ((1 ? (xname_cmp) : (int (*)(const X509_NAME * const *, const X509_NAME * const *))0))))); | - | ||||||||||||||||||
| 577 | - | |||||||||||||||||||
| 578 | in = BIO_new(BIO_s_file()); | - | ||||||||||||||||||
| 579 | - | |||||||||||||||||||
| 580 | if (in ==
| 0 | ||||||||||||||||||
| 581 | ((void *)0)
| 0 | ||||||||||||||||||
| 582 | ) { | - | ||||||||||||||||||
| 583 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,637); | - | ||||||||||||||||||
| 584 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 585 | } | - | ||||||||||||||||||
| 586 | - | |||||||||||||||||||
| 587 | if (!BIO_ctrl(in,108, 0x01|0x02,(char *)file)
| 0 | ||||||||||||||||||
| 588 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 589 | - | |||||||||||||||||||
| 590 | for (;;) { | - | ||||||||||||||||||
| 591 | if (PEM_read_bio_X509(in, &x,
| 0 | ||||||||||||||||||
| 592 | ((void *)0)
| 0 | ||||||||||||||||||
| 593 | ,
| 0 | ||||||||||||||||||
| 594 | ((void *)0)
| 0 | ||||||||||||||||||
| 595 | ) ==
| 0 | ||||||||||||||||||
| 596 | ((void *)0)
| 0 | ||||||||||||||||||
| 597 | ) | - | ||||||||||||||||||
| 598 | break; never executed: break; | 0 | ||||||||||||||||||
| 599 | if ((
| 0 | ||||||||||||||||||
| 600 | ((void *)0)
| 0 | ||||||||||||||||||
| 601 | ) goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 602 | xn = X509_NAME_dup(xn); | - | ||||||||||||||||||
| 603 | if (xn ==
| 0 | ||||||||||||||||||
| 604 | ((void *)0)
| 0 | ||||||||||||||||||
| 605 | ) | - | ||||||||||||||||||
| 606 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 607 | if (sk_find(((_STACK*) (1 ? (stack) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))) >= 0
| 0 | ||||||||||||||||||
| 608 | X509_NAME_free(xn); never executed: X509_NAME_free(xn); | 0 | ||||||||||||||||||
| 609 | else | - | ||||||||||||||||||
| 610 | sk_push(((_STACK*) (1 ? (stack) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))); never executed: sk_push(((_STACK*) (1 ? (stack) : (struct stack_st_X509_NAME*)0)), ((void*) (1 ? (xn) : (X509_NAME*)0))); | 0 | ||||||||||||||||||
| 611 | } | - | ||||||||||||||||||
| 612 | - | |||||||||||||||||||
| 613 | ERR_clear_error(); | - | ||||||||||||||||||
| 614 | - | |||||||||||||||||||
| 615 | if (0) { | - | ||||||||||||||||||
| 616 | err: | - | ||||||||||||||||||
| 617 | ret = 0; | - | ||||||||||||||||||
| 618 | } never executed: end of block | 0 | ||||||||||||||||||
| 619 | BIO_free(in); | - | ||||||||||||||||||
| 620 | X509_free(x); | - | ||||||||||||||||||
| 621 | - | |||||||||||||||||||
| 622 | (void)((int (*)(const X509_NAME * const *,const X509_NAME * const *)) sk_set_cmp_func(((_STACK*) (1 ? (stack) : (struct stack_st_X509_NAME*)0)), ((int (*)(const void *, const void *)) ((1 ? (oldcmp) : (int (*)(const X509_NAME * const *, const X509_NAME * const *))0))))); | - | ||||||||||||||||||
| 623 | - | |||||||||||||||||||
| 624 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||
| 625 | } | - | ||||||||||||||||||
| 626 | int | - | ||||||||||||||||||
| 627 | SSL_add_dir_cert_subjects_to_stack(struct stack_st_X509_NAME *stack, const char *dir) | - | ||||||||||||||||||
| 628 | { | - | ||||||||||||||||||
| 629 | DIR *dirp = | - | ||||||||||||||||||
| 630 | ((void *)0) | - | ||||||||||||||||||
| 631 | ; | - | ||||||||||||||||||
| 632 | char *path = | - | ||||||||||||||||||
| 633 | ((void *)0) | - | ||||||||||||||||||
| 634 | ; | - | ||||||||||||||||||
| 635 | int ret = 0; | - | ||||||||||||||||||
| 636 | - | |||||||||||||||||||
| 637 | dirp = opendir(dir); | - | ||||||||||||||||||
| 638 | if (dirp
| 0 | ||||||||||||||||||
| 639 | struct dirent *dp; | - | ||||||||||||||||||
| 640 | while ((
| 0 | ||||||||||||||||||
| 641 | ((void *)0)
| 0 | ||||||||||||||||||
| 642 | ) { | - | ||||||||||||||||||
| 643 | if (asprintf(&path, "%s/%s", dir, dp->d_name) != -1
| 0 | ||||||||||||||||||
| 644 | ret = SSL_add_file_cert_subjects_to_stack( | - | ||||||||||||||||||
| 645 | stack, path); | - | ||||||||||||||||||
| 646 | free(path); | - | ||||||||||||||||||
| 647 | } never executed: end of block | 0 | ||||||||||||||||||
| 648 | if (!ret
| 0 | ||||||||||||||||||
| 649 | break; never executed: break; | 0 | ||||||||||||||||||
| 650 | } never executed: end of block | 0 | ||||||||||||||||||
| 651 | (void) closedir(dirp); | - | ||||||||||||||||||
| 652 | } never executed: end of block | 0 | ||||||||||||||||||
| 653 | if (!ret
| 0 | ||||||||||||||||||
| 654 | ERR_put_error(2,(0xfff),( | - | ||||||||||||||||||
| 655 | (*__errno_location ()) | - | ||||||||||||||||||
| 656 | ),__FILE__,704); | - | ||||||||||||||||||
| 657 | ERR_asprintf_error_data("opendir ('%s')", dir); | - | ||||||||||||||||||
| 658 | ERR_put_error(20,(0xfff),(2),__FILE__,706); | - | ||||||||||||||||||
| 659 | } never executed: end of block | 0 | ||||||||||||||||||
| 660 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||
| 661 | } | - | ||||||||||||||||||
| Switch to Source code | Preprocessed file |