OpenCoverage

p5_crpt2.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/evp/p5_crpt2.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13int-
14PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt,-
15 int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out)-
16{-
17 unsigned char digtmp[64], *p, itmp[4];-
18 int cplen, j, k, tkeylen, mdlen;-
19 unsigned long i = 1;-
20 HMAC_CTX hctx_tpl, hctx;-
21-
22 mdlen = EVP_MD_size(digest);-
23 if (mdlen < 0
mdlen < 0Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
)
0-15
24 return
never executed: return 0;
0;
never executed: return 0;
0
25-
26 HMAC_CTX_init(&hctx_tpl);-
27 p = out;-
28 tkeylen = keylen;-
29 if (!pass
!passDescription
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
)
0-15
30 passlen = 0;
never executed: passlen = 0;
0
31 else if (passlen == -1
passlen == -1Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
)
0-15
32 passlen = strlen(pass);
never executed: passlen = strlen(pass);
0
33 if (!HMAC_Init_ex(&hctx_tpl, pass, passlen, digest,
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
0-15
34 ((void *)0)
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
0-15
35 )
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
) {
0-15
36 HMAC_CTX_cleanup(&hctx_tpl);-
37 return
never executed: return 0;
0;
never executed: return 0;
0
38 }-
39 while (tkeylen
tkeylenDescription
TRUEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
) {
15-17
40 if (tkeylen > mdlen
tkeylen > mdlenDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • pbkdf2
FALSEevaluated 15 times by 1 test
Evaluated by:
  • pbkdf2
)
2-15
41 cplen = mdlen;
executed 2 times by 1 test: cplen = mdlen;
Executed by:
  • pbkdf2
2
42 else-
43 cplen = tkeylen;
executed 15 times by 1 test: cplen = tkeylen;
Executed by:
  • pbkdf2
15
44-
45-
46-
47 itmp[0] = (unsigned char)((i >> 24) & 0xff);-
48 itmp[1] = (unsigned char)((i >> 16) & 0xff);-
49 itmp[2] = (unsigned char)((i >> 8) & 0xff);-
50 itmp[3] = (unsigned char)(i & 0xff);-
51 if (!HMAC_CTX_copy(&hctx, &hctx_tpl)
!HMAC_CTX_copy...tx, &hctx_tpl)Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
) {
0-17
52 HMAC_CTX_cleanup(&hctx_tpl);-
53 return
never executed: return 0;
0;
never executed: return 0;
0
54 }-
55 if (!HMAC_Update(&hctx, salt, saltlen)
!HMAC_Update(&...salt, saltlen)Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
||
0-17
56 !HMAC_Update(&hctx, itmp, 4)
!HMAC_Update(&hctx, itmp, 4)Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
||
0-17
57 !HMAC_Final(&hctx, digtmp,
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
0-17
58 ((void *)0)
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
0-17
59 )
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
) {
0-17
60 HMAC_CTX_cleanup(&hctx_tpl);-
61 HMAC_CTX_cleanup(&hctx);-
62 return
never executed: return 0;
0;
never executed: return 0;
0
63 }-
64 HMAC_CTX_cleanup(&hctx);-
65 memcpy(p, digtmp, cplen);-
66 for (j = 1; j < iter
j < iterDescription
TRUEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
FALSEevaluated 17 times by 1 test
Evaluated by:
  • pbkdf2
; j++) {
17-45048
67 if (!HMAC_CTX_copy(&hctx, &hctx_tpl)
!HMAC_CTX_copy...tx, &hctx_tpl)Description
TRUEnever evaluated
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
) {
0-45048
68 HMAC_CTX_cleanup(&hctx_tpl);-
69 return
never executed: return 0;
0;
never executed: return 0;
0
70 }-
71 if (!HMAC_Update(&hctx, digtmp, mdlen)
!HMAC_Update(&...digtmp, mdlen)Description
TRUEnever evaluated
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
||
0-45048
72 !HMAC_Final(&hctx, digtmp,
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
0-45048
73 ((void *)0)
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
0-45048
74 )
!HMAC_Final(&h... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
) {
0-45048
75 HMAC_CTX_cleanup(&hctx_tpl);-
76 HMAC_CTX_cleanup(&hctx);-
77 return
never executed: return 0;
0;
never executed: return 0;
0
78 }-
79 HMAC_CTX_cleanup(&hctx);-
80 for (k = 0; k < cplen
k < cplenDescription
TRUEevaluated 1199951 times by 1 test
Evaluated by:
  • pbkdf2
FALSEevaluated 45048 times by 1 test
Evaluated by:
  • pbkdf2
; k++)
45048-1199951
81 p[k] ^= digtmp[k];
executed 1199951 times by 1 test: p[k] ^= digtmp[k];
Executed by:
  • pbkdf2
1199951
82 }
executed 45048 times by 1 test: end of block
Executed by:
  • pbkdf2
45048
83 tkeylen -= cplen;-
84 i++;-
85 p += cplen;-
86 }
executed 17 times by 1 test: end of block
Executed by:
  • pbkdf2
17
87 HMAC_CTX_cleanup(&hctx_tpl);-
88 return
executed 15 times by 1 test: return 1;
Executed by:
  • pbkdf2
1;
executed 15 times by 1 test: return 1;
Executed by:
  • pbkdf2
15
89}-
90-
91int-
92PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt,-
93 int saltlen, int iter, int keylen, unsigned char *out)-
94{-
95 return
never executed: return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, EVP_sha1(), keylen, out);
PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter,
never executed: return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, EVP_sha1(), keylen, out);
0
96 EVP_sha1(), keylen, out);
never executed: return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, EVP_sha1(), keylen, out);
0
97}-
98-
99-
100-
101-
102-
103-
104int-
105PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,-
106 ASN1_TYPE *param, const EVP_CIPHER *c, const EVP_MD *md, int en_de)-
107{-
108 const unsigned char *pbuf;-
109 int plen;-
110 PBE2PARAM *pbe2 = -
111 ((void *)0)-
112 ;-
113 const EVP_CIPHER *cipher;-
114-
115 int rv = 0;-
116-
117 if (param ==
param == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
118 ((void *)0)
param == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
119 || param->type != 16
param->type != 16Description
TRUEnever evaluated
FALSEnever evaluated
||
0
120 param->value.sequence ==
param->value.s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
121 ((void *)0)
param->value.s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
122 ) {-
123 ERR_put_error(6,(0xfff),(114),__FILE__,178);-
124 goto
never executed: goto err;
err;
never executed: goto err;
0
125 }-
126-
127 pbuf = param->value.sequence->data;-
128 plen = param->value.sequence->length;-
129 if (!(pbe2 = d2i_PBE2PARAM(
!(pbe2 = d2i_P... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
0
130 ((void *)0)
!(pbe2 = d2i_P... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
0
131 , &pbuf, plen))
!(pbe2 = d2i_P... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
132 ERR_put_error(6,(0xfff),(114),__FILE__,185);-
133 goto
never executed: goto err;
err;
never executed: goto err;
0
134 }-
135-
136-
137-
138 if (OBJ_obj2nid(pbe2->keyfunc->algorithm) != 69
OBJ_obj2nid(pb...gorithm) != 69Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
139 ERR_put_error(6,(0xfff),(124),__FILE__,192);-
140 goto
never executed: goto err;
err;
never executed: goto err;
0
141 }-
142-
143-
144-
145-
146 cipher = EVP_get_cipherbyname(OBJ_nid2sn(OBJ_obj2nid(pbe2->encryption->algorithm)));-
147-
148 if (!cipher
!cipherDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
149 ERR_put_error(6,(0xfff),(107),__FILE__,202);-
150 goto
never executed: goto err;
err;
never executed: goto err;
0
151 }-
152-
153-
154 if (!EVP_CipherInit_ex(ctx, cipher,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
155 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
156 ,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
157 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
158 ,
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
159 ((void *)0)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
0
160 , en_de)
!EVP_CipherIni... *)0) , en_de)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
161 goto
never executed: goto err;
err;
never executed: goto err;
0
162 if (EVP_CIPHER_asn1_to_param(ctx, pbe2->encryption->parameter) < 0
EVP_CIPHER_asn...parameter) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
163 ERR_put_error(6,(0xfff),(122),__FILE__,210);-
164 goto
never executed: goto err;
err;
never executed: goto err;
0
165 }-
166 rv = PKCS5_v2_PBKDF2_keyivgen(ctx, pass, passlen,-
167 pbe2->keyfunc->parameter, c, md, en_de);-
168-
169err:
code before this statement never executed: err:
0
170 PBE2PARAM_free(pbe2);-
171 return
never executed: return rv;
rv;
never executed: return rv;
0
172}-
173-
174int-
175PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,-
176 ASN1_TYPE *param, const EVP_CIPHER *c, const EVP_MD *md, int en_de)-
177{-
178 unsigned char *salt, key[64];-
179 const unsigned char *pbuf;-
180 int saltlen, iter, plen;-
181 int rv = 0;-
182 unsigned int keylen = 0;-
183 int prf_nid, hmac_md_nid;-
184 PBKDF2PARAM *kdf = -
185 ((void *)0)-
186 ;-
187 const EVP_MD *prfmd;-
188-
189 if (EVP_CIPHER_CTX_cipher(ctx) ==
EVP_CIPHER_CTX...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
190 ((void *)0)
EVP_CIPHER_CTX...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
191 ) {-
192 ERR_put_error(6,(0xfff),(131),__FILE__,235);-
193 return
never executed: return 0;
0;
never executed: return 0;
0
194 }-
195 keylen = EVP_CIPHER_CTX_key_length(ctx);-
196 if (keylen > sizeof key
keylen > sizeof keyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
197 ERR_put_error(6,(0xfff),(137),__FILE__,240);-
198 return
never executed: return 0;
0;
never executed: return 0;
0
199 }-
200-
201-
202-
203 if (!param
!paramDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(param->type != 16)Description
TRUEnever evaluated
FALSEnever evaluated
param->type != 16)
(param->type != 16)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
204 ERR_put_error(6,(0xfff),(114),__FILE__,247);-
205 return
never executed: return 0;
0;
never executed: return 0;
0
206 }-
207-
208 pbuf = param->value.sequence->data;-
209 plen = param->value.sequence->length;-
210-
211 if (!(kdf = d2i_PBKDF2PARAM(
!(kdf = d2i_PB... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
0
212 ((void *)0)
!(kdf = d2i_PB... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
0
213 , &pbuf, plen))
!(kdf = d2i_PB... &pbuf, plen))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
214 ERR_put_error(6,(0xfff),(114),__FILE__,255);-
215 return
never executed: return 0;
0;
never executed: return 0;
0
216 }-
217-
218-
219-
220 if (kdf->keylength
kdf->keylengthDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
221 (
(ASN1_INTEGER_...= (int)keylen)Description
TRUEnever evaluated
FALSEnever evaluated
ASN1_INTEGER_get(kdf->keylength) != (int)keylen)
(ASN1_INTEGER_...= (int)keylen)Description
TRUEnever evaluated
FALSEnever evaluated
){
0
222 ERR_put_error(6,(0xfff),(123),__FILE__,263);-
223 goto
never executed: goto err;
err;
never executed: goto err;
0
224 }-
225-
226 if (kdf->prf
kdf->prfDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
227 prf_nid = OBJ_obj2nid(kdf->prf->algorithm);
never executed: prf_nid = OBJ_obj2nid(kdf->prf->algorithm);
0
228 else-
229 prf_nid = 163;
never executed: prf_nid = 163;
0
230-
231 if (!EVP_PBE_find(0x1, prf_nid,
!EVP_PBE_find(...mac_md_nid, 0)Description
TRUEnever evaluated
FALSEnever evaluated
0
232 ((void *)0)
!EVP_PBE_find(...mac_md_nid, 0)Description
TRUEnever evaluated
FALSEnever evaluated
0
233 , &hmac_md_nid, 0)
!EVP_PBE_find(...mac_md_nid, 0)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
234 ERR_put_error(6,(0xfff),(125),__FILE__,273);-
235 goto
never executed: goto err;
err;
never executed: goto err;
0
236 }-
237-
238 prfmd = EVP_get_digestbyname(OBJ_nid2sn(hmac_md_nid));-
239 if (prfmd ==
prfmd == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
240 ((void *)0)
prfmd == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
241 ) {-
242 ERR_put_error(6,(0xfff),(125),__FILE__,279);-
243 goto
never executed: goto err;
err;
never executed: goto err;
0
244 }-
245-
246 if (kdf->salt->type != 4
kdf->salt->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
247 ERR_put_error(6,(0xfff),(126),__FILE__,284);-
248 goto
never executed: goto err;
err;
never executed: goto err;
0
249 }-
250-
251-
252 salt = kdf->salt->value.octet_string->data;-
253 saltlen = kdf->salt->value.octet_string->length;-
254 if ((
(iter = ASN1_I...f->iter)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
iter = ASN1_INTEGER_get(kdf->iter)) <= 0
(iter = ASN1_I...f->iter)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
255 ERR_put_error(6,(0xfff),(135),__FILE__,292);-
256 goto
never executed: goto err;
err;
never executed: goto err;
0
257 }-
258 if (!PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, prfmd,
!PKCS5_PBKDF2_..., keylen, key)Description
TRUEnever evaluated
FALSEnever evaluated
0
259 keylen, key)
!PKCS5_PBKDF2_..., keylen, key)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
260 goto
never executed: goto err;
err;
never executed: goto err;
0
261 rv = EVP_CipherInit_ex(ctx, -
262 ((void *)0)-
263 , -
264 ((void *)0)-
265 , key, -
266 ((void *)0)-
267 , en_de);-
268-
269err:
code before this statement never executed: err:
0
270 explicit_bzero(key, keylen);-
271 PBKDF2PARAM_free(kdf);-
272 return
never executed: return rv;
rv;
never executed: return rv;
0
273}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2