Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/p5_pbe.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | - | |||||||
3 | - | |||||||
4 | - | |||||||
5 | static const ASN1_TEMPLATE PBEPARAM_seq_tt[] = { | - | ||||||
6 | { | - | ||||||
7 | .offset = | - | ||||||
8 | __builtin_offsetof ( | - | ||||||
9 | PBEPARAM | - | ||||||
10 | , | - | ||||||
11 | salt | - | ||||||
12 | ) | - | ||||||
13 | , | - | ||||||
14 | .field_name = "salt", | - | ||||||
15 | .item = &ASN1_OCTET_STRING_it, | - | ||||||
16 | }, | - | ||||||
17 | { | - | ||||||
18 | .offset = | - | ||||||
19 | __builtin_offsetof ( | - | ||||||
20 | PBEPARAM | - | ||||||
21 | , | - | ||||||
22 | iter | - | ||||||
23 | ) | - | ||||||
24 | , | - | ||||||
25 | .field_name = "iter", | - | ||||||
26 | .item = &ASN1_INTEGER_it, | - | ||||||
27 | }, | - | ||||||
28 | }; | - | ||||||
29 | - | |||||||
30 | const ASN1_ITEM PBEPARAM_it = { | - | ||||||
31 | .itype = 0x1, | - | ||||||
32 | .utype = 16, | - | ||||||
33 | .templates = PBEPARAM_seq_tt, | - | ||||||
34 | .tcount = sizeof(PBEPARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||
35 | .size = sizeof(PBEPARAM), | - | ||||||
36 | .sname = "PBEPARAM", | - | ||||||
37 | }; | - | ||||||
38 | - | |||||||
39 | - | |||||||
40 | PBEPARAM * | - | ||||||
41 | d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len) | - | ||||||
42 | { | - | ||||||
43 | return never executed: (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it); never executed: return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it); | 0 | ||||||
44 | &PBEPARAM_it); never executed: return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it); | 0 | ||||||
45 | } | - | ||||||
46 | - | |||||||
47 | int | - | ||||||
48 | i2d_PBEPARAM(PBEPARAM *a, unsigned char **out) | - | ||||||
49 | { | - | ||||||
50 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it); | 0 | ||||||
51 | } | - | ||||||
52 | - | |||||||
53 | PBEPARAM * | - | ||||||
54 | PBEPARAM_new(void) | - | ||||||
55 | { | - | ||||||
56 | return never executed: (PBEPARAM *)ASN1_item_new(&PBEPARAM_it);return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it); never executed: return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it); | 0 | ||||||
57 | } | - | ||||||
58 | - | |||||||
59 | void | - | ||||||
60 | PBEPARAM_free(PBEPARAM *a) | - | ||||||
61 | { | - | ||||||
62 | ASN1_item_free((ASN1_VALUE *)a, &PBEPARAM_it); | - | ||||||
63 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||
64 | - | |||||||
65 | - | |||||||
66 | - | |||||||
67 | - | |||||||
68 | int | - | ||||||
69 | PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, | - | ||||||
70 | const unsigned char *salt, int saltlen) | - | ||||||
71 | { | - | ||||||
72 | PBEPARAM *pbe = | - | ||||||
73 | ((void *)0) | - | ||||||
74 | ; | - | ||||||
75 | ASN1_STRING *pbe_str = | - | ||||||
76 | ((void *)0) | - | ||||||
77 | ; | - | ||||||
78 | unsigned char *sstr; | - | ||||||
79 | - | |||||||
80 | pbe = PBEPARAM_new(); | - | ||||||
81 | if (!pbe
| 0 | ||||||
82 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,130); | - | ||||||
83 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
84 | } | - | ||||||
85 | if (iter <= 0
| 0 | ||||||
86 | iter = 2048; never executed: iter = 2048; | 0 | ||||||
87 | if (!ASN1_INTEGER_set(pbe->iter, iter)
| 0 | ||||||
88 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,136); | - | ||||||
89 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
90 | } | - | ||||||
91 | if (!saltlen
| 0 | ||||||
92 | saltlen = 8; never executed: saltlen = 8; | 0 | ||||||
93 | if (!ASN1_STRING_set(pbe->salt,
| 0 | ||||||
94 | ((void *)0)
| 0 | ||||||
95 | , saltlen)
| 0 | ||||||
96 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,142); | - | ||||||
97 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
98 | } | - | ||||||
99 | sstr = ASN1_STRING_data(pbe->salt); | - | ||||||
100 | if (salt
| 0 | ||||||
101 | memcpy(sstr, salt, saltlen); never executed: memcpy(sstr, salt, saltlen); | 0 | ||||||
102 | else | - | ||||||
103 | arc4random_buf(sstr, saltlen); never executed: arc4random_buf(sstr, saltlen); | 0 | ||||||
104 | - | |||||||
105 | if (!ASN1_item_pack(pbe, &PBEPARAM_it, &pbe_str)
| 0 | ||||||
106 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,152); | - | ||||||
107 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
108 | } | - | ||||||
109 | - | |||||||
110 | PBEPARAM_free(pbe); | - | ||||||
111 | pbe = | - | ||||||
112 | ((void *)0) | - | ||||||
113 | ; | - | ||||||
114 | - | |||||||
115 | if (X509_ALGOR_set0(algor, OBJ_nid2obj(alg), 16, pbe_str)
| 0 | ||||||
116 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
117 | - | |||||||
118 | err: code before this statement never executed: err: | 0 | ||||||
119 | if (pbe !=
| 0 | ||||||
120 | ((void *)0)
| 0 | ||||||
121 | ) | - | ||||||
122 | PBEPARAM_free(pbe); never executed: PBEPARAM_free(pbe); | 0 | ||||||
123 | ASN1_STRING_free(pbe_str); | - | ||||||
124 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
125 | } | - | ||||||
126 | - | |||||||
127 | - | |||||||
128 | - | |||||||
129 | X509_ALGOR * | - | ||||||
130 | PKCS5_pbe_set(int alg, int iter, const unsigned char *salt, int saltlen) | - | ||||||
131 | { | - | ||||||
132 | X509_ALGOR *ret; | - | ||||||
133 | ret = X509_ALGOR_new(); | - | ||||||
134 | if (!ret
| 0 | ||||||
135 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,177); | - | ||||||
136 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
137 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
138 | ; never executed: return ((void *)0) ; | 0 | ||||||
139 | } | - | ||||||
140 | - | |||||||
141 | if (PKCS5_pbe_set0_algor(ret, alg, iter, salt, saltlen)
| 0 | ||||||
142 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||
143 | - | |||||||
144 | X509_ALGOR_free(ret); | - | ||||||
145 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
146 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
147 | ; never executed: return ((void *)0) ; | 0 | ||||||
148 | } | - | ||||||
Switch to Source code | Preprocessed file |