Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssh/src/dh.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | - | |||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||
11 | static int | - | ||||||||||||||||||||||||
12 | parse_prime(int linenum, char *line, struct dhgroup *dhg) | - | ||||||||||||||||||||||||
13 | { | - | ||||||||||||||||||||||||
14 | char *cp, *arg; | - | ||||||||||||||||||||||||
15 | char *strsize, *gen, *prime; | - | ||||||||||||||||||||||||
16 | const char *errstr = | - | ||||||||||||||||||||||||
17 | ((void *)0) | - | ||||||||||||||||||||||||
18 | ; | - | ||||||||||||||||||||||||
19 | long long n; | - | ||||||||||||||||||||||||
20 | - | |||||||||||||||||||||||||
21 | dhg->p = dhg->g = | - | ||||||||||||||||||||||||
22 | ((void *)0) | - | ||||||||||||||||||||||||
23 | ; | - | ||||||||||||||||||||||||
24 | cp = line; | - | ||||||||||||||||||||||||
25 | if ((
| 0 | ||||||||||||||||||||||||
26 | ((void *)0)
| 0 | ||||||||||||||||||||||||
27 | ) | - | ||||||||||||||||||||||||
28 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
29 | - | |||||||||||||||||||||||||
30 | if (*
| 0 | ||||||||||||||||||||||||
31 | arg = strdelim(&cp); never executed: arg = strdelim(&cp); | 0 | ||||||||||||||||||||||||
32 | if (!arg
| 0 | ||||||||||||||||||||||||
33 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
34 | - | |||||||||||||||||||||||||
35 | - | |||||||||||||||||||||||||
36 | if (cp ==
| 0 | ||||||||||||||||||||||||
37 | ((void *)0)
| 0 | ||||||||||||||||||||||||
38 | || *
| 0 | ||||||||||||||||||||||||
39 | goto never executed: truncated;goto truncated; never executed: goto truncated; | 0 | ||||||||||||||||||||||||
40 | arg = | - | ||||||||||||||||||||||||
41 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
42 | " " | - | ||||||||||||||||||||||||
43 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
44 | " " | - | ||||||||||||||||||||||||
45 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
46 | " " | - | ||||||||||||||||||||||||
47 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
48 | " " | - | ||||||||||||||||||||||||
49 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
50 | " " | - | ||||||||||||||||||||||||
51 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
52 | " " | - | ||||||||||||||||||||||||
53 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
54 | " " | - | ||||||||||||||||||||||||
55 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
56 | &cp | - | ||||||||||||||||||||||||
57 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
58 | " " | - | ||||||||||||||||||||||||
59 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
60 | &cp | - | ||||||||||||||||||||||||
61 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
62 | " " | - | ||||||||||||||||||||||||
63 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
64 | &cp | - | ||||||||||||||||||||||||
65 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
66 | &cp | - | ||||||||||||||||||||||||
67 | , | - | ||||||||||||||||||||||||
68 | " " | - | ||||||||||||||||||||||||
69 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
70 | &cp | - | ||||||||||||||||||||||||
71 | , | - | ||||||||||||||||||||||||
72 | " " | - | ||||||||||||||||||||||||
73 | )); }) | - | ||||||||||||||||||||||||
74 | ; | - | ||||||||||||||||||||||||
75 | if (cp ==
| 0 | ||||||||||||||||||||||||
76 | ((void *)0)
| 0 | ||||||||||||||||||||||||
77 | || *
| 0 | ||||||||||||||||||||||||
78 | goto never executed: truncated;goto truncated; never executed: goto truncated; | 0 | ||||||||||||||||||||||||
79 | - | |||||||||||||||||||||||||
80 | n = strtonum(arg, 0, 5, &errstr); | - | ||||||||||||||||||||||||
81 | if (errstr !=
| 0 | ||||||||||||||||||||||||
82 | ((void *)0)
| 0 | ||||||||||||||||||||||||
83 | || n != (2)
| 0 | ||||||||||||||||||||||||
84 | error("moduli:%d: type is not %d", linenum, (2)); | - | ||||||||||||||||||||||||
85 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
86 | } | - | ||||||||||||||||||||||||
87 | arg = | - | ||||||||||||||||||||||||
88 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
89 | " " | - | ||||||||||||||||||||||||
90 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
91 | " " | - | ||||||||||||||||||||||||
92 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
93 | " " | - | ||||||||||||||||||||||||
94 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
95 | " " | - | ||||||||||||||||||||||||
96 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
97 | " " | - | ||||||||||||||||||||||||
98 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
99 | " " | - | ||||||||||||||||||||||||
100 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
101 | " " | - | ||||||||||||||||||||||||
102 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
103 | &cp | - | ||||||||||||||||||||||||
104 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
105 | " " | - | ||||||||||||||||||||||||
106 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
107 | &cp | - | ||||||||||||||||||||||||
108 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
109 | " " | - | ||||||||||||||||||||||||
110 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
111 | &cp | - | ||||||||||||||||||||||||
112 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
113 | &cp | - | ||||||||||||||||||||||||
114 | , | - | ||||||||||||||||||||||||
115 | " " | - | ||||||||||||||||||||||||
116 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
117 | &cp | - | ||||||||||||||||||||||||
118 | , | - | ||||||||||||||||||||||||
119 | " " | - | ||||||||||||||||||||||||
120 | )); }) | - | ||||||||||||||||||||||||
121 | ; | - | ||||||||||||||||||||||||
122 | if (cp ==
| 0 | ||||||||||||||||||||||||
123 | ((void *)0)
| 0 | ||||||||||||||||||||||||
124 | || *
| 0 | ||||||||||||||||||||||||
125 | goto never executed: truncated;goto truncated; never executed: goto truncated; | 0 | ||||||||||||||||||||||||
126 | - | |||||||||||||||||||||||||
127 | n = strtonum(arg, 0, 0x1f, &errstr); | - | ||||||||||||||||||||||||
128 | if (errstr !=
| 0 | ||||||||||||||||||||||||
129 | ((void *)0)
| 0 | ||||||||||||||||||||||||
130 | || | - | ||||||||||||||||||||||||
131 | (
| 0 | ||||||||||||||||||||||||
132 | error("moduli:%d: invalid moduli tests flag", linenum); | - | ||||||||||||||||||||||||
133 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
134 | } | - | ||||||||||||||||||||||||
135 | arg = | - | ||||||||||||||||||||||||
136 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
137 | " " | - | ||||||||||||||||||||||||
138 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
139 | " " | - | ||||||||||||||||||||||||
140 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
141 | " " | - | ||||||||||||||||||||||||
142 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
143 | " " | - | ||||||||||||||||||||||||
144 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
145 | " " | - | ||||||||||||||||||||||||
146 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
147 | " " | - | ||||||||||||||||||||||||
148 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
149 | " " | - | ||||||||||||||||||||||||
150 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
151 | &cp | - | ||||||||||||||||||||||||
152 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
153 | " " | - | ||||||||||||||||||||||||
154 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
155 | &cp | - | ||||||||||||||||||||||||
156 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
157 | " " | - | ||||||||||||||||||||||||
158 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
159 | &cp | - | ||||||||||||||||||||||||
160 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
161 | &cp | - | ||||||||||||||||||||||||
162 | , | - | ||||||||||||||||||||||||
163 | " " | - | ||||||||||||||||||||||||
164 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
165 | &cp | - | ||||||||||||||||||||||||
166 | , | - | ||||||||||||||||||||||||
167 | " " | - | ||||||||||||||||||||||||
168 | )); }) | - | ||||||||||||||||||||||||
169 | ; | - | ||||||||||||||||||||||||
170 | if (cp ==
| 0 | ||||||||||||||||||||||||
171 | ((void *)0)
| 0 | ||||||||||||||||||||||||
172 | || *
| 0 | ||||||||||||||||||||||||
173 | goto never executed: truncated;goto truncated; never executed: goto truncated; | 0 | ||||||||||||||||||||||||
174 | n = strtonum(arg, 0, 1<<30, &errstr); | - | ||||||||||||||||||||||||
175 | if (errstr !=
| 0 | ||||||||||||||||||||||||
176 | ((void *)0)
| 0 | ||||||||||||||||||||||||
177 | || n == 0
| 0 | ||||||||||||||||||||||||
178 | error("moduli:%d: invalid primality trial count", linenum); | - | ||||||||||||||||||||||||
179 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
180 | } | - | ||||||||||||||||||||||||
181 | strsize = | - | ||||||||||||||||||||||||
182 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
183 | " " | - | ||||||||||||||||||||||||
184 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
185 | " " | - | ||||||||||||||||||||||||
186 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
187 | " " | - | ||||||||||||||||||||||||
188 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
189 | " " | - | ||||||||||||||||||||||||
190 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
191 | " " | - | ||||||||||||||||||||||||
192 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
193 | " " | - | ||||||||||||||||||||||||
194 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
195 | " " | - | ||||||||||||||||||||||||
196 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
197 | &cp | - | ||||||||||||||||||||||||
198 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
199 | " " | - | ||||||||||||||||||||||||
200 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
201 | &cp | - | ||||||||||||||||||||||||
202 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
203 | " " | - | ||||||||||||||||||||||||
204 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
205 | &cp | - | ||||||||||||||||||||||||
206 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
207 | &cp | - | ||||||||||||||||||||||||
208 | , | - | ||||||||||||||||||||||||
209 | " " | - | ||||||||||||||||||||||||
210 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
211 | &cp | - | ||||||||||||||||||||||||
212 | , | - | ||||||||||||||||||||||||
213 | " " | - | ||||||||||||||||||||||||
214 | )); }) | - | ||||||||||||||||||||||||
215 | ; | - | ||||||||||||||||||||||||
216 | if (cp ==
| 0 | ||||||||||||||||||||||||
217 | ((void *)0)
| 0 | ||||||||||||||||||||||||
218 | || *
| 0 | ||||||||||||||||||||||||
219 | (
| 0 | ||||||||||||||||||||||||
220 | errstr
| 0 | ||||||||||||||||||||||||
221 | error("moduli:%d: invalid prime length", linenum); | - | ||||||||||||||||||||||||
222 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
223 | } | - | ||||||||||||||||||||||||
224 | - | |||||||||||||||||||||||||
225 | dhg->size++; | - | ||||||||||||||||||||||||
226 | gen = | - | ||||||||||||||||||||||||
227 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
228 | " " | - | ||||||||||||||||||||||||
229 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
230 | " " | - | ||||||||||||||||||||||||
231 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
232 | " " | - | ||||||||||||||||||||||||
233 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
234 | " " | - | ||||||||||||||||||||||||
235 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
236 | " " | - | ||||||||||||||||||||||||
237 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
238 | " " | - | ||||||||||||||||||||||||
239 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
240 | " " | - | ||||||||||||||||||||||||
241 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
242 | &cp | - | ||||||||||||||||||||||||
243 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
244 | " " | - | ||||||||||||||||||||||||
245 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
246 | &cp | - | ||||||||||||||||||||||||
247 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
248 | " " | - | ||||||||||||||||||||||||
249 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
250 | &cp | - | ||||||||||||||||||||||||
251 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
252 | &cp | - | ||||||||||||||||||||||||
253 | , | - | ||||||||||||||||||||||||
254 | " " | - | ||||||||||||||||||||||||
255 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
256 | &cp | - | ||||||||||||||||||||||||
257 | , | - | ||||||||||||||||||||||||
258 | " " | - | ||||||||||||||||||||||||
259 | )); }) | - | ||||||||||||||||||||||||
260 | ; | - | ||||||||||||||||||||||||
261 | if (cp ==
| 0 | ||||||||||||||||||||||||
262 | ((void *)0)
| 0 | ||||||||||||||||||||||||
263 | || *
| 0 | ||||||||||||||||||||||||
264 | goto never executed: truncated;goto truncated; never executed: goto truncated; | 0 | ||||||||||||||||||||||||
265 | prime = | - | ||||||||||||||||||||||||
266 | __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p ( | - | ||||||||||||||||||||||||
267 | " " | - | ||||||||||||||||||||||||
268 | ) && ((size_t)(const void *)(( | - | ||||||||||||||||||||||||
269 | " " | - | ||||||||||||||||||||||||
270 | ) + 1) - (size_t)(const void *)( | - | ||||||||||||||||||||||||
271 | " " | - | ||||||||||||||||||||||||
272 | ) == 1) && (__r0 = ((const char *) ( | - | ||||||||||||||||||||||||
273 | " " | - | ||||||||||||||||||||||||
274 | ))[0], ((const char *) ( | - | ||||||||||||||||||||||||
275 | " " | - | ||||||||||||||||||||||||
276 | ))[0] != '\0') ? ((__r1 = ((const char *) ( | - | ||||||||||||||||||||||||
277 | " " | - | ||||||||||||||||||||||||
278 | ))[1], ((const char *) ( | - | ||||||||||||||||||||||||
279 | " " | - | ||||||||||||||||||||||||
280 | ))[1] == '\0') ? __strsep_1c ( | - | ||||||||||||||||||||||||
281 | &cp | - | ||||||||||||||||||||||||
282 | , __r0) : ((__r2 = ((const char *) ( | - | ||||||||||||||||||||||||
283 | " " | - | ||||||||||||||||||||||||
284 | ))[2], __r2 == '\0') ? __strsep_2c ( | - | ||||||||||||||||||||||||
285 | &cp | - | ||||||||||||||||||||||||
286 | , __r0, __r1) : (((const char *) ( | - | ||||||||||||||||||||||||
287 | " " | - | ||||||||||||||||||||||||
288 | ))[3] == '\0' ? __strsep_3c ( | - | ||||||||||||||||||||||||
289 | &cp | - | ||||||||||||||||||||||||
290 | , __r0, __r1, __r2) : __strsep_g ( | - | ||||||||||||||||||||||||
291 | &cp | - | ||||||||||||||||||||||||
292 | , | - | ||||||||||||||||||||||||
293 | " " | - | ||||||||||||||||||||||||
294 | )))) : __strsep_g ( | - | ||||||||||||||||||||||||
295 | &cp | - | ||||||||||||||||||||||||
296 | , | - | ||||||||||||||||||||||||
297 | " " | - | ||||||||||||||||||||||||
298 | )); }) | - | ||||||||||||||||||||||||
299 | ; | - | ||||||||||||||||||||||||
300 | if (cp !=
| 0 | ||||||||||||||||||||||||
301 | ((void *)0)
| 0 | ||||||||||||||||||||||||
302 | || *
| 0 | ||||||||||||||||||||||||
303 | truncated: | - | ||||||||||||||||||||||||
304 | error("moduli:%d: truncated", linenum); | - | ||||||||||||||||||||||||
305 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
306 | } | - | ||||||||||||||||||||||||
307 | - | |||||||||||||||||||||||||
308 | if ((
| 0 | ||||||||||||||||||||||||
309 | ((void *)0)
| 0 | ||||||||||||||||||||||||
310 | || | - | ||||||||||||||||||||||||
311 | (
| 0 | ||||||||||||||||||||||||
312 | ((void *)0)
| 0 | ||||||||||||||||||||||||
313 | ) { | - | ||||||||||||||||||||||||
314 | error("parse_prime: BN_new failed"); | - | ||||||||||||||||||||||||
315 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
316 | } | - | ||||||||||||||||||||||||
317 | if (BN_hex2bn(&dhg->g, gen) == 0
| 0 | ||||||||||||||||||||||||
318 | error("moduli:%d: could not parse generator value", linenum); | - | ||||||||||||||||||||||||
319 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
320 | } | - | ||||||||||||||||||||||||
321 | if (BN_hex2bn(&dhg->p, prime) == 0
| 0 | ||||||||||||||||||||||||
322 | error("moduli:%d: could not parse prime value", linenum); | - | ||||||||||||||||||||||||
323 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
324 | } | - | ||||||||||||||||||||||||
325 | if (BN_num_bits(dhg->p) != dhg->size
| 0 | ||||||||||||||||||||||||
326 | error("moduli:%d: prime has wrong size: actual %d listed %d", | - | ||||||||||||||||||||||||
327 | linenum, BN_num_bits(dhg->p), dhg->size - 1); | - | ||||||||||||||||||||||||
328 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
329 | } | - | ||||||||||||||||||||||||
330 | if (BN_cmp(dhg->g, BN_value_one()) <= 0
| 0 | ||||||||||||||||||||||||
331 | error("moduli:%d: generator is invalid", linenum); | - | ||||||||||||||||||||||||
332 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
333 | } | - | ||||||||||||||||||||||||
334 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
335 | - | |||||||||||||||||||||||||
336 | fail: | - | ||||||||||||||||||||||||
337 | BN_clear_free(dhg->g); | - | ||||||||||||||||||||||||
338 | BN_clear_free(dhg->p); | - | ||||||||||||||||||||||||
339 | dhg->g = dhg->p = | - | ||||||||||||||||||||||||
340 | ((void *)0) | - | ||||||||||||||||||||||||
341 | ; | - | ||||||||||||||||||||||||
342 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
343 | } | - | ||||||||||||||||||||||||
344 | - | |||||||||||||||||||||||||
345 | DH * | - | ||||||||||||||||||||||||
346 | choose_dh(int min, int wantbits, int max) | - | ||||||||||||||||||||||||
347 | { | - | ||||||||||||||||||||||||
348 | FILE *f; | - | ||||||||||||||||||||||||
349 | char *line = | - | ||||||||||||||||||||||||
350 | ((void *)0) | - | ||||||||||||||||||||||||
351 | ; | - | ||||||||||||||||||||||||
352 | size_t linesize = 0; | - | ||||||||||||||||||||||||
353 | int best, bestcount, which, linenum; | - | ||||||||||||||||||||||||
354 | struct dhgroup dhg; | - | ||||||||||||||||||||||||
355 | - | |||||||||||||||||||||||||
356 | if ((
| 0-40 | ||||||||||||||||||||||||
357 | ((void *)0)
| 0-40 | ||||||||||||||||||||||||
358 | ) { | - | ||||||||||||||||||||||||
359 | logit("WARNING: could not open %s (%s), using fixed modulus", | - | ||||||||||||||||||||||||
360 | "/var/tmp/openssh-test/etc" "/moduli", strerror( | - | ||||||||||||||||||||||||
361 | (*__errno_location ()) | - | ||||||||||||||||||||||||
362 | )); | - | ||||||||||||||||||||||||
363 | return executed 40 times by 1 test: (dh_new_group_fallback(max));return (dh_new_group_fallback(max)); Executed by:
executed 40 times by 1 test: return (dh_new_group_fallback(max)); Executed by:
| 40 | ||||||||||||||||||||||||
364 | } | - | ||||||||||||||||||||||||
365 | - | |||||||||||||||||||||||||
366 | linenum = 0; | - | ||||||||||||||||||||||||
367 | best = bestcount = 0; | - | ||||||||||||||||||||||||
368 | while (getline(&line, &linesize, f) != -1
| 0 | ||||||||||||||||||||||||
369 | linenum++; | - | ||||||||||||||||||||||||
370 | if (!parse_prime(linenum, line, &dhg)
| 0 | ||||||||||||||||||||||||
371 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
372 | BN_clear_free(dhg.g); | - | ||||||||||||||||||||||||
373 | BN_clear_free(dhg.p); | - | ||||||||||||||||||||||||
374 | - | |||||||||||||||||||||||||
375 | if (dhg.size > max
| 0 | ||||||||||||||||||||||||
376 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
377 | - | |||||||||||||||||||||||||
378 | if ((dhg.size > wantbits
| 0 | ||||||||||||||||||||||||
379 | (dhg.size > best
| 0 | ||||||||||||||||||||||||
380 | best = dhg.size; | - | ||||||||||||||||||||||||
381 | bestcount = 0; | - | ||||||||||||||||||||||||
382 | } never executed: end of block | 0 | ||||||||||||||||||||||||
383 | if (dhg.size == best
| 0 | ||||||||||||||||||||||||
384 | bestcount++; never executed: bestcount++; | 0 | ||||||||||||||||||||||||
385 | } never executed: end of block | 0 | ||||||||||||||||||||||||
386 | free(line); | - | ||||||||||||||||||||||||
387 | line = | - | ||||||||||||||||||||||||
388 | ((void *)0) | - | ||||||||||||||||||||||||
389 | ; | - | ||||||||||||||||||||||||
390 | linesize = 0; | - | ||||||||||||||||||||||||
391 | rewind(f); | - | ||||||||||||||||||||||||
392 | - | |||||||||||||||||||||||||
393 | if (bestcount == 0
| 0 | ||||||||||||||||||||||||
394 | fclose(f); | - | ||||||||||||||||||||||||
395 | logit("WARNING: no suitable primes in %s", "/var/tmp/openssh-test/etc" "/moduli"); | - | ||||||||||||||||||||||||
396 | return never executed: (dh_new_group_fallback(max));return (dh_new_group_fallback(max)); never executed: return (dh_new_group_fallback(max)); | 0 | ||||||||||||||||||||||||
397 | } | - | ||||||||||||||||||||||||
398 | which = arc4random_uniform(bestcount); | - | ||||||||||||||||||||||||
399 | - | |||||||||||||||||||||||||
400 | linenum = 0; | - | ||||||||||||||||||||||||
401 | bestcount = 0; | - | ||||||||||||||||||||||||
402 | while (getline(&line, &linesize, f) != -1
| 0 | ||||||||||||||||||||||||
403 | linenum++; | - | ||||||||||||||||||||||||
404 | if (!parse_prime(linenum, line, &dhg)
| 0 | ||||||||||||||||||||||||
405 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
406 | if ((dhg.size > max
| 0 | ||||||||||||||||||||||||
407 | dhg.size != best
| 0 | ||||||||||||||||||||||||
408 | bestcount++ != which
| 0 | ||||||||||||||||||||||||
409 | BN_clear_free(dhg.g); | - | ||||||||||||||||||||||||
410 | BN_clear_free(dhg.p); | - | ||||||||||||||||||||||||
411 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
412 | } | - | ||||||||||||||||||||||||
413 | break; never executed: break; | 0 | ||||||||||||||||||||||||
414 | } | - | ||||||||||||||||||||||||
415 | free(line); | - | ||||||||||||||||||||||||
416 | line = | - | ||||||||||||||||||||||||
417 | ((void *)0) | - | ||||||||||||||||||||||||
418 | ; | - | ||||||||||||||||||||||||
419 | fclose(f); | - | ||||||||||||||||||||||||
420 | if (bestcount != which + 1
| 0 | ||||||||||||||||||||||||
421 | logit("WARNING: selected prime disappeared in %s, giving up", | - | ||||||||||||||||||||||||
422 | "/var/tmp/openssh-test/etc" "/moduli"); | - | ||||||||||||||||||||||||
423 | return never executed: (dh_new_group_fallback(max));return (dh_new_group_fallback(max)); never executed: return (dh_new_group_fallback(max)); | 0 | ||||||||||||||||||||||||
424 | } | - | ||||||||||||||||||||||||
425 | - | |||||||||||||||||||||||||
426 | return never executed: (dh_new_group(dhg.g, dhg.p));return (dh_new_group(dhg.g, dhg.p)); never executed: return (dh_new_group(dhg.g, dhg.p)); | 0 | ||||||||||||||||||||||||
427 | } | - | ||||||||||||||||||||||||
428 | - | |||||||||||||||||||||||||
429 | - | |||||||||||||||||||||||||
430 | - | |||||||||||||||||||||||||
431 | int | - | ||||||||||||||||||||||||
432 | dh_pub_is_valid(const DH *dh, const BIGNUM *dh_pub) | - | ||||||||||||||||||||||||
433 | { | - | ||||||||||||||||||||||||
434 | int i; | - | ||||||||||||||||||||||||
435 | int n = BN_num_bits(dh_pub); | - | ||||||||||||||||||||||||
436 | int bits_set = 0; | - | ||||||||||||||||||||||||
437 | BIGNUM *tmp; | - | ||||||||||||||||||||||||
438 | const BIGNUM *dh_p; | - | ||||||||||||||||||||||||
439 | - | |||||||||||||||||||||||||
440 | DH_get0_pqg(dh, &dh_p, | - | ||||||||||||||||||||||||
441 | ((void *)0) | - | ||||||||||||||||||||||||
442 | , | - | ||||||||||||||||||||||||
443 | ((void *)0) | - | ||||||||||||||||||||||||
444 | ); | - | ||||||||||||||||||||||||
445 | - | |||||||||||||||||||||||||
446 | if ( | - | ||||||||||||||||||||||||
447 | ((
| 0-320 | ||||||||||||||||||||||||
448 | dh_pub
| 0-320 | ||||||||||||||||||||||||
449 | )->neg != 0)
| 0-320 | ||||||||||||||||||||||||
450 | ) { | - | ||||||||||||||||||||||||
451 | logit("invalid public DH value: negative"); | - | ||||||||||||||||||||||||
452 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
453 | } | - | ||||||||||||||||||||||||
454 | if (BN_cmp(dh_pub, BN_value_one()) != 1
| 0-320 | ||||||||||||||||||||||||
455 | logit("invalid public DH value: <= 1"); | - | ||||||||||||||||||||||||
456 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
457 | } | - | ||||||||||||||||||||||||
458 | - | |||||||||||||||||||||||||
459 | if ((
| 0-320 | ||||||||||||||||||||||||
460 | ((void *)0)
| 0-320 | ||||||||||||||||||||||||
461 | ) { | - | ||||||||||||||||||||||||
462 | error("%s: BN_new failed", __func__); | - | ||||||||||||||||||||||||
463 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
464 | } | - | ||||||||||||||||||||||||
465 | if (!BN_sub(tmp, dh_p, BN_value_one())
| 0-320 | ||||||||||||||||||||||||
466 | BN_cmp(dh_pub, tmp) != -1
| 0-320 | ||||||||||||||||||||||||
467 | BN_clear_free(tmp); | - | ||||||||||||||||||||||||
468 | logit("invalid public DH value: >= p-1"); | - | ||||||||||||||||||||||||
469 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
470 | } | - | ||||||||||||||||||||||||
471 | BN_clear_free(tmp); | - | ||||||||||||||||||||||||
472 | - | |||||||||||||||||||||||||
473 | for (i = 0; i <= n
| 320-1556474 | ||||||||||||||||||||||||
474 | if (BN_is_bit_set(dh_pub, i)
| 776620-779854 | ||||||||||||||||||||||||
475 | bits_set++; executed 776620 times by 1 test: bits_set++; Executed by:
| 776620 | ||||||||||||||||||||||||
476 | debug2("bits set: %d/%d", bits_set, BN_num_bits(dh_p)); | - | ||||||||||||||||||||||||
477 | - | |||||||||||||||||||||||||
478 | - | |||||||||||||||||||||||||
479 | - | |||||||||||||||||||||||||
480 | - | |||||||||||||||||||||||||
481 | if (bits_set < 4
| 0-320 | ||||||||||||||||||||||||
482 | logit("invalid public DH value (%d/%d)", | - | ||||||||||||||||||||||||
483 | bits_set, BN_num_bits(dh_p)); | - | ||||||||||||||||||||||||
484 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
485 | } | - | ||||||||||||||||||||||||
486 | return executed 320 times by 1 test: 1;return 1; Executed by:
executed 320 times by 1 test: return 1; Executed by:
| 320 | ||||||||||||||||||||||||
487 | } | - | ||||||||||||||||||||||||
488 | - | |||||||||||||||||||||||||
489 | int | - | ||||||||||||||||||||||||
490 | dh_gen_key(DH *dh, int need) | - | ||||||||||||||||||||||||
491 | { | - | ||||||||||||||||||||||||
492 | int pbits; | - | ||||||||||||||||||||||||
493 | const BIGNUM *dh_p, *pub_key; | - | ||||||||||||||||||||||||
494 | - | |||||||||||||||||||||||||
495 | DH_get0_pqg(dh, &dh_p, | - | ||||||||||||||||||||||||
496 | ((void *)0) | - | ||||||||||||||||||||||||
497 | , | - | ||||||||||||||||||||||||
498 | ((void *)0) | - | ||||||||||||||||||||||||
499 | ); | - | ||||||||||||||||||||||||
500 | - | |||||||||||||||||||||||||
501 | if (need < 0
| 0-160 | ||||||||||||||||||||||||
502 | ((void *)0)
| 0-160 | ||||||||||||||||||||||||
503 | || | - | ||||||||||||||||||||||||
504 | (
| 0-160 | ||||||||||||||||||||||||
505 | need > 0x7fffffff / 2
| 0-160 | ||||||||||||||||||||||||
506 | return never executed: -10;return -10; never executed: return -10; | 0 | ||||||||||||||||||||||||
507 | if (need < 256
| 0-160 | ||||||||||||||||||||||||
508 | need = 256; never executed: need = 256; | 0 | ||||||||||||||||||||||||
509 | - | |||||||||||||||||||||||||
510 | - | |||||||||||||||||||||||||
511 | - | |||||||||||||||||||||||||
512 | - | |||||||||||||||||||||||||
513 | if (!DH_set_length(dh, (((need * 2) < (pbits - 1)) ? (need * 2) : (pbits - 1)))
| 0-160 | ||||||||||||||||||||||||
514 | return never executed: -22;return -22; never executed: return -22; | 0 | ||||||||||||||||||||||||
515 | - | |||||||||||||||||||||||||
516 | if (DH_generate_key(dh) == 0
| 0-160 | ||||||||||||||||||||||||
517 | return never executed: -22;return -22; never executed: return -22; | 0 | ||||||||||||||||||||||||
518 | DH_get0_key(dh, &pub_key, | - | ||||||||||||||||||||||||
519 | ((void *)0) | - | ||||||||||||||||||||||||
520 | ); | - | ||||||||||||||||||||||||
521 | if (!dh_pub_is_valid(dh, pub_key)
| 0-160 | ||||||||||||||||||||||||
522 | return never executed: -4;return -4; never executed: return -4; | 0 | ||||||||||||||||||||||||
523 | return executed 160 times by 1 test: 0;return 0; Executed by:
executed 160 times by 1 test: return 0; Executed by:
| 160 | ||||||||||||||||||||||||
524 | } | - | ||||||||||||||||||||||||
525 | - | |||||||||||||||||||||||||
526 | DH * | - | ||||||||||||||||||||||||
527 | dh_new_group_asc(const char *gen, const char *modulus) | - | ||||||||||||||||||||||||
528 | { | - | ||||||||||||||||||||||||
529 | DH *dh; | - | ||||||||||||||||||||||||
530 | BIGNUM *dh_p = | - | ||||||||||||||||||||||||
531 | ((void *)0) | - | ||||||||||||||||||||||||
532 | , *dh_g = | - | ||||||||||||||||||||||||
533 | ((void *)0) | - | ||||||||||||||||||||||||
534 | ; | - | ||||||||||||||||||||||||
535 | - | |||||||||||||||||||||||||
536 | if ((
| 0-120 | ||||||||||||||||||||||||
537 | ((void *)0)
| 0-120 | ||||||||||||||||||||||||
538 | ) | - | ||||||||||||||||||||||||
539 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
540 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
541 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
542 | if (BN_hex2bn(&dh_p, modulus) == 0
| 0-120 | ||||||||||||||||||||||||
543 | BN_hex2bn(&dh_g, gen) == 0
| 0-120 | ||||||||||||||||||||||||
544 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
545 | if (!DH_set0_pqg(dh, dh_p,
| 0-120 | ||||||||||||||||||||||||
546 | ((void *)0)
| 0-120 | ||||||||||||||||||||||||
547 | , dh_g)
| 0-120 | ||||||||||||||||||||||||
548 | goto never executed: fail;goto fail; never executed: goto fail; | 0 | ||||||||||||||||||||||||
549 | return executed 120 times by 1 test: dh;return dh; Executed by:
executed 120 times by 1 test: return dh; Executed by:
| 120 | ||||||||||||||||||||||||
550 | fail: | - | ||||||||||||||||||||||||
551 | DH_free(dh); | - | ||||||||||||||||||||||||
552 | BN_clear_free(dh_p); | - | ||||||||||||||||||||||||
553 | BN_clear_free(dh_g); | - | ||||||||||||||||||||||||
554 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
555 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
556 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
557 | } | - | ||||||||||||||||||||||||
558 | - | |||||||||||||||||||||||||
559 | - | |||||||||||||||||||||||||
560 | - | |||||||||||||||||||||||||
561 | - | |||||||||||||||||||||||||
562 | - | |||||||||||||||||||||||||
563 | DH * | - | ||||||||||||||||||||||||
564 | dh_new_group(BIGNUM *gen, BIGNUM *modulus) | - | ||||||||||||||||||||||||
565 | { | - | ||||||||||||||||||||||||
566 | DH *dh; | - | ||||||||||||||||||||||||
567 | - | |||||||||||||||||||||||||
568 | if ((
| 0-40 | ||||||||||||||||||||||||
569 | ((void *)0)
| 0-40 | ||||||||||||||||||||||||
570 | ) | - | ||||||||||||||||||||||||
571 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
572 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
573 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
574 | if (!DH_set0_pqg(dh, modulus,
| 0-40 | ||||||||||||||||||||||||
575 | ((void *)0)
| 0-40 | ||||||||||||||||||||||||
576 | , gen)
| 0-40 | ||||||||||||||||||||||||
577 | DH_free(dh); | - | ||||||||||||||||||||||||
578 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
579 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
580 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
581 | } | - | ||||||||||||||||||||||||
582 | - | |||||||||||||||||||||||||
583 | return executed 40 times by 1 test: dh;return dh; Executed by:
executed 40 times by 1 test: return dh; Executed by:
| 40 | ||||||||||||||||||||||||
584 | } | - | ||||||||||||||||||||||||
585 | - | |||||||||||||||||||||||||
586 | - | |||||||||||||||||||||||||
587 | DH * | - | ||||||||||||||||||||||||
588 | dh_new_group1(void) | - | ||||||||||||||||||||||||
589 | { | - | ||||||||||||||||||||||||
590 | static char *gen = "2", *group1 = | - | ||||||||||||||||||||||||
591 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" | - | ||||||||||||||||||||||||
592 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" | - | ||||||||||||||||||||||||
593 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" | - | ||||||||||||||||||||||||
594 | "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED" | - | ||||||||||||||||||||||||
595 | "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE65381" | - | ||||||||||||||||||||||||
596 | "FFFFFFFF" "FFFFFFFF"; | - | ||||||||||||||||||||||||
597 | - | |||||||||||||||||||||||||
598 | return executed 40 times by 1 test: (dh_new_group_asc(gen, group1));return (dh_new_group_asc(gen, group1)); Executed by:
executed 40 times by 1 test: return (dh_new_group_asc(gen, group1)); Executed by:
| 40 | ||||||||||||||||||||||||
599 | } | - | ||||||||||||||||||||||||
600 | - | |||||||||||||||||||||||||
601 | - | |||||||||||||||||||||||||
602 | DH * | - | ||||||||||||||||||||||||
603 | dh_new_group14(void) | - | ||||||||||||||||||||||||
604 | { | - | ||||||||||||||||||||||||
605 | static char *gen = "2", *group14 = | - | ||||||||||||||||||||||||
606 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" | - | ||||||||||||||||||||||||
607 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" | - | ||||||||||||||||||||||||
608 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" | - | ||||||||||||||||||||||||
609 | "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED" | - | ||||||||||||||||||||||||
610 | "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D" | - | ||||||||||||||||||||||||
611 | "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F" | - | ||||||||||||||||||||||||
612 | "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D" | - | ||||||||||||||||||||||||
613 | "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B" | - | ||||||||||||||||||||||||
614 | "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9" | - | ||||||||||||||||||||||||
615 | "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510" | - | ||||||||||||||||||||||||
616 | "15728E5A" "8AACAA68" "FFFFFFFF" "FFFFFFFF"; | - | ||||||||||||||||||||||||
617 | - | |||||||||||||||||||||||||
618 | return executed 40 times by 1 test: (dh_new_group_asc(gen, group14));return (dh_new_group_asc(gen, group14)); Executed by:
executed 40 times by 1 test: return (dh_new_group_asc(gen, group14)); Executed by:
| 40 | ||||||||||||||||||||||||
619 | } | - | ||||||||||||||||||||||||
620 | - | |||||||||||||||||||||||||
621 | - | |||||||||||||||||||||||||
622 | DH * | - | ||||||||||||||||||||||||
623 | dh_new_group16(void) | - | ||||||||||||||||||||||||
624 | { | - | ||||||||||||||||||||||||
625 | static char *gen = "2", *group16 = | - | ||||||||||||||||||||||||
626 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" | - | ||||||||||||||||||||||||
627 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" | - | ||||||||||||||||||||||||
628 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" | - | ||||||||||||||||||||||||
629 | "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED" | - | ||||||||||||||||||||||||
630 | "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D" | - | ||||||||||||||||||||||||
631 | "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F" | - | ||||||||||||||||||||||||
632 | "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D" | - | ||||||||||||||||||||||||
633 | "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B" | - | ||||||||||||||||||||||||
634 | "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9" | - | ||||||||||||||||||||||||
635 | "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510" | - | ||||||||||||||||||||||||
636 | "15728E5A" "8AAAC42D" "AD33170D" "04507A33" "A85521AB" "DF1CBA64" | - | ||||||||||||||||||||||||
637 | "ECFB8504" "58DBEF0A" "8AEA7157" "5D060C7D" "B3970F85" "A6E1E4C7" | - | ||||||||||||||||||||||||
638 | "ABF5AE8C" "DB0933D7" "1E8C94E0" "4A25619D" "CEE3D226" "1AD2EE6B" | - | ||||||||||||||||||||||||
639 | "F12FFA06" "D98A0864" "D8760273" "3EC86A64" "521F2B18" "177B200C" | - | ||||||||||||||||||||||||
640 | "BBE11757" "7A615D6C" "770988C0" "BAD946E2" "08E24FA0" "74E5AB31" | - | ||||||||||||||||||||||||
641 | "43DB5BFC" "E0FD108E" "4B82D120" "A9210801" "1A723C12" "A787E6D7" | - | ||||||||||||||||||||||||
642 | "88719A10" "BDBA5B26" "99C32718" "6AF4E23C" "1A946834" "B6150BDA" | - | ||||||||||||||||||||||||
643 | "2583E9CA" "2AD44CE8" "DBBBC2DB" "04DE8EF9" "2E8EFC14" "1FBECAA6" | - | ||||||||||||||||||||||||
644 | "287C5947" "4E6BC05D" "99B2964F" "A090C3A2" "233BA186" "515BE7ED" | - | ||||||||||||||||||||||||
645 | "1F612970" "CEE2D7AF" "B81BDD76" "2170481C" "D0069127" "D5B05AA9" | - | ||||||||||||||||||||||||
646 | "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34063199" | - | ||||||||||||||||||||||||
647 | "FFFFFFFF" "FFFFFFFF"; | - | ||||||||||||||||||||||||
648 | - | |||||||||||||||||||||||||
649 | return never executed: (dh_new_group_asc(gen, group16));return (dh_new_group_asc(gen, group16)); never executed: return (dh_new_group_asc(gen, group16)); | 0 | ||||||||||||||||||||||||
650 | } | - | ||||||||||||||||||||||||
651 | - | |||||||||||||||||||||||||
652 | - | |||||||||||||||||||||||||
653 | DH * | - | ||||||||||||||||||||||||
654 | dh_new_group18(void) | - | ||||||||||||||||||||||||
655 | { | - | ||||||||||||||||||||||||
656 | static char *gen = "2", *group16 = | - | ||||||||||||||||||||||||
657 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" | - | ||||||||||||||||||||||||
658 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" | - | ||||||||||||||||||||||||
659 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" | - | ||||||||||||||||||||||||
660 | "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED" | - | ||||||||||||||||||||||||
661 | "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D" | - | ||||||||||||||||||||||||
662 | "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F" | - | ||||||||||||||||||||||||
663 | "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D" | - | ||||||||||||||||||||||||
664 | "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B" | - | ||||||||||||||||||||||||
665 | "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9" | - | ||||||||||||||||||||||||
666 | "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510" | - | ||||||||||||||||||||||||
667 | "15728E5A" "8AAAC42D" "AD33170D" "04507A33" "A85521AB" "DF1CBA64" | - | ||||||||||||||||||||||||
668 | "ECFB8504" "58DBEF0A" "8AEA7157" "5D060C7D" "B3970F85" "A6E1E4C7" | - | ||||||||||||||||||||||||
669 | "ABF5AE8C" "DB0933D7" "1E8C94E0" "4A25619D" "CEE3D226" "1AD2EE6B" | - | ||||||||||||||||||||||||
670 | "F12FFA06" "D98A0864" "D8760273" "3EC86A64" "521F2B18" "177B200C" | - | ||||||||||||||||||||||||
671 | "BBE11757" "7A615D6C" "770988C0" "BAD946E2" "08E24FA0" "74E5AB31" | - | ||||||||||||||||||||||||
672 | "43DB5BFC" "E0FD108E" "4B82D120" "A9210801" "1A723C12" "A787E6D7" | - | ||||||||||||||||||||||||
673 | "88719A10" "BDBA5B26" "99C32718" "6AF4E23C" "1A946834" "B6150BDA" | - | ||||||||||||||||||||||||
674 | "2583E9CA" "2AD44CE8" "DBBBC2DB" "04DE8EF9" "2E8EFC14" "1FBECAA6" | - | ||||||||||||||||||||||||
675 | "287C5947" "4E6BC05D" "99B2964F" "A090C3A2" "233BA186" "515BE7ED" | - | ||||||||||||||||||||||||
676 | "1F612970" "CEE2D7AF" "B81BDD76" "2170481C" "D0069127" "D5B05AA9" | - | ||||||||||||||||||||||||
677 | "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34028492" | - | ||||||||||||||||||||||||
678 | "36C3FAB4" "D27C7026" "C1D4DCB2" "602646DE" "C9751E76" "3DBA37BD" | - | ||||||||||||||||||||||||
679 | "F8FF9406" "AD9E530E" "E5DB382F" "413001AE" "B06A53ED" "9027D831" | - | ||||||||||||||||||||||||
680 | "179727B0" "865A8918" "DA3EDBEB" "CF9B14ED" "44CE6CBA" "CED4BB1B" | - | ||||||||||||||||||||||||
681 | "DB7F1447" "E6CC254B" "33205151" "2BD7AF42" "6FB8F401" "378CD2BF" | - | ||||||||||||||||||||||||
682 | "5983CA01" "C64B92EC" "F032EA15" "D1721D03" "F482D7CE" "6E74FEF6" | - | ||||||||||||||||||||||||
683 | "D55E702F" "46980C82" "B5A84031" "900B1C9E" "59E7C97F" "BEC7E8F3" | - | ||||||||||||||||||||||||
684 | "23A97A7E" "36CC88BE" "0F1D45B7" "FF585AC5" "4BD407B2" "2B4154AA" | - | ||||||||||||||||||||||||
685 | "CC8F6D7E" "BF48E1D8" "14CC5ED2" "0F8037E0" "A79715EE" "F29BE328" | - | ||||||||||||||||||||||||
686 | "06A1D58B" "B7C5DA76" "F550AA3D" "8A1FBFF0" "EB19CCB1" "A313D55C" | - | ||||||||||||||||||||||||
687 | "DA56C9EC" "2EF29632" "387FE8D7" "6E3C0468" "043E8F66" "3F4860EE" | - | ||||||||||||||||||||||||
688 | "12BF2D5B" "0B7474D6" "E694F91E" "6DBE1159" "74A3926F" "12FEE5E4" | - | ||||||||||||||||||||||||
689 | "38777CB6" "A932DF8C" "D8BEC4D0" "73B931BA" "3BC832B6" "8D9DD300" | - | ||||||||||||||||||||||||
690 | "741FA7BF" "8AFC47ED" "2576F693" "6BA42466" "3AAB639C" "5AE4F568" | - | ||||||||||||||||||||||||
691 | "3423B474" "2BF1C978" "238F16CB" "E39D652D" "E3FDB8BE" "FC848AD9" | - | ||||||||||||||||||||||||
692 | "22222E04" "A4037C07" "13EB57A8" "1A23F0C7" "3473FC64" "6CEA306B" | - | ||||||||||||||||||||||||
693 | "4BCBC886" "2F8385DD" "FA9D4B7F" "A2C087E8" "79683303" "ED5BDD3A" | - | ||||||||||||||||||||||||
694 | "062B3CF5" "B3A278A6" "6D2A13F8" "3F44F82D" "DF310EE0" "74AB6A36" | - | ||||||||||||||||||||||||
695 | "4597E899" "A0255DC1" "64F31CC5" "0846851D" "F9AB4819" "5DED7EA1" | - | ||||||||||||||||||||||||
696 | "B1D510BD" "7EE74D73" "FAF36BC3" "1ECFA268" "359046F4" "EB879F92" | - | ||||||||||||||||||||||||
697 | "4009438B" "481C6CD7" "889A002E" "D5EE382B" "C9190DA6" "FC026E47" | - | ||||||||||||||||||||||||
698 | "9558E447" "5677E9AA" "9E3050E2" "765694DF" "C81F56E8" "80B96E71" | - | ||||||||||||||||||||||||
699 | "60C980DD" "98EDD3DF" "FFFFFFFF" "FFFFFFFF"; | - | ||||||||||||||||||||||||
700 | - | |||||||||||||||||||||||||
701 | return executed 40 times by 1 test: (dh_new_group_asc(gen, group16));return (dh_new_group_asc(gen, group16)); Executed by:
executed 40 times by 1 test: return (dh_new_group_asc(gen, group16)); Executed by:
| 40 | ||||||||||||||||||||||||
702 | } | - | ||||||||||||||||||||||||
703 | - | |||||||||||||||||||||||||
704 | - | |||||||||||||||||||||||||
705 | DH * | - | ||||||||||||||||||||||||
706 | dh_new_group_fallback(int max) | - | ||||||||||||||||||||||||
707 | { | - | ||||||||||||||||||||||||
708 | debug3("%s: requested max size %d", __func__, max); | - | ||||||||||||||||||||||||
709 | if (max < 3072
| 0-40 | ||||||||||||||||||||||||
710 | debug3("using 2k bit group 14"); | - | ||||||||||||||||||||||||
711 | return never executed: dh_new_group14();return dh_new_group14(); never executed: return dh_new_group14(); | 0 | ||||||||||||||||||||||||
712 | } else if (max < 6144
| 0-40 | ||||||||||||||||||||||||
713 | debug3("using 4k bit group 16"); | - | ||||||||||||||||||||||||
714 | return never executed: dh_new_group16();return dh_new_group16(); never executed: return dh_new_group16(); | 0 | ||||||||||||||||||||||||
715 | } | - | ||||||||||||||||||||||||
716 | debug3("using 8k bit group 18"); | - | ||||||||||||||||||||||||
717 | return executed 40 times by 1 test: dh_new_group18();return dh_new_group18(); Executed by:
executed 40 times by 1 test: return dh_new_group18(); Executed by:
| 40 | ||||||||||||||||||||||||
718 | } | - | ||||||||||||||||||||||||
719 | u_int | - | ||||||||||||||||||||||||
720 | dh_estimate(int bits) | - | ||||||||||||||||||||||||
721 | { | - | ||||||||||||||||||||||||
722 | if (bits <= 112
| 0-40 | ||||||||||||||||||||||||
723 | return never executed: 2048;return 2048; never executed: return 2048; | 0 | ||||||||||||||||||||||||
724 | if (bits <= 128
| 0-40 | ||||||||||||||||||||||||
725 | return never executed: 3072;return 3072; never executed: return 3072; | 0 | ||||||||||||||||||||||||
726 | if (bits <= 192
| 0-40 | ||||||||||||||||||||||||
727 | return never executed: 7680;return 7680; never executed: return 7680; | 0 | ||||||||||||||||||||||||
728 | return executed 40 times by 1 test: 8192;return 8192; Executed by:
executed 40 times by 1 test: return 8192; Executed by:
| 40 | ||||||||||||||||||||||||
729 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |