OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / freeswan / CHANGES
1 New and notable in 1.97:
2
3 Sanity check added for at least one of AH or ESP more for checking if
4 "make *config" has even been run.
5
6 Fixed 2.2 local IKE fragmentation blackhole.  Still won't work if
7 iptraf or another pcap app is running.
8
9 MCR added ikeping(8).
10
11 Applied DHR's tunnel patch to streamline IKE/specialSA processing.
12
13 Added local and remote IKE bypass tests to the UML test suite.
14
15 UML KLIPS %trap* tests now check for upbound pf_key messages.
16
17 An ICMP ICMP_DEST_UNREACH, ICMP_PKT_FILTERED is now sent upon %reject.
18
19 Added a UML input file with first and last packets being outside the 
20 covered range to "sandwich" the packets under test.
21
22 The default _updown script has been cleaned up slightly, reducing
23 internal duplication that arose accidentally.
24
25 When doing --add on an RSA-signature conn, ipsec_auto now tells Pluto
26 about the keys before, not after, telling it about the conn.  The main
27 consequence of this is that if something is wrong with one of the keys,
28 the conn itself does *not* get loaded.  This should reduce confusion.
29
30 The rp_filter checks during KLIPS startup have been fixed to be a bit less
31 paranoid; rp_filter is thought to cause problems only on the physical
32 interfaces, not on the ipsecN interfaces. 
33
34 The configuration process has been fixed to be a bit more paranoid.  Some
35 users have had mysterious compile failures with complaints involving names
36 like MD5_CTX; they seem to have resulted from kernel configuration changes
37 somehow getting into .config but not into include/linux/autoconf.h (which
38 is what actually controls most of the kernel compile).  The post-config
39 checking now verifies not only that .config has the right stuff in it, but
40 that autoconf.h does too.  (We still don't see *how* this discrepancy can
41 arise, but this will at least catch it when it does.)
42
43 The details of linking the KLIPS source into the kernel are now under
44 control of a configuration variable in Makefile.inc, to make it easier
45 for distribution builders to change.
46
47 The top-level Makefile now includes cleverness which assigns a date-based
48 version code if a build is done from a raw CVS checkout.
49
50 The library now includes a new function, ttodatav(), like ttodata() but
51 in some cases it gives more verbose error reports.  Also, there are now
52 a couple of functions which distill an RSA public key to a "key ID" for
53 use in messages, a crypto-quality pseudo-random-number generator, and a
54 function that converts a single address into a (singleton) subnet.
55
56 Barf's secret/key-censoring utilities have been tidied up so that what
57 they emit matches the key-ID library functions. 
58
59 The ipsec command now supplies a couple more environment variables to
60 things it calls, and this has reduced the number of things which need to
61 be edited at build time to know about configuration variables. 
62
63 The configuration reader now allows parameter names to begin with "_";
64 these are strictly reserved for internal development purposes and will
65 not in general be documented.
66
67
68 As usual, there are assorted small bug fixes and improvements to docs
69 and messages.
70
71
72
73 New and notable in 1.96:
74
75 Compatibility with the 2.0.xx kernels (under Red Hat 5.2) is broken.
76 This was accidental, and we have some hopes of fixing it, although it
77 won't last forever even if we do.  See README.
78
79 Our "IKE Implementation Issues" IETF draft has been added to our docs.
80
81 Newhostkey now has a mandatory --output "option" specifying a filename
82 (although the magic filename "-" means "standard output"), and sets
83 restrictive permissions on newly-created files to try to keep private keys
84 truly private. 
85
86 Pluto now gracefully handles a couple of odd error cases (missing private
87 keys, network errors at just the wrong time in negotiations) which used to
88 cause it to die, provoking an automatic restart of the IPsec subsystem. 
89
90 Makefile.inc now has more detailed control over where manpages go, to ease
91 integration into distributions.  The name of the destination directory for
92 RPMs is also now centralized there.
93
94 Rsasigkey now checks for certain obscure internal failures, which can
95 happen if --random is used to supply a source of random bits that aren't
96 really very random, and complains accordingly.
97
98 Barf's eroute table, formerly sorted by source, is now sorted by destination.
99 This is probably a bit clearer for hosts with lots of eroutes.
100
101 Use of the %reject target in a shunt eroute now, as long planned, actually
102 causes an ICMP rejection message (Destination Unreachable:  Communication
103 Administratively Prohibited). 
104
105 KLIPS now declares its module license to be "Dual BSD/GPL".  (It is 
106 dual because the libdes and zlib code is BSD licensed, while KLIPS itself 
107 is GPL).  Whether this is exactly right is not yet clear, but at least it
108 stops the latest module loaders from whining.
109
110 The UML test stuff continues to grow and add new test cases.
111
112 As usual, there are assorted small bug fixes and improvements to docs
113 and messages.
114
115
116
117 New and notable in 1.95:
118
119 The last remnants of the "%hold" bug, which broke 1.93 and 1.94, have
120 (we think) been dealt with.
121
122 Minor bugs in the RPM-building stuff have been fixed, and it has been
123 updated to deal with Red Hat's abrupt removal of the --buildroot option
124 from rpm.
125
126 Pluto now supports the ability to delete an instance of a conn, rather
127 than just the whole conn (for cases, notably OE, where a single connection
128 description can be involved in multiple connections).  There is no support
129 for this in ipsec_auto yet.
130
131 Pluto's routine (non-debug) logging is now somewhat terser, and some of
132 the more boring messages are produced only if --debug-lifecycle is turned
133 on (this is a temporary hack, it's not really debugging output).
134
135 Pluto's innards have been reorganized somewhat, in preparation for making
136 DNS lookups asynchronous.  There should be no user-visible effects.
137
138 Pluto now ignores IPv6 link-local interface addresses; we think that they
139 are never relevant, and trying to bind to them causes difficulties.  This
140 decision is tentative and may be revisited when we make more progress on
141 IPv6 support in general.
142
143 A Pluto bug in handling of malformed TXT records has been fixed.  (The
144 complaint is still a bit mysterious, but at least Pluto doesn't fall over.)
145
146 Pluto's Responder cookie-generation algorithm has been changed so that a
147 particular peer no longer gets the same cookie each time. 
148
149 KLIPS and its utilities now take their debug and optimization compile
150 options from Makefile.inc.
151
152 There have been some internal upheavals in the library include files,
153 moving kernel-specific stuff out of the library and back into KLIPS where
154 it arguably belongs.  No user-visible impact known. 
155
156 The UML test facilities continue to improve in various small ways,
157 including the arrival of a script to start all defined UMLs
158 (testing/utils/start-all-umls.sh).
159
160 If KLIPS has been built without its debugging facilities, the startup
161 scripts no longer attempt to set a KLIPS debugging level.
162
163 "ipsec" and "ipsec --help" are no longer synonymous:  "ipsec" gives a
164 shorter, more introductory message and omits the command list.  Also,
165 the --help command list now excludes non-executable things (one or two
166 of which have sneaked into our command directory). 
167
168 The top-level Makefile now gives a better diagnostic for the case where
169 there is no /usr/src/linux symlink to the kernel source tree.
170
171 Eroute statistics (packet count and last-used time) are now kept up to
172 date for shunt eroutes as well as normal ones.
173
174 As usual, there are assorted small bug fixes and improvements to docs
175 and messages.
176
177
178
179 New and notable in 1.94:
180
181 1.93, as shipped, wouldn't compile as a module due to an erroneous
182 #include.  Oops.  Fixed.  Even after that, it also wouldn't compile as a
183 module in a 2.2.xx kernel, for more subtle reasons; also fixed. 
184
185 A structure name in KLIPS (struct net_device) has been changed to avoid
186 ominous mutterings from the compiler when building in a 2.2.xx kernel.
187
188 Due to an obscure internal oversight, the KLIPS utilities were being built
189 at the wrong time during the build, and this could cause trouble for folks
190 who build as one user and install as another.  Fixed, as is the Makefile
191 carelessness which permitted this to go unnoticed. 
192
193 The exemption of UDP/500 packets from being caught by the IPsec machinery
194 did not apply to %hold eroutes.  Now it does.  This should mostly have
195 affected opportunistic encryption.
196
197 The bug (noted in 1.93, but dating back earlier) in which the updown
198 script was called twice for auto=start connections has been fixed.  (To be
199 precise and technical, the updown script is now called only when tunnels
200 are set up, not when shunt eroutes are put in place.)
201
202 We think we have solved the notorious "%hold bug", which is difficult to
203 describe tersely.  In the course of this, some improvements were made in
204 Pluto's logging, and it now also handles some unlikely cases rather more
205 cleanly. 
206
207 There is now provision for uninstalling:  "make uninstall_freeswan" gets
208 rid of everything we install *except* the stuff in the kernel (a kernel
209 rebuild will be needed to get rid of KLIPS).  (Yes, the name is long,
210 that's deliberate, for accident prevention.)  This is now documented.
211
212 There are the beginnings of provisions for centralized control of compile
213 options like -g and -O3 in Makefile.inc.  This is still in development,
214 don't rely on it just yet. 
215
216
217
218 New and notable in 1.93:
219
220 The code that decides whether to send an ICMP complaint back about a
221 packet which had to be fragmented, but couldn't be, has gotten smart
222 enough that we now feel comfortable enabling it by default.  That is,
223 the default for the "fragicmp" setting has changed from no to yes.
224 This may help with the 1.92 fragmentation bug.
225
226 Pluto now proposes Diffie-Hellman group 5 before group 2, as the basis for
227 key negotiation.  Group 5 is more secure but uses a bit more CPU time; our
228 first impression is that this is not a serious problem.  Pluto *does*
229 still propose and accept group 2 as well, so there shouldn't be any
230 interoperability problem with the many group-2-only systems. 
231
232 To aid with key rollover -- replacement of an old key by a new one -- if
233 Pluto is fetching RSA public keys from DNS and gets more than one, it will
234 now try all of them rather than arbitrarily picking one.  (There is, as
235 yet, no support for multiple keys explicitly specified in ipsec.conf.)
236 This required substantial reworking of Pluto's innards; with any luck no
237 new bugs have resulted!
238
239 The ipsec command now has a --versioncode option which supplies just the
240 version code (equivalent to "ipsec --version | awk 'NR == 1 { print $NF }'"
241 but more convenient for scripts).
242
243 IKE (UDP/500) packets which were large enough to be fragmented used to be
244 mishandled, with some of the fragments failing to bypass IPsec tunnels
245 properly.  This has been fixed; our thanks to Hans Schultz. 
246
247 We now have the beginnings of a facility for building RPMs (after a full
248 normal build).  Instead of (e.g.) "make xgo", do "make xrpm", and after
249 the Makefile does the software and kernel build, it will make some RPMs
250 and leave them under the out.rpms directory.  The RPMs are:
251
252         freeswan        the userland utilities
253         freeswan-module the ipsec.o kernel module (see below)
254         freeswan-kernel the Linux kernel and its modules
255         freeswan-userkernel     all of the above
256
257 (The freeswan-module RPM gets built only if you specified building KLIPS
258 as a module.)  This is all very preliminary and needs a lot of polishing
259 as yet -- not to mention some documenting -- but it's a start.  (Thanks
260 to Paul Lahaie at Steamballoon for the first draft of this stuff.)
261
262 Argument checking in the default _updown script has changed slightly, to
263 make it easier to build custom scripts based on copies of the default one.
264 The script used to object to getting arguments it did not expect; now, if
265 the first argument is "custom", there will be no objection to further
266 arguments.  This will simplify small customizations by people who don't
267 want to learn the details of shell programming. 
268
269 Precisely where we insert our entry into the kernel's net/Makefile has
270 been changed, partly to put our stuff with related stuff, partly to move
271 us away from unstable areas where new changes often break our patches.
272
273 Ipsec_spi has been fixed to correctly report cannot-delete-an-unknown-SA
274 cases which could previously produce a cryptic "Unknown socket write error"
275 message.
276
277 There have been some small changes to messages to distinguish automatic
278 Pluto restarts (see 1.91, below) from normal ones, so that barf output
279 will extend back to a real restart.  (If this sounds familiar, it's
280 because this same item was noted in 1.92... but in fact the implementation
281 was not finished and didn't work.  Now it does.)
282
283 Pluto now stirs a bit of /dev/urandom randomness into some internal
284 decisions (notably rekeying times) which formerly were a bit too
285 predictable and could conceivably have resulted in different machines
286 being more or less synchronized.
287
288 Pluto log and status lines now include a bit more context.
289
290 KLIPS was checking for sequence-number rollover before packet authentication,
291 permitting a nasty denial-of-service attack.  This has been fixed.
292
293 A KLIPS locking problem which could cause system hangs on SMP machines
294 (and perhaps on non-SMP machines with SMP-enabled kernels) has been fixed.
295
296 Ipsec_spi now has an option for specifying SA lifetimes, although Pluto
297 is not yet using it.
298
299 Internal handling of release/snapshot version numbers has been revised;
300 in particular, there are now functions in the library for obtaining the
301 current version code, etc.  There should be no user-visible effects.
302 The master source for the version code (during builds) is a new top-level
303 file, Makefile.ver .
304
305 Pluto has a new "dns" debugging flag.
306
307 There have been some internal shakeups within KLIPS, which are believed
308 to have no user-visible effects.
309
310 As usual, there are assorted small bug fixes and improvements to docs
311 and messages.
312
313
314
315 New and notable in 1.92:
316
317 Packets emerging from (automatically-keyed) tunnels are now checked for
318 plausible addresses, i.e. for whether they *should* have been sent through
319 that particular tunnel.  This can be controlled, on a per-connection
320 basis, with the new disablearrivalcheck parameter.  The default is "yes"
321 (disable the check) for backward compatibility, but the supplied ipsec.conf
322 now includes "disablearrivalcheck=no" in its %default section, since
323 almost all users will want the checking enabled. 
324
325 As a result of refusing to start an already-running IPsec, the startup
326 script would sometimes balk during a reboot after a crash.  This showed up
327 only on old Red Hats, which don't completely clear out /var/run during
328 reboot.  The locking has been revised to work around this.
329
330 The code which reports fragmentation (if fragicmp=yes is set in ipsec.conf)
331 has been made more selective, sending back an ICMP Fragmentation Needed
332 response only for non-ICMP packets with Don't Fragment set.
333
334 Quoting practices in ipsec_auto have been revised, so that essentially all
335 parameters emitted into shell commands are now enclosed in ""; this
336 permits a few unusual ones to have embedded white space, and makes the
337 errors easier to diagnose when ones that shouldn't have such space do. 
338 (This is likely to impact users of the X.509 patch, which was exploiting
339 the old quoting behavior in messy ways.  It also hurts people who have
340 been getting away with always-illegal practices like stray backslashes
341 in the middle of (left/right)rsasigkey parameter values.  Reporting of
342 such problems has always been poor, and these cases are no exception.)
343
344 The FreeS/WAN Makefiles have been shaken up substantially.  Notably, things
345 like installation pathnames are now located in a Makefile.inc include file,
346 rather than being passed down from the top Makefile by a long list of
347 command-line parameters.
348
349 White space within a non-quoted ipsec.conf parameter is now diagnosed as
350 an error.  It always was a violation of the rules, but we've now found
351 some cases where it causes real trouble, so the rules are now being
352 enforced more rigorously.
353
354 There is a new command, newhostkey, for generating a complete new minimal
355 ipsec.secrets file with a new public/private key pair.  (This is a first
356 step toward tools for more graceful key rollover.)
357
358 The "postpluto" parameter was broken in the last release, and is now fixed.
359
360 Pluto no longer does internal caching of DNS data, since it was not smart
361 enough to monitor it for staleness, and this increasingly matters.
362
363 There is now a "rekey" parameter for automatic keying, and rekey=no means
364 that this end will not attempt to rekey the connection when it's about to
365 expire.  The supplied opportunistic-encryption connection now sets rekey=no
366 (and a short keylife).
367
368 Pluto now incorporates a change which has been floating around for some
369 time as an informal patch:  the notorious Commit Bit is ignored, rather
370 than being cause for rejection of a message. 
371
372 The output of "ipsec auto --status" now keeps certain long lines intact
373 rather than automatically splitting them; this may hurt readability
374 slightly but simplifies program processing of the output.
375
376 There have been some small changes to messages to distinguish automatic
377 Pluto restarts (see 1.91, below) from normal ones, so that barf output
378 will extend back to a real restart.
379
380 The "interfaces" machinery in ipsec_setup has been made slightly more
381 tolerant of strange ifconfig output, to handle ATM interfaces in
382 particular. 
383
384 A major bug in the diagnosis of failed "route" commands in the default
385 updown script has been fixed, and code has been added for better diagnosis
386 of bad nexthop settings (which show up as "route" failures).
387
388 Barf now includes iptables dumps and excerpts from ps output.
389
390 The algorithm barf uses to figure out which log files to examine has been
391 smartened up to deal with the case where IPsec has been running for a long
392 time and its startup messages are no longer in the current log files.  It's
393 a bit of a kludge but it should generally work.
394
395 Barf output now puts tags on its different sections, to facilitate
396 automatic disassembly and analysis.
397
398 There is a new shunt-eroute type, %trapsubnet, which turns completely into
399 a %hold when a packet hits it, rather than spawning off a /32->/32 %hold
400 as %trap does.  This is for (future work on) demand connection setup,
401 whereas %trap is for opportunistic encryption. 
402
403 Minor tweaks have been made to KLIPS to avoid using the kernel min() and
404 max() macros, whose definitions keep changing in the 2.4.xx kernels.
405
406 As usual, some changes have been needed in KLIPS to track changes in
407 internal interfaces in the 2.4.xx kernels.
408
409 A %hold shunt eroute now stores the first and last packets to hit it, and
410 releases them when it is replaced by a "real" eroute.
411
412 The showhostkey --txt output is now split up into multiple strings, if
413 necessary, since BIND 9 (unlike BIND 8) won't do this automatically.  The
414 result is fully compatible with both.
415
416 The PF_KEY code now includes an obscure extension to the Identity
417 Extension, mostly for OpenBSD compatibility. 
418
419 Compressed transport-mode connections used to flunk tunnel exit checks;
420 this has been fixed.
421
422 The KLIPS compression code has been made more tolerant of misbehaving
423 implementations on the other end:  some demented systems, when asked to
424 use a compression method for which a predefined number (CPI) exists, will
425 put that number in packets even if a custom number was in fact negotiated.
426 KLIPS now copes.
427
428 The KLIPS error code used to report missing SAs has changed from EEXIST to
429 ENOENT. 
430
431 The library header files have been reorganized, moving a lot of the
432 kernel-specific clutter out of freeswan.h.
433
434 A bug has been fixed (our thanks to Savatier Sibastien) in how explicit
435 IP-address IDs are emitted as IKE payloads.
436
437 Pluto's internal handling of kernel error reports has been made more
438 paranoid, avoiding certain conditions which may have been causing Pluto
439 to hang or to fail with confusing error reports.
440
441 Some work has been done to reduce spurious compiler warnings in KLIPS.
442
443 ipsec.conf(5) has been updated to include discussions of what happens when
444 the two ends disagree on parameter values, and also some notes on
445 recommended settings (a commentary on the standard boilerplate we supply).
446
447 The patcher now knows how to do "patching" by appending rather than by
448 using patch(1), and this is used for some kernel files.
449
450 As usual, there are assorted small bug fixes and improvements to docs
451 and messages.
452
453
454
455 New and notable in 1.91:
456
457 The big news this time is prototype opportunistic encryption, and bug fixes.
458 This release goes back to the "main line" of development; it's not an
459 offshoot like 1.9 was.  This means it incorporates some code that's a bit
460 more experimental than 1.9, but the divergence has just gotten too large
461 to back-port all the important fixes to 1.9.
462
463 Opportunistic encryption is starting to be usable; see doc/opportunism.howto
464 for the gory details.  (Better docs are coming.)  There is now an
465 opportunistic connection description in the supplied ipsec.conf.
466
467 We think all the memory leaks in KLIPS have been fixed.
468
469 It works with current 2.4.x kernels (2.4.5 as of the time of writing).
470 Compatibility with earlier 2.4.x kernels may have been sacrificed to
471 some extent.
472
473 When the hardware device "underneath" an ipsecN device goes down, the
474 ipsecN device doesn't actually go down, to prevent loss of routes and
475 packets going out in the clear if the hardware device comes back up. 
476
477 The assembler assist for compression has been re-enabled, thanks to a
478 fix from Svenning Soerensen (who has also been very helpful with the
479 memory leaks, and with updating to match the current 2.4.x kernels).
480
481 The spin-lock bug, which caused kernel hangs in SMP-enabled kernels when
482 AH+ESP or compression was used, has been fixed.
483
484 The ipsec_setup script has been extensively rewritten, and the machinery
485 behind it has changed quite substantially.  The only user-visible effect
486 should be that the plutobackgroundload parameter is now ignored, because
487 the connection setup is always done in the background.  (Another effect,
488 possibly visible in unfortunate cases, is that if Pluto dies a messy
489 death, the scripts will log the fact and restart it.)  Oh, and the exit
490 status of ipsec_setup should now be more accurate.
491
492 A 2.2.x kernel's net/Config.in file is now patched using a patch
493 appropriate to 2.2.19, BUT NOT to earlier 2.2.x kernels.  (If you must
494 use an earlier 2.2.x, "cp klips/patches2.2/net.Config.in klips/patches2.3"
495 before building.)
496
497 While continuing to offer a nice large MTU, KLIPS now detects attempts
498 at path-MTU discovery, and deals with them honestly, so that systems
499 trying to do things right will not be misled (perhaps disastrously).
500 (This is mostly another Svenning Soerensen fix.)  The "honest" MTU is
501 also now reported in the ipsec_tncfg output.
502
503 As a first step toward avoiding kernel rebuilds, there is now an
504 experimental facility for doing *just* a module build as part of the
505 installation, bypassing the rest of the kernel build.  Where you'd
506 normally type (e.g.) "make xgo" and "make kinstall", type "make xmod" and
507 "make minstall" instead.  (You still get to do a kernel configure, but the
508 only essential bit is to set IPsec to install as a module.)  Not perfect,
509 and not yet tested on any great diversity of systems, but it's a start. 
510
511 The default handling of packets for which no eroute exists is now
512 controlled by a packetdefault parameter in the config-setup section of
513 ipsec.conf, instead of always defaulting to "drop".  This supersedes the
514 no_eroute_pass parameter, which no longer exists.  There is a new family
515 of special "shunt" eroutes, implementing this and also relevant to
516 opportunistic encryption.  (A side effect of this is that SPI values
517 supplied for manual keying are now *required* to be 0x100 or higher,
518 whereas formerly this was merely strongly encouraged.)
519
520 Incoming policy checking has been beefed up slightly, and in particular
521 IPIP encapsulation will be removed only if it is expected.  (Incoming
522 checking still does not, alas, check the most important thing:  whether
523 the addresses inside the encapsulation are acceptable.)
524
525 Vestigial code for the ESP transforms with no encryption, which have not
526 really been supported for some time, has been taken out.
527
528 There is a new value for the auto parameter, "route", probably useful
529 mostly for opportunistic encryption.
530
531 The _updown script now handles one case specially:  a far-end subnet of
532 0.0.0.0/0 is routed with a pair of routes, one for 0.0.0.0/1 and one for
533 128.0.0.0/1, to kludge around a problem found during opportunistic testing.
534
535 Rsasigkey's "pubkey" output (used by showhostkey) is now in base64 rather
536 than hex, for slightly greater compactness and easier eyeball comparison
537 of keys.
538
539 Setup will attempt to load a KLIPS module only if the kernel has modules,
540 will refuse to start IPsec if it appears to be started already, and will
541 comment (but continue) if asked to stop IPsec when it does not appear to
542 be running.  (The exit status from a stop request reflects this.)  Also,
543 "ipsec setup status" now gives a (terse) report of whether IPsec appears
544 to be running or not, and reports in more detail if inconsistencies are
545 found (e.g. no Pluto running).  CAUTION:  the status-report syntax has
546 changed slightly from its original version.
547
548 Showhostkey has a --txt option (which takes a gateway parameter) to
549 generate the TXT record used in opportunistic encryption. 
550
551 Auto now defaults (left/right)nexthop to %direct, instead of trying to
552 fill in right/left, to avoid problems in opportunistic setup in
553 particular. 
554
555 The prototype ipsec.secrets file no longer includes a shared-secret
556 example.
557
558 The startup/shutdown priority of IPsec, in the fallback case of systems
559 which do not have chkconfig available, has been fixed to be compatible
560 with what chkconfig will do.
561
562 The default build-a-kernel target is now "boot" for any non-x86, not
563 just for the Alpha.  (Unfortunately, "boot" doesn't do the right thing
564 on the x86 at present.)
565
566 The distribution now includes preliminary KLIPS2 documentation, to
567 facilitate comments and review.
568
569 KLIPS's utility programs no longer accept one-letter options, to avoid
570 confusion in cases of misspellings etc.
571
572 Private (x- etc.) parameters are now stripped from _confread's output,
573 to avoid shell complaints in some situations.  There should be no
574 user-visible effects, except perhaps to folks who have been unwisely
575 relying on undocumented properties of the implementation.
576
577 Eroutes now have accounting data associated with them, to aid Pluto in
578 managing them (especially in the opportunistic case).  Should be no
579 user-visible effects, except for slightly different output from
580 ipsec_look. 
581
582 Pluto has been fixed so that all preparations necessary for whack to talk
583 to it are done before it spins off into the background, eliminating an old
584 race condition. 
585
586 The IPSECDIR variable supplied by the ipsec prefix command is now
587 IPSEC_DIR, and there is a new IPSEC_VERSION variable also supplied.
588 Most scripts now use this in their --version reporting.
589
590 The old manual-keying stuff in the supplied ipsec.conf has been removed.
591
592 As usual, there are assorted small bug fixes and improvements to docs
593 and messages.
594
595
596
597 New and notable in 1.9:
598
599 The big change is that it works with the 2.4.x kernels (specifically,
600 2.4.2 at the moment).  KLIPS Makefiles have been converted to the new
601 2.4.x style, with backwards compatibility for use under 2.2.x and 2.0.x. 
602 Various small KLIPS fixes have been done for 2.4.x kernels. 
603
604 Inability to start KLIPS now causes a quicker and cleaner abort of the
605 whole startup operation.
606
607 Routing failure in _updown is now diagnosed in more detail, at Claudia's
608 suggestion; mysterious difficulties there are a frequent user problem.
609
610 Incorporated Olivier Kurzweg's fixes so that auto= parameters can now be
611 picked up from %default sections or sections appended by also=.
612
613 Pluto (and rsasigkey) have been fixed to do the "lcm" optimization for RSA
614 private keys... which means that Pluto should no longer reject most keys
615 generated by modern versions of PGP.  There is a new --noopt option for
616 rsasigkey, which suppresses the optimization, to generate private keys
617 compatible with the old Pluto.  (Note that public keys are unaffected; for
618 the normal way RSA keys are used, all that matters is that a host's own
619 Pluto is compatible with the rsasigkey used to generate that host's key.)
620
621 showhostkey now has options to produce ipsec.conf (left/right)rsasigkey
622 lines.  It retains information on when and how the key was generated,
623 as comments.  The default hostname, for DNS format, now comes from the
624 hostname supplied by rsasigkey (NOTE INCOMPATIBLE CHANGE) rather than
625 from "hostname --fqdn".
626
627 Inability to communicate with Pluto (e.g. because Pluto has died or was
628 never started) is diagnosed better.
629
630 An obscure bug that caused Pluto to die midway through negotiating a
631 connection has been fixed.
632
633 Pluto now notices whether the kernel supports compression, and will
634 refuse to negotiate it if there is no kernel support.
635
636 Better diagnosis of the %any-plus-no-id-plus-RSA-key case in ipsec.conf,
637 not a sensible usage but some people ran into it accidentally. 
638
639 The ipsec command now has a --directory option, reporting where the IPsec
640 commands are kept, and a report of this is included in barf output.
641
642 There is now a global overridemtu parameter in ipsec.conf, which can be
643 used to force a smaller value for the MTU of the ipsecN devices.
644
645 A bunch of utilities used for building the docs have moved out of utils
646 and into a subdirectory of doc.  Should be no user-visible effects.
647
648 As usual, there are assorted small bug fixes and improvements to docs
649 and messages.
650
651
652
653 New and notable in 1.8:
654
655 FreeS/WAN now uses the system's GMP library (WHICH MUST EXIST) rather than
656 carrying its own private copy.  This requires not only the GMP library
657 itself, but also any "GMP development" package too -- these ship with all
658 normal Linuxes, but might not be installed by default.  (Note, "GMP" and
659 "GPM" are completely different libraries, despite the similarity of name.)
660
661 The problem with ping and tcpdump (and possibly some other software) being
662 unable to see large packets emerging from a compressed connection has been
663 fixed.
664
665 KLIPS locking has been extensively revised, curing a number of mysterious
666 performance problems.  (We hope it hasn't introduced any new bugs...)
667
668 The default updown script's comments have been extensively revised, in
669 hopes of making its workings clearer and facilitating customization.
670
671 IPComp has been smartened up (thanks again to Svenning Soerensen) and is
672 now somewhat more intelligent about when it should try to compress.
673
674 The internal configuration-file reader is progressively getting fussier
675 about what it will accept, which may cause problems for illegal ipsec.conf
676 files whose sins previously passed unnoticed.  IN PARTICULAR, the "auto"
677 parameter's values are now checked for legality everywhere.
678
679 Pluto has some experimental code in it to give better reports of who's
680 to blame when our packets are being refused.  This depends on some new
681 (non-FreeS/WAN) kernel stuff (IP_RECVERR) that isn't well documented yet...
682
683 The ipsec_setup code implementing the forwardcontrol parameter is now
684 smart enough to turn forwarding on only if it was previously off, and
685 turn it back off only if it was originally off.
686
687 Ipsec_manual has been updated:  it copes with inbound policy checking
688 properly, and invokes updown scripts rather than having its own default
689 commands wired in. 
690
691 Several scripts which depend on being able to standardize output from
692 certain commands now unset even more environment variables, in an attempt
693 to keep up with the latest vagaries of the internationalization botches. 
694
695 The distribution no longer contains any binary files (a couple of them
696 sneaked in deep in the mysterious innards of libdes, but they appear to
697 have been spurious) or symbolic links.
698
699 The top-level Makefile now supports "make backup" (makes a tarball in
700 the current directory, name of the form backup-2000-Nov-29.tar.gz,
701 containing everything FreeS/WAN install touches except the kernel and
702 its sources) and "make unpatch" (takes all of our patches out of the
703 kernel sources; note that a couple of kernel-source files get altered
704 by other means, but they are included in "make backup").
705
706 The verb Pluto supplies to the updown script was wrong when the local
707 subnet contained only a single host (should have ended in -client, was
708 ending in -host); this has been fixed.
709
710 The output of "ipsec auto --status" has changed in several small ways,
711 for the better we hope.
712
713 As usual, there are assorted small bug fixes and improvements to docs
714 and messages.
715
716
717
718 New and notable in 1.7:
719
720 Fix for nasty Pluto bug:  When starting to negotiate a connection, Pluto
721 has to guess which connection is the appropriate one.  Shortly thereafter,
722 it finds out for sure, and may have to switch; this switch did not work if
723 the guessed connection had a subnet and the right one didn't, or vice
724 versa.  The symptom was mysterious and inappropriate complaints about being
725 unable to negotiate because "no connection is known for..."
726
727 Another, not quite as bad but serious in the context of our slightly
728 unstable IPComp:  with compress=no or no compress parameter, Pluto
729 wouldn't propose compression but would accept a proposal with compression,
730 if the other end made it.  Now it refuses.  (Finer control is really
731 needed, but this will do for now.)
732
733 A null-pointer KLIPS bug which caused a hard crash on the first incoming
734 packet in a number of situations (manual keying, IPComp negotiated but not
735 supported in kernel, etc.) has been worked around.
736
737
738
739 New and notable in 1.6:
740
741 The documentation has been re-organised and parts of it re-written.
742 There is a better table of contents (doc/toc.html), or you can have
743 the docs as one big file (doc/Howto.html). Installation is now in
744 a separate section (doc/install.html) and the configuration section
745 now assumes auto keying and RSA authentication as defaults.
746
747 We now implement IPComp, the protocol for pre-encryption data compression.
748 (Because encrypted data doesn't compress much, hardware compression is
749 useless for encrypted connections, and compression *before* encryption is
750 necessary.)  We do only the Deflate algorithm, the control code is not too
751 smart yet, and the whole thing is STILL A LITTLE BIT EXPERIMENTAL... so it
752 defaults to "off" in the kernel configuration.  (NOTE NEW KERNEL OPTION,
753 which you won't see if you drop 1.6 in on top of an existing FreeS/WAN --
754 this is a bug in the installation machinery.)  Beware:  if you ask Pluto
755 to negotiate a compressed connection, it *assumes* that the kernel is
756 configured to do IPComp, and chaos will ensue if it's not.  Also beware:
757 neither ping nor tcpdump cope well with compressed connections, although
758 more mundane programs like ftp don't have any trouble.  (Credits:
759 Svenning Soerensen contributed preliminary versions of most of this code.)
760
761 The internal library has been extensively overhauled for IPv6 support, as
762 have Pluto and the KLIPS utilities.  KLIPS itself can't do IPv6 yet,
763 though, so this isn't too useful so far.  Some IPv6 loose ends like user
764 interface haven't been tidied up yet either. 
765
766 Diffie-Hellman modp 768 Group, aka "Group 1", which is cryptographically
767 unacceptably weak, is NO LONGER SUPPORTED.  Automatic keying will now work
768 only with systems supporting the stronger Group 2 or the still-stronger
769 Group 5; almost everybody does at least Group 2 anyway.
770
771 As part of the IPv6 support, changes were made to the Pluto/updown
772 interface.  See pluto(8) for the details.  One oft-requested feature is
773 some new environment variables in net/mask format.  The changes are
774 "upward compatible", so the version environment variable was changed from
775 1.0 to 1.1. 
776
777 Unfortunately, the version-variable change WILL BREAK many customized
778 updown scripts.  The standard _updown now rejects attempts to run it from
779 older versions of Pluto, but accepts attempts to run it from newer ones. 
780 Older _updown versions, which many people have used as the basis for their
781 own custom ones, were fussier and will *not* run with newer Plutos --
782 e.g., this one -- so they will need to be updated. 
783
784 Various changes have been made to prefer RSA authentication, the patent
785 having expired.  IN PARTICULAR, authby=rsasig is now in the "conn %default"
786 section in the sample ipsec.conf. 
787
788 There are new configuration parameters to control several kernel options,
789 which can now be changed at startup time instead of having to be fixed at
790 kernel-configuration time.  The defaults are the same as the old behavior.
791
792 There is now a configuration parameter controlling whether the TOS field
793 of a tunnel packet is cleared or copied from the enclosed packet.  The
794 default IS DIFFERENT from the old (copy) behavior, which we believe
795 represented a security flaw:  default is now to clear TOS. 
796
797 There is a new configuration parameter, uniqueids, to control a new Pluto
798 option:  when a new connection is negotiated with the same ID as an old
799 one, the old one is deleted immediately.  This should help eliminate
800 dangling Road Warrior connections when the same Road Warrior reconnects. 
801 It thus requires that IDs not be shared by hosts (a previously legal but
802 probably useless capability).  NOTE WELL:  the sample ipsec.conf now has
803 uniqueids=yes in its config-setup section.
804
805 Pluto has prototype experimental support for initiating and responding to
806 opportunistic negotiation.  A connection is considered for instantiation
807 for opportunism if it has a peer of %opportunistic (the connection
808 description must not specify a client for the peer).  Currently, the only
809 way to provoke an opportunistic initiation is to use whack to simulate the
810 interception of an outbound flow (do a "whack --help" and look at
811 opportunistic initiation).  These features are lightly documented because
812 they are experimental.  Limitations:  no actual interception of packets,
813 DNS query synchronous. 
814
815 Auto (and hence whack and Pluto) now recognize some magic keywords for
816 special addresses, instead of overloading 0.0.0.0 and such:
817   + --host %any signifying any IP address, for Road Warrior,
818     replacing 0.0.0.0 or 0::0
819   + --nexthop %direct signifying "same IP as peer", replacing
820     0.0.0.0 or 0::0
821   + %any and %any6 as indices in ipsec.secrets to match IP addresses of
822     Road Warriors (replacing 0.0.0.0 or 0::0)
823   + --host %opportunistic signifying that the peer is actually
824     to be discovered from the reverse DNS entry for the peer's client.
825     This replaces --host 0.0.0.0 --client 0.0.0.0/32 (and IPv6 variants).
826 The old 0.0.0.0 forms continue to work... for now.
827
828 In ipsec.secrets, if multiple entries are the best match for the
829 connection, they must all have the same secret.  In the past there was no
830 code to compare RSA keys, so separate RSA entries were assumed to be
831 different.  Now they are compared.
832
833 The Pluto compile tries to figure out whether it's on a system that has
834 a modern resolver library, by looking at __RES in <resolv.h>.  Possibly
835 it gets some borderline cases wrong; we would appreciate bug reports.
836
837 Pluto now tries to defend itself against the clock being set backwards. 
838 The risk is that events might be delayed a lot.  Still no protection
839 against clock being moved forward. 
840
841 Interfaces that share IP addresses with others are ignored by Pluto,
842 avoiding a case it cannot handle gracefully yet.
843
844 The ipsec command has had its copyright goo split off into --copyright,
845 to reduce clutter in --version output.  Also, its --version option now
846 checks to see if it can determine the KLIPS version; if so, it checks
847 that against the userland version, and adjusts its output if the two are
848 different.
849
850 Ranbits and rsasigkey have had their key-size limits expanded.  Rsasigkey
851 hasn't gotten any faster, though; it will now blithely attempt to generate
852 a 20000-bit key, but your machine will probably die of old age before it
853 finishes. 
854
855 Pluto now rejects some forms of ID payloads that it doesn't support.
856
857 Manual now recognizes %default to mean 0.0.0.0/0.
858
859 The sample ipsec.secrets now uses the explicit "PSK" format for its
860 sample shared-secret entry. 
861
862 Barf now shows the values of the /proc/net/ipsec/* flags.
863
864 IPsec startup now checks for the presence of both /dev/random and
865 /dev/urandom, since various things use both. 
866
867 The last vestiges of support for the old netlink user-kernel interface
868 are vanishing fast.
869
870 Progress is being made toward more sophisticated PFKEY2 Pluto-KLIPS
871 communication; no spectacular new features to report yet. 
872
873 The KLIPS bypass for UDP/500 and type=passthrough used to misbehave on
874 very large packets; fixed.
875
876 In ipsec.conf, parameters with names starting with x_ and X_ are now
877 reserved for user customization, like ones starting with x- and X-.
878
879 /proc/net/ipsec_spinew is gone; it was never used and is no longer useful.
880
881 Rsasigkey now puts the host name in its output (and accepts an option to
882 override the automatically-determined one), which makes keys more
883 self-identifying.
884
885 Look bug fixed:  the sorting of the route info was affected strangely by
886 environment variables in some (now obsolete) Red Hat releases.
887
888 Setup now unsets MODPATH and MODULECONF before calling modprobe, to
889 ensure that only system modules get loaded.
890
891 Auto gives --id to whack only if an id parameter was explicitly given,
892 solving some subtle problems with doing Road Warrior with shared-secret
893 authentication.
894
895 As usual, there are assorted small bug fixes and improvements to docs
896 and messages.
897
898
899
900 New and notable in 1.5:
901
902 Netlink support for user-kernel communication is gone.
903
904 Pluto's logging has been revised, although it still needs more work.
905
906 There are now manpages for the /proc files that KLIPS provides.
907
908 Pluto now avoids generating SPIs in the range 0x100-0xfff, effectively
909 reserving that range for manual keying.
910
911 Rsasigkey is now capable of taking old-key input from standard input.
912 Also, a buffer-size bug in it, which fouled up generation of keys larger
913 than about 2048 bits, has been fixed.
914
915 The update to the kernel configuration files is now done by copying and
916 renaming, which breaks hard links; this solves some problems and with luck
917 won't cause others... 
918
919 Some of Gerhard Gessler's mods for IPv6 support have been added.  (This
920 is only a very small first step; full IPv6 support is still far away.)
921
922 Barf now tries harder to find the right files in /var/log, and also makes
923 a first attempt at finding updown scripts.
924
925 A bug in AH hash setup has been fixed.  This breaks interoperability with
926 previous PF_KEY FreeS/WAN, but fixes it with other implementations.  Only
927 people using AH -- not many -- should be affected.
928
929 There are now prepluto and postpluto parameters in the "config setup"
930 section of ipsec.conf, to permit running user-supplied commands just
931 before and after Pluto startup (e.g., to briefly decrypt an encrypted
932 version of ipsec.secrets). 
933
934 The startup output about version and devices has gotten much shorter (a
935 somewhat more complete version is still found in the logs). 
936
937 Print a debug warning about bogus packets received by the outgoing
938 processing machinery only when KLIPS debugging is on.
939
940 Added configure option to shut off NO_EROUTE_PASSTHROUGH default (arcane
941 special requirement, most users should not have to care).
942
943 Some small changes have been made to minimize warning messages in compiles.
944
945 A bug in Pluto Road Warrior support has been fixed:  in responding to
946 Phase 2 / Quick Mode, once the client subnets (if any) are known, Pluto
947 must reselect which connection to use.  If it didn't happen to be using
948 the right one already, and no ID was explicitly specified for the peer,
949 and the right one is a Road Warrior connection, the right one would not be
950 found. 
951
952 Pluto now uses exponential backoff in retransmitting packets.  It also
953 has a special provision to attempt retransmission more times in the
954 case of an initiating message when an unlimited number of retries is
955 specified.
956
957 The ipsec_look output has changed a bit, adding more information and
958 revising the format slightly.
959
960 Some bugs in barf's key/secret censoring have been fixed.
961
962 As usual, there are assorted small bug fixes and improvements to docs
963 and messages.
964
965
966
967 New and notable in 1.4:
968
969 A nasty bug in which a corrupted sequence number in a packet could
970 paralyze a connection, causing all subsequent packets to be rejected as
971 "duplicate", has been fixed. 
972
973 Setting DESTDIR in the top-level Makefile now puts everything under there
974 (and suppresses the chkconfig run), for building systems to be installed
975 elsewhere.  Beware, the lower-level Makefiles don't explicitly know about
976 this yet, the override works only from the top.
977
978 Pluto has the beginnings of DNS key fetching.  "leftrsasigkey=%dns" will
979 arrange for that key to be fetched.  It's a bit slow as yet.
980
981 ipsec_rsasigkey now generates a DNS KEY record as part of its output, and
982 has a --oldkey option that can be used to update old keys (previously
983 generated by it) to the current format with the new information. 
984
985 There is now an "ipsec showhostkey" command, which (given suitable
986 permissions, i.e. usually root) will build a DNS KEY record based on
987 /etc/ipsec.secrets.
988
989 In the absence of an existing /etc/ipsec.secrets, installation includes
990 automatic generation of an RSA host key.
991
992 Comments have been added to the default updown script, warning people that
993 installing a new release overwrites it.  (They should use a different name
994 for a locally-customized version.)
995
996 There is a new "config setup" parameter, "plutobackgroundload", which
997 moves initial connection loading and startup into the background.  This
998 is experimental, but may be of use to people who need fast system boots.
999
1000 Startup and shutdown are now quieter, with less blow-by-blow narrative
1001 from ipsec_setup.
1002
1003 ipsec.conf include processing has been made much more efficient, as the
1004 first step in faster FreeS/WAN startup in large configurations.
1005
1006 The PFKEY2 kernel interface is now the only one supported.  Accordingly,
1007 /dev/ipsec is no longer needed or created.
1008
1009 KLIPS's PMTU messages are now disabled by default, because they caused
1010 problems for some people.
1011
1012 The hole that exempts IKE packets from IPSEC processing was a little too
1013 wide -- it could let IKE packets from other machines through in clear --
1014 and so it has been narrowed.
1015
1016 As usual, there are assorted small bug fixes and improvements to docs
1017 and messages.
1018
1019
1020
1021 New and notable in 1.3:
1022
1023 Pluto now uses a separate "updown" script (changeable via ipsec.conf, the
1024 default is "ipsec _updown") to manipulate routing and firewalls.  This
1025 should make it much easier to customize this stuff for local needs.
1026
1027 Pluto now supports per-connection debugging flags.
1028
1029 The conversion of userland-kernel communications from netlink to PFKEY2 is
1030 nearly complete; netlink is increasingly unsupported.  PFKEY2 support is
1031 now defaulted to y in kernel configuration.
1032
1033 New command, ipsec showdefaults, to show %defaultroute defaults (if any).
1034
1035 left/rightnexthop=%defaultroute can be used even if left/right is
1036 specified explicitly.  (Limitation:  some cases with %defaultroute used
1037 on one side but not the other will be rejected as errors, incorrectly.)
1038
1039 Left=leftnexthop, or right=rightnexthop, is now diagnosed as an error.
1040
1041 Fixed a bug in ipsec_look:  it didn't deal with %defaultroute properly.
1042
1043 Various small improvements to rsasigkey, including ensuring that the
1044 key is exactly the specified number of bits.
1045
1046 Barf's secret-censoring has been fixed to censor private parts of RSA keys.
1047
1048 The patcher now tries to ensure that a weird user umask doesn't mess up
1049 file permissions during patch application.  (It's hard to get this really
1050 right, but this is a first attempt.)
1051
1052 The internal ipsec.conf-reader utility, and the text-to-address conversion
1053 routine, now object to unprintable characters. 
1054
1055 The INSTALL file has been trimmed back severely, and is now aimed at
1056 experts only; the HTML docs provide full install instructions for novices,
1057 as they can do it better. 
1058
1059 /proc/net/ipsec_spi contents have changed, to show individual stats only
1060 if non-zero, and shorten and clarify a number of details. 
1061
1062 Added inbound policy-checking code, currently experimental and temporarily
1063 disabled, to reduce the number of packet leak paths. 
1064
1065 Shortened KLIPS debug output per packet.
1066
1067 Spigrp now has an (undocumented) --said option to use more modern syntax.
1068
1069 Support for 2.3.xx kernels has improved (our thanks to Marc Boucher), and
1070 some bugs introduced by 2.3.xx kernel evolution have been fixed.
1071
1072 A bug in virtual interfaces (IP aliasing) has been fixed.
1073
1074 In general, a bunch of bugs in the hurriedly-prepared 1.2 release have
1075 been fixed.
1076
1077 As usual, there are assorted small bug fixes and improvements to docs
1078 and messages.
1079
1080
1081
1082 New and notable in 1.2:
1083
1084 [Later addition:  somewhere around this release, the ESP transforms using
1085 null encryption -- providing authentication only -- stopped being
1086 supported, as a policy decision.]
1087
1088 The patcher has been improved to handle the case where a patch has gone
1089 away (give it no key+patchfile arguments) and the old version must be
1090 undone.  A number of the kernel patches have, in fact, gone away; for
1091 example, all device, proc_fs and protocol registrations are now done
1092 dynamically even for static-linked configurations.
1093
1094 A %defaultroute feature has been added for automatic configuration in the
1095 simplest case (IPSEC on only one interface, the one the default route
1096 points to); it can supply both the interfaces parameter and the address
1097 and nexthop of one host.
1098
1099 The sample ipsec.conf has been simplified to exploit %defaultroute, and
1100 has generally been cleaned up.
1101
1102 User-kernel communication is being converted to use PFKEY2 (RFC 2367),
1103 although not quite everything has yet been taken care of.  The old
1104 netlink-based code still works, for now.  There are new facilities in the
1105 library for doing PFKEY2 communication.  All of this should produce no
1106 user-visible changes except in log messages (which have changed a lot).
1107 NB, Peter Onion helped out greatly in this.
1108
1109 Experimental facilities for RSA digital-signature authentication have been
1110 added to Pluto and ipsec_auto, and there is an rsasigkey utility for key
1111 generation.  This stuff is not yet well shaken down, or well documented. 
1112
1113 There is a new configuration parameter, spi, for ipsec_manual, simplifying
1114 SPI assignment for FreeS/WAN-to-FreeS/WAN cases.  Standard manual-setup
1115 keys are supplied in the sample ipsec.conf to aid testing.
1116
1117 The kernel now builds its own copy of the internal library, avoiding some
1118 perennial problems with compile-option mismatches etc.  (Marc Boucher did
1119 a lot of this.)
1120
1121 The KLIPS code now gets symlinked into the kernel tree file by file,
1122 instead of with one symlink to the directory.  This has pros and cons,
1123 but in particular it does work much better with the standard Makefiles,
1124 and various little things have been done for better kernel integration.
1125
1126 The ipsec command now supplies PATH and IPSECDIR to commands under it, and
1127 IPSECDIR is filled in at build time rather than being hardwired; also, it
1128 can be different from where things are being installed. 
1129
1130 Various undocumented aspects of the /proc output have changed; be warned.
1131 Of note are rather more per-SA statistics.
1132
1133 KLIPS now has IPSEC SA expiry based on reaching hard limits of
1134 allocations, bytes, addtime, usetime, and replay counter rolling. 
1135
1136 A double locking bug which hit 2.0.36 (but not 2.0.38) has been fixed.
1137
1138 As usual, there are assorted small bug fixes and improvements to docs
1139 and messages.
1140
1141
1142
1143 New and notable in 1.1:
1144
1145 It now runs on the 2.2.xx kernels (we strongly recommend 2.2.12, not
1146 earlier ones, for non-FreeS/WAN reasons), although there may still be
1147 some bugs in transport mode.  Preliminary 2.3.xx support is in too.
1148
1149 Automatic rekeying has been heavily revised to fix some subtle bugs
1150 (notably the "shoelacing" problem), and to vary its timing (see the new
1151 "rekeyfuzz" parameter in ipsec.conf) so that sites with many connections
1152 don't try to rekey all of them simultaneously. 
1153
1154 The bugs which made our interim Road Warrior support not work have been
1155 (we hope) fully fixed.
1156
1157 type=tunnel and keyexchange=ike are now defaults in the ipsec.conf file,
1158 cutting down the bulk of a simple connection entry.  Also, an empty value
1159 for a parameter is now exactly equivalent to the default value (whereas
1160 previously the meaning of this was parameter-specific and ill-defined).
1161
1162 The documentation now includes a permuted index.
1163
1164 Pluto has been fixed to use the correct length for DH values, which does
1165 create a problem:  about one time in 256, it won't interoperate properly
1166 with older Plutos (because the older ones got this wrong when the DH value
1167 had a leading zero byte).  As a transition measure, there is a kludge in
1168 place which *should* cause Pluto to retry immediately in that case;
1169 cautious people who don't have to deal with old Plutos might want to
1170 switch that off (look for the DODGE_DH_MISSING_ZERO_BUG macro in the
1171 Pluto Makefile).
1172
1173 The kernel-patch applier has been changed so that if the patch seems to
1174 have been applied already but there is no record of that, it assumes that
1175 everything is okay.  THIS MEANS IT WILL NOT TRY TO BACK OUT AN OBSOLETE
1176 PATCH FROM A PRE-1.00 RELEASE.  Anyone upgrading from a pre-1.00 release
1177 to this release will have to start with a virgin kernel.  (The reason for
1178 this change is that some of our kernel fixes are now showing up in the
1179 official Linux kernel releases.)  Also, patch-applier output is now
1180 saved in out.kpatch for later inspection, and a failed patch results in
1181 the target file being restored to its original state (with the evidence
1182 saved in foo.c.mangled).
1183
1184 The ipsec[0123] device is configured down if the attached physical device
1185 disappears.  This is useful to prevent laptops from crashing when a PCMCIA
1186 card is removed.
1187
1188 KLIPS now does data-structure locking to prevent some race conditions.
1189
1190 The kernel "make oldconfig" is now supported, via "make oldgo".
1191
1192 Variable length PPP headers are now supported (Thanks MB).
1193
1194 Some attempts have been made to smarten up the logic which tries to figure
1195 out where boot scripts go.  It's still not perfect.
1196
1197 "ipsec look" now sorts each section of its output, and generally has had
1198 some small format changes to make it more helpful.
1199
1200 ipsec --version reports the version of FreeS/WAN (even if KLIPS etc. is
1201 not running at the moment).
1202
1203 There is now a default mechanism in ipsec.conf, so it's possible to set
1204 defaults which apply for the rest of the file, to simplify repetitive
1205 connection descriptions.  (Look for %default in the manpage.)
1206
1207 The machinery which reads ipsec.conf now detects unknown parameter names
1208 and considers them an error.  (Names beginning with x- or X- are exempt,
1209 they are permanently reserved for user customization.)
1210
1211 A bug in script handling of virtual interfaces (for IP aliasing) has been
1212 fixed. 
1213
1214 The manual pages are now installed more intelligently, under all the
1215 appropriate names rather than just some.
1216
1217 Several scripts which depend on the output of ifconfig now set environment
1218 variables to try to ensure that the output is in English even if the user
1219 is set up for another language.
1220
1221 We've begun using an ip_address type internally, to hide the details of
1222 addresses with an eye on long-term IPv6 compatibility.
1223
1224 There is now a dumpdir parameter in ipsec.conf, to specify where Pluto
1225 core dumps should occur if they are allowed at all (of relevance to
1226 advanced developers only). 
1227
1228 Pluto's innards have generally been revised and cleaned up.
1229
1230 Devices ipsec2 and ipsec3 have been added, to increase the number of
1231 interfaces which can have IPSEC on them.
1232
1233 /proc/net/ipsec_klipsdebug has been added to provide feedback about the
1234 current KLIPS_DEBUG settings.  It is read-only.
1235
1236 There is much new code in the innards for PF_KEY2 support, although it
1237 is not active by default yet, because it is still highly experimental.
1238
1239 As usual, there are assorted small bug fixes and improvements to docs
1240 and messages.
1241
1242
1243
1244 New and notable in 1.00:
1245
1246 INSTALL procedures have changed, to require less typing by having the
1247 Makefile do most of the dirty work.  The old procedures are still
1248 available; see doc/impl.notes if required.  More attention is paid to the
1249 fact that many people do not use the kernel "make install" to install
1250 their kernels... although there are limits to how much help we can offer,
1251 considering the complexity of the problem.  doc/kernel.notes offers some
1252 observations on our experiences.
1253
1254 The default permissions on ipsec.conf are now rw-r--r--, not rw-------.
1255
1256 Command syntax for manual and auto has changed; for example, to bring an
1257 auto connection up, say "ipsec auto --up name", not "ipsec auto name up".
1258 The old syntax is still accepted, temporarily, but will draw warning
1259 messages.
1260
1261 Communication to Pluto (auto+whack) now uses Unix-domain sockets, so that
1262 permissions can be used to control access.
1263
1264 Configuration parameters for automatically-keyed connections have changed,
1265 with the "encrypt" parameter gone and "auth" replacing "authenticate"
1266 (with different values). 
1267
1268 A new config-file parameter, "also", permits putting a connection
1269 description together piece by piece (with some pieces possibly in other
1270 files, for greater security).
1271
1272 A new config-file parameter, "auto", cooperates with a new "%search" value
1273 for the plutoload and plutostart setup parameters to allow connections to
1274 be loaded and started automatically at IPSEC startup time, without having
1275 to list all the names in plutoload or plutostart.
1276
1277 A new connection type, "passthrough", supports having some types of traffic
1278 bypass IPSEC processing altogether.  (Manual "keying" only.)
1279
1280 Auto's --replace operation now also does --rereadsecrets.
1281
1282 The kernel patches are now applied by a more sophisticated script, which
1283 in particular can undo old patches when the patches change (and can tell
1284 when this has happened).  The downside is that everybody gets to install
1285 from virgin kernel sources *once*, because the patcher can't undo patches
1286 made by previous versions (they didn't leave enough information around).
1287
1288 Many of the more obscure examples formerly found in ipsec.conf are now
1289 in doc/examples instead.
1290
1291 PMTU and fragmentation issues have been cleaned up w.r.t. RFCs.  The
1292 kernel configuration includes a switch to shut off ICMP PMTUD messages if
1293 hosts get confused by receiving ICMP PMTUD messages *and* ACKs.
1294
1295 Several of the configuration parameters for automatically-keyed connections
1296 have changed name; notably, "lifetime" is now "keylife", and "rekeystart"
1297 is now "rekeymargin".
1298
1299 Wildcard file includes are supported within ipsec.conf and ipsec.secrets.
1300 The ipsec.conf processing has been cleaned up, made fussier about errors,
1301 and centralized for easy changes. 
1302
1303 ipsec_barf output is more complete.
1304
1305 The censoring of keys and shared secrets in barf output is smarter:  now
1306 it prints checksums instead of just deleting the sensitive information, so
1307 there is some hope of being able to tell whether (for example) two keys
1308 are identical. 
1309
1310 The "ipsec" wrapper command is no longer willing to run commands from
1311 anywhere except its own directory.
1312
1313 The rekeytries parameter has become keyingtries, and applies to initial
1314 setup as well as rekeying.  (Whack and ipsec_auto return after the first
1315 try, but tries continue if keyingtries>1.)  A value of 0 means "a really
1316 big number".
1317
1318 Pluto now respects the policy options of a connection (e.g., "--pfs")
1319 even if the other end is initiating the connection.
1320
1321 Various rough edges in Pluto associated with disagreements between the two
1322 ends have been cleared up.
1323
1324 Error messages and logging have generally been improved, and there have
1325 been the usual assorted bug fixes.
1326
1327 Installation now uses "install" instead of "cp".
1328
1329 New in 0.92:
1330
1331 The biggest change is that the configuration/control files are completely
1332 different.  /etc/sysconfig/ipsec, /etc/ipsec-manual, and /etc/ipsec-auto
1333 have merged to become /etc/ipsec.conf, there is now a unified connection-
1334 description format within it that either manual or auto can use, and
1335 various other touchups have been done. 
1336
1337 /etc/isakmp-secrets also has changed format, and is now /etc/ipsec.secrets.
1338 It implements the same "include" mechanism as the configuration file, and
1339 the new format permits easier sharing of identical files between machines.
1340
1341 ipsec_manual's {left|right}masquerade parameters have been renamed to
1342 {left|right}firewall, and ipsec_auto understands them too.
1343
1344 There are several new configuration parameters, including provisions for
1345 asynchronous connection negotiation (in which Pluto starts negotiation
1346 of all desired connections simultaneously, and IPSEC startup does not
1347 wait for it to finish).
1348
1349 Pluto's innards have been reorganized; interoperability is much improved.
1350 Also, Pluto now supports multiple interfaces.
1351
1352 The documentation has been massively improved, although there is still
1353 much to be done.
1354
1355 The DES library has (finally) been updated to the latest.  The speed
1356 improvement on x86 CPUs is especially large.
1357
1358 Support for single-DES (as opposed to 3DES) has been largely discontinued.
1359 (The timing of this was a management decision which not all members of the
1360 technical team agree with.)
1361
1362 KLIPS now sends all packets with different inner and outer destinations
1363 directly to the attached physical device, rather than back through
1364 ip_forward, preventing the "route stealing" problem (in which a route
1365 being set up to a subnet could clobber the route to its gateway, causing
1366 total packet loss).  The downside of this is that it is now important to
1367 get the {left|right}nexthop parameters in the configuration file *right*.
1368
1369 ipsec_auto now supports transport mode.
1370
1371 Fragment handling has been shaken up and improved, generally for the
1372 better, but the new stuff has not been tested well yet.
1373
1374 IPIP tunnels are now processed internally, not requiring the IPIP module
1375 to be loaded or configured.
1376
1377 We now decrement TTL in outgoing packet and set TTL on new IPIP_TUNNEL to
1378 default value, not from existing packet TTL value.  That is, a tunnel
1379 looks like one hop, as it should. 
1380
1381 The SA ID %passthrough now signifies a magic SA which means that packets
1382 should be passed through untouched.  (There is no ipsec_manual/auto
1383 support for this yet.)
1384
1385 The '--said' command-line parameter is now accepted by the 'spi' and 'eroute'
1386 commands to enable cut-and-paste of /proc/net/ipsec_* and debug output.
1387
1388 Initialization vectors (IVs) are now generated in the kernel; user-level
1389 support for specifying particular IV values has been discontinued.
1390
1391 KLIPS has changed from transform switching to algorithm switching to
1392 reduce redundancy (and accomodate PFKEYv2 switchover).  A major code
1393 cleanup has also been done, reducing both source and binary size by 40%.
1394
1395 There have been many minor improvements, cleanups, and bug fixes.
1396
1397 New in 0.91:
1398
1399 Various new items of documentation, most notably doc/vpn.how, an intro to
1400 setting up virtual private networks with FreeS/WAN.  Plus assorted updates
1401 and improvements to old docs too.
1402
1403 Most of the contents of the ietf-drafts directory have been superseded by
1404 RFCs 2401-2412 and 2451.
1405
1406 All the manual pages now are installed under names beginning with ipsec_,
1407 to avoid name clashes.  Caution:  there is nothing that automatically
1408 *removes* the older versions, if you've installed an earlier release.
1409
1410 The configuration file (/etc/sysconfig/ipsec) has been extensively
1411 reworked, repeatedly.  The latest version supports multiple interfaces and
1412 does not need to know addresses etc. 
1413
1414 There is an "ipsec manual" command for taking manually-keyed connections
1415 up and down, with a corresponding control file containing some examples
1416 (which are realistic enough to use as the basis for real ones).  There is
1417 a corresponding "ipsec auto" command for Pluto-run connections.
1418
1419 The boot-time startup/shutdown script is now accessible as "ipsec setup",
1420 and includes a "restart" facility.  It now allows for the possibility that
1421 Klips may be a module, and clears out eroutes and spis at startup and
1422 shutdown.  Setup errors and messages go to syslog as well as stderr. 
1423 There are provisions for boot-time setup of multiple connections, both
1424 manually and automatically keyed. 
1425
1426 There is now an optional facility for having the boot-time startup script
1427 enable IP forwarding *after* basic IPSEC setup is done, to avoid timing
1428 windows in which cleartext packets might leak out.
1429
1430 Rationalised all the klips kernel file headers.  They are much shorter
1431 now and won't conflict under RH5.2.
1432
1433 "make insert" now sets up various IPSEC-related issues in the kernel
1434 configuration right, so the sysadmin shouldn't need to make many changes
1435 by hand. 
1436
1437 Discard packets for which there is no eroute if outbound on ipsec0.
1438
1439 Added temporary udp/500 IPSEC bypass for IKE daemons, so that they can
1440 continue to talk "in clear" even when all other traffic gets encrypted. 
1441
1442 /proc/net/ipsec_* formats have been cleaned up for easy parsing by scripts.
1443
1444 There is a new concise format for identifying SAs, e.g. "ah0x507@1.2.3.4",
1445 and many things now use it (and the utility functions that convert it to
1446 and from internal forms).  Klips now has separate SPI number spaces for
1447 AH, ESP, and tunneling internally.
1448
1449 The default of no replay checking can be overridden in manually-keyed ESP
1450 xforms. 
1451
1452 Pluto has been substantially reworked internally, has an internal database
1453 of potential connections (against which incoming requests are checked),
1454 and does timed rekeying.  Whack talks to Pluto with TCP rather than UDP,
1455 which permits Pluto to actually provide feedback on how things are going
1456 (although the details of the feedback still need work).
1457
1458 Standardise on '-96' notation for AH transforms and '-128' notation for
1459 ESP transforms in the 'spi' command.  The old notation without any
1460 authenticator bit length still works and still refers to the '-96'
1461 transform for AH transforms and '-128' transform for ESP transforms.
1462
1463 The output of "ipsec barf" has been reordered to put the more interesting
1464 items first.  "ipsec look" has been added as a terse way to look at the
1465 most important things.
1466
1467 New command, "ipsec ranbits", for generating good random bits for keys and
1468 such.  (/dev/random does the work, but this provides a convenient scripting
1469 interface to it.)  The sample isakmp-secrets and ipsec-manual files are now
1470 built using this, so they no longer contain keys that everyone will know.
1471
1472 There is a new character (0t) key format, for weird people who like to
1473 write keys as one ASCII character per byte.
1474
1475 Pluto now does PFS (Perfect Forward Secrecy), based on code contributed by
1476 Kai Martius. 
1477
1478 Various output formats have been cleaned up and improved, and assorted
1479 minor and major bugs fixed.
1480
1481
1482
1483
1484 New in 0.90:
1485
1486 klips/doc/modes.html documents the setup of various possible types of
1487 connection in a half-readable form.
1488
1489 Everything now runs under Red Hat 5.1 and the 2.0.35 kernel.
1490
1491 There is now an rc.d startup/shutdown script for Klips and Pluto, set
1492 up during a normal installation, driven by a configuration file located
1493 in /etc/sysconfig/ipsec.
1494
1495 There is a manual page for Pluto (and whack).
1496
1497 Pluto is now smart enough to tear down what it sets up.
1498
1499 The following xforms have been added and interop tested against OpenBSD
1500 with the exception of the NULL xforms:
1501 ESP_DES
1502 ESP_3DES
1503 ESP_DES_SHA1_96
1504 ESP_3DES_SHA1_96
1505 ESP_NULL_MD5_96
1506 ESP_NULL_SHA1_96
1507
1508 All keys and IV's to the spi command must be in hexadecimal with a '0x'
1509 prefix or in base64 with a '0s' prefix.  SPI's to the spi, spigrp and eroute
1510 commands are hexadecimal (preferred) if preceded by '0x' or decimal if
1511 preceded by a digit in the range 1-9.  Beware of leading '0's being
1512 interpreted as octal.
1513
1514 A --clear option has been added to the eroute and spi commands to clear
1515 the entire eroute and SA tables respectively and to the tncfg command
1516 to clear all virtual I/Fs.
1517
1518 The eroute, tncfg, klipsdebug and spi commands have been converted to long
1519 option names.  All command line parameters have been converted from
1520 positional to long option args.  All script calls to these utils will
1521 have to be updated.  The usage text and manpages have been updated
1522 accordingly.
1523
1524 The spi and spigrp commands now accept name lookups for hosts.
1525
1526 The eroute command now condenses the src, srcmask and dst, dstmask arguments in 
1527 a 'add' or 'del' call with a delimiting '/'.  It will now accept symbolic
1528 names for hosts, nets or masks and will accept the mask as a number of 
1529 significant bits.  Any scripts that call eroute will need to be changed.
1530
1531 All the klips utils now have --version and --help directives.
1532
1533 Klips utils cleaned up to check more thoroughly about improper arguments
1534 and report more specific error information.  Kernel error codes made more
1535 specific to help in debugging and identifying automatically, bad
1536 command syntax.
1537
1538 Cleaned up some useless references to unused resources that prevent
1539 compilation under RH 5.x.
1540
1541 Packets with more than one IPSEC wrapper will only be counted once in the
1542 stats, before they were counted as many times as there were wrappers.  The
1543 skb's pointer to dev is now set to the corresponding ipsecx I/F.
1544
1545 Make clean now does something useful in the klips/net/ipsec directory.
1546 Dependancies have also been added to force recompile of the klips kernel
1547 objects when the kernel config changes.
1548
1549 Klips is now statically linkable.  The config procedure has been changed
1550 to allow options to a 'y' answer for CONFIG_IPSEC.  There are now more patches
1551 to the kernel and several have changed.  It is advisable to repatch a
1552 fresh kernel or back out the previous patches made for an earlier version
1553 of klips.  Don't forget to remove any references to 'insmod ipsec' or
1554 'modprobe ipsec' in any automatic or manual scripts if you use static
1555 linking.  Depending on the size of your existing kernel, you may have to
1556 use 'make bzImage' and install this kernel manually.
1557
1558 The INSTALL instructions now specify static linking, for simplicity.
1559
1560 The Klips sources are no longer copied into the kernel, hurrah.  Some
1561 reshuffling of directories has made it possible to use a symlink.
1562
1563 Most of the utilities now go in /usr/local/lib/ipsec, with the "ipsec"
1564 wrapper command used to access them.
1565
1566 Added a warning on module load if IPIP protocol is not available to
1567 decode tunnel mode packets.  Additionally, kernel message advising of
1568 receipt of IPIP packets if the protocol is not loaded has been added.
1569
1570 New in 0.85:
1571
1572 There is now a general-utilities directory, notably including a new
1573 command ("barf") that dumps a bunch of debugging info on stdout.
1574
1575 INSTALL, and the top-level Makefile, have been simplified to do all
1576 the user-level code in one fell swoop ("make" and "make install").
1577 Provisions are also in for putting the user-level programs off in
1578 their own directory and using the "ipsec" prefix command to invoke
1579 them, but this has not been activated yet.
1580
1581 The manual keying utils' manpages are now installed in the default
1582 location (/usr/local/man/man8) when the utils are installed.
1583
1584 'spi' utils now complains unless the exact key and iv sizes are supplied.
1585
1586 RX packets received and bogus are both now reported.  Note that packets
1587 will be reported as many times as there are esp or ah headers per packet.
1588 This will be fixed with the 2.1.x series kernel work.
1589
1590 Added check for self-describing padding.  It only reports possible bad
1591 packets.  It does not discard them.  Reporting can be shut off with
1592 debug options.
1593
1594 Experimental/Obsolete transforms are obvious in the kernel config and
1595 can be disabled.
1596
1597 /proc/net/ipsec_version has been added which prints out the freeswan
1598 version as well as the cvs id of each transform.
1599
1600 /proc/net/ipsec_spinew has been added which gives a fresh spi each time
1601 it is read.  It increments by two each time due to proc subsystem
1602 operation.  This counter will eventually roll over, so this needs to
1603 be kept in mind for the long term (ie. todo: garbage collection, etc.).
1604
1605 There is now an organized internal mechanism for providing release version 
1606 numbers to Klips and Pluto, so they can display them.  (Note, this is done
1607 by symlinks made by the top-level Makefile at compile time.)
1608
1609 i/r specifier in 'spi' util has been removed.  It was obsolete.  Automated
1610 commands that use spi will need to be updated.
1611
1612 The encr. and auth. keys have been split in the spi utility.
1613
1614 Version information added to all xform attach routines and klips utils.
1615
1616 Module releases all structures allocated at init to prevent memory
1617 leaks from multiple insmod/rmmod operations.
1618
1619 All the /proc/net/ipsec_* pseudo-files now have no limit of output
1620 data.  Previously, *very bad* things happenned if you had more than 3k
1621 text output from ipsec_eroute and ipsec_spi.
1622
1623 All the /proc/net/ipsec_* interfaces have a banner to announce what it is
1624 and blank lines to make it easier to read.
1625
1626 The names of the proc files have been changed to be consistent with the
1627 rest of the files in the directory, in particular, note the change from
1628 '-' to '_': /proc/net/ipsec-* have become /proc/net/ipsec_*.
1629
1630 /proc/net/ipsec_spi lists what algorithm is in use and does NOT list keys.
1631
1632 /proc/net/ipsec_spigrp lists all existing groups of spi's set by spigrp.
1633
1634 /proc/net/ipsec_tncfg lists all existing virtual IPSEC to physical network
1635 connections.
1636
1637 Further debug output modifications so that klips will be much quieter
1638 with debugging off.
1639
1640 Finer control of kernel debug messages from user space with subsystem
1641 switches in klipsdebug.
1642
1643 All keys are zeroed after use in the manual keying utilities and in klips.
1644
1645 All kernel messages referring to IP's are in decimal dotted quad notation
1646 now (they were in hex, or even in network order hex before).
1647
1648 Spigrp with one parameter set will ungroup an existing SA chain.
1649
1650 Deleting one SA will also remove all the rest in the chain.
1651
1652 New in 0.8:
1653
1654 The Klips (nee "IPSEC") and Pluto distributions have been integrated for
1655 the first time, and some duplications cleared out.  We're also now including
1656 the GMP library which Pluto needs.
1657
1658 Both Klips and Pluto have finally been updated to support separate ESP
1659 encryption and authentication keys.  The Pluto code for this hasn't been 
1660 tested extensively yet.
1661
1662 Klips is now capable of operation with devices other than Ethernet
1663 interfaces.
1664
1665 Internal cleanup of Pluto is underway.  This release of Pluto supports
1666 and uses more than one Transformation Payload within the Phase 1 SA
1667 Payload.  One result of this is that it will not interoperate with
1668 older versions of Pluto.
1669
1670 Work is underway on compatibility with later versions of Linux.
1671
1672 Klips's virtual ipsec devices can now be detached from the physical
1673 device, and eroutes and sa's can now be deleted, so the last two commands
1674 have been changed to "eroute" and "spi" from "addrt" and "setsa"
1675 respectively.  "addrt" and "setsa" are obsolete.  Tunnel mode inside
1676 transport mode now works with no delay (How useful this is, is debatable). 
1677 Transmit statistics now work. 
1678
1679 The klips transforms: AH-HMAC-MD5-96, AH-HMAC-SHA1-96, ESP-3DES-MD5-96 and
1680 ESP-DES-HMAC-MD5-96 have been updated from the old specs (RFC192[5-9])
1681 to the new proposed draft standards (as of March 1998).
1682
1683 A second ipsec device has been hard-wired into the kernel module for use
1684 with a second interface.  This is temporary and will change when the
1685 kernel routing is overhauled and updated to 2.1.xx series kernels.
1686
1687 Kernel instrumentation was corrected, extended and added.
1688
1689 /proc/net/ipsec-route (originally /proc/net/ipsec-rt) is now 
1690 /proc/net/ipsec-eroute for consistency with the command name.
1691
1692 A user-space utility has been added (klipsdebug) to dynamically change
1693 klips debug output switches.  This change has removed all but one
1694 config debug comile switch (ie. rerun kernel make {menu,x,}config).
1695
1696 ipsec_md5 and ipsec_sha1 files no longer have nested header files so
1697 they can be used by userspace utilities.
1698
1699 tncfg no longer dumps core when invoked for usage message.
1700
1701 Manpages have been added for the (5) userspace klips utilities.
1702
1703 The klips README has been split and overhauled.
1704
1705 Added a tunnel mode and transport mode example based on current setup.
1706
1707 Added a patch for the Linux netlink code to clean up after a badly behaved
1708 module (not likely to be significant in normal use, but having to reboot
1709 after each test during debugging is impossibly painful).
1710
1711 Added a patch for the Linux kernel config utility help menus to explain
1712 what the IPSEC option is, where to find the standards and where to find
1713 the latest development.
1714
1715 RCSID $Id: CHANGES,v 1.274.2.2 2002/04/12 15:48:47 mcr Exp $