|
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 |
/* |