| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/a_verify.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||
| 2 | - | |||||||||||||
| 3 | - | |||||||||||||
| 4 | - | |||||||||||||
| 5 | - | |||||||||||||
| 6 | int | - | ||||||||||||
| 7 | ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, | - | ||||||||||||
| 8 | ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey) | - | ||||||||||||
| 9 | { | - | ||||||||||||
| 10 | EVP_MD_CTX ctx; | - | ||||||||||||
| 11 | unsigned char *buf_in = | - | ||||||||||||
| 12 | ((void *)0) | - | ||||||||||||
| 13 | ; | - | ||||||||||||
| 14 | int ret = -1, inl; | - | ||||||||||||
| 15 | - | |||||||||||||
| 16 | int mdnid, pknid; | - | ||||||||||||
| 17 | - | |||||||||||||
| 18 | if (!pkey
| 0-72 | ||||||||||||
| 19 | ERR_put_error(13,(0xfff),((3|64)),__FILE__,85); | - | ||||||||||||
| 20 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||
| 21 | } | - | ||||||||||||
| 22 | - | |||||||||||||
| 23 | if (signature->type == 3
| 0-72 | ||||||||||||
| 24 | { | - | ||||||||||||
| 25 | ERR_put_error(13,(0xfff),(220),__FILE__,91); | - | ||||||||||||
| 26 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||
| 27 | } | - | ||||||||||||
| 28 | - | |||||||||||||
| 29 | EVP_MD_CTX_init(&ctx); | - | ||||||||||||
| 30 | - | |||||||||||||
| 31 | - | |||||||||||||
| 32 | if (!OBJ_find_sigid_algs(OBJ_obj2nid(a->algorithm), &mdnid, &pknid)
| 0-72 | ||||||||||||
| 33 | ERR_put_error(13,(0xfff),(199),__FILE__,99); | - | ||||||||||||
| 34 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 35 | } | - | ||||||||||||
| 36 | if (mdnid == 0
| 0-72 | ||||||||||||
| 37 | if (!pkey->ameth
| 0 | ||||||||||||
| 38 | ERR_put_error(13,(0xfff),(199),__FILE__,104); | - | ||||||||||||
| 39 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 40 | } | - | ||||||||||||
| 41 | ret = pkey->ameth->item_verify(&ctx, it, asn, a, | - | ||||||||||||
| 42 | signature, pkey); | - | ||||||||||||
| 43 | - | |||||||||||||
| 44 | - | |||||||||||||
| 45 | - | |||||||||||||
| 46 | - | |||||||||||||
| 47 | if (ret != 2
| 0 | ||||||||||||
| 48 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 49 | ret = -1; | - | ||||||||||||
| 50 | } never executed: else {end of block | 0 | ||||||||||||
| 51 | const EVP_MD *type; | - | ||||||||||||
| 52 | type = EVP_get_digestbyname(OBJ_nid2sn(mdnid)); | - | ||||||||||||
| 53 | if (type ==
| 0-72 | ||||||||||||
| 54 | ((void *)0)
| 0-72 | ||||||||||||
| 55 | ) { | - | ||||||||||||
| 56 | ERR_put_error(13,(0xfff),(161),__FILE__,120); | - | ||||||||||||
| 57 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 58 | } | - | ||||||||||||
| 59 | - | |||||||||||||
| 60 | - | |||||||||||||
| 61 | if (EVP_PKEY_type(pknid) != pkey->ameth->pkey_id
| 0-72 | ||||||||||||
| 62 | ERR_put_error(13,(0xfff),(200),__FILE__,126); | - | ||||||||||||
| 63 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 64 | } | - | ||||||||||||
| 65 | - | |||||||||||||
| 66 | if (!EVP_DigestVerifyInit(&ctx,
| 0-72 | ||||||||||||
| 67 | ((void *)0)
| 0-72 | ||||||||||||
| 68 | , type,
| 0-72 | ||||||||||||
| 69 | ((void *)0)
| 0-72 | ||||||||||||
| 70 | , pkey)
| 0-72 | ||||||||||||
| 71 | ERR_put_error(13,(0xfff),(6),__FILE__,131); | - | ||||||||||||
| 72 | ret = 0; | - | ||||||||||||
| 73 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 74 | } | - | ||||||||||||
| 75 | - | |||||||||||||
| 76 | } executed 72 times by 2 tests: end of blockExecuted by:
| 72 | ||||||||||||
| 77 | - | |||||||||||||
| 78 | inl = ASN1_item_i2d(asn, &buf_in, it); | - | ||||||||||||
| 79 | - | |||||||||||||
| 80 | if (buf_in ==
| 0-72 | ||||||||||||
| 81 | ((void *)0)
| 0-72 | ||||||||||||
| 82 | ) { | - | ||||||||||||
| 83 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,141); | - | ||||||||||||
| 84 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 85 | } | - | ||||||||||||
| 86 | - | |||||||||||||
| 87 | if (!EVP_DigestUpdate(&ctx,buf_in,inl)
| 0-72 | ||||||||||||
| 88 | ERR_put_error(13,(0xfff),(6),__FILE__,146); | - | ||||||||||||
| 89 | ret = 0; | - | ||||||||||||
| 90 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 91 | } | - | ||||||||||||
| 92 | - | |||||||||||||
| 93 | freezero(buf_in, (unsigned int)inl); | - | ||||||||||||
| 94 | - | |||||||||||||
| 95 | if (EVP_DigestVerifyFinal(&ctx, signature->data,
| 0-72 | ||||||||||||
| 96 | (size_t)signature->length) <= 0
| 0-72 | ||||||||||||
| 97 | ERR_put_error(13,(0xfff),(6),__FILE__,155); | - | ||||||||||||
| 98 | ret = 0; | - | ||||||||||||
| 99 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||||||||
| 100 | } | - | ||||||||||||
| 101 | - | |||||||||||||
| 102 | - | |||||||||||||
| 103 | - | |||||||||||||
| 104 | ret = 1; | - | ||||||||||||
| 105 | - | |||||||||||||
| 106 | err: code before this statement executed 72 times by 2 tests: err:Executed by:
| 72 | ||||||||||||
| 107 | EVP_MD_CTX_cleanup(&ctx); | - | ||||||||||||
| 108 | return executed 72 times by 2 tests: (ret);return (ret);Executed by:
executed 72 times by 2 tests: return (ret);Executed by:
| 72 | ||||||||||||
| 109 | } | - | ||||||||||||
| Switch to Source code | Preprocessed file |