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 |