Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/dh/dh_lib.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | static const DH_METHOD *default_DH_method = | - | ||||||||||||
8 | ((void *)0) | - | ||||||||||||
9 | ; | - | ||||||||||||
10 | - | |||||||||||||
11 | void | - | ||||||||||||
12 | DH_set_default_method(const DH_METHOD *meth) | - | ||||||||||||
13 | { | - | ||||||||||||
14 | default_DH_method = meth; | - | ||||||||||||
15 | } never executed: end of block | 0 | ||||||||||||
16 | - | |||||||||||||
17 | const DH_METHOD * | - | ||||||||||||
18 | DH_get_default_method(void) | - | ||||||||||||
19 | { | - | ||||||||||||
20 | if (!default_DH_method
| 52-178 | ||||||||||||
21 | default_DH_method = DH_OpenSSL(); executed 52 times by 4 tests: default_DH_method = DH_OpenSSL(); Executed by:
| 52 | ||||||||||||
22 | return executed 230 times by 4 tests: default_DH_method;return default_DH_method; Executed by:
executed 230 times by 4 tests: return default_DH_method; Executed by:
| 230 | ||||||||||||
23 | } | - | ||||||||||||
24 | - | |||||||||||||
25 | int | - | ||||||||||||
26 | DH_set_method(DH *dh, const DH_METHOD *meth) | - | ||||||||||||
27 | { | - | ||||||||||||
28 | - | |||||||||||||
29 | - | |||||||||||||
30 | - | |||||||||||||
31 | - | |||||||||||||
32 | const DH_METHOD *mtmp; | - | ||||||||||||
33 | - | |||||||||||||
34 | mtmp = dh->meth; | - | ||||||||||||
35 | if (mtmp->finish
| 0 | ||||||||||||
36 | mtmp->finish(dh); never executed: mtmp->finish(dh); | 0 | ||||||||||||
37 | - | |||||||||||||
38 | ENGINE_finish(dh->engine); | - | ||||||||||||
39 | dh->engine = | - | ||||||||||||
40 | ((void *)0) | - | ||||||||||||
41 | ; | - | ||||||||||||
42 | - | |||||||||||||
43 | dh->meth = meth; | - | ||||||||||||
44 | if (meth->init
| 0 | ||||||||||||
45 | meth->init(dh); never executed: meth->init(dh); | 0 | ||||||||||||
46 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
47 | } | - | ||||||||||||
48 | - | |||||||||||||
49 | DH * | - | ||||||||||||
50 | DH_new(void) | - | ||||||||||||
51 | { | - | ||||||||||||
52 | return executed 230 times by 4 tests: DH_new_method(return DH_new_method( ((void *)0) ); Executed by:
executed 230 times by 4 tests: return DH_new_method( ((void *)0) ); Executed by:
| 230 | ||||||||||||
53 | ((void *)0) executed 230 times by 4 tests: return DH_new_method( ((void *)0) ); Executed by:
| 230 | ||||||||||||
54 | ); executed 230 times by 4 tests: return DH_new_method( ((void *)0) ); Executed by:
| 230 | ||||||||||||
55 | } | - | ||||||||||||
56 | - | |||||||||||||
57 | DH * | - | ||||||||||||
58 | DH_new_method(ENGINE *engine) | - | ||||||||||||
59 | { | - | ||||||||||||
60 | DH *ret; | - | ||||||||||||
61 | - | |||||||||||||
62 | ret = malloc(sizeof(DH)); | - | ||||||||||||
63 | if (ret ==
| 0-230 | ||||||||||||
64 | ((void *)0)
| 0-230 | ||||||||||||
65 | ) { | - | ||||||||||||
66 | ERR_put_error(5,(0xfff),((1|64)),__FILE__,123); | - | ||||||||||||
67 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
68 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
69 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
70 | } | - | ||||||||||||
71 | - | |||||||||||||
72 | ret->meth = DH_get_default_method(); | - | ||||||||||||
73 | - | |||||||||||||
74 | if (engine
| 0-230 | ||||||||||||
75 | if (!ENGINE_init(engine)
| 0 | ||||||||||||
76 | ERR_put_error(5,(0xfff),(38),__FILE__,131); | - | ||||||||||||
77 | free(ret); | - | ||||||||||||
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 | ret->engine = engine; | - | ||||||||||||
83 | } never executed: elseend of block | 0 | ||||||||||||
84 | ret->engine = ENGINE_get_default_DH(); executed 230 times by 4 tests: ret->engine = ENGINE_get_default_DH(); Executed by:
| 230 | ||||||||||||
85 | if(ret->engine
| 0-230 | ||||||||||||
86 | ret->meth = ENGINE_get_DH(ret->engine); | - | ||||||||||||
87 | if (ret->meth ==
| 0 | ||||||||||||
88 | ((void *)0)
| 0 | ||||||||||||
89 | ) { | - | ||||||||||||
90 | ERR_put_error(5,(0xfff),(38),__FILE__,141); | - | ||||||||||||
91 | ENGINE_finish(ret->engine); | - | ||||||||||||
92 | free(ret); | - | ||||||||||||
93 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
94 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
95 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
96 | } | - | ||||||||||||
97 | } never executed: end of block | 0 | ||||||||||||
98 | - | |||||||||||||
99 | - | |||||||||||||
100 | ret->pad = 0; | - | ||||||||||||
101 | ret->version = 0; | - | ||||||||||||
102 | ret->p = | - | ||||||||||||
103 | ((void *)0) | - | ||||||||||||
104 | ; | - | ||||||||||||
105 | ret->g = | - | ||||||||||||
106 | ((void *)0) | - | ||||||||||||
107 | ; | - | ||||||||||||
108 | ret->length = 0; | - | ||||||||||||
109 | ret->pub_key = | - | ||||||||||||
110 | ((void *)0) | - | ||||||||||||
111 | ; | - | ||||||||||||
112 | ret->priv_key = | - | ||||||||||||
113 | ((void *)0) | - | ||||||||||||
114 | ; | - | ||||||||||||
115 | ret->q = | - | ||||||||||||
116 | ((void *)0) | - | ||||||||||||
117 | ; | - | ||||||||||||
118 | ret->j = | - | ||||||||||||
119 | ((void *)0) | - | ||||||||||||
120 | ; | - | ||||||||||||
121 | ret->seed = | - | ||||||||||||
122 | ((void *)0) | - | ||||||||||||
123 | ; | - | ||||||||||||
124 | ret->seedlen = 0; | - | ||||||||||||
125 | ret->counter = | - | ||||||||||||
126 | ((void *)0) | - | ||||||||||||
127 | ; | - | ||||||||||||
128 | ret->method_mont_p= | - | ||||||||||||
129 | ((void *)0) | - | ||||||||||||
130 | ; | - | ||||||||||||
131 | ret->references = 1; | - | ||||||||||||
132 | ret->flags = ret->meth->flags & ~0x0400; | - | ||||||||||||
133 | CRYPTO_new_ex_data(8, ret, &ret->ex_data); | - | ||||||||||||
134 | if (ret->meth->init !=
| 0-230 | ||||||||||||
135 | ((void *)0)
| 0-230 | ||||||||||||
136 | && !ret->meth->init(ret)
| 0-230 | ||||||||||||
137 | - | |||||||||||||
138 | ENGINE_finish(ret->engine); | - | ||||||||||||
139 | - | |||||||||||||
140 | CRYPTO_free_ex_data(8, ret, &ret->ex_data); | - | ||||||||||||
141 | free(ret); | - | ||||||||||||
142 | ret = | - | ||||||||||||
143 | ((void *)0) | - | ||||||||||||
144 | ; | - | ||||||||||||
145 | } never executed: end of block | 0 | ||||||||||||
146 | return executed 230 times by 4 tests: ret;return ret; Executed by:
executed 230 times by 4 tests: return ret; Executed by:
| 230 | ||||||||||||
147 | } | - | ||||||||||||
148 | - | |||||||||||||
149 | void | - | ||||||||||||
150 | DH_free(DH *r) | - | ||||||||||||
151 | { | - | ||||||||||||
152 | int i; | - | ||||||||||||
153 | - | |||||||||||||
154 | if (r ==
| 230-1380 | ||||||||||||
155 | ((void *)0)
| 230-1380 | ||||||||||||
156 | ) | - | ||||||||||||
157 | return; executed 1380 times by 14 tests: return; Executed by:
| 1380 | ||||||||||||
158 | i = CRYPTO_add_lock(&r->references,-1,26,__FILE__,183); | - | ||||||||||||
159 | if (i > 0
| 0-230 | ||||||||||||
160 | return; never executed: return; | 0 | ||||||||||||
161 | - | |||||||||||||
162 | if (r->meth->finish
| 0-230 | ||||||||||||
163 | r->meth->finish(r); executed 230 times by 4 tests: r->meth->finish(r); Executed by:
| 230 | ||||||||||||
164 | - | |||||||||||||
165 | ENGINE_finish(r->engine); | - | ||||||||||||
166 | - | |||||||||||||
167 | - | |||||||||||||
168 | CRYPTO_free_ex_data(8, r, &r->ex_data); | - | ||||||||||||
169 | - | |||||||||||||
170 | BN_clear_free(r->p); | - | ||||||||||||
171 | BN_clear_free(r->g); | - | ||||||||||||
172 | BN_clear_free(r->q); | - | ||||||||||||
173 | BN_clear_free(r->j); | - | ||||||||||||
174 | free(r->seed); | - | ||||||||||||
175 | BN_clear_free(r->counter); | - | ||||||||||||
176 | BN_clear_free(r->pub_key); | - | ||||||||||||
177 | BN_clear_free(r->priv_key); | - | ||||||||||||
178 | free(r); | - | ||||||||||||
179 | } executed 230 times by 4 tests: end of block Executed by:
| 230 | ||||||||||||
180 | - | |||||||||||||
181 | int | - | ||||||||||||
182 | DH_up_ref(DH *r) | - | ||||||||||||
183 | { | - | ||||||||||||
184 | int i = CRYPTO_add_lock(&r->references,1,26,__FILE__,209); | - | ||||||||||||
185 | - | |||||||||||||
186 | return never executed: i > 1return i > 1 ? 1 : 0;
never executed: return i > 1 ? 1 : 0; | 0 | ||||||||||||
187 | } | - | ||||||||||||
188 | - | |||||||||||||
189 | int | - | ||||||||||||
190 | DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, | - | ||||||||||||
191 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func) | - | ||||||||||||
192 | { | - | ||||||||||||
193 | return never executed: CRYPTO_get_ex_new_index(8, argl, argp, new_func,return CRYPTO_get_ex_new_index(8, argl, argp, new_func, dup_func, free_func); never executed: return CRYPTO_get_ex_new_index(8, argl, argp, new_func, dup_func, free_func); | 0 | ||||||||||||
194 | dup_func, free_func); never executed: return CRYPTO_get_ex_new_index(8, argl, argp, new_func, dup_func, free_func); | 0 | ||||||||||||
195 | } | - | ||||||||||||
196 | - | |||||||||||||
197 | int | - | ||||||||||||
198 | DH_set_ex_data(DH *d, int idx, void *arg) | - | ||||||||||||
199 | { | - | ||||||||||||
200 | return never executed: CRYPTO_set_ex_data(&d->ex_data, idx, arg);return CRYPTO_set_ex_data(&d->ex_data, idx, arg); never executed: return CRYPTO_set_ex_data(&d->ex_data, idx, arg); | 0 | ||||||||||||
201 | } | - | ||||||||||||
202 | - | |||||||||||||
203 | void * | - | ||||||||||||
204 | DH_get_ex_data(DH *d, int idx) | - | ||||||||||||
205 | { | - | ||||||||||||
206 | return never executed: CRYPTO_get_ex_data(&d->ex_data, idx);return CRYPTO_get_ex_data(&d->ex_data, idx); never executed: return CRYPTO_get_ex_data(&d->ex_data, idx); | 0 | ||||||||||||
207 | } | - | ||||||||||||
208 | - | |||||||||||||
209 | int | - | ||||||||||||
210 | DH_size(const DH *dh) | - | ||||||||||||
211 | { | - | ||||||||||||
212 | return executed 81 times by 3 tests: ((BN_num_bits(dh->p)+7)/8);return ((BN_num_bits(dh->p)+7)/8); Executed by:
executed 81 times by 3 tests: return ((BN_num_bits(dh->p)+7)/8); Executed by:
| 81 | ||||||||||||
213 | } | - | ||||||||||||
214 | - | |||||||||||||
215 | int | - | ||||||||||||
216 | DH_bits(const DH *dh) | - | ||||||||||||
217 | { | - | ||||||||||||
218 | return never executed: BN_num_bits(dh->p);return BN_num_bits(dh->p); never executed: return BN_num_bits(dh->p); | 0 | ||||||||||||
219 | } | - | ||||||||||||
220 | - | |||||||||||||
221 | ENGINE * | - | ||||||||||||
222 | DH_get0_engine(DH *dh) | - | ||||||||||||
223 | { | - | ||||||||||||
224 | return never executed: dh->engine;return dh->engine; never executed: return dh->engine; | 0 | ||||||||||||
225 | } | - | ||||||||||||
226 | - | |||||||||||||
227 | void | - | ||||||||||||
228 | DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) | - | ||||||||||||
229 | { | - | ||||||||||||
230 | if (p !=
| 0 | ||||||||||||
231 | ((void *)0)
| 0 | ||||||||||||
232 | ) | - | ||||||||||||
233 | * never executed: p = dh->p;*p = dh->p; never executed: *p = dh->p; | 0 | ||||||||||||
234 | if (q !=
| 0 | ||||||||||||
235 | ((void *)0)
| 0 | ||||||||||||
236 | ) | - | ||||||||||||
237 | * never executed: q = dh->q;*q = dh->q; never executed: *q = dh->q; | 0 | ||||||||||||
238 | if (g !=
| 0 | ||||||||||||
239 | ((void *)0)
| 0 | ||||||||||||
240 | ) | - | ||||||||||||
241 | * never executed: g = dh->g;*g = dh->g; never executed: *g = dh->g; | 0 | ||||||||||||
242 | } never executed: end of block | 0 | ||||||||||||
243 | - | |||||||||||||
244 | int | - | ||||||||||||
245 | DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) | - | ||||||||||||
246 | { | - | ||||||||||||
247 | if ((dh->p ==
| 0 | ||||||||||||
248 | ((void *)0)
| 0 | ||||||||||||
249 | && p ==
| 0 | ||||||||||||
250 | ((void *)0)
| 0 | ||||||||||||
251 | ) || (dh->g ==
| 0 | ||||||||||||
252 | ((void *)0)
| 0 | ||||||||||||
253 | && g ==
| 0 | ||||||||||||
254 | ((void *)0)
| 0 | ||||||||||||
255 | )) | - | ||||||||||||
256 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
257 | - | |||||||||||||
258 | if (p !=
| 0 | ||||||||||||
259 | ((void *)0)
| 0 | ||||||||||||
260 | ) { | - | ||||||||||||
261 | BN_free(dh->p); | - | ||||||||||||
262 | dh->p = p; | - | ||||||||||||
263 | } never executed: end of block | 0 | ||||||||||||
264 | if (q !=
| 0 | ||||||||||||
265 | ((void *)0)
| 0 | ||||||||||||
266 | ) { | - | ||||||||||||
267 | BN_free(dh->q); | - | ||||||||||||
268 | dh->q = q; | - | ||||||||||||
269 | } never executed: end of block | 0 | ||||||||||||
270 | if (g !=
| 0 | ||||||||||||
271 | ((void *)0)
| 0 | ||||||||||||
272 | ) { | - | ||||||||||||
273 | BN_free(dh->g); | - | ||||||||||||
274 | dh->g = g; | - | ||||||||||||
275 | } never executed: end of block | 0 | ||||||||||||
276 | - | |||||||||||||
277 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
278 | } | - | ||||||||||||
279 | - | |||||||||||||
280 | void | - | ||||||||||||
281 | DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) | - | ||||||||||||
282 | { | - | ||||||||||||
283 | if (pub_key !=
| 0 | ||||||||||||
284 | ((void *)0)
| 0 | ||||||||||||
285 | ) | - | ||||||||||||
286 | * never executed: pub_key = dh->pub_key;*pub_key = dh->pub_key; never executed: *pub_key = dh->pub_key; | 0 | ||||||||||||
287 | if (priv_key !=
| 0 | ||||||||||||
288 | ((void *)0)
| 0 | ||||||||||||
289 | ) | - | ||||||||||||
290 | * never executed: priv_key = dh->priv_key;*priv_key = dh->priv_key; never executed: *priv_key = dh->priv_key; | 0 | ||||||||||||
291 | } never executed: end of block | 0 | ||||||||||||
292 | - | |||||||||||||
293 | int | - | ||||||||||||
294 | DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) | - | ||||||||||||
295 | { | - | ||||||||||||
296 | if (pub_key !=
| 0 | ||||||||||||
297 | ((void *)0)
| 0 | ||||||||||||
298 | ) { | - | ||||||||||||
299 | BN_free(dh->pub_key); | - | ||||||||||||
300 | dh->pub_key = pub_key; | - | ||||||||||||
301 | } never executed: end of block | 0 | ||||||||||||
302 | if (priv_key !=
| 0 | ||||||||||||
303 | ((void *)0)
| 0 | ||||||||||||
304 | ) { | - | ||||||||||||
305 | BN_free(dh->priv_key); | - | ||||||||||||
306 | dh->priv_key = priv_key; | - | ||||||||||||
307 | } never executed: end of block | 0 | ||||||||||||
308 | - | |||||||||||||
309 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
310 | } | - | ||||||||||||
311 | - | |||||||||||||
312 | void | - | ||||||||||||
313 | DH_clear_flags(DH *dh, int flags) | - | ||||||||||||
314 | { | - | ||||||||||||
315 | dh->flags &= ~flags; | - | ||||||||||||
316 | } never executed: end of block | 0 | ||||||||||||
317 | - | |||||||||||||
318 | int | - | ||||||||||||
319 | DH_test_flags(const DH *dh, int flags) | - | ||||||||||||
320 | { | - | ||||||||||||
321 | return never executed: dh->flags & flags;return dh->flags & flags; never executed: return dh->flags & flags; | 0 | ||||||||||||
322 | } | - | ||||||||||||
323 | - | |||||||||||||
324 | void | - | ||||||||||||
325 | DH_set_flags(DH *dh, int flags) | - | ||||||||||||
326 | { | - | ||||||||||||
327 | dh->flags |= flags; | - | ||||||||||||
328 | } never executed: end of block | 0 | ||||||||||||
329 | - | |||||||||||||
330 | int | - | ||||||||||||
331 | DH_set_length(DH *dh, long length) | - | ||||||||||||
332 | { | - | ||||||||||||
333 | if (length < 0
| 0 | ||||||||||||
334 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
335 | - | |||||||||||||
336 | dh->length = length; | - | ||||||||||||
337 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
338 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |