| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pkcs7/pk7_smime.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||
| 2 | - | |||||||||||||||||||
| 3 | static int pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si); | - | ||||||||||||||||||
| 4 | - | |||||||||||||||||||
| 5 | PKCS7 * | - | ||||||||||||||||||
| 6 | PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, BIO *data, | - | ||||||||||||||||||
| 7 | int flags) | - | ||||||||||||||||||
| 8 | { | - | ||||||||||||||||||
| 9 | PKCS7 *p7; | - | ||||||||||||||||||
| 10 | int i; | - | ||||||||||||||||||
| 11 | - | |||||||||||||||||||
| 12 | if (!(p7 = PKCS7_new())
| 0-2 | ||||||||||||||||||
| 13 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,77); | - | ||||||||||||||||||
| 14 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 15 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 16 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 17 | } | - | ||||||||||||||||||
| 18 | - | |||||||||||||||||||
| 19 | if (!PKCS7_set_type(p7, 22)
| 0-2 | ||||||||||||||||||
| 20 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 21 | - | |||||||||||||||||||
| 22 | if (!PKCS7_content_new(p7, 21)
| 0-2 | ||||||||||||||||||
| 23 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 24 | - | |||||||||||||||||||
| 25 | if (pkey
| 0-1 | ||||||||||||||||||
| 26 | ((void *)0)
| 0-1 | ||||||||||||||||||
| 27 | , flags)
| 0-1 | ||||||||||||||||||
| 28 | ERR_put_error(33,(0xfff),(153),__FILE__,88); | - | ||||||||||||||||||
| 29 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 30 | } | - | ||||||||||||||||||
| 31 | - | |||||||||||||||||||
| 32 | if (!(flags & 0x2)
| 0-2 | ||||||||||||||||||
| 33 | for (i = 0; i < sk_num(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)))
| 1-2 | ||||||||||||||||||
| 34 | if (!PKCS7_add_certificate(p7, ((X509 *)sk_value(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)), (i))))
| 0-1 | ||||||||||||||||||
| 35 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 36 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||
| 37 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 38 | - | |||||||||||||||||||
| 39 | if (flags & 0x40
| 1 | ||||||||||||||||||
| 40 | PKCS7_ctrl(p7,1,1, executed 1 time by 1 test: PKCS7_ctrl(p7,1,1, ((void *)0) );Executed by:
| 1 | ||||||||||||||||||
| 41 | ((void *)0) executed 1 time by 1 test: PKCS7_ctrl(p7,1,1, ((void *)0) );Executed by:
| 1 | ||||||||||||||||||
| 42 | ); executed 1 time by 1 test: PKCS7_ctrl(p7,1,1, ((void *)0) );Executed by:
| 1 | ||||||||||||||||||
| 43 | - | |||||||||||||||||||
| 44 | if (flags & (0x1000|0x4000)
| 1 | ||||||||||||||||||
| 45 | return executed 1 time by 1 test: p7;return p7;Executed by:
executed 1 time by 1 test: return p7;Executed by:
| 1 | ||||||||||||||||||
| 46 | - | |||||||||||||||||||
| 47 | if (PKCS7_final(p7, data, flags)
| 0-1 | ||||||||||||||||||
| 48 | return executed 1 time by 1 test: p7;return p7;Executed by:
executed 1 time by 1 test: return p7;Executed by:
| 1 | ||||||||||||||||||
| 49 | - | |||||||||||||||||||
| 50 | err: code before this statement never executed: err: | 0 | ||||||||||||||||||
| 51 | PKCS7_free(p7); | - | ||||||||||||||||||
| 52 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 53 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 54 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 55 | } | - | ||||||||||||||||||
| 56 | - | |||||||||||||||||||
| 57 | int | - | ||||||||||||||||||
| 58 | PKCS7_final(PKCS7 *p7, BIO *data, int flags) | - | ||||||||||||||||||
| 59 | { | - | ||||||||||||||||||
| 60 | BIO *p7bio; | - | ||||||||||||||||||
| 61 | int ret = 0; | - | ||||||||||||||||||
| 62 | - | |||||||||||||||||||
| 63 | if (!(p7bio = PKCS7_dataInit(p7,
| 0-3 | ||||||||||||||||||
| 64 | ((void *)0)
| 0-3 | ||||||||||||||||||
| 65 | ))
| 0-3 | ||||||||||||||||||
| 66 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,120); | - | ||||||||||||||||||
| 67 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 68 | } | - | ||||||||||||||||||
| 69 | - | |||||||||||||||||||
| 70 | SMIME_crlf_copy(data, p7bio, flags); | - | ||||||||||||||||||
| 71 | - | |||||||||||||||||||
| 72 | (void)(int)BIO_ctrl(p7bio,11,0, | - | ||||||||||||||||||
| 73 | ((void *)0) | - | ||||||||||||||||||
| 74 | ); | - | ||||||||||||||||||
| 75 | - | |||||||||||||||||||
| 76 | if (!PKCS7_dataFinal(p7, p7bio)
| 0-3 | ||||||||||||||||||
| 77 | ERR_put_error(33,(0xfff),(145),__FILE__,129); | - | ||||||||||||||||||
| 78 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 79 | } | - | ||||||||||||||||||
| 80 | - | |||||||||||||||||||
| 81 | ret = 1; | - | ||||||||||||||||||
| 82 | - | |||||||||||||||||||
| 83 | err: code before this statement executed 3 times by 1 test: err:Executed by:
| 3 | ||||||||||||||||||
| 84 | BIO_free_all(p7bio); | - | ||||||||||||||||||
| 85 | - | |||||||||||||||||||
| 86 | return executed 3 times by 1 test: ret;return ret;Executed by:
executed 3 times by 1 test: return ret;Executed by:
| 3 | ||||||||||||||||||
| 87 | } | - | ||||||||||||||||||
| 88 | - | |||||||||||||||||||
| 89 | - | |||||||||||||||||||
| 90 | - | |||||||||||||||||||
| 91 | static int | - | ||||||||||||||||||
| 92 | add_cipher_smcap(struct stack_st_X509_ALGOR *sk, int nid, int arg) | - | ||||||||||||||||||
| 93 | { | - | ||||||||||||||||||
| 94 | if (EVP_get_cipherbyname(OBJ_nid2sn(nid))
| 0-18 | ||||||||||||||||||
| 95 | return executed 18 times by 1 test: PKCS7_simple_smimecap(sk, nid, arg);return PKCS7_simple_smimecap(sk, nid, arg);Executed by:
executed 18 times by 1 test: return PKCS7_simple_smimecap(sk, nid, arg);Executed by:
| 18 | ||||||||||||||||||
| 96 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||
| 97 | } | - | ||||||||||||||||||
| 98 | - | |||||||||||||||||||
| 99 | static int | - | ||||||||||||||||||
| 100 | add_digest_smcap(struct stack_st_X509_ALGOR *sk, int nid, int arg) | - | ||||||||||||||||||
| 101 | { | - | ||||||||||||||||||
| 102 | if (EVP_get_digestbyname(OBJ_nid2sn(nid))
| 0-6 | ||||||||||||||||||
| 103 | return executed 6 times by 1 test: PKCS7_simple_smimecap(sk, nid, arg);return PKCS7_simple_smimecap(sk, nid, arg);Executed by:
executed 6 times by 1 test: return PKCS7_simple_smimecap(sk, nid, arg);Executed by:
| 6 | ||||||||||||||||||
| 104 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||
| 105 | } | - | ||||||||||||||||||
| 106 | - | |||||||||||||||||||
| 107 | PKCS7_SIGNER_INFO * | - | ||||||||||||||||||
| 108 | PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert, EVP_PKEY *pkey, | - | ||||||||||||||||||
| 109 | const EVP_MD *md, int flags) | - | ||||||||||||||||||
| 110 | { | - | ||||||||||||||||||
| 111 | PKCS7_SIGNER_INFO *si = | - | ||||||||||||||||||
| 112 | ((void *)0) | - | ||||||||||||||||||
| 113 | ; | - | ||||||||||||||||||
| 114 | struct stack_st_X509_ALGOR *smcap = | - | ||||||||||||||||||
| 115 | ((void *)0) | - | ||||||||||||||||||
| 116 | ; | - | ||||||||||||||||||
| 117 | - | |||||||||||||||||||
| 118 | if (!X509_check_private_key(signcert, pkey)
| 0-2 | ||||||||||||||||||
| 119 | ERR_put_error(33,(0xfff),(127),__FILE__,167); | - | ||||||||||||||||||
| 120 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 121 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 122 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 123 | } | - | ||||||||||||||||||
| 124 | - | |||||||||||||||||||
| 125 | if (!(si = PKCS7_add_signature(p7, signcert, pkey, md))
| 0-2 | ||||||||||||||||||
| 126 | ERR_put_error(33,(0xfff),(124),__FILE__,172); | - | ||||||||||||||||||
| 127 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 128 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 129 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 130 | } | - | ||||||||||||||||||
| 131 | - | |||||||||||||||||||
| 132 | if (!(flags & 0x2)
| 0-2 | ||||||||||||||||||
| 133 | if (!PKCS7_add_certificate(p7, signcert)
| 0-2 | ||||||||||||||||||
| 134 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 135 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 136 | - | |||||||||||||||||||
| 137 | if (!(flags & 0x100)
| 0-2 | ||||||||||||||||||
| 138 | if (!PKCS7_add_attrib_content_type(si,
| 0-2 | ||||||||||||||||||
| 139 | ((void *)0)
| 0-2 | ||||||||||||||||||
| 140 | )
| 0-2 | ||||||||||||||||||
| 141 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 142 | - | |||||||||||||||||||
| 143 | if (!(flags & 0x200)
| 0-2 | ||||||||||||||||||
| 144 | if (!(smcap = ((struct stack_st_X509_ALGOR *)sk_new_null()))
| 0-2 | ||||||||||||||||||
| 145 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,187); | - | ||||||||||||||||||
| 146 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 147 | } | - | ||||||||||||||||||
| 148 | if (!add_cipher_smcap(smcap, 427, -1)
| 0-2 | ||||||||||||||||||
| 149 | !add_digest_smcap(smcap, 809, -1)
| 0-2 | ||||||||||||||||||
| 150 | !add_digest_smcap(smcap, 941, -1)
| 0-2 | ||||||||||||||||||
| 151 | !add_digest_smcap(smcap, 942, -1)
| 0-2 | ||||||||||||||||||
| 152 | !add_cipher_smcap(smcap, 813, -1)
| 0-2 | ||||||||||||||||||
| 153 | !add_cipher_smcap(smcap, 423, -1)
| 0-2 | ||||||||||||||||||
| 154 | !add_cipher_smcap(smcap, 419, -1)
| 0-2 | ||||||||||||||||||
| 155 | !add_cipher_smcap(smcap, 44, -1)
| 0-2 | ||||||||||||||||||
| 156 | !add_cipher_smcap(smcap, 37, 128)
| 0-2 | ||||||||||||||||||
| 157 | !add_cipher_smcap(smcap, 37, 64)
| 0-2 | ||||||||||||||||||
| 158 | !add_cipher_smcap(smcap, 31, -1)
| 0-2 | ||||||||||||||||||
| 159 | !add_cipher_smcap(smcap, 37, 40)
| 0-2 | ||||||||||||||||||
| 160 | !PKCS7_add_attrib_smimecap(si, smcap)
| 0-2 | ||||||||||||||||||
| 161 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 162 | sk_pop_free(((_STACK*) (1 ? (smcap) : (struct stack_st_X509_ALGOR*)0)), ((void (*)(void *)) ((1 ? (X509_ALGOR_free) : (void (*)(X509_ALGOR *))0)))); | - | ||||||||||||||||||
| 163 | smcap = | - | ||||||||||||||||||
| 164 | ((void *)0) | - | ||||||||||||||||||
| 165 | ; | - | ||||||||||||||||||
| 166 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 167 | if (flags & 0x8000
| 0-2 | ||||||||||||||||||
| 168 | if (!pkcs7_copy_existing_digest(p7, si)
| 0 | ||||||||||||||||||
| 169 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 170 | if (!(flags & 0x4000)
| 0 | ||||||||||||||||||
| 171 | !PKCS7_SIGNER_INFO_sign(si)
| 0 | ||||||||||||||||||
| 172 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 173 | } never executed: end of block | 0 | ||||||||||||||||||
| 174 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 175 | return executed 2 times by 1 test: si;return si;Executed by:
executed 2 times by 1 test: return si;Executed by:
| 2 | ||||||||||||||||||
| 176 | - | |||||||||||||||||||
| 177 | err: | - | ||||||||||||||||||
| 178 | if (smcap
| 0 | ||||||||||||||||||
| 179 | sk_pop_free(((_STACK*) (1 ? (smcap) : (struct stack_st_X509_ALGOR*)0)), ((void (*)(void *)) ((1 ? (X509_ALGOR_free) : (void (*)(X509_ALGOR *))0)))); never executed: sk_pop_free(((_STACK*) (1 ? (smcap) : (struct stack_st_X509_ALGOR*)0)), ((void (*)(void *)) ((1 ? (X509_ALGOR_free) : (void (*)(X509_ALGOR *))0)))); | 0 | ||||||||||||||||||
| 180 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 181 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 182 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 183 | } | - | ||||||||||||||||||
| 184 | - | |||||||||||||||||||
| 185 | - | |||||||||||||||||||
| 186 | - | |||||||||||||||||||
| 187 | - | |||||||||||||||||||
| 188 | - | |||||||||||||||||||
| 189 | static int | - | ||||||||||||||||||
| 190 | pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si) | - | ||||||||||||||||||
| 191 | { | - | ||||||||||||||||||
| 192 | int i; | - | ||||||||||||||||||
| 193 | struct stack_st_PKCS7_SIGNER_INFO *sinfos; | - | ||||||||||||||||||
| 194 | PKCS7_SIGNER_INFO *sitmp; | - | ||||||||||||||||||
| 195 | ASN1_OCTET_STRING *osdig = | - | ||||||||||||||||||
| 196 | ((void *)0) | - | ||||||||||||||||||
| 197 | ; | - | ||||||||||||||||||
| 198 | - | |||||||||||||||||||
| 199 | sinfos = PKCS7_get_signer_info(p7); | - | ||||||||||||||||||
| 200 | for (i = 0; i < sk_num(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)))
| 0 | ||||||||||||||||||
| 201 | sitmp = ((PKCS7_SIGNER_INFO *)sk_value(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)), (i))); | - | ||||||||||||||||||
| 202 | if (si == sitmp
| 0 | ||||||||||||||||||
| 203 | break; never executed: break; | 0 | ||||||||||||||||||
| 204 | if (sk_num(((_STACK*) (1 ? (sitmp->auth_attr) : (struct stack_st_X509_ATTRIBUTE*)0))) <= 0
| 0 | ||||||||||||||||||
| 205 | continue; never executed: continue; | 0 | ||||||||||||||||||
| 206 | if (!OBJ_cmp(si->digest_alg->algorithm,
| 0 | ||||||||||||||||||
| 207 | sitmp->digest_alg->algorithm)
| 0 | ||||||||||||||||||
| 208 | osdig = PKCS7_digest_from_attributes(sitmp->auth_attr); | - | ||||||||||||||||||
| 209 | break; never executed: break; | 0 | ||||||||||||||||||
| 210 | } | - | ||||||||||||||||||
| 211 | - | |||||||||||||||||||
| 212 | } never executed: end of block | 0 | ||||||||||||||||||
| 213 | - | |||||||||||||||||||
| 214 | if (osdig
| 0 | ||||||||||||||||||
| 215 | return never executed: PKCS7_add1_attrib_digest(si, osdig->data, osdig->length);return PKCS7_add1_attrib_digest(si, osdig->data, osdig->length);never executed: return PKCS7_add1_attrib_digest(si, osdig->data, osdig->length); | 0 | ||||||||||||||||||
| 216 | - | |||||||||||||||||||
| 217 | ERR_put_error(33,(0xfff),(154),__FILE__,253); | - | ||||||||||||||||||
| 218 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 219 | } | - | ||||||||||||||||||
| 220 | - | |||||||||||||||||||
| 221 | int | - | ||||||||||||||||||
| 222 | PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, BIO *indata, | - | ||||||||||||||||||
| 223 | BIO *out, int flags) | - | ||||||||||||||||||
| 224 | { | - | ||||||||||||||||||
| 225 | struct stack_st_X509 *signers; | - | ||||||||||||||||||
| 226 | X509 *signer; | - | ||||||||||||||||||
| 227 | struct stack_st_PKCS7_SIGNER_INFO *sinfos; | - | ||||||||||||||||||
| 228 | PKCS7_SIGNER_INFO *si; | - | ||||||||||||||||||
| 229 | X509_STORE_CTX cert_ctx; | - | ||||||||||||||||||
| 230 | char buf[4096]; | - | ||||||||||||||||||
| 231 | int i, j = 0, k, ret = 0; | - | ||||||||||||||||||
| 232 | BIO *p7bio; | - | ||||||||||||||||||
| 233 | BIO *tmpin, *tmpout; | - | ||||||||||||||||||
| 234 | - | |||||||||||||||||||
| 235 | if (!p7
| 0-2 | ||||||||||||||||||
| 236 | ERR_put_error(33,(0xfff),(143),__FILE__,272); | - | ||||||||||||||||||
| 237 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 238 | } | - | ||||||||||||||||||
| 239 | - | |||||||||||||||||||
| 240 | if (!(OBJ_obj2nid((p7)->type) == 22)
| 0-2 | ||||||||||||||||||
| 241 | ERR_put_error(33,(0xfff),(113),__FILE__,277); | - | ||||||||||||||||||
| 242 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 243 | } | - | ||||||||||||||||||
| 244 | - | |||||||||||||||||||
| 245 | - | |||||||||||||||||||
| 246 | if (PKCS7_ctrl(p7,2,0,
| 1 | ||||||||||||||||||
| 247 | ((void *)0)
| 1 | ||||||||||||||||||
| 248 | )
| 0-1 | ||||||||||||||||||
| 249 | ERR_put_error(33,(0xfff),(122),__FILE__,283); | - | ||||||||||||||||||
| 250 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 251 | } | - | ||||||||||||||||||
| 252 | - | |||||||||||||||||||
| 253 | - | |||||||||||||||||||
| 254 | - | |||||||||||||||||||
| 255 | - | |||||||||||||||||||
| 256 | - | |||||||||||||||||||
| 257 | - | |||||||||||||||||||
| 258 | if (!PKCS7_ctrl(p7,2,0,
| 1 | ||||||||||||||||||
| 259 | ((void *)0)
| 1 | ||||||||||||||||||
| 260 | )
| 0-1 | ||||||||||||||||||
| 261 | ERR_put_error(33,(0xfff),(118),__FILE__,293); | - | ||||||||||||||||||
| 262 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 263 | } | - | ||||||||||||||||||
| 264 | - | |||||||||||||||||||
| 265 | sinfos = PKCS7_get_signer_info(p7); | - | ||||||||||||||||||
| 266 | - | |||||||||||||||||||
| 267 | if (!sinfos
| 0-2 | ||||||||||||||||||
| 268 | ERR_put_error(33,(0xfff),(123),__FILE__,300); | - | ||||||||||||||||||
| 269 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 270 | } | - | ||||||||||||||||||
| 271 | - | |||||||||||||||||||
| 272 | - | |||||||||||||||||||
| 273 | signers = PKCS7_get0_signers(p7, certs, flags); | - | ||||||||||||||||||
| 274 | - | |||||||||||||||||||
| 275 | if (!signers
| 0-2 | ||||||||||||||||||
| 276 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 277 | - | |||||||||||||||||||
| 278 | - | |||||||||||||||||||
| 279 | - | |||||||||||||||||||
| 280 | if (!(flags & 0x20)
| 0-2 | ||||||||||||||||||
| 281 | for (k = 0; k < sk_num(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0)))
| 2 | ||||||||||||||||||
| 282 | signer = ((X509 *)sk_value(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0)), (k))); | - | ||||||||||||||||||
| 283 | if (!(flags & 0x8)
| 0-2 | ||||||||||||||||||
| 284 | if (!X509_STORE_CTX_init(&cert_ctx, store,
| 0-2 | ||||||||||||||||||
| 285 | signer, p7->d.sign->cert)
| 0-2 | ||||||||||||||||||
| 286 | ERR_put_error(33,(0xfff),(11),__FILE__,318); | - | ||||||||||||||||||
| 287 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 288 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 289 | } | - | ||||||||||||||||||
| 290 | if (X509_STORE_CTX_set_default(&cert_ctx,
| 0-2 | ||||||||||||||||||
| 291 | "smime_sign") == 0
| 0-2 | ||||||||||||||||||
| 292 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 293 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 294 | } | - | ||||||||||||||||||
| 295 | } executed 2 times by 1 test: else if (!X509_STORE_CTX_init(&cert_ctx, store,end of blockExecuted by:
| 0-2 | ||||||||||||||||||
| 296 | signer,
| 0 | ||||||||||||||||||
| 297 | ((void *)0)
| 0 | ||||||||||||||||||
| 298 | )
| 0 | ||||||||||||||||||
| 299 | ERR_put_error(33,(0xfff),(11),__FILE__,329); | - | ||||||||||||||||||
| 300 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 301 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 302 | } | - | ||||||||||||||||||
| 303 | if (!(flags & 0x2000)
| 0-2 | ||||||||||||||||||
| 304 | X509_STORE_CTX_set0_crls(&cert_ctx, p7->d.sign->crl); executed 2 times by 1 test: X509_STORE_CTX_set0_crls(&cert_ctx, p7->d.sign->crl);Executed by:
| 2 | ||||||||||||||||||
| 305 | i = X509_verify_cert(&cert_ctx); | - | ||||||||||||||||||
| 306 | if (i <= 0
| 0-2 | ||||||||||||||||||
| 307 | j = X509_STORE_CTX_get_error(&cert_ctx); never executed: j = X509_STORE_CTX_get_error(&cert_ctx); | 0 | ||||||||||||||||||
| 308 | X509_STORE_CTX_cleanup(&cert_ctx); | - | ||||||||||||||||||
| 309 | if (i <= 0
| 0-2 | ||||||||||||||||||
| 310 | ERR_put_error(33,(0xfff),(117),__FILE__,340); | - | ||||||||||||||||||
| 311 | ERR_asprintf_error_data("Verify error:%s", | - | ||||||||||||||||||
| 312 | X509_verify_cert_error_string(j)); | - | ||||||||||||||||||
| 313 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 314 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 315 | } | - | ||||||||||||||||||
| 316 | - | |||||||||||||||||||
| 317 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 318 | if (indata
| 0-1 | ||||||||||||||||||
| 319 | char *ptr; | - | ||||||||||||||||||
| 320 | long len; | - | ||||||||||||||||||
| 321 | - | |||||||||||||||||||
| 322 | len = BIO_ctrl(indata,3,0,(char *)&ptr); | - | ||||||||||||||||||
| 323 | tmpin = BIO_new_mem_buf(ptr, len); | - | ||||||||||||||||||
| 324 | if (tmpin ==
| 0-1 | ||||||||||||||||||
| 325 | ((void *)0)
| 0-1 | ||||||||||||||||||
| 326 | ) { | - | ||||||||||||||||||
| 327 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,363); | - | ||||||||||||||||||
| 328 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 329 | } | - | ||||||||||||||||||
| 330 | } executed 1 time by 1 test: elseend of blockExecuted by:
| 1 | ||||||||||||||||||
| 331 | tmpin = indata; executed 1 time by 1 test: tmpin = indata;Executed by:
| 1 | ||||||||||||||||||
| 332 | - | |||||||||||||||||||
| 333 | - | |||||||||||||||||||
| 334 | if (!(p7bio = PKCS7_dataInit(p7, tmpin))
| 0-2 | ||||||||||||||||||
| 335 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 336 | - | |||||||||||||||||||
| 337 | if (flags & 0x1
| 0-2 | ||||||||||||||||||
| 338 | if (!(tmpout = BIO_new(BIO_s_mem()))
| 0 | ||||||||||||||||||
| 339 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,375); | - | ||||||||||||||||||
| 340 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 341 | } | - | ||||||||||||||||||
| 342 | BIO_ctrl(tmpout,130,0, | - | ||||||||||||||||||
| 343 | ((void *)0) | - | ||||||||||||||||||
| 344 | ); | - | ||||||||||||||||||
| 345 | } never executed: elseend of block | 0 | ||||||||||||||||||
| 346 | tmpout = out; executed 2 times by 1 test: tmpout = out;Executed by:
| 2 | ||||||||||||||||||
| 347 | - | |||||||||||||||||||
| 348 | - | |||||||||||||||||||
| 349 | for (;;) { | - | ||||||||||||||||||
| 350 | i = BIO_read(p7bio, buf, sizeof(buf)); | - | ||||||||||||||||||
| 351 | if (i <= 0
| 2 | ||||||||||||||||||
| 352 | break; executed 2 times by 1 test: break;Executed by:
| 2 | ||||||||||||||||||
| 353 | if (tmpout
| 0-2 | ||||||||||||||||||
| 354 | BIO_write(tmpout, buf, i); executed 2 times by 1 test: BIO_write(tmpout, buf, i);Executed by:
| 2 | ||||||||||||||||||
| 355 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 356 | - | |||||||||||||||||||
| 357 | if (flags & 0x1
| 0-2 | ||||||||||||||||||
| 358 | if (!SMIME_text(tmpout, out)
| 0 | ||||||||||||||||||
| 359 | ERR_put_error(33,(0xfff),(129),__FILE__,393); | - | ||||||||||||||||||
| 360 | BIO_free(tmpout); | - | ||||||||||||||||||
| 361 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 362 | } | - | ||||||||||||||||||
| 363 | BIO_free(tmpout); | - | ||||||||||||||||||
| 364 | } never executed: end of block | 0 | ||||||||||||||||||
| 365 | - | |||||||||||||||||||
| 366 | - | |||||||||||||||||||
| 367 | if (!(flags & 0x4)
| 0-2 | ||||||||||||||||||
| 368 | for (i = 0; i < sk_num(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)))
| 2 | ||||||||||||||||||
| 369 | si = ((PKCS7_SIGNER_INFO *)sk_value(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)), (i))); | - | ||||||||||||||||||
| 370 | signer = ((X509 *)sk_value(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0)), (i))); | - | ||||||||||||||||||
| 371 | j = PKCS7_signatureVerify(p7bio, p7, si, signer); | - | ||||||||||||||||||
| 372 | if (j <= 0
| 0-2 | ||||||||||||||||||
| 373 | ERR_put_error(33,(0xfff),(105),__FILE__,407); | - | ||||||||||||||||||
| 374 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 375 | } | - | ||||||||||||||||||
| 376 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 377 | - | |||||||||||||||||||
| 378 | ret = 1; | - | ||||||||||||||||||
| 379 | - | |||||||||||||||||||
| 380 | err: code before this statement executed 2 times by 1 test: err:Executed by:
| 2 | ||||||||||||||||||
| 381 | if (tmpin == indata
| 1 | ||||||||||||||||||
| 382 | if (indata
| 0-1 | ||||||||||||||||||
| 383 | BIO_pop(p7bio); never executed: BIO_pop(p7bio); | 0 | ||||||||||||||||||
| 384 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||
| 385 | BIO_free_all(p7bio); | - | ||||||||||||||||||
| 386 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 387 | - | |||||||||||||||||||
| 388 | return executed 2 times by 1 test: ret;return ret;Executed by:
executed 2 times by 1 test: return ret;Executed by:
| 2 | ||||||||||||||||||
| 389 | } | - | ||||||||||||||||||
| 390 | - | |||||||||||||||||||
| 391 | struct stack_st_X509 * | - | ||||||||||||||||||
| 392 | PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, int flags) | - | ||||||||||||||||||
| 393 | { | - | ||||||||||||||||||
| 394 | struct stack_st_X509 *signers; | - | ||||||||||||||||||
| 395 | struct stack_st_PKCS7_SIGNER_INFO *sinfos; | - | ||||||||||||||||||
| 396 | PKCS7_SIGNER_INFO *si; | - | ||||||||||||||||||
| 397 | PKCS7_ISSUER_AND_SERIAL *ias; | - | ||||||||||||||||||
| 398 | X509 *signer; | - | ||||||||||||||||||
| 399 | int i; | - | ||||||||||||||||||
| 400 | - | |||||||||||||||||||
| 401 | if (!p7
| 0-2 | ||||||||||||||||||
| 402 | ERR_put_error(33,(0xfff),(143),__FILE__,436); | - | ||||||||||||||||||
| 403 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 404 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 405 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 406 | } | - | ||||||||||||||||||
| 407 | - | |||||||||||||||||||
| 408 | if (!(OBJ_obj2nid((p7)->type) == 22)
| 0-2 | ||||||||||||||||||
| 409 | ERR_put_error(33,(0xfff),(113),__FILE__,441); | - | ||||||||||||||||||
| 410 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 411 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 412 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 413 | } | - | ||||||||||||||||||
| 414 | - | |||||||||||||||||||
| 415 | - | |||||||||||||||||||
| 416 | sinfos = PKCS7_get_signer_info(p7); | - | ||||||||||||||||||
| 417 | if (sk_num(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0))) <= 0
| 0-2 | ||||||||||||||||||
| 418 | ERR_put_error(33,(0xfff),(142),__FILE__,448); | - | ||||||||||||||||||
| 419 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 420 | } | - | ||||||||||||||||||
| 421 | - | |||||||||||||||||||
| 422 | if (!(signers = ((struct stack_st_X509 *)sk_new_null()))
| 0-2 | ||||||||||||||||||
| 423 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,453); | - | ||||||||||||||||||
| 424 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 425 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 426 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 427 | } | - | ||||||||||||||||||
| 428 | - | |||||||||||||||||||
| 429 | for (i = 0; i < sk_num(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)))
| 2 | ||||||||||||||||||
| 430 | si = ((PKCS7_SIGNER_INFO *)sk_value(((_STACK*) (1 ? (sinfos) : (struct stack_st_PKCS7_SIGNER_INFO*)0)), (i))); | - | ||||||||||||||||||
| 431 | ias = si->issuer_and_serial; | - | ||||||||||||||||||
| 432 | signer = | - | ||||||||||||||||||
| 433 | ((void *)0) | - | ||||||||||||||||||
| 434 | ; | - | ||||||||||||||||||
| 435 | - | |||||||||||||||||||
| 436 | if (certs
| 0-2 | ||||||||||||||||||
| 437 | signer = X509_find_by_issuer_and_serial (certs, executed 2 times by 1 test: signer = X509_find_by_issuer_and_serial (certs, ias->issuer, ias->serial);Executed by:
| 2 | ||||||||||||||||||
| 438 | ias->issuer, ias->serial); executed 2 times by 1 test: signer = X509_find_by_issuer_and_serial (certs, ias->issuer, ias->serial);Executed by:
| 2 | ||||||||||||||||||
| 439 | if (!signer
| 0-2 | ||||||||||||||||||
| 440 | signer = never executed: signer = X509_find_by_issuer_and_serial(p7->d.sign->cert, ias->issuer, ias->serial); | 0 | ||||||||||||||||||
| 441 | X509_find_by_issuer_and_serial(p7->d.sign->cert, never executed: signer = X509_find_by_issuer_and_serial(p7->d.sign->cert, ias->issuer, ias->serial); | 0 | ||||||||||||||||||
| 442 | ias->issuer, ias->serial); never executed: signer = X509_find_by_issuer_and_serial(p7->d.sign->cert, ias->issuer, ias->serial); | 0 | ||||||||||||||||||
| 443 | if (!signer
| 0-2 | ||||||||||||||||||
| 444 | ERR_put_error(33,(0xfff),(128),__FILE__,470); | - | ||||||||||||||||||
| 445 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 446 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 447 | } | - | ||||||||||||||||||
| 448 | - | |||||||||||||||||||
| 449 | if (!sk_push(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0)), ((void*) (1 ? (signer) : (X509*)0)))
| 0-2 | ||||||||||||||||||
| 450 | sk_free(((_STACK*) (1 ? (signers) : (struct stack_st_X509*)0))); | - | ||||||||||||||||||
| 451 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 452 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 453 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 454 | } | - | ||||||||||||||||||
| 455 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||||||||
| 456 | return executed 2 times by 1 test: signers;return signers;Executed by:
executed 2 times by 1 test: return signers;Executed by:
| 2 | ||||||||||||||||||
| 457 | } | - | ||||||||||||||||||
| 458 | - | |||||||||||||||||||
| 459 | - | |||||||||||||||||||
| 460 | - | |||||||||||||||||||
| 461 | PKCS7 * | - | ||||||||||||||||||
| 462 | PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, | - | ||||||||||||||||||
| 463 | int flags) | - | ||||||||||||||||||
| 464 | { | - | ||||||||||||||||||
| 465 | PKCS7 *p7; | - | ||||||||||||||||||
| 466 | BIO *p7bio = | - | ||||||||||||||||||
| 467 | ((void *)0) | - | ||||||||||||||||||
| 468 | ; | - | ||||||||||||||||||
| 469 | int i; | - | ||||||||||||||||||
| 470 | X509 *x509; | - | ||||||||||||||||||
| 471 | - | |||||||||||||||||||
| 472 | if (!(p7 = PKCS7_new())
| 0-1 | ||||||||||||||||||
| 473 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,495); | - | ||||||||||||||||||
| 474 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 475 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 476 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 477 | } | - | ||||||||||||||||||
| 478 | - | |||||||||||||||||||
| 479 | if (!PKCS7_set_type(p7, 23)
| 0-1 | ||||||||||||||||||
| 480 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 481 | if (!PKCS7_set_cipher(p7, cipher)
| 0-1 | ||||||||||||||||||
| 482 | ERR_put_error(33,(0xfff),(121),__FILE__,502); | - | ||||||||||||||||||
| 483 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 484 | } | - | ||||||||||||||||||
| 485 | - | |||||||||||||||||||
| 486 | for (i = 0; i < sk_num(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)))
| 1 | ||||||||||||||||||
| 487 | x509 = ((X509 *)sk_value(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)), (i))); | - | ||||||||||||||||||
| 488 | if (!PKCS7_add_recipient(p7, x509)
| 0-1 | ||||||||||||||||||
| 489 | ERR_put_error(33,(0xfff),(120),__FILE__,509); | - | ||||||||||||||||||
| 490 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||||||||
| 491 | } | - | ||||||||||||||||||
| 492 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||
| 493 | - | |||||||||||||||||||
| 494 | if (flags & 0x1000
| 0-1 | ||||||||||||||||||
| 495 | return never executed: p7;return p7;never executed: return p7; | 0 | ||||||||||||||||||
| 496 | - | |||||||||||||||||||
| 497 | if (PKCS7_final(p7, in, flags)
| 0-1 | ||||||||||||||||||
| 498 | return executed 1 time by 1 test: p7;return p7;Executed by:
executed 1 time by 1 test: return p7;Executed by:
| 1 | ||||||||||||||||||
| 499 | - | |||||||||||||||||||
| 500 | err: code before this statement never executed: err: | 0 | ||||||||||||||||||
| 501 | BIO_free_all(p7bio); | - | ||||||||||||||||||
| 502 | PKCS7_free(p7); | - | ||||||||||||||||||
| 503 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 504 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 505 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
| 506 | } | - | ||||||||||||||||||
| 507 | - | |||||||||||||||||||
| 508 | int | - | ||||||||||||||||||
| 509 | PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags) | - | ||||||||||||||||||
| 510 | { | - | ||||||||||||||||||
| 511 | BIO *tmpmem; | - | ||||||||||||||||||
| 512 | int ret, i; | - | ||||||||||||||||||
| 513 | char buf[4096]; | - | ||||||||||||||||||
| 514 | - | |||||||||||||||||||
| 515 | if (!p7
| 0-1 | ||||||||||||||||||
| 516 | ERR_put_error(33,(0xfff),(143),__FILE__,534); | - | ||||||||||||||||||
| 517 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 518 | } | - | ||||||||||||||||||
| 519 | - | |||||||||||||||||||
| 520 | if (!(OBJ_obj2nid((p7)->type) == 23)
| 0-1 | ||||||||||||||||||
| 521 | ERR_put_error(33,(0xfff),(113),__FILE__,539); | - | ||||||||||||||||||
| 522 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 523 | } | - | ||||||||||||||||||
| 524 | - | |||||||||||||||||||
| 525 | if (cert
| 0-1 | ||||||||||||||||||
| 526 | ERR_put_error(33,(0xfff),(127),__FILE__,544); | - | ||||||||||||||||||
| 527 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 528 | } | - | ||||||||||||||||||
| 529 | - | |||||||||||||||||||
| 530 | if (!(tmpmem = PKCS7_dataDecode(p7, pkey,
| 0-1 | ||||||||||||||||||
| 531 | ((void *)0)
| 0-1 | ||||||||||||||||||
| 532 | , cert))
| 0-1 | ||||||||||||||||||
| 533 | ERR_put_error(33,(0xfff),(119),__FILE__,549); | - | ||||||||||||||||||
| 534 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 535 | } | - | ||||||||||||||||||
| 536 | - | |||||||||||||||||||
| 537 | if (flags & 0x1
| 0-1 | ||||||||||||||||||
| 538 | BIO *tmpbuf; | - | ||||||||||||||||||
| 539 | - | |||||||||||||||||||
| 540 | - | |||||||||||||||||||
| 541 | if (!(tmpbuf = BIO_new(BIO_f_buffer()))
| 0 | ||||||||||||||||||
| 542 | ERR_put_error(33,(0xfff),((1|64)),__FILE__,558); | - | ||||||||||||||||||
| 543 | BIO_free_all(tmpmem); | - | ||||||||||||||||||
| 544 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||
| 545 | } | - | ||||||||||||||||||
| 546 | BIO_push(tmpbuf, tmpmem); | - | ||||||||||||||||||
| 547 | ret = SMIME_text(tmpbuf, data); | - | ||||||||||||||||||
| 548 | if (ret > 0
| 0 | ||||||||||||||||||
| 549 | if (!BIO_ctrl(tmpmem,113,0,
| 0 | ||||||||||||||||||
| 550 | ((void *)0)
| 0 | ||||||||||||||||||
| 551 | )
| 0 | ||||||||||||||||||
| 552 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||
| 553 | } never executed: end of block | 0 | ||||||||||||||||||
| 554 | BIO_free_all(tmpbuf); | - | ||||||||||||||||||
| 555 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||
| 556 | } else { | - | ||||||||||||||||||
| 557 | for (;;) { | - | ||||||||||||||||||
| 558 | i = BIO_read(tmpmem, buf, sizeof(buf)); | - | ||||||||||||||||||
| 559 | if (i <= 0
| 1 | ||||||||||||||||||
| 560 | ret = 1; | - | ||||||||||||||||||
| 561 | if (BIO_method_type(tmpmem) ==
| 0-1 | ||||||||||||||||||
| 562 | (10|0x0200)
| 0-1 | ||||||||||||||||||
| 563 | if (!BIO_ctrl(tmpmem,113,0,
| 0-1 | ||||||||||||||||||
| 564 | ((void *)0)
| 0-1 | ||||||||||||||||||
| 565 | )
| 0-1 | ||||||||||||||||||
| 566 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||
| 567 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||
| 568 | break; executed 1 time by 1 test: break;Executed by:
| 1 | ||||||||||||||||||
| 569 | } | - | ||||||||||||||||||
| 570 | if (BIO_write(data, buf, i) != i
| 0-1 | ||||||||||||||||||
| 571 | ret = 0; | - | ||||||||||||||||||
| 572 | break; never executed: break; | 0 | ||||||||||||||||||
| 573 | } | - | ||||||||||||||||||
| 574 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||
| 575 | BIO_free_all(tmpmem); | - | ||||||||||||||||||
| 576 | return executed 1 time by 1 test: ret;return ret;Executed by:
executed 1 time by 1 test: return ret;Executed by:
| 1 | ||||||||||||||||||
| 577 | } | - | ||||||||||||||||||
| 578 | } | - | ||||||||||||||||||
| Switch to Source code | Preprocessed file |