OpenCoverage

p12_mutl.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pkcs12/p12_mutl.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7int-
8PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,-
9 unsigned char *mac, unsigned int *maclen)-
10{-
11 const EVP_MD *md_type;-
12 HMAC_CTX hmac;-
13 unsigned char key[64], *salt;-
14 int saltlen, iter;-
15 int md_size;-
16-
17 if (!(OBJ_obj2nid((p12->authsafes)->type) == 21)
!(OBJ_obj2nid(...->type) == 21)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
18 ERR_put_error(35,(0xfff),(121),__FILE__,83);-
19 return
never executed: return 0;
0;
never executed: return 0;
0
20 }-
21-
22 salt = p12->mac->salt->data;-
23 saltlen = p12->mac->salt->length;-
24 if (!p12->mac->iter
!p12->mac->iterDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
25 iter = 1;
never executed: iter = 1;
0
26 else if ((
(iter = ASN1_I...c->iter)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
iter = ASN1_INTEGER_get(p12->mac->iter)) <= 0
(iter = ASN1_I...c->iter)) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
27 ERR_put_error(35,(0xfff),(101),__FILE__,92);-
28 return
never executed: return 0;
0;
never executed: return 0;
0
29 }-
30 if (!(md_type = EVP_get_digestbyname(OBJ_nid2sn(OBJ_obj2nid(p12->mac->dinfo->algor->algorithm)))
!(md_type = EV...algorithm))) )Description
TRUEnever evaluated
FALSEnever evaluated
0
31 )
!(md_type = EV...algorithm))) )Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
32 ERR_put_error(35,(0xfff),(118),__FILE__,97);-
33 return
never executed: return 0;
0;
never executed: return 0;
0
34 }-
35 md_size = EVP_MD_size(md_type);-
36 if (md_size < 0
md_size < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
37 return
never executed: return 0;
0;
never executed: return 0;
0
38 if (!PKCS12_key_gen_asc(pass, passlen, salt, saltlen, 3, iter,
!PKCS12_key_ge... key, md_type)Description
TRUEnever evaluated
FALSEnever evaluated
0
39 md_size, key, md_type)
!PKCS12_key_ge... key, md_type)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
40 ERR_put_error(35,(0xfff),(107),__FILE__,105);-
41 return
never executed: return 0;
0;
never executed: return 0;
0
42 }-
43 HMAC_CTX_init(&hmac);-
44 if (!HMAC_Init_ex(&hmac, key, md_size, md_type,
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
45 ((void *)0)
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
46 )
!HMAC_Init_ex(... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
||
0
47 !HMAC_Update(&hmac, p12->authsafes->d.data->data,
!HMAC_Update(&....data->length)Description
TRUEnever evaluated
FALSEnever evaluated
0
48 p12->authsafes->d.data->length)
!HMAC_Update(&....data->length)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
49 !HMAC_Final(&hmac, mac, maclen)
!HMAC_Final(&h..., mac, maclen)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
50 HMAC_CTX_cleanup(&hmac);-
51 return
never executed: return 0;
0;
never executed: return 0;
0
52 }-
53 HMAC_CTX_cleanup(&hmac);-
54 return
never executed: return 1;
1;
never executed: return 1;
0
55}-
56-
57-
58int-
59PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)-
60{-
61 unsigned char mac[64];-
62 unsigned int maclen;-
63-
64 if (p12->mac ==
p12->mac == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
65 ((void *)0)
p12->mac == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
66 ) {-
67 ERR_put_error(35,(0xfff),(108),__FILE__,128);-
68 return
never executed: return 0;
0;
never executed: return 0;
0
69 }-
70 if (!PKCS12_gen_mac(p12, pass, passlen, mac, &maclen)
!PKCS12_gen_ma... mac, &maclen)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
71 ERR_put_error(35,(0xfff),(109),__FILE__,132);-
72 return
never executed: return 0;
0;
never executed: return 0;
0
73 }-
74 if ((
(maclen != (un...igest->length)Description
TRUEnever evaluated
FALSEnever evaluated
maclen != (unsigned int)p12->mac->dinfo->digest->length)
(maclen != (un...igest->length)Description
TRUEnever evaluated
FALSEnever evaluated
||
0
75 memcmp(mac, p12->mac->dinfo->digest->data, maclen)
memcmp(mac, p1...>data, maclen)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
76 return
never executed: return 0;
0;
never executed: return 0;
0
77 return
never executed: return 1;
1;
never executed: return 1;
0
78}-
79-
80-
81-
82int-
83PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt,-
84 int saltlen, int iter, const EVP_MD *md_type)-
85{-
86 unsigned char mac[64];-
87 unsigned int maclen;-
88-
89 if (!md_type
!md_typeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
90 md_type = EVP_sha1();
never executed: md_type = EVP_sha1();
0
91 if (PKCS12_setup_mac(p12, iter, salt, saltlen, md_type) ==
PKCS12_setup_m... md_type) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
92 0
PKCS12_setup_m... md_type) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
93 ERR_put_error(35,(0xfff),(110),__FILE__,154);-
94 return
never executed: return 0;
0;
never executed: return 0;
0
95 }-
96 if (!PKCS12_gen_mac(p12, pass, passlen, mac, &maclen)
!PKCS12_gen_ma... mac, &maclen)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
97 ERR_put_error(35,(0xfff),(109),__FILE__,158);-
98 return
never executed: return 0;
0;
never executed: return 0;
0
99 }-
100 if (!(ASN1_STRING_set(p12->mac->dinfo->digest, mac, maclen))
!(ASN1_STRING_... mac, maclen))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
101 ERR_put_error(35,(0xfff),(111),__FILE__,162);-
102 return
never executed: return 0;
0;
never executed: return 0;
0
103 }-
104 return
never executed: return 1;
1;
never executed: return 1;
0
105}-
106-
107-
108int-
109PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen,-
110 const EVP_MD *md_type)-
111{-
112 if (!(p12->mac = PKCS12_MAC_DATA_new())
!(p12->mac = P...AC_DATA_new())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
113 return
never executed: return 0;
0;
never executed: return 0;
0
114 if (iter > 1
iter > 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
115 if (!(p12->mac->iter = ASN1_INTEGER_new())
!(p12->mac->it...INTEGER_new())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
116 ERR_put_error(35,(0xfff),((1|64)),__FILE__,177);-
117 return
never executed: return 0;
0;
never executed: return 0;
0
118 }-
119 if (!ASN1_INTEGER_set(p12->mac->iter, iter)
!ASN1_INTEGER_...c->iter, iter)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
120 ERR_put_error(35,(0xfff),((1|64)),__FILE__,181);-
121 return
never executed: return 0;
0;
never executed: return 0;
0
122 }-
123 }
never executed: end of block
0
124 if (!saltlen
!saltlenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
125 saltlen = 8;
never executed: saltlen = 8;
0
126 if (!(p12->mac->salt->data = malloc(saltlen))
!(p12->mac->sa...lloc(saltlen))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
127 ERR_put_error(35,(0xfff),((1|64)),__FILE__,188);-
128 return
never executed: return 0;
0;
never executed: return 0;
0
129 }-
130 p12->mac->salt->length = saltlen;-
131 if (!salt
!saltDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
132 arc4random_buf(p12->mac->salt->data, saltlen);
never executed: arc4random_buf(p12->mac->salt->data, saltlen);
0
133 else-
134 memcpy (p12->mac->salt->data, salt, saltlen);
never executed: memcpy (p12->mac->salt->data, salt, saltlen);
0
135 p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type));-
136 if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())
!(p12->mac->di...N1_TYPE_new())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
137 ERR_put_error(35,(0xfff),((1|64)),__FILE__,198);-
138 return
never executed: return 0;
0;
never executed: return 0;
0
139 }-
140 p12->mac->dinfo->algor->parameter->type = 5;-
141-
142 return
never executed: return 1;
1;
never executed: return 1;
0
143}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2