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

Collapse All | Expand All

(-)dh.c (-3 / +43 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
/* Fallback group used by DH-GEX if moduli file cannot be read. */
339
DH *
340
dh_new_group_fallback(int max)
341
{
342
	static char *gen = "5", *group_fallback =
343
	    "DDE41D70" "21F9DF82" "40D0BD8E" "14CE1E37" "4A4FFDD0"
344
	    "73767E84" "C8C347B6" "F8327312" "77F9D333" "B8BC7CD9"
345
	    "6ED164DF" "5C6F26E4" "6E4BAF0A" "A7C87B26" "CE3E1104"
346
	    "2C1BDDF7" "6095E50D" "7772E5DC" "0C48EBA0" "E41EC92E"
347
	    "AFA655DA" "1B6C614E" "1F0F9AD8" "15BD7505" "AA9B8A26"
348
	    "5D13956B" "5A26141E" "E812404D" "E13B821C" "9B7BCA99"
349
	    "82B8CF7D" "862F8E8A" "373FEFEE" "4AE46EC2" "122519A2"
350
	    "AD896ED1" "8CAECEF3" "14D1B98C" "83358B6E" "9D2F3BC5"
351
	    "8C1688F1" "62E3CF1F" "F58E57E7" "B9E14BB3" "7C9C9E96"
352
	    "92E57C42" "937141C2" "26E84C35" "B42DED90" "55A7F366"
353
	    "A61C3CB4" "899B4992" "78ED4C72" "9CC1DE54" "827E8822"
354
	    "90F9FC13" "F7F1488F" "897698EA" "62A99468" "D6F3ED05"
355
	    "61816C39" "B8279154" "FC7A8E45" "3CCC4EB1" "ABC777A3"
356
	    "97B694E1" "B9866C24" "95489F94" "721A3351" "B252D05F"
357
	    "E6C78579" "29B34C19" "A8EB42AB" "ED88FA37" "0DABCA83"
358
	    "A245DC35" "CFB39982" "4D127507" "AD540054" "C647F61C"
359
	    "6BD11CAF" "C3FE5277" "A1014DF6" "B538BC8B" "FE009315"
360
	    "BCD60E02" "0DAB840B" "8A4219EB" "A4E34968" "0BC7CA3A"
361
	    "9BC36164" "A3D36E32" "5C530B17" "8747814F" "57589912"
362
	    "6B307EB6" "3F910DDE" "0F09E505" "6B2F9F7E" "230A42C1"
363
	    "1DDD34A9" "B23A6409" "0C2FF9C7" "F3DD696E" "6828613E"
364
	    "74A64CFC" "4046ECFA" "997BE849" "81430D8A" "7F8AEC63"
365
	    "001E50AF" "9F556567" "A0065A9A" "013A66A2" "737CEEE4"
366
	    "68D6A150" "02358AC6" "48D862B0" "618E6DD6" "A98BBBE9"
367
	    "E68174D9" "C9FE4568" "BB2D1208" "3CF6892B" "6B8D5830"
368
	    "7944955A" "987F3791" "775049BF";
369
370
	if (max < 4096) {
371
		debug3("requested max size %d, using Oakley group 14", max);
372
		return dh_new_group14();
373
	}
374
	debug3("using static 4k bit group");
375
	return (dh_new_group_asc(gen, group_fallback));
336
}
376
}
337
377
338
/*
378
/*
(-)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