| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cms/cms_dd.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||
| 2 | - | |||||||
| 3 | - | |||||||
| 4 | - | |||||||
| 5 | CMS_ContentInfo *cms_DigestedData_create(const EVP_MD *md) | - | ||||||
| 6 | { | - | ||||||
| 7 | CMS_ContentInfo *cms; | - | ||||||
| 8 | CMS_DigestedData *dd; | - | ||||||
| 9 | cms = CMS_ContentInfo_new(); | - | ||||||
| 10 | if (cms ==
| 0 | ||||||
| 11 | ((void *)0)
| 0 | ||||||
| 12 | ) | - | ||||||
| 13 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 14 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 15 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 16 | - | |||||||
| 17 | dd = (CMS_DigestedData *)ASN1_item_new((&(CMS_DigestedData_it))); | - | ||||||
| 18 | - | |||||||
| 19 | if (dd ==
| 0 | ||||||
| 20 | ((void *)0)
| 0 | ||||||
| 21 | ) | - | ||||||
| 22 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 23 | - | |||||||
| 24 | cms->contentType = OBJ_nid2obj(25); | - | ||||||
| 25 | cms->d.digestedData = dd; | - | ||||||
| 26 | - | |||||||
| 27 | dd->version = 0; | - | ||||||
| 28 | dd->encapContentInfo->eContentType = OBJ_nid2obj(21); | - | ||||||
| 29 | - | |||||||
| 30 | X509_ALGOR_set_md(dd->digestAlgorithm, md); | - | ||||||
| 31 | - | |||||||
| 32 | return never executed: cms;return cms;never executed: return cms; | 0 | ||||||
| 33 | - | |||||||
| 34 | err: | - | ||||||
| 35 | CMS_ContentInfo_free(cms); | - | ||||||
| 36 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 37 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 38 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 39 | } | - | ||||||
| 40 | - | |||||||
| 41 | BIO *cms_DigestedData_init_bio(CMS_ContentInfo *cms) | - | ||||||
| 42 | { | - | ||||||
| 43 | CMS_DigestedData *dd; | - | ||||||
| 44 | dd = cms->d.digestedData; | - | ||||||
| 45 | return never executed: cms_DigestAlgorithm_init_bio(dd->digestAlgorithm);return cms_DigestAlgorithm_init_bio(dd->digestAlgorithm);never executed: return cms_DigestAlgorithm_init_bio(dd->digestAlgorithm); | 0 | ||||||
| 46 | } | - | ||||||
| 47 | - | |||||||
| 48 | int cms_DigestedData_do_final(CMS_ContentInfo *cms, BIO *chain, int verify) | - | ||||||
| 49 | { | - | ||||||
| 50 | EVP_MD_CTX *mctx = EVP_MD_CTX_new(); | - | ||||||
| 51 | unsigned char md[64]; | - | ||||||
| 52 | unsigned int mdlen; | - | ||||||
| 53 | int r = 0; | - | ||||||
| 54 | CMS_DigestedData *dd; | - | ||||||
| 55 | - | |||||||
| 56 | if (mctx ==
| 0 | ||||||
| 57 | ((void *)0)
| 0 | ||||||
| 58 | ) { | - | ||||||
| 59 | ERR_put_error(46,(117),((1|64)),__FILE__,64); | - | ||||||
| 60 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 61 | } | - | ||||||
| 62 | - | |||||||
| 63 | dd = cms->d.digestedData; | - | ||||||
| 64 | - | |||||||
| 65 | if (!cms_DigestAlgorithm_find_ctx(mctx, chain, dd->digestAlgorithm)
| 0 | ||||||
| 66 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 67 | - | |||||||
| 68 | if (EVP_DigestFinal_ex(mctx, md, &mdlen) <= 0
| 0 | ||||||
| 69 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 70 | - | |||||||
| 71 | if (verify
| 0 | ||||||
| 72 | if (mdlen != (unsigned int)dd->digest->length
| 0 | ||||||
| 73 | ERR_put_error(46,(117),(121),__FILE__,79) | - | ||||||
| 74 | ; | - | ||||||
| 75 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 76 | } | - | ||||||
| 77 | - | |||||||
| 78 | if (memcmp(md, dd->digest->data, mdlen)
| 0 | ||||||
| 79 | ERR_put_error(46,(117),(158),__FILE__,85) never executed: ERR_put_error(46,(117),(158),__FILE__,85) ; | 0 | ||||||
| 80 | ; never executed: ERR_put_error(46,(117),(158),__FILE__,85) ; | 0 | ||||||
| 81 | else | - | ||||||
| 82 | r = 1; never executed: r = 1; | 0 | ||||||
| 83 | } else { | - | ||||||
| 84 | if (!ASN1_STRING_set(dd->digest, md, mdlen)
| 0 | ||||||
| 85 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 86 | r = 1; | - | ||||||
| 87 | } never executed: end of block | 0 | ||||||
| 88 | - | |||||||
| 89 | err: code before this statement never executed: err: | 0 | ||||||
| 90 | EVP_MD_CTX_free(mctx); | - | ||||||
| 91 | - | |||||||
| 92 | return never executed: r;return r;never executed: return r; | 0 | ||||||
| 93 | - | |||||||
| 94 | } | - | ||||||
| Switch to Source code | Preprocessed file |