OpenCoverage

cms_env.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cms/cms_env.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5CMS_EnvelopedData *cms_get0_enveloped(CMS_ContentInfo *cms)-
6{-
7 if (OBJ_obj2nid(cms->contentType) != 23
OBJ_obj2nid(cm...entType) != 23Description
TRUEnever evaluated
FALSEevaluated 59 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-59
8 ERR_put_error(46,(131),(107),__FILE__,27)-
9 ;-
10 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
11 ((void *)0)
never executed: return ((void *)0) ;
0
12 ;
never executed: return ((void *)0) ;
0
13 }-
14 return
executed 59 times by 1 test: return cms->d.envelopedData;
Executed by:
  • libcrypto.so.1.1
cms->d.envelopedData;
executed 59 times by 1 test: return cms->d.envelopedData;
Executed by:
  • libcrypto.so.1.1
59
15}-
16-
17static CMS_EnvelopedData *cms_enveloped_data_init(CMS_ContentInfo *cms)-
18{-
19 if (cms->d.other ==
cms->d.other == ((void *)0)Description
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-20
20 ((void *)0)
cms->d.other == ((void *)0)Description
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-20
21 ) {-
22 cms->d.envelopedData = (CMS_EnvelopedData *)ASN1_item_new((&(CMS_EnvelopedData_it)));-
23 if (!cms->d.envelopedData
!cms->d.envelopedDataDescription
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-20
24 ERR_put_error(46,(126),((1|64)),__FILE__,38);-
25 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
26 ((void *)0)
never executed: return ((void *)0) ;
0
27 ;
never executed: return ((void *)0) ;
0
28 }-
29 cms->d.envelopedData->version = 0;-
30 cms->d.envelopedData->encryptedContentInfo->contentType =-
31 OBJ_nid2obj(21);-
32 ASN1_OBJECT_free(cms->contentType);-
33 cms->contentType = OBJ_nid2obj(23);-
34 return
executed 20 times by 1 test: return cms->d.envelopedData;
Executed by:
  • libcrypto.so.1.1
cms->d.envelopedData;
executed 20 times by 1 test: return cms->d.envelopedData;
Executed by:
  • libcrypto.so.1.1
20
35 }-
36 return
never executed: return cms_get0_enveloped(cms);
cms_get0_enveloped(cms);
never executed: return cms_get0_enveloped(cms);
0
37}-
38-
39int cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd)-
40{-
41 EVP_PKEY *pkey;-
42 int i;-
43 if (ri->type == 0
ri->type == 0Description
TRUEevaluated 46 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
13-46
44 pkey = ri->d.ktri->pkey;
executed 46 times by 1 test: pkey = ri->d.ktri->pkey;
Executed by:
  • libcrypto.so.1.1
46
45 else if (ri->type == 1
ri->type == 1Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-13
46 EVP_PKEY_CTX *pctx = ri->d.kari->pctx;-
47 if (!pctx
!pctxDescription
TRUEnever evaluated
FALSEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-13
48 return
never executed: return 0;
0;
never executed: return 0;
0
49 pkey = EVP_PKEY_CTX_get0_pkey(pctx);-
50 if (!pkey
!pkeyDescription
TRUEnever evaluated
FALSEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-13
51 return
never executed: return 0;
0;
never executed: return 0;
0
52 }
executed 13 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else
13
53 return
never executed: return 0;
0;
never executed: return 0;
0
54 if (!pkey->ameth
!pkey->amethDescription
TRUEnever evaluated
FALSEevaluated 59 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| !pkey->ameth->pkey_ctrl
!pkey->ameth->pkey_ctrlDescription
TRUEnever evaluated
FALSEevaluated 59 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-59
55 return
never executed: return 1;
1;
never executed: return 1;
0
56 i = pkey->ameth->pkey_ctrl(pkey, 0x7, cmd, ri);-
57 if (i == -2
i == -2Description
TRUEnever evaluated
FALSEevaluated 59 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-59
58 ERR_put_error(46,(171),(125),__FILE__,71)-
59 ;-
60 return
never executed: return 0;
0;
never executed: return 0;
0
61 }-
62 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEevaluated 59 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-59
63 ERR_put_error(46,(171),(111),__FILE__,75);-
64 return
never executed: return 0;
0;
never executed: return 0;
0
65 }-
66 return
executed 59 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 59 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
59
67}-
68-
69struct stack_st_CMS_RecipientInfo *CMS_get0_RecipientInfos(CMS_ContentInfo *cms)-
70{-
71 CMS_EnvelopedData *env;-
72 env = cms_get0_enveloped(cms);-
73 if (!env
!envDescription
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-20
74 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
75 ((void *)0)
never executed: return ((void *)0) ;
0
76 ;
never executed: return ((void *)0) ;
0
77 return
executed 20 times by 1 test: return env->recipientInfos;
Executed by:
  • libcrypto.so.1.1
env->recipientInfos;
executed 20 times by 1 test: return env->recipientInfos;
Executed by:
  • libcrypto.so.1.1
20
78}-
79-
80int CMS_RecipientInfo_type(CMS_RecipientInfo *ri)-
81{-
82 return
executed 65 times by 1 test: return ri->type;
Executed by:
  • libcrypto.so.1.1
ri->type;
executed 65 times by 1 test: return ri->type;
Executed by:
  • libcrypto.so.1.1
65
83}-
84-
85EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri)-
86{-
87 if (ri->type == 0
ri->type == 0Description
TRUEevaluated 48 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 15 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
15-48
88 return
executed 48 times by 1 test: return ri->d.ktri->pctx;
Executed by:
  • libcrypto.so.1.1
ri->d.ktri->pctx;
executed 48 times by 1 test: return ri->d.ktri->pctx;
Executed by:
  • libcrypto.so.1.1
48
89 else if (ri->type == 1
ri->type == 1Description
TRUEevaluated 15 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-15
90 return
executed 15 times by 1 test: return ri->d.kari->pctx;
Executed by:
  • libcrypto.so.1.1
ri->d.kari->pctx;
executed 15 times by 1 test: return ri->d.kari->pctx;
Executed by:
  • libcrypto.so.1.1
15
91 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
92 ((void *)0)
never executed: return ((void *)0) ;
0
93 ;
never executed: return ((void *)0) ;
0
94}-
95-
96CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher)-
97{-
98 CMS_ContentInfo *cms;-
99 CMS_EnvelopedData *env;-
100 cms = CMS_ContentInfo_new();-
101 if (cms ==
cms == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
102 ((void *)0)
cms == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
103 )-
104 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
105 env = cms_enveloped_data_init(cms);-
106 if (env ==
env == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
107 ((void *)0)
env == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
108 )-
109 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
110 if (!cms_EncryptedContent_init(env->encryptedContentInfo,
!cms_Encrypted...void *)0) , 0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
111 cipher,
!cms_Encrypted...void *)0) , 0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
112 ((void *)0)
!cms_Encrypted...void *)0) , 0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-20
113 , 0)
!cms_Encrypted...void *)0) , 0)Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-20
114 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
115 return
executed 20 times by 1 test: return cms;
Executed by:
  • libcrypto.so.1.1
cms;
executed 20 times by 1 test: return cms;
Executed by:
  • libcrypto.so.1.1
20
116 merr:-
117 CMS_ContentInfo_free(cms);-
118 ERR_put_error(46,(124),((1|64)),__FILE__,120);-
119 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
120 ((void *)0)
never executed: return ((void *)0) ;
0
121 ;
never executed: return ((void *)0) ;
0
122}-
123-
124-
125-
126-
127-
128static int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,-
129 EVP_PKEY *pk, unsigned int flags)-
130{-
131 CMS_KeyTransRecipientInfo *ktri;-
132 int idtype;-
133-
134 ri->d.ktri = (CMS_KeyTransRecipientInfo *)ASN1_item_new((&(CMS_KeyTransRecipientInfo_it)));-
135 if (!ri->d.ktri
!ri->d.ktriDescription
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-30
136 return
never executed: return 0;
0;
never executed: return 0;
0
137 ri->type = 0;-
138-
139 ktri = ri->d.ktri;-
140-
141 if (flags & 0x10000
flags & 0x10000Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 27 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-27
142 ktri->version = 2;-
143 idtype = 1;-
144 }
executed 3 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
3
145 ktri->version = 0;-
146 idtype = 0;-
147 }
executed 27 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
27
148-
149-
150-
151-
152-
153-
154 if (!cms_set1_SignerIdentifier(ktri->rid, recip, idtype)
!cms_set1_Sign...recip, idtype)Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-30
155 return
never executed: return 0;
0;
never executed: return 0;
0
156-
157 X509_up_ref(recip);-
158 EVP_PKEY_up_ref(pk);-
159-
160 ktri->pkey = pk;-
161 ktri->recip = recip;-
162-
163 if (flags & 0x40000
flags & 0x40000Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
2-28
164 ktri->pctx = EVP_PKEY_CTX_new(ktri->pkey, -
165 ((void *)0)-
166 );-
167 if (ktri->pctx ==
ktri->pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
168 ((void *)0)
ktri->pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
169 )-
170 return
never executed: return 0;
0;
never executed: return 0;
0
171 if (EVP_PKEY_encrypt_init(ktri->pctx) <= 0
EVP_PKEY_encry...ri->pctx) <= 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
172 return
never executed: return 0;
0;
never executed: return 0;
0
173 }
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (!cms_env_asn1_ctrl(ri, 0)
!cms_env_asn1_ctrl(ri, 0)Description
TRUEnever evaluated
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-28
174 return
never executed: return 0;
0;
never executed: return 0;
0
175 return
executed 30 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 30 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
30
176}-
177-
178-
179-
180-
181-
182CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,-
183 X509 *recip, unsigned int flags)-
184{-
185 CMS_RecipientInfo *ri = -
186 ((void *)0)-
187 ;-
188 CMS_EnvelopedData *env;-
189 EVP_PKEY *pk = -
190 ((void *)0)-
191 ;-
192 env = cms_get0_enveloped(cms);-
193 if (!env
!envDescription
TRUEnever evaluated
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-37
194 goto
never executed: goto err;
err;
never executed: goto err;
0
195-
196-
197 ri = (CMS_RecipientInfo *)ASN1_item_new((&(CMS_RecipientInfo_it)));-
198 if (!ri
!riDescription
TRUEnever evaluated
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-37
199 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
200-
201 pk = X509_get0_pubkey(recip);-
202 if (!pk
!pkDescription
TRUEnever evaluated
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-37
203 ERR_put_error(46,(101),(113),__FILE__,195);-
204 goto
never executed: goto err;
err;
never executed: goto err;
0
205 }-
206-
207 switch (cms_pkey_get_ri_type(pk)) {-
208-
209 case
executed 30 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
0:
executed 30 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
30
210 if (!cms_RecipientInfo_ktri_init(ri, recip, pk, flags)
!cms_Recipient...ip, pk, flags)Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-30
211 goto
never executed: goto err;
err;
never executed: goto err;
0
212 break;
executed 30 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
30
213-
214 case
executed 7 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
1:
executed 7 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
7
215 if (!cms_RecipientInfo_kari_init(ri, recip, pk, flags)
!cms_Recipient...ip, pk, flags)Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-7
216 goto
never executed: goto err;
err;
never executed: goto err;
0
217 break;
executed 7 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
7
218-
219 default
never executed: default:
:
never executed: default:
0
220 ERR_put_error(46,(101),(125),__FILE__,213)-
221 ;-
222 goto
never executed: goto err;
err;
never executed: goto err;
0
223-
224 }-
225-
226 if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)
!sk_CMS_Recipi...ientInfos, ri)Description
TRUEnever evaluated
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-37
227 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
228-
229 return
executed 37 times by 1 test: return ri;
Executed by:
  • libcrypto.so.1.1
ri;
executed 37 times by 1 test: return ri;
Executed by:
  • libcrypto.so.1.1
37
230-
231 merr:-
232 ERR_put_error(46,(101),((1|64)),__FILE__,224);-
233 err:
code before this statement never executed: err:
0
234 ASN1_item_free(((void*) (1 ? ri : (CMS_RecipientInfo*)0)), (&(CMS_RecipientInfo_it)));-
235 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
236 ((void *)0)
never executed: return ((void *)0) ;
0
237 ;
never executed: return ((void *)0) ;
0
238-
239}-
240-
241int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,-
242 EVP_PKEY **pk, X509 **recip,-
243 X509_ALGOR **palg)-
244{-
245 CMS_KeyTransRecipientInfo *ktri;-
246 if (ri->type != 0
ri->type != 0Description
TRUEnever evaluated
FALSEevaluated 46 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-46
247 ERR_put_error(46,(142),(124),__FILE__,238)-
248 ;-
249 return
never executed: return 0;
0;
never executed: return 0;
0
250 }-
251-
252 ktri = ri->d.ktri;-
253-
254 if (pk
pkDescription
TRUEnever evaluated
FALSEevaluated 46 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-46
255 *
never executed: *pk = ktri->pkey;
pk = ktri->pkey;
never executed: *pk = ktri->pkey;
0
256 if (recip
recipDescription
TRUEnever evaluated
FALSEevaluated 46 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-46
257 *
never executed: *recip = ktri->recip;
recip = ktri->recip;
never executed: *recip = ktri->recip;
0
258 if (palg
palgDescription
TRUEevaluated 46 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-46
259 *
executed 46 times by 1 test: *palg = ktri->keyEncryptionAlgorithm;
Executed by:
  • libcrypto.so.1.1
palg = ktri->keyEncryptionAlgorithm;
executed 46 times by 1 test: *palg = ktri->keyEncryptionAlgorithm;
Executed by:
  • libcrypto.so.1.1
46
260 return
executed 46 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 46 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
46
261}-
262-
263int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,-
264 ASN1_OCTET_STRING **keyid,-
265 X509_NAME **issuer,-
266 ASN1_INTEGER **sno)-
267{-
268 CMS_KeyTransRecipientInfo *ktri;-
269 if (ri->type != 0
ri->type != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
270 ERR_put_error(46,(143),(124),__FILE__,261)-
271 ;-
272 return
never executed: return 0;
0;
never executed: return 0;
0
273 }-
274 ktri = ri->d.ktri;-
275-
276 return
never executed: return cms_SignerIdentifier_get0_signer_id(ktri->rid, keyid, issuer, sno);
cms_SignerIdentifier_get0_signer_id(ktri->rid, keyid, issuer, sno);
never executed: return cms_SignerIdentifier_get0_signer_id(ktri->rid, keyid, issuer, sno);
0
277}-
278-
279int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert)-
280{-
281 if (ri->type != 0
ri->type != 0Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-15
282 ERR_put_error(46,(139),(124),__FILE__,273)-
283 ;-
284 return
never executed: return -2;
-2;
never executed: return -2;
0
285 }-
286 return
executed 15 times by 1 test: return cms_SignerIdentifier_cert_cmp(ri->d.ktri->rid, cert);
Executed by:
  • libcrypto.so.1.1
cms_SignerIdentifier_cert_cmp(ri->d.ktri->rid, cert);
executed 15 times by 1 test: return cms_SignerIdentifier_cert_cmp(ri->d.ktri->rid, cert);
Executed by:
  • libcrypto.so.1.1
15
287}-
288-
289int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey)-
290{-
291 if (ri->type != 0
ri->type != 0Description
TRUEnever evaluated
FALSEevaluated 32 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-32
292 ERR_put_error(46,(145),(124),__FILE__,282);-
293 return
never executed: return 0;
0;
never executed: return 0;
0
294 }-
295 EVP_PKEY_free(ri->d.ktri->pkey);-
296 ri->d.ktri->pkey = pkey;-
297 return
executed 32 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 32 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
32
298}-
299-
300-
301-
302static int cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms,-
303 CMS_RecipientInfo *ri)-
304{-
305 CMS_KeyTransRecipientInfo *ktri;-
306 CMS_EncryptedContentInfo *ec;-
307 EVP_PKEY_CTX *pctx;-
308 unsigned char *ek = -
309 ((void *)0)-
310 ;-
311 size_t eklen;-
312-
313 int ret = 0;-
314-
315 if (ri->type != 0
ri->type != 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-30
316 ERR_put_error(46,(141),(124),__FILE__,304);-
317 return
never executed: return 0;
0;
never executed: return 0;
0
318 }-
319 ktri = ri->d.ktri;-
320 ec = cms->d.envelopedData->encryptedContentInfo;-
321-
322 pctx = ktri->pctx;-
323-
324 if (pctx
pctxDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
2-28
325 if (!cms_env_asn1_ctrl(ri, 0)
!cms_env_asn1_ctrl(ri, 0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
326 goto
never executed: goto err;
err;
never executed: goto err;
0
327 }
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
2
328 pctx = EVP_PKEY_CTX_new(ktri->pkey, -
329 ((void *)0)-
330 );-
331 if (pctx ==
pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-28
332 ((void *)0)
pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-28
333 )-
334 return
never executed: return 0;
0;
never executed: return 0;
0
335-
336 if (EVP_PKEY_encrypt_init(pctx) <= 0
EVP_PKEY_encry...nit(pctx) <= 0Description
TRUEnever evaluated
FALSEevaluated 28 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-28
337 goto
never executed: goto err;
err;
never executed: goto err;
0
338 }
executed 28 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
28
339-
340 if (EVP_PKEY_CTX_ctrl(pctx, -1, (1<<8),
EVP_PKEY_CTX_c...9, 0, ri) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-30
341 9, 0, ri) <= 0
EVP_PKEY_CTX_c...9, 0, ri) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-30
342 ERR_put_error(46,(141),(110),__FILE__,326);-
343 goto
never executed: goto err;
err;
never executed: goto err;
0
344 }-
345-
346 if (EVP_PKEY_encrypt(pctx,
EVP_PKEY_encry...->keylen) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-30
347 ((void *)0)
EVP_PKEY_encry...->keylen) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-30
348 , &eklen, ec->key, ec->keylen) <= 0
EVP_PKEY_encry...->keylen) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-30
349 goto
never executed: goto err;
err;
never executed: goto err;
0
350-
351 ek = CRYPTO_malloc(eklen, __FILE__, 333);-
352-
353 if (ek ==
ek == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-30
354 ((void *)0)
ek == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-30
355 ) {-
356 ERR_put_error(46,(141),((1|64)),__FILE__,336);-
357 goto
never executed: goto err;
err;
never executed: goto err;
0
358 }-
359-
360 if (EVP_PKEY_encrypt(pctx, ek, &eklen, ec->key, ec->keylen) <= 0
EVP_PKEY_encry...->keylen) <= 0Description
TRUEnever evaluated
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-30
361 goto
never executed: goto err;
err;
never executed: goto err;
0
362-
363 ASN1_STRING_set0(ktri->encryptedKey, ek, eklen);-
364 ek = -
365 ((void *)0)-
366 ;-
367-
368 ret = 1;-
369-
370 err:
code before this statement executed 30 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
30
371 EVP_PKEY_CTX_free(pctx);-
372 ktri->pctx = -
373 ((void *)0)-
374 ;-
375 CRYPTO_free(ek, __FILE__, 351);-
376 return
executed 30 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 30 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
30
377-
378}-
379-
380-
381-
382static int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,-
383 CMS_RecipientInfo *ri)-
384{-
385 CMS_KeyTransRecipientInfo *ktri = ri->d.ktri;-
386 EVP_PKEY *pkey = ktri->pkey;-
387 unsigned char *ek = -
388 ((void *)0)-
389 ;-
390 size_t eklen;-
391 int ret = 0;-
392 CMS_EncryptedContentInfo *ec;-
393 ec = cms->d.envelopedData->encryptedContentInfo;-
394-
395 if (ktri->pkey ==
ktri->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
396 ((void *)0)
ktri->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
397 ) {-
398 ERR_put_error(46,(140),(133),__FILE__,370);-
399 return
never executed: return 0;
0;
never executed: return 0;
0
400 }-
401-
402 ktri->pctx = EVP_PKEY_CTX_new(pkey, -
403 ((void *)0)-
404 );-
405 if (ktri->pctx ==
ktri->pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
406 ((void *)0)
ktri->pctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
407 )-
408 return
never executed: return 0;
0;
never executed: return 0;
0
409-
410 if (EVP_PKEY_decrypt_init(ktri->pctx) <= 0
EVP_PKEY_decry...ri->pctx) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-16
411 goto
never executed: goto err;
err;
never executed: goto err;
0
412-
413 if (!cms_env_asn1_ctrl(ri, 1)
!cms_env_asn1_ctrl(ri, 1)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-16
414 goto
never executed: goto err;
err;
never executed: goto err;
0
415-
416 if (EVP_PKEY_CTX_ctrl(ktri->pctx, -1, (1<<9),
EVP_PKEY_CTX_c...0, 0, ri) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
417 10, 0, ri) <= 0
EVP_PKEY_CTX_c...0, 0, ri) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-16
418 ERR_put_error(46,(140),(110),__FILE__,386);-
419 goto
never executed: goto err;
err;
never executed: goto err;
0
420 }-
421-
422 if (EVP_PKEY_decrypt(ktri->pctx,
EVP_PKEY_decry...->length) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
423 ((void *)0)
EVP_PKEY_decry...->length) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
424 , &eklen,
EVP_PKEY_decry...->length) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
425 ktri->encryptedKey->data,
EVP_PKEY_decry...->length) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
426 ktri->encryptedKey->length) <= 0
EVP_PKEY_decry...->length) <= 0Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-16
427 goto
never executed: goto err;
err;
never executed: goto err;
0
428-
429 ek = CRYPTO_malloc(eklen, __FILE__, 395);-
430-
431 if (ek ==
ek == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
432 ((void *)0)
ek == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-16
433 ) {-
434 ERR_put_error(46,(140),((1|64)),__FILE__,398);-
435 goto
never executed: goto err;
err;
never executed: goto err;
0
436 }-
437-
438 if (EVP_PKEY_decrypt(ktri->pctx, ek, &eklen,
EVP_PKEY_decry...->length) <= 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-12
439 ktri->encryptedKey->data,
EVP_PKEY_decry...->length) <= 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-12
440 ktri->encryptedKey->length) <= 0
EVP_PKEY_decry...->length) <= 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
4-12
441 ERR_put_error(46,(140),(104),__FILE__,405);-
442 goto
executed 4 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 4 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
4
443 }-
444-
445 ret = 1;-
446-
447 CRYPTO_clear_free(ec->key, ec->keylen, __FILE__, 411);-
448 ec->key = ek;-
449 ec->keylen = eklen;-
450-
451 err:
code before this statement executed 12 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
12
452 EVP_PKEY_CTX_free(ktri->pctx);-
453 ktri->pctx = -
454 ((void *)0)-
455 ;-
456 if (!ret
!retDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
4-12
457 CRYPTO_free(ek, __FILE__, 419);
executed 4 times by 1 test: CRYPTO_free(ek, __FILE__, 419);
Executed by:
  • libcrypto.so.1.1
4
458-
459 return
executed 16 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 16 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
16
460}-
461-
462-
463-
464int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,-
465 const unsigned char *id, size_t idlen)-
466{-
467 ASN1_OCTET_STRING tmp_os;-
468 CMS_KEKRecipientInfo *kekri;-
469 if (ri->type != 2
ri->type != 2Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1
470 ERR_put_error(46,(138),(123),__FILE__,432);-
471 return
never executed: return -2;
-2;
never executed: return -2;
0
472 }-
473 kekri = ri->d.kekri;-
474 tmp_os.type = 4;-
475 tmp_os.flags = 0;-
476 tmp_os.data = (unsigned char *)id;-
477 tmp_os.length = (int)idlen;-
478 return
executed 1 time by 1 test: return ASN1_OCTET_STRING_cmp(&tmp_os, kekri->kekid->keyIdentifier);
Executed by:
  • libcrypto.so.1.1
ASN1_OCTET_STRING_cmp(&tmp_os, kekri->kekid->keyIdentifier);
executed 1 time by 1 test: return ASN1_OCTET_STRING_cmp(&tmp_os, kekri->kekid->keyIdentifier);
Executed by:
  • libcrypto.so.1.1
1
479}-
480-
481-
482-
483static size_t aes_wrap_keylen(int nid)-
484{-
485 switch (nid) {-
486 case
executed 2 times by 1 test: case 788:
Executed by:
  • libcrypto.so.1.1
788:
executed 2 times by 1 test: case 788:
Executed by:
  • libcrypto.so.1.1
2
487 return
executed 2 times by 1 test: return 16;
Executed by:
  • libcrypto.so.1.1
16;
executed 2 times by 1 test: return 16;
Executed by:
  • libcrypto.so.1.1
2
488-
489 case
never executed: case 789:
789:
never executed: case 789:
0
490 return
never executed: return 24;
24;
never executed: return 24;
0
491-
492 case
never executed: case 790:
790:
never executed: case 790:
0
493 return
never executed: return 32;
32;
never executed: return 32;
0
494-
495 default
never executed: default:
:
never executed: default:
0
496 return
never executed: return 0;
0;
never executed: return 0;
0
497 }-
498}-
499-
500CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,-
501 unsigned char *key, size_t keylen,-
502 unsigned char *id, size_t idlen,-
503 ASN1_GENERALIZEDTIME *date,-
504 ASN1_OBJECT *otherTypeId,-
505 ASN1_TYPE *otherType)-
506{-
507 CMS_RecipientInfo *ri = -
508 ((void *)0)-
509 ;-
510 CMS_EnvelopedData *env;-
511 CMS_KEKRecipientInfo *kekri;-
512 env = cms_get0_enveloped(cms);-
513 if (!env
!envDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
514 goto
never executed: goto err;
err;
never executed: goto err;
0
515-
516 if (nid == 0
nid == 0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-2
517 switch (keylen) {-
518 case
executed 2 times by 1 test: case 16:
Executed by:
  • libcrypto.so.1.1
16:
executed 2 times by 1 test: case 16:
Executed by:
  • libcrypto.so.1.1
2
519 nid = 788;-
520 break;
executed 2 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
2
521-
522 case
never executed: case 24:
24:
never executed: case 24:
0
523 nid = 789;-
524 break;
never executed: break;
0
525-
526 case
never executed: case 32:
32:
never executed: case 32:
0
527 nid = 790;-
528 break;
never executed: break;
0
529-
530 default
never executed: default:
:
never executed: default:
0
531 ERR_put_error(46,(100),(118),__FILE__,491);-
532 goto
never executed: goto err;
err;
never executed: goto err;
0
533 }-
534-
535 } else {-
536-
537 size_t exp_keylen = aes_wrap_keylen(nid);-
538-
539 if (!exp_keylen
!exp_keylenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
540 ERR_put_error(46,(100),(153),__FILE__,501)-
541 ;-
542 goto
never executed: goto err;
err;
never executed: goto err;
0
543 }-
544-
545 if (keylen != exp_keylen
keylen != exp_keylenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
546 ERR_put_error(46,(100),(118),__FILE__,506);-
547 goto
never executed: goto err;
err;
never executed: goto err;
0
548 }-
549-
550 }
never executed: end of block
0
551-
552-
553 ri = (CMS_RecipientInfo *)ASN1_item_new((&(CMS_RecipientInfo_it)));-
554 if (!ri
!riDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
555 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
556-
557 ri->d.kekri = (CMS_KEKRecipientInfo *)ASN1_item_new((&(CMS_KEKRecipientInfo_it)));-
558 if (!ri->d.kekri
!ri->d.kekriDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
559 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
560 ri->type = 2;-
561-
562 kekri = ri->d.kekri;-
563-
564 if (otherTypeId
otherTypeIdDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
565 kekri->kekid->other = (CMS_OtherKeyAttribute *)ASN1_item_new((&(CMS_OtherKeyAttribute_it)));-
566 if (kekri->kekid->other ==
kekri->kekid->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
567 ((void *)0)
kekri->kekid->...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
568 )-
569 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
570 }
never executed: end of block
0
571-
572 if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)
!sk_CMS_Recipi...ientInfos, ri)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
573 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
574-
575-
576-
577 kekri->version = 4;-
578-
579 kekri->key = key;-
580 kekri->keylen = keylen;-
581-
582 ASN1_STRING_set0(kekri->kekid->keyIdentifier, id, idlen);-
583-
584 kekri->kekid->date = date;-
585-
586 if (kekri->kekid->other
kekri->kekid->otherDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
587 kekri->kekid->other->keyAttrId = otherTypeId;-
588 kekri->kekid->other->keyAttr = otherType;-
589 }
never executed: end of block
0
590-
591 X509_ALGOR_set0(kekri->keyEncryptionAlgorithm,-
592 OBJ_nid2obj(nid), -1, -
593 ((void *)0)-
594 );-
595-
596 return
executed 2 times by 1 test: return ri;
Executed by:
  • libcrypto.so.1.1
ri;
executed 2 times by 1 test: return ri;
Executed by:
  • libcrypto.so.1.1
2
597-
598 merr:-
599 ERR_put_error(46,(100),((1|64)),__FILE__,555);-
600 err:
code before this statement never executed: err:
0
601 ASN1_item_free(((void*) (1 ? ri : (CMS_RecipientInfo*)0)), (&(CMS_RecipientInfo_it)));-
602 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
603 ((void *)0)
never executed: return ((void *)0) ;
0
604 ;
never executed: return ((void *)0) ;
0
605-
606}-
607-
608int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,-
609 X509_ALGOR **palg,-
610 ASN1_OCTET_STRING **pid,-
611 ASN1_GENERALIZEDTIME **pdate,-
612 ASN1_OBJECT **potherid,-
613 ASN1_TYPE **pothertype)-
614{-
615 CMS_KEKIdentifier *rkid;-
616 if (ri->type != 2
ri->type != 2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
617 ERR_put_error(46,(137),(123),__FILE__,571);-
618 return
never executed: return 0;
0;
never executed: return 0;
0
619 }-
620 rkid = ri->d.kekri->kekid;-
621 if (palg
palgDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
622 *
never executed: *palg = ri->d.kekri->keyEncryptionAlgorithm;
palg = ri->d.kekri->keyEncryptionAlgorithm;
never executed: *palg = ri->d.kekri->keyEncryptionAlgorithm;
0
623 if (pid
pidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
624 *
never executed: *pid = rkid->keyIdentifier;
pid = rkid->keyIdentifier;
never executed: *pid = rkid->keyIdentifier;
0
625 if (pdate
pdateDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
626 *
never executed: *pdate = rkid->date;
pdate = rkid->date;
never executed: *pdate = rkid->date;
0
627 if (potherid
potheridDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
628 if (rkid->other
rkid->otherDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
629 *
never executed: *potherid = rkid->other->keyAttrId;
potherid = rkid->other->keyAttrId;
never executed: *potherid = rkid->other->keyAttrId;
0
630 else-
631 *
never executed: *potherid = ((void *)0) ;
potherid =
never executed: *potherid = ((void *)0) ;
0
632 ((void *)0)
never executed: *potherid = ((void *)0) ;
0
633 ;
never executed: *potherid = ((void *)0) ;
0
634 }-
635 if (pothertype
pothertypeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
636 if (rkid->other
rkid->otherDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
637 *
never executed: *pothertype = rkid->other->keyAttr;
pothertype = rkid->other->keyAttr;
never executed: *pothertype = rkid->other->keyAttr;
0
638 else-
639 *
never executed: *pothertype = ((void *)0) ;
pothertype =
never executed: *pothertype = ((void *)0) ;
0
640 ((void *)0)
never executed: *pothertype = ((void *)0) ;
0
641 ;
never executed: *pothertype = ((void *)0) ;
0
642 }-
643 return
never executed: return 1;
1;
never executed: return 1;
0
644}-
645-
646int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,-
647 unsigned char *key, size_t keylen)-
648{-
649 CMS_KEKRecipientInfo *kekri;-
650 if (ri->type != 2
ri->type != 2Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-4
651 ERR_put_error(46,(144),(123),__FILE__,601);-
652 return
never executed: return 0;
0;
never executed: return 0;
0
653 }-
654-
655 kekri = ri->d.kekri;-
656 kekri->key = key;-
657 kekri->keylen = keylen;-
658 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
659}-
660-
661-
662-
663static int cms_RecipientInfo_kekri_encrypt(CMS_ContentInfo *cms,-
664 CMS_RecipientInfo *ri)-
665{-
666 CMS_EncryptedContentInfo *ec;-
667 CMS_KEKRecipientInfo *kekri;-
668 AES_KEY actx;-
669 unsigned char *wkey = -
670 ((void *)0)-
671 ;-
672 int wkeylen;-
673 int r = 0;-
674-
675 ec = cms->d.envelopedData->encryptedContentInfo;-
676-
677 kekri = ri->d.kekri;-
678-
679 if (!kekri->key
!kekri->keyDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
680 ERR_put_error(46,(136),(130),__FILE__,628);-
681 return
never executed: return 0;
0;
never executed: return 0;
0
682 }-
683-
684 if (AES_set_encrypt_key(kekri->key, kekri->keylen << 3, &actx)
AES_set_encryp...n << 3, &actx)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
685 ERR_put_error(46,(136),(115),__FILE__,634)-
686 ;-
687 goto
never executed: goto err;
err;
never executed: goto err;
0
688 }-
689-
690 wkey = CRYPTO_malloc(ec->keylen + 8, __FILE__, 638);-
691-
692 if (wkey ==
wkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
693 ((void *)0)
wkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
694 ) {-
695 ERR_put_error(46,(136),((1|64)),__FILE__,641);-
696 goto
never executed: goto err;
err;
never executed: goto err;
0
697 }-
698-
699 wkeylen = AES_wrap_key(&actx, -
700 ((void *)0)-
701 , wkey, ec->key, ec->keylen);-
702-
703 if (wkeylen <= 0
wkeylen <= 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
704 ERR_put_error(46,(136),(159),__FILE__,648);-
705 goto
never executed: goto err;
err;
never executed: goto err;
0
706 }-
707-
708 ASN1_STRING_set0(kekri->encryptedKey, wkey, wkeylen);-
709-
710 r = 1;-
711-
712 err:
code before this statement executed 2 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
2
713-
714 if (!r
!rDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
715 CRYPTO_free(wkey, __FILE__, 659);
never executed: CRYPTO_free(wkey, __FILE__, 659);
0
716 OPENSSL_cleanse(&actx, sizeof(actx));-
717-
718 return
executed 2 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
r;
executed 2 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
2
719-
720}-
721-
722-
723-
724static int cms_RecipientInfo_kekri_decrypt(CMS_ContentInfo *cms,-
725 CMS_RecipientInfo *ri)-
726{-
727 CMS_EncryptedContentInfo *ec;-
728 CMS_KEKRecipientInfo *kekri;-
729 AES_KEY actx;-
730 unsigned char *ukey = -
731 ((void *)0)-
732 ;-
733 int ukeylen;-
734 int r = 0, wrap_nid;-
735-
736 ec = cms->d.envelopedData->encryptedContentInfo;-
737-
738 kekri = ri->d.kekri;-
739-
740 if (!kekri->key
!kekri->keyDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
741 ERR_put_error(46,(135),(130),__FILE__,683);-
742 return
never executed: return 0;
0;
never executed: return 0;
0
743 }-
744-
745 wrap_nid = OBJ_obj2nid(kekri->keyEncryptionAlgorithm->algorithm);-
746 if (aes_wrap_keylen(wrap_nid) != kekri->keylen
aes_wrap_keyle... kekri->keylenDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
747 ERR_put_error(46,(135),(118),__FILE__,690)-
748 ;-
749 return
never executed: return 0;
0;
never executed: return 0;
0
750 }-
751-
752-
753-
754 if (kekri->encryptedKey->length < 16
kekri->encrypt...y->length < 16Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
755 ERR_put_error(46,(135),(117),__FILE__,698)-
756 ;-
757 goto
never executed: goto err;
err;
never executed: goto err;
0
758 }-
759-
760 if (AES_set_decrypt_key(kekri->key, kekri->keylen << 3, &actx)
AES_set_decryp...n << 3, &actx)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
761 ERR_put_error(46,(135),(115),__FILE__,704)-
762 ;-
763 goto
never executed: goto err;
err;
never executed: goto err;
0
764 }-
765-
766 ukey = CRYPTO_malloc(kekri->encryptedKey->length - 8, __FILE__, 708);-
767-
768 if (ukey ==
ukey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
769 ((void *)0)
ukey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-2
770 ) {-
771 ERR_put_error(46,(135),((1|64)),__FILE__,711);-
772 goto
never executed: goto err;
err;
never executed: goto err;
0
773 }-
774-
775 ukeylen = AES_unwrap_key(&actx, -
776 ((void *)0)-
777 , ukey,-
778 kekri->encryptedKey->data,-
779 kekri->encryptedKey->length);-
780-
781 if (ukeylen <= 0
ukeylen <= 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-2
782 ERR_put_error(46,(135),(157),__FILE__,720);-
783 goto
never executed: goto err;
err;
never executed: goto err;
0
784 }-
785-
786 ec->key = ukey;-
787 ec->keylen = ukeylen;-
788-
789 r = 1;-
790-
791 err:
code before this statement executed 2 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
2
792-
793 if (!r
!rDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
794 CRYPTO_free(ukey, __FILE__, 732);
never executed: CRYPTO_free(ukey, __FILE__, 732);
0
795 OPENSSL_cleanse(&actx, sizeof(actx));-
796-
797 return
executed 2 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
r;
executed 2 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
2
798-
799}-
800-
801int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri)-
802{-
803 switch (ri->type) {-
804 case
executed 16 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
0:
executed 16 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
16
805 return
executed 16 times by 1 test: return cms_RecipientInfo_ktri_decrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
cms_RecipientInfo_ktri_decrypt(cms, ri);
executed 16 times by 1 test: return cms_RecipientInfo_ktri_decrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
16
806-
807 case
executed 2 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
2:
executed 2 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
2
808 return
executed 2 times by 1 test: return cms_RecipientInfo_kekri_decrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
cms_RecipientInfo_kekri_decrypt(cms, ri);
executed 2 times by 1 test: return cms_RecipientInfo_kekri_decrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
2
809-
810 case
never executed: case 3:
3:
never executed: case 3:
0
811 return
never executed: return cms_RecipientInfo_pwri_crypt(cms, ri, 0);
cms_RecipientInfo_pwri_crypt(cms, ri, 0);
never executed: return cms_RecipientInfo_pwri_crypt(cms, ri, 0);
0
812-
813 default
never executed: default:
:
never executed: default:
0
814 ERR_put_error(46,(134),(155),__FILE__,753)-
815 ;-
816 return
never executed: return 0;
0;
never executed: return 0;
0
817 }-
818}-
819-
820int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri)-
821{-
822 switch (ri->type) {-
823 case
executed 30 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
0:
executed 30 times by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
30
824 return
executed 30 times by 1 test: return cms_RecipientInfo_ktri_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
cms_RecipientInfo_ktri_encrypt(cms, ri);
executed 30 times by 1 test: return cms_RecipientInfo_ktri_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
30
825-
826 case
executed 7 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
1:
executed 7 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
7
827 return
executed 7 times by 1 test: return cms_RecipientInfo_kari_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
cms_RecipientInfo_kari_encrypt(cms, ri);
executed 7 times by 1 test: return cms_RecipientInfo_kari_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
7
828-
829 case
executed 2 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
2:
executed 2 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
2
830 return
executed 2 times by 1 test: return cms_RecipientInfo_kekri_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
cms_RecipientInfo_kekri_encrypt(cms, ri);
executed 2 times by 1 test: return cms_RecipientInfo_kekri_encrypt(cms, ri);
Executed by:
  • libcrypto.so.1.1
2
831-
832 case
never executed: case 3:
3:
never executed: case 3:
0
833 return
never executed: return cms_RecipientInfo_pwri_crypt(cms, ri, 1);
cms_RecipientInfo_pwri_crypt(cms, ri, 1);
never executed: return cms_RecipientInfo_pwri_crypt(cms, ri, 1);
0
834-
835 default
never executed: default:
:
never executed: default:
0
836 ERR_put_error(46,(169),(154),__FILE__,775)-
837 ;-
838 return
never executed: return 0;
0;
never executed: return 0;
0
839 }-
840}-
841-
842-
843-
844static void cms_env_set_originfo_version(CMS_EnvelopedData *env)-
845{-
846 CMS_OriginatorInfo *org = env->originatorInfo;-
847 int i;-
848 if (org ==
org == ((void *)0)Description
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-20
849 ((void *)0)
org == ((void *)0)Description
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-20
850 )-
851 return;
executed 20 times by 1 test: return;
Executed by:
  • libcrypto.so.1.1
20
852 for (i = 0; i < sk_CMS_CertificateChoices_num(org->certificates)
i < sk_CMS_Cer...>certificates)Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
853 CMS_CertificateChoices *cch;-
854 cch = sk_CMS_CertificateChoices_value(org->certificates, i);-
855 if (cch->type == 4
cch->type == 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
856 env->version = 4;-
857 return;
never executed: return;
0
858 } else if (cch->type == 3
cch->type == 3Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
859 if (env->version < 3
env->version < 3Description
TRUEnever evaluated
FALSEnever evaluated
)
0
860 env->version = 3;
never executed: env->version = 3;
0
861 }
never executed: end of block
0
862 }
never executed: end of block
0
863-
864 for (i = 0; i < sk_CMS_RevocationInfoChoice_num(org->crls)
i < sk_CMS_Rev...num(org->crls)Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
865 CMS_RevocationInfoChoice *rch;-
866 rch = sk_CMS_RevocationInfoChoice_value(org->crls, i);-
867 if (rch->type == 1
rch->type == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
868 env->version = 4;-
869 return;
never executed: return;
0
870 }-
871 }
never executed: end of block
0
872}
never executed: end of block
0
873-
874static void cms_env_set_version(CMS_EnvelopedData *env)-
875{-
876 int i;-
877 CMS_RecipientInfo *ri;-
878-
879-
880-
881-
882 if (env->version >= 4
env->version >= 4Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-20
883 return;
never executed: return;
0
884-
885 cms_env_set_originfo_version(env);-
886-
887 if (env->version >= 3
env->version >= 3Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-20
888 return;
never executed: return;
0
889-
890 for (i = 0; i < sk_CMS_RecipientInfo_num(env->recipientInfos)
i < sk_CMS_Rec...ecipientInfos)Description
TRUEevaluated 39 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
20-39
891 ri = sk_CMS_RecipientInfo_value(env->recipientInfos, i);-
892 if (ri->type == 3
ri->type == 3Description
TRUEnever evaluated
FALSEevaluated 39 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| ri->type == 4
ri->type == 4Description
TRUEnever evaluated
FALSEevaluated 39 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-39
893 env->version = 3;-
894 return;
never executed: return;
0
895 } else if (ri->type != 0
ri->type != 0Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 30 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
9-30
896 || ri->d.ktri->version != 0
ri->d.ktri->version != 0Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 27 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-27
897 env->version = 2;-
898 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
899 }
executed 39 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
39
900 if (env->originatorInfo
env->originatorInfoDescription
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| env->unprotectedAttrs
env->unprotectedAttrsDescription
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-20
901 env->version = 2;
never executed: env->version = 2;
0
902 if (env->version == 2
env->version == 2Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
9-11
903 return;
executed 9 times by 1 test: return;
Executed by:
  • libcrypto.so.1.1
9
904 env->version = 0;-
905}
executed 11 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
11
906-
907BIO *cms_EnvelopedData_init_bio(CMS_ContentInfo *cms)-
908{-
909 CMS_EncryptedContentInfo *ec;-
910 struct stack_st_CMS_RecipientInfo *rinfos;-
911 CMS_RecipientInfo *ri;-
912 int i, ok = 0;-
913 BIO *ret;-
914-
915-
916-
917 ec = cms->d.envelopedData->encryptedContentInfo;-
918 ret = cms_EncryptedContent_init_bio(ec);-
919-
920-
921-
922 if (!ret
!retDescription
TRUEnever evaluated
FALSEevaluated 40 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| !ec->cipher
!ec->cipherDescription
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-40
923 return
executed 20 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 20 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
20
924-
925-
926-
927 rinfos = cms->d.envelopedData->recipientInfos;-
928-
929 for (i = 0; i < sk_CMS_RecipientInfo_num(rinfos)
i < sk_CMS_Rec...fo_num(rinfos)Description
TRUEevaluated 39 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
20-39
930 ri = sk_CMS_RecipientInfo_value(rinfos, i);-
931 if (CMS_RecipientInfo_encrypt(cms, ri) <= 0
CMS_RecipientI...(cms, ri) <= 0Description
TRUEnever evaluated
FALSEevaluated 39 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-39
932 ERR_put_error(46,(125),(116),__FILE__,869)-
933 ;-
934 goto
never executed: goto err;
err;
never executed: goto err;
0
935 }-
936 }
executed 39 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
39
937 cms_env_set_version(cms->d.envelopedData);-
938-
939 ok = 1;-
940-
941 err:
code before this statement executed 20 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
20
942 ec->cipher = -
943 ((void *)0)-
944 ;-
945 CRYPTO_clear_free(ec->key, ec->keylen, __FILE__, 879);-
946 ec->key = -
947 ((void *)0)-
948 ;-
949 ec->keylen = 0;-
950 if (ok
okDescription
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-20
951 return
executed 20 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 20 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
20
952 BIO_free(ret);-
953 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
954 ((void *)0)
never executed: return ((void *)0) ;
0
955 ;
never executed: return ((void *)0) ;
0
956-
957}-
958-
959-
960-
961-
962-
963-
964int cms_pkey_get_ri_type(EVP_PKEY *pk)-
965{-
966 if (pk->ameth
pk->amethDescription
TRUEevaluated 55 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& pk->ameth->pkey_ctrl
pk->ameth->pkey_ctrlDescription
TRUEevaluated 55 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-55
967 int i, r;-
968 i = pk->ameth->pkey_ctrl(pk, 0x8, 0, &r);-
969 if (i > 0
i > 0Description
TRUEevaluated 55 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-55
970 return
executed 55 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
r;
executed 55 times by 1 test: return r;
Executed by:
  • libcrypto.so.1.1
55
971 }
never executed: end of block
0
972 return
never executed: return 0;
0;
never executed: return 0;
0
973}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2