View | Details | Raw Unified | Return to bug 2302 | Differences between
and this patch

Collapse All | Expand All

(-)dh.c (-3 / +42 lines)
Lines 152-158 choose_dh(int min, int wantbits, int max Link Here
152
	    (f = fopen(_PATH_DH_PRIMES, "r")) == NULL) {
152
	    (f = fopen(_PATH_DH_PRIMES, "r")) == NULL) {
153
		logit("WARNING: %s does not exist, using fixed modulus",
153
		logit("WARNING: %s does not exist, using fixed modulus",
154
		    _PATH_DH_MODULI);
154
		    _PATH_DH_MODULI);
155
		return (dh_new_group14());
155
		return (dh_new_group_fallback(max));
156
	}
156
	}
157
157
158
	linenum = 0;
158
	linenum = 0;
Lines 180-186 choose_dh(int min, int wantbits, int max Link Here
180
	if (bestcount == 0) {
180
	if (bestcount == 0) {
181
		fclose(f);
181
		fclose(f);
182
		logit("WARNING: no suitable primes in %s", _PATH_DH_PRIMES);
182
		logit("WARNING: no suitable primes in %s", _PATH_DH_PRIMES);
183
		return (dh_new_group14());
183
		return (dh_new_group_fallback(max));
184
	}
184
	}
185
185
186
	linenum = 0;
186
	linenum = 0;
Lines 201-207 choose_dh(int min, int wantbits, int max Link Here
201
	if (linenum != which+1) {
201
	if (linenum != which+1) {
202
		logit("WARNING: line %d disappeared in %s, giving up",
202
		logit("WARNING: line %d disappeared in %s, giving up",
203
		    which, _PATH_DH_PRIMES);
203
		    which, _PATH_DH_PRIMES);
204
		return (dh_new_group14());
204
		return (dh_new_group_fallback(max));
205
	}
205
	}
206
206
207
	return (dh_new_group(dhg.g, dhg.p));
207
	return (dh_new_group(dhg.g, dhg.p));
Lines 333-338 dh_new_group14(void) Link Here
333
	    "15728E5A" "8AACAA68" "FFFFFFFF" "FFFFFFFF";
333
	    "15728E5A" "8AACAA68" "FFFFFFFF" "FFFFFFFF";
334
334
335
	return (dh_new_group_asc(gen, group14));
335
	return (dh_new_group_asc(gen, group14));
336
}
337
338
/*
339
 * 4k bit fallback group used by DH-GEX if moduli file cannot be read.
340
 * Source: MODP group 16 from RFC3526.
341
 */
342
DH *
343
dh_new_group_fallback(int max)
344
{
345
	static char *gen = "2", *group16 =
346
	    "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1"
347
	    "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD"
348
	    "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245"
349
	    "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED"
350
	    "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D"
351
	    "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F"
352
	    "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D"
353
	    "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B"
354
	    "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9"
355
	    "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510"
356
	    "15728E5A" "8AAAC42D" "AD33170D" "04507A33" "A85521AB" "DF1CBA64"
357
	    "ECFB8504" "58DBEF0A" "8AEA7157" "5D060C7D" "B3970F85" "A6E1E4C7"
358
	    "ABF5AE8C" "DB0933D7" "1E8C94E0" "4A25619D" "CEE3D226" "1AD2EE6B"
359
	    "F12FFA06" "D98A0864" "D8760273" "3EC86A64" "521F2B18" "177B200C"
360
	    "BBE11757" "7A615D6C" "770988C0" "BAD946E2" "08E24FA0" "74E5AB31"
361
	    "43DB5BFC" "E0FD108E" "4B82D120" "A9210801" "1A723C12" "A787E6D7"
362
	    "88719A10" "BDBA5B26" "99C32718" "6AF4E23C" "1A946834" "B6150BDA"
363
	    "2583E9CA" "2AD44CE8" "DBBBC2DB" "04DE8EF9" "2E8EFC14" "1FBECAA6"
364
	    "287C5947" "4E6BC05D" "99B2964F" "A090C3A2" "233BA186" "515BE7ED"
365
	    "1F612970" "CEE2D7AF" "B81BDD76" "2170481C" "D0069127" "D5B05AA9"
366
	    "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34063199"
367
	    "FFFFFFFF" "FFFFFFFF";
368
369
	if (max < 4096) {
370
		debug3("requested max size %d, using 2k bit group 14", max);
371
		return dh_new_group14();
372
	}
373
	debug3("using 4k bit group 16");
374
	return (dh_new_group_asc(gen, group16));
336
}
375
}
337
376
338
/*
377
/*
(-)dh.h (+1 lines)
Lines 37-42 DH *dh_new_group_asc(const char *, const Link Here
37
DH	*dh_new_group(BIGNUM *, BIGNUM *);
37
DH	*dh_new_group(BIGNUM *, BIGNUM *);
38
DH	*dh_new_group1(void);
38
DH	*dh_new_group1(void);
39
DH	*dh_new_group14(void);
39
DH	*dh_new_group14(void);
40
DH	*dh_new_group_fallback(int);
40
41
41
int	 dh_gen_key(DH *, int);
42
int	 dh_gen_key(DH *, int);
42
int	 dh_pub_is_valid(DH *, BIGNUM *);
43
int	 dh_pub_is_valid(DH *, BIGNUM *);

Return to bug 2302