OpenCoverage

cms_pwri.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cms/cms_pwri.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,-
4 unsigned char *pass, ssize_t passlen)-
5{-
6 CMS_PasswordRecipientInfo *pwri;-
7 if (ri->type != 3
ri->type != 3Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
8 ERR_put_error(46,(168),(177),__FILE__,26);-
9 return
never executed: return 0;
0;
never executed: return 0;
0
10 }-
11-
12 pwri = ri->d.pwri;-
13 pwri->pass = pass;-
14 if (pass
passDescription
TRUEnever evaluated
FALSEnever evaluated
&& passlen < 0
passlen < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
15 passlen = strlen((char *)pass);
never executed: passlen = strlen((char *)pass);
0
16 pwri->passlen = passlen;-
17 return
never executed: return 1;
1;
never executed: return 1;
0
18}-
19-
20CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,-
21 int iter, int wrap_nid,-
22 int pbe_nid,-
23 unsigned char *pass,-
24 ssize_t passlen,-
25 const EVP_CIPHER *kekciph)-
26{-
27 CMS_RecipientInfo *ri = -
28 ((void *)0)-
29 ;-
30 CMS_EnvelopedData *env;-
31 CMS_PasswordRecipientInfo *pwri;-
32 EVP_CIPHER_CTX *ctx = -
33 ((void *)0)-
34 ;-
35 X509_ALGOR *encalg = -
36 ((void *)0)-
37 ;-
38 unsigned char iv[16];-
39 int ivlen;-
40-
41 env = cms_get0_enveloped(cms);-
42 if (!env
!envDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
43 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
44 ((void *)0)
never executed: return ((void *)0) ;
0
45 ;
never executed: return ((void *)0) ;
0
46-
47 if (wrap_nid <= 0
wrap_nid <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
48 wrap_nid = 893;
never executed: wrap_nid = 893;
0
49-
50 if (pbe_nid <= 0
pbe_nid <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
51 pbe_nid = 69;
never executed: pbe_nid = 69;
0
52-
53-
54 if (kekciph ==
kekciph == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
55 ((void *)0)
kekciph == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
56 )-
57 kekciph = env->encryptedContentInfo->cipher;
never executed: kekciph = env->encryptedContentInfo->cipher;
0
58-
59 if (kekciph ==
kekciph == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
60 ((void *)0)
kekciph == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
61 ) {-
62 ERR_put_error(46,(165),(126),__FILE__,68);-
63 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
64 ((void *)0)
never executed: return ((void *)0) ;
0
65 ;
never executed: return ((void *)0) ;
0
66 }-
67 if (wrap_nid != 893
wrap_nid != 893Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
68 ERR_put_error(46,(165),(179),__FILE__,73)-
69 ;-
70 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
71 ((void *)0)
never executed: return ((void *)0) ;
0
72 ;
never executed: return ((void *)0) ;
0
73 }-
74-
75-
76 encalg = X509_ALGOR_new();-
77 if (encalg ==
encalg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
78 ((void *)0)
encalg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
79 ) {-
80 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
81 }-
82 ctx = EVP_CIPHER_CTX_new();-
83-
84 if (EVP_EncryptInit_ex(ctx, kekciph,
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
85 ((void *)0)
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
86 ,
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
87 ((void *)0)
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
88 ,
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
89 ((void *)0)
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
90 ) <= 0
EVP_EncryptIni...id *)0) ) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
91 ERR_put_error(46,(165),(6),__FILE__,85);-
92 goto
never executed: goto err;
err;
never executed: goto err;
0
93 }-
94-
95 ivlen = EVP_CIPHER_CTX_iv_length(ctx);-
96-
97 if (ivlen > 0
ivlen > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
98 if (RAND_bytes(iv, ivlen) <= 0
RAND_bytes(iv, ivlen) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
99 goto
never executed: goto err;
err;
never executed: goto err;
0
100 if (EVP_EncryptInit_ex(ctx,
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
101 ((void *)0)
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
102 ,
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
103 ((void *)0)
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
104 ,
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
105 ((void *)0)
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
106 , iv) <= 0
EVP_EncryptIni...)0) , iv) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
107 ERR_put_error(46,(165),(6),__FILE__,95);-
108 goto
never executed: goto err;
err;
never executed: goto err;
0
109 }-
110 encalg->parameter = ASN1_TYPE_new();-
111 if (!encalg->parameter
!encalg->parameterDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
112 ERR_put_error(46,(165),((1|64)),__FILE__,100);-
113 goto
never executed: goto err;
err;
never executed: goto err;
0
114 }-
115 if (EVP_CIPHER_param_to_asn1(ctx, encalg->parameter) <= 0
EVP_CIPHER_par...arameter) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
116 ERR_put_error(46,(165),(102),__FILE__,105)-
117 ;-
118 goto
never executed: goto err;
err;
never executed: goto err;
0
119 }-
120 }
never executed: end of block
0
121-
122 encalg->algorithm = OBJ_nid2obj(EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(ctx)));-
123-
124 EVP_CIPHER_CTX_free(ctx);-
125 ctx = -
126 ((void *)0)-
127 ;-
128-
129-
130 ri = (CMS_RecipientInfo *)ASN1_item_new((&(CMS_RecipientInfo_it)));-
131 if (ri ==
ri == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
132 ((void *)0)
ri == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
133 )-
134 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
135-
136 ri->d.pwri = (CMS_PasswordRecipientInfo *)ASN1_item_new((&(CMS_PasswordRecipientInfo_it)));-
137 if (ri->d.pwri ==
ri->d.pwri == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
138 ((void *)0)
ri->d.pwri == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
139 )-
140 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
141 ri->type = 3;-
142-
143 pwri = ri->d.pwri;-
144-
145 X509_ALGOR_free(pwri->keyEncryptionAlgorithm);-
146 pwri->keyEncryptionAlgorithm = X509_ALGOR_new();-
147 if (pwri->keyEncryptionAlgorithm ==
pwri->keyEncry...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
148 ((void *)0)
pwri->keyEncry...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
149 )-
150 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
151 pwri->keyEncryptionAlgorithm->algorithm = OBJ_nid2obj(wrap_nid);-
152 pwri->keyEncryptionAlgorithm->parameter = ASN1_TYPE_new();-
153 if (pwri->keyEncryptionAlgorithm->parameter ==
pwri->keyEncry...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
154 ((void *)0)
pwri->keyEncry...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
155 )-
156 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
157-
158 if (!ASN1_item_pack(encalg, (&(X509_ALGOR_it)),
!ASN1_item_pac...alue.sequence)Description
TRUEnever evaluated
FALSEnever evaluated
0
159 &pwri->keyEncryptionAlgorithm->parameter->
!ASN1_item_pac...alue.sequence)Description
TRUEnever evaluated
FALSEnever evaluated
0
160 value.sequence)
!ASN1_item_pac...alue.sequence)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
161 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
162 pwri->keyEncryptionAlgorithm->parameter->type = 16;-
163-
164 X509_ALGOR_free(encalg);-
165 encalg = -
166 ((void *)0)-
167 ;-
168-
169-
170-
171 pwri->keyDerivationAlgorithm = PKCS5_pbkdf2_set(iter, -
172 ((void *)0)-
173 , 0, -1, -1);-
174-
175 if (!pwri->keyDerivationAlgorithm
!pwri->keyDerivationAlgorithmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
176 goto
never executed: goto err;
err;
never executed: goto err;
0
177-
178 CMS_RecipientInfo_set0_password(ri, pass, passlen);-
179 pwri->version = 0;-
180-
181 if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)
!sk_CMS_Recipi...ientInfos, ri)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
182 goto
never executed: goto merr;
merr;
never executed: goto merr;
0
183-
184 return
never executed: return ri;
ri;
never executed: return ri;
0
185-
186 merr:-
187 ERR_put_error(46,(165),((1|64)),__FILE__,161);-
188 err:
code before this statement never executed: err:
0
189 EVP_CIPHER_CTX_free(ctx);-
190 if (ri
riDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
191 ASN1_item_free(((void*) (1 ? ri : (CMS_RecipientInfo*)0)), (&(CMS_RecipientInfo_it)));
never executed: ASN1_item_free(((void*) (1 ? ri : (CMS_RecipientInfo*)0)), (&(CMS_RecipientInfo_it)));
0
192 X509_ALGOR_free(encalg);-
193 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
194 ((void *)0)
never executed: return ((void *)0) ;
0
195 ;
never executed: return ((void *)0) ;
0
196-
197}-
198-
199-
200-
201-
202-
203-
204static int kek_unwrap_key(unsigned char *out, size_t *outlen,-
205 const unsigned char *in, size_t inlen,-
206 EVP_CIPHER_CTX *ctx)-
207{-
208 size_t blocklen = EVP_CIPHER_CTX_block_size(ctx);-
209 unsigned char *tmp;-
210 int outl, rv = 0;-
211 if (inlen < 2 * blocklen
inlen < 2 * blocklenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
212-
213 return
never executed: return 0;
0;
never executed: return 0;
0
214 }-
215 if (inlen % blocklen
inlen % blocklenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
216-
217 return
never executed: return 0;
0;
never executed: return 0;
0
218 }-
219 if ((
(tmp = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
tmp = CRYPTO_malloc(inlen, __FILE__, 191)) ==
(tmp = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
220 ((void *)0)
(tmp = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
221 ) {-
222 ERR_put_error(46,(180),((1|64)),__FILE__,192);-
223 return
never executed: return 0;
0;
never executed: return 0;
0
224 }-
225-
226 if (!EVP_DecryptUpdate(ctx, tmp + inlen - 2 * blocklen, &outl,
!EVP_DecryptUp... blocklen * 2)Description
TRUEnever evaluated
FALSEnever evaluated
0
227 in + inlen - 2 * blocklen, blocklen * 2)
!EVP_DecryptUp... blocklen * 2)Description
TRUEnever evaluated
FALSEnever evaluated
0
228-
229-
230-
231-
232-
233 || !EVP_DecryptUpdate(ctx, tmp, &outl,
!EVP_DecryptUp...len, blocklen)Description
TRUEnever evaluated
FALSEnever evaluated
0
234 tmp + inlen - blocklen, blocklen)
!EVP_DecryptUp...len, blocklen)Description
TRUEnever evaluated
FALSEnever evaluated
0
235-
236 || !EVP_DecryptUpdate(ctx, tmp, &outl, in, inlen - blocklen)
!EVP_DecryptUp...en - blocklen)Description
TRUEnever evaluated
FALSEnever evaluated
0
237-
238-
239 || !EVP_DecryptInit_ex(ctx,
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
240 ((void *)0)
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
241 ,
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
242 ((void *)0)
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
243 ,
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
244 ((void *)0)
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
245 ,
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
246 ((void *)0)
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
247 )
!EVP_DecryptIn... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
248-
249 || !EVP_DecryptUpdate(ctx, tmp, &outl, tmp, inlen)
!EVP_DecryptUp...l, tmp, inlen)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
250 goto
never executed: goto err;
err;
never executed: goto err;
0
251-
252 if (((
((tmp[1] ^ tmp...p[6])) != 0xffDescription
TRUEnever evaluated
FALSEnever evaluated
tmp[1] ^ tmp[4]) & (tmp[2] ^ tmp[5]) & (tmp[3] ^ tmp[6])) != 0xff
((tmp[1] ^ tmp...p[6])) != 0xffDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
253-
254 goto
never executed: goto err;
err;
never executed: goto err;
0
255 }-
256 if (inlen < (size_t)(tmp[0] - 4)
inlen < (size_t)(tmp[0] - 4)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
257-
258 goto
never executed: goto err;
err;
never executed: goto err;
0
259 }-
260 *outlen = (size_t)tmp[0];-
261 memcpy(out, tmp + 4, *outlen);-
262 rv = 1;-
263 err:
code before this statement never executed: err:
0
264 CRYPTO_clear_free(tmp, inlen, __FILE__, 226);-
265 return
never executed: return rv;
rv;
never executed: return rv;
0
266-
267}-
268-
269static int kek_wrap_key(unsigned char *out, size_t *outlen,-
270 const unsigned char *in, size_t inlen,-
271 EVP_CIPHER_CTX *ctx)-
272{-
273 size_t blocklen = EVP_CIPHER_CTX_block_size(ctx);-
274 size_t olen;-
275 int dummy;-
276-
277-
278-
279-
280 olen = (inlen + 4 + blocklen - 1) / blocklen;-
281 olen *= blocklen;-
282 if (olen < 2 * blocklen
olen < 2 * blocklenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
283-
284 return
never executed: return 0;
0;
never executed: return 0;
0
285 }-
286 if (inlen > 0xFF
inlen > 0xFFDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
287-
288 return
never executed: return 0;
0;
never executed: return 0;
0
289 }-
290 if (out
outDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
291-
292 out[0] = (unsigned char)inlen;-
293 out[1] = in[0] ^ 0xFF;-
294 out[2] = in[1] ^ 0xFF;-
295 out[3] = in[2] ^ 0xFF;-
296 memcpy(out + 4, in, inlen);-
297-
298 if (olen > inlen + 4
olen > inlen + 4Description
TRUEnever evaluated
FALSEnever evaluated
0
299 && RAND_bytes(out + 4 + inlen, olen - 4 - inlen) <= 0
RAND_bytes(out... - inlen) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
300 return
never executed: return 0;
0;
never executed: return 0;
0
301-
302 if (!EVP_EncryptUpdate(ctx, out, &dummy, out, olen)
!EVP_EncryptUp...my, out, olen)Description
TRUEnever evaluated
FALSEnever evaluated
0
303 || !EVP_EncryptUpdate(ctx, out, &dummy, out, olen)
!EVP_EncryptUp...my, out, olen)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
304 return
never executed: return 0;
0;
never executed: return 0;
0
305 }
never executed: end of block
0
306-
307 *outlen = olen;-
308-
309 return
never executed: return 1;
1;
never executed: return 1;
0
310}-
311-
312-
313-
314int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri,-
315 int en_de)-
316{-
317 CMS_EncryptedContentInfo *ec;-
318 CMS_PasswordRecipientInfo *pwri;-
319 int r = 0;-
320 X509_ALGOR *algtmp, *kekalg = -
321 ((void *)0)-
322 ;-
323 EVP_CIPHER_CTX *kekctx = -
324 ((void *)0)-
325 ;-
326 const EVP_CIPHER *kekcipher;-
327 unsigned char *key = -
328 ((void *)0)-
329 ;-
330 size_t keylen;-
331-
332 ec = cms->d.envelopedData->encryptedContentInfo;-
333-
334 pwri = ri->d.pwri;-
335-
336 if (!pwri->pass
!pwri->passDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
337 ERR_put_error(46,(167),(178),__FILE__,293);-
338 return
never executed: return 0;
0;
never executed: return 0;
0
339 }-
340 algtmp = pwri->keyEncryptionAlgorithm;-
341-
342 if (!algtmp
!algtmpDescription
TRUEnever evaluated
FALSEnever evaluated
|| OBJ_obj2nid(algtmp->algorithm) != 893
OBJ_obj2nid(al...orithm) != 893Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
343 ERR_put_error(46,(167),(179),__FILE__,300)-
344 ;-
345 return
never executed: return 0;
0;
never executed: return 0;
0
346 }-
347-
348 kekalg = ASN1_TYPE_unpack_sequence((&(X509_ALGOR_it)),-
349 algtmp->parameter);-
350-
351 if (kekalg ==
kekalg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
352 ((void *)0)
kekalg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
353 ) {-
354 ERR_put_error(46,(167),(176),__FILE__,309)-
355 ;-
356 return
never executed: return 0;
0;
never executed: return 0;
0
357 }-
358-
359 kekcipher = EVP_get_cipherbyname(OBJ_nid2sn(OBJ_obj2nid(kekalg->algorithm)));-
360-
361 if (!kekcipher
!kekcipherDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
362 ERR_put_error(46,(167),(148),__FILE__,316);-
363 return
never executed: return 0;
0;
never executed: return 0;
0
364 }-
365-
366 kekctx = EVP_CIPHER_CTX_new();-
367 if (kekctx ==
kekctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
368 ((void *)0)
kekctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
369 ) {-
370 ERR_put_error(46,(167),((1|64)),__FILE__,322);-
371 return
never executed: return 0;
0;
never executed: return 0;
0
372 }-
373-
374 if (!EVP_CipherInit_ex(kekctx, kekcipher,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
375 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
376 ,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
377 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
378 ,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
379 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
380 , en_de)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
381 goto
never executed: goto err;
err;
never executed: goto err;
0
382 EVP_CIPHER_CTX_set_padding(kekctx, 0);-
383 if (EVP_CIPHER_asn1_to_param(kekctx, kekalg->parameter) <= 0
EVP_CIPHER_asn...arameter) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
384 ERR_put_error(46,(167),(102),__FILE__,331)-
385 ;-
386 goto
never executed: goto err;
err;
never executed: goto err;
0
387 }-
388-
389 algtmp = pwri->keyDerivationAlgorithm;-
390-
391-
392-
393 if (EVP_PBE_CipherInit(algtmp->algorithm,
EVP_PBE_Cipher...tx, en_de) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
394 (char *)pwri->pass, pwri->passlen,
EVP_PBE_Cipher...tx, en_de) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
395 algtmp->parameter, kekctx, en_de) < 0
EVP_PBE_Cipher...tx, en_de) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
396 ERR_put_error(46,(167),(6),__FILE__,342);-
397 goto
never executed: goto err;
err;
never executed: goto err;
0
398 }-
399-
400-
401-
402 if (en_de
en_deDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
403-
404 if (!kek_wrap_key(
!kek_wrap_key(...eylen, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
405 ((void *)0)
!kek_wrap_key(...eylen, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
406 , &keylen, ec->key, ec->keylen, kekctx)
!kek_wrap_key(...eylen, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
407 goto
never executed: goto err;
err;
never executed: goto err;
0
408-
409 key = CRYPTO_malloc(keylen, __FILE__, 353);-
410-
411 if (key ==
key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
412 ((void *)0)
key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
413 )-
414 goto
never executed: goto err;
err;
never executed: goto err;
0
415-
416 if (!kek_wrap_key(key, &keylen, ec->key, ec->keylen, kekctx)
!kek_wrap_key(...eylen, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
417 goto
never executed: goto err;
err;
never executed: goto err;
0
418 pwri->encryptedKey->data = key;-
419 pwri->encryptedKey->length = keylen;-
420 }
never executed: end of block
else {
0
421 key = CRYPTO_malloc(pwri->encryptedKey->length, __FILE__, 363);-
422-
423 if (key ==
key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
424 ((void *)0)
key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
425 ) {-
426 ERR_put_error(46,(167),((1|64)),__FILE__,366);-
427 goto
never executed: goto err;
err;
never executed: goto err;
0
428 }-
429 if (!kek_unwrap_key(key, &keylen,
!kek_unwrap_ke...ength, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
430 pwri->encryptedKey->data,
!kek_unwrap_ke...ength, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
431 pwri->encryptedKey->length, kekctx)
!kek_unwrap_ke...ength, kekctx)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
432 ERR_put_error(46,(167),(180),__FILE__,372);-
433 goto
never executed: goto err;
err;
never executed: goto err;
0
434 }-
435-
436 ec->key = key;-
437 ec->keylen = keylen;-
438-
439 }
never executed: end of block
0
440-
441 r = 1;-
442-
443 err:
code before this statement never executed: err:
0
444-
445 EVP_CIPHER_CTX_free(kekctx);-
446-
447 if (!r
!rDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
448 CRYPTO_free(key, __FILE__, 388);
never executed: CRYPTO_free(key, __FILE__, 388);
0
449 X509_ALGOR_free(kekalg);-
450-
451 return
never executed: return r;
r;
never executed: return r;
0
452-
453}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2