Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pkcs12/p12_decr.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | - | |||||||
3 | - | |||||||
4 | - | |||||||
5 | - | |||||||
6 | - | |||||||
7 | unsigned char * | - | ||||||
8 | PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, | - | ||||||
9 | const unsigned char *in, int inlen, unsigned char **data, int *datalen, | - | ||||||
10 | int en_de) | - | ||||||
11 | { | - | ||||||
12 | unsigned char *out; | - | ||||||
13 | int outlen, i; | - | ||||||
14 | EVP_CIPHER_CTX ctx; | - | ||||||
15 | - | |||||||
16 | EVP_CIPHER_CTX_init(&ctx); | - | ||||||
17 | - | |||||||
18 | if (!EVP_PBE_CipherInit(algor->algorithm, pass, passlen,
| 0 | ||||||
19 | algor->parameter, &ctx, en_de)
| 0 | ||||||
20 | out = | - | ||||||
21 | ((void *)0) | - | ||||||
22 | ; | - | ||||||
23 | ERR_put_error(35,(0xfff),(115),__FILE__,83); | - | ||||||
24 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
25 | } | - | ||||||
26 | - | |||||||
27 | if (!(out = malloc(inlen + EVP_CIPHER_CTX_block_size(&ctx)))
| 0 | ||||||
28 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,88); | - | ||||||
29 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
30 | } | - | ||||||
31 | - | |||||||
32 | if (!EVP_CipherUpdate(&ctx, out, &i, in, inlen)
| 0 | ||||||
33 | free(out); | - | ||||||
34 | out = | - | ||||||
35 | ((void *)0) | - | ||||||
36 | ; | - | ||||||
37 | ERR_put_error(35,(0xfff),(6),__FILE__,95); | - | ||||||
38 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
39 | } | - | ||||||
40 | - | |||||||
41 | outlen = i; | - | ||||||
42 | if (!EVP_CipherFinal_ex(&ctx, out + i, &i)
| 0 | ||||||
43 | free(out); | - | ||||||
44 | out = | - | ||||||
45 | ((void *)0) | - | ||||||
46 | ; | - | ||||||
47 | ERR_put_error(35,(0xfff),(116),__FILE__,103); | - | ||||||
48 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
49 | } | - | ||||||
50 | outlen += i; | - | ||||||
51 | if (datalen
| 0 | ||||||
52 | * never executed: datalen = outlen;*datalen = outlen; never executed: *datalen = outlen; | 0 | ||||||
53 | if (data
| 0 | ||||||
54 | * never executed: data = out;*data = out; never executed: *data = out; | 0 | ||||||
55 | - | |||||||
56 | err: code before this statement never executed: err: | 0 | ||||||
57 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||
58 | return never executed: out;return out; never executed: return out; | 0 | ||||||
59 | - | |||||||
60 | } | - | ||||||
61 | - | |||||||
62 | - | |||||||
63 | - | |||||||
64 | - | |||||||
65 | - | |||||||
66 | void * | - | ||||||
67 | PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, | - | ||||||
68 | const char *pass, int passlen, const ASN1_OCTET_STRING *oct, int zbuf) | - | ||||||
69 | { | - | ||||||
70 | unsigned char *out; | - | ||||||
71 | const unsigned char *p; | - | ||||||
72 | void *ret; | - | ||||||
73 | int outlen; | - | ||||||
74 | - | |||||||
75 | if (!PKCS12_pbe_crypt(algor, pass, passlen, oct->data, oct->length,
| 0 | ||||||
76 | &out, &outlen, 0)
| 0 | ||||||
77 | ERR_put_error(35,(0xfff),(117),__FILE__,133); | - | ||||||
78 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
79 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
80 | ; never executed: return ((void *)0) ; | 0 | ||||||
81 | } | - | ||||||
82 | p = out; | - | ||||||
83 | ret = ASN1_item_d2i( | - | ||||||
84 | ((void *)0) | - | ||||||
85 | , &p, outlen, it); | - | ||||||
86 | if (zbuf
| 0 | ||||||
87 | explicit_bzero(out, outlen); never executed: explicit_bzero(out, outlen); | 0 | ||||||
88 | if (!ret
| 0 | ||||||
89 | ERR_put_error(35,(0xfff),(101),__FILE__,141); never executed: ERR_put_error(35,(0xfff),(101),__FILE__,141); | 0 | ||||||
90 | free(out); | - | ||||||
91 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||
92 | } | - | ||||||
93 | - | |||||||
94 | - | |||||||
95 | - | |||||||
96 | - | |||||||
97 | - | |||||||
98 | ASN1_OCTET_STRING * | - | ||||||
99 | PKCS12_item_i2d_encrypt(X509_ALGOR *algor, const ASN1_ITEM *it, | - | ||||||
100 | const char *pass, int passlen, | - | ||||||
101 | void *obj, int zbuf) | - | ||||||
102 | { | - | ||||||
103 | ASN1_OCTET_STRING *oct; | - | ||||||
104 | unsigned char *in = | - | ||||||
105 | ((void *)0) | - | ||||||
106 | ; | - | ||||||
107 | int inlen; | - | ||||||
108 | - | |||||||
109 | if (!(oct = ASN1_OCTET_STRING_new ())
| 0 | ||||||
110 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,160); | - | ||||||
111 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
112 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
113 | ; never executed: return ((void *)0) ; | 0 | ||||||
114 | } | - | ||||||
115 | inlen = ASN1_item_i2d(obj, &in, it); | - | ||||||
116 | if (!in
| 0 | ||||||
117 | ERR_put_error(35,(0xfff),(102),__FILE__,165); | - | ||||||
118 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
119 | } | - | ||||||
120 | if (!PKCS12_pbe_crypt(algor, pass, passlen, in, inlen, &oct->data,
| 0 | ||||||
121 | &oct->length, 1)
| 0 | ||||||
122 | ERR_put_error(35,(0xfff),(103),__FILE__,170); | - | ||||||
123 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
124 | } | - | ||||||
125 | if (zbuf
| 0 | ||||||
126 | explicit_bzero(in, inlen); never executed: explicit_bzero(in, inlen); | 0 | ||||||
127 | free(in); | - | ||||||
128 | return never executed: oct;return oct; never executed: return oct; | 0 | ||||||
129 | - | |||||||
130 | err: | - | ||||||
131 | free(in); | - | ||||||
132 | ASN1_OCTET_STRING_free(oct); | - | ||||||
133 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
134 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
135 | ; never executed: return ((void *)0) ; | 0 | ||||||
136 | } | - | ||||||
137 | - | |||||||
138 | - | |||||||
Switch to Source code | Preprocessed file |