cosmetics
[strongswan.git] / NEWS
1 strongswan-4.1.2
2 ----------------
3
4 - Support for an additional Diffie-Hellman exchange when creating/rekeying
5   a CHILD_SA in IKEv2 (PFS). PFS is enabled when the proposal contains a
6   DH group (e.g. "esp=aes128-sha1-modp1536"). Further, DH group negotiation
7   is implemented properly for rekeying.
8
9 - Support for the AES-XCBC-96 MAC algorithm for IPsec SAs when using IKEv2
10   (requires linux >= 2.6.20). It is enabled using e.g. "esp=aes256-aesxcbc".
11
12 - Working IPv4-in-IPv6 and IPv6-in-IPv4 tunnels for linux >= 2.6.21.
13
14 - Added support for EAP modules which do not establish an MSK.
15
16 - The xauth_modules.verify_secret() function now passes the
17   connection name.
18
19
20 strongswan-4.1.1
21 ----------------
22
23 - Server side cookie support. If to may IKE_SAs are in CONNECTING state,
24   cookies are enabled and protect against DoS attacks with faked source
25   addresses. Number of IKE_SAs in CONNECTING state is also limited per
26   peer address to avoid resource exhaustion. IKE_SA_INIT messages are
27   compared to properly detect retransmissions and incoming retransmits are
28   detected even if the IKE_SA is blocked (e.g. doing OCSP fetches).
29
30 - The IKEv2 daemon charon now supports dynamic http- and ldap-based CRL
31   fetching enabled by crlcheckinterval > 0 and caching fetched CRLs
32   enabled by cachecrls=yes.
33
34 - Added the configuration options --enable-nat-transport which enables
35   the potentially insecure NAT traversal for IPsec transport mode and
36   --disable-vendor-id which disables the sending of the strongSwan
37   vendor ID.
38
39 - Fixed a long-standing bug in the pluto IKEv1 daemon which caused
40   a segmentation fault if a malformed payload was detected in the
41   IKE MR2 message and pluto tried to send an encrypted notification
42   message.
43
44 - Added the NATT_IETF_02_N Vendor ID in order to support IKEv1 connections
45   with Windows 2003 Server which uses a wrong VID hash.
46
47
48 strongswan-4.1.0
49 ----------------
50
51 - Support of SHA2_384 hash function for protecting IKEv1
52   negotiations and support of SHA2 signatures in X.509 certificates.
53
54 - Fixed a serious bug in the computation of the SHA2-512 HMAC
55   function. Introduced automatic self-test of all IKEv1 hash
56   and hmac functions during pluto startup. Failure of a self-test
57   currently issues a warning only but does not exit pluto [yet].
58
59 - Support for SHA2-256/384/512 PRF and HMAC functions in IKEv2.
60
61 - Full support of CA information sections. ipsec listcainfos
62   now shows all collected crlDistributionPoints and OCSP 
63   accessLocations.
64
65 - Support of the Online Certificate Status Protocol (OCSP) for IKEv2.
66   This feature requires the HTTP fetching capabilities of the libcurl
67   library which must be enabled by setting the --enable-http configure
68   option.
69
70 - Refactored core of the IKEv2 message processing code, allowing better
71   code reuse and separation.
72
73 - Virtual IP support in IKEv2 using INTERNAL_IP4/6_ADDRESS configuration
74   payload. Additionally, the INTERNAL_IP4/6_DNS attribute is interpreted
75   by the requestor and installed in a resolv.conf file.
76
77 - The IKEv2 daemon charon installs a route for each IPsec policy to use
78   the correct source address even if an application does not explicitly
79   specify it.
80
81 - Integrated the EAP framework into charon which loads pluggable EAP library
82   modules. The ipsec.conf parameter authby=eap initiates EAP authentication
83   on the client side, while the "eap" parameter on the server side defines
84   the EAP method to use for client authentication.
85   A generic client side EAP-Identity module and an EAP-SIM authentication
86   module using a third party card reader implementation are included.
87
88 - Added client side support for cookies.
89
90 - Integrated the fixes done at the IKEv2 interoperability bakeoff, including
91   strict payload order, correct INVALID_KE_PAYLOAD rejection and other minor
92   fixes to enhance interoperability with other implementations.
93
94
95 strongswan-4.0.7
96 ----------------
97
98 - strongSwan now interoperates with the NCP Secure Entry Client,
99   the Shrew Soft VPN Client, and the Cisco VPN client, doing both
100   XAUTH and Mode Config.
101
102 - UNITY attributes are now recognized and UNITY_BANNER is set
103   to a default string.
104
105
106 strongswan-4.0.6
107 ----------------
108
109 - IKEv1: Support for extended authentication (XAUTH) in combination
110   with ISAKMP Main Mode RSA or PSK authentication. Both client and
111   server side were implemented. Handling of user credentials can
112   be done by a run-time loadable XAUTH module. By default user
113   credentials are stored in ipsec.secrets. 
114           
115 - IKEv2: Support for reauthentication when rekeying
116
117 - IKEv2: Support for transport mode
118
119 - fixed a lot of bugs related to byte order
120
121 - various other bugfixes
122
123
124 strongswan-4.0.5
125 ----------------
126
127 - IKEv1: Implementation of ModeConfig push mode via the new connection
128   keyword modeconfig=push allows interoperability with Cisco VPN gateways.
129
130 - IKEv1: The command ipsec statusall now shows "DPD active" for all
131   ISAKMP SAs that are under active Dead Peer Detection control.
132
133 - IKEv2: Charon's logging and debugging framework has been completely rewritten.
134   Instead of logger, special printf() functions are used to directly
135   print objects like hosts (%H) identifications (%D), certificates (%Q),
136   etc. The number of debugging levels have been reduced to:
137
138     0 (audit), 1 (control), 2 (controlmore),  3 (raw), 4 (private)
139
140   The debugging levels can either be specified statically in ipsec.conf as
141
142     config setup
143            charondebug="lib 1, cfg 3, net 2"
144
145   or changed at runtime via stroke as
146
147     ipsec stroke loglevel cfg 2
148
149
150 strongswan-4.0.4
151 ----------------
152
153 - Implemented full support for IPv6-in-IPv6 tunnels.
154
155 - Added configuration options for dead peer detection in IKEv2. dpd_action
156   types "clear", "hold" and "restart" are supported. The dpd_timeout
157   value is not used, as the normal retransmission policy applies to
158   detect dead peers. The dpd_delay parameter enables sending of empty
159   informational message to detect dead peers in case of inactivity.
160
161 - Added support for preshared keys in IKEv2. PSK keys configured in
162   ipsec.secrets are loaded. The authby parameter specifies the authentication
163   method to authentificate ourself, the other peer may use PSK or RSA.
164
165 - Changed retransmission policy to respect the keyingtries parameter.
166
167 - Added private key decryption. PEM keys encrypted with AES-128/192/256
168   or 3DES are supported.
169
170 - Implemented DES/3DES algorithms in libstrongswan. 3DES can be used to
171   encrypt IKE traffic.
172
173 - Implemented SHA-256/384/512 in libstrongswan, allows usage of certificates
174   signed with such a hash algorithm.
175
176 - Added initial support for updown scripts. The actions up-host/client and
177   down-host/client are executed. The leftfirewall=yes parameter
178   uses the default updown script to insert dynamic firewall rules, a custom
179   updown script may be specified with the leftupdown parameter.
180
181
182 strongswan-4.0.3
183 ----------------
184
185 - Added support for the auto=route ipsec.conf parameter and the
186   ipsec route/unroute commands for IKEv2. This allows to set up IKE_SAs and 
187   CHILD_SAs dynamically on demand when traffic is detected by the 
188   kernel.
189
190 - Added support for rekeying IKE_SAs in IKEv2 using the ikelifetime parameter.
191   As specified in IKEv2, no reauthentication is done (unlike in IKEv1), only
192   new keys are generated using perfect forward secrecy. An optional flag
193   which enforces reauthentication will be implemented later.
194
195 - "sha" and "sha1" are now treated as synonyms in the ike= and esp=
196   algorithm configuration statements.
197
198
199 strongswan-4.0.2
200 ----------------
201
202 - Full X.509 certificate trust chain verification has been implemented.
203   End entity certificates can be exchanged via CERT payloads. The current
204   default is leftsendcert=always, since CERTREQ payloads are not supported
205   yet. Optional CRLs must be imported locally into /etc/ipsec.d/crls.
206
207 - Added support for leftprotoport/rightprotoport parameters in IKEv2. IKEv2 
208   would offer more possibilities for traffic selection, but the Linux kernel
209   currently does not support it. That's why we stick with these simple 
210   ipsec.conf rules for now.
211
212 - Added Dead Peer Detection (DPD) which checks liveliness of remote peer if no
213   IKE or ESP traffic is received. DPD is currently hardcoded (dpdaction=clear,
214   dpddelay=60s).
215
216 - Initial NAT traversal support in IKEv2. Charon includes NAT detection
217   notify payloads to detect NAT routers between the peers. It switches
218   to port 4500, uses UDP encapsulated ESP packets, handles peer address
219   changes gracefully and sends keep alive message periodically.
220
221 - Reimplemented IKE_SA state machine for charon, which allows simultaneous 
222   rekeying, more shared code, cleaner design, proper retransmission 
223   and a more extensible code base.
224
225 - The mixed PSK/RSA roadwarrior detection capability introduced by the
226   strongswan-2.7.0 release necessitated the pre-parsing of the IKE proposal
227   payloads by the responder right before any defined IKE Main Mode state had
228   been established. Although any form of bad proposal syntax was being correctly
229   detected by the payload parser, the subsequent error handler didn't check
230   the state pointer before logging current state information, causing an
231   immediate crash of the pluto keying daemon due to a NULL pointer.
232
233
234 strongswan-4.0.1
235 ----------------
236
237 - Added algorithm selection to charon: New default algorithms for 
238   ike=aes128-sha-modp2048, as both daemons support it. The default
239   for IPsec SAs is now esp=aes128-sha,3des-md5. charon handles
240   the ike/esp parameter the same way as pluto. As this syntax does
241   not allow specification of a pseudo random function, the same 
242   algorithm as for integrity is used (currently sha/md5). Supported
243   algorithms for IKE:
244     Encryption: aes128, aes192, aes256
245     Integrity/PRF: md5, sha (using hmac)
246     DH-Groups: modp768, 1024, 1536, 2048, 4096, 8192
247   and for ESP:
248     Encryption: aes128, aes192, aes256, 3des, blowfish128, 
249                 blowfish192, blowfish256
250     Integrity: md5, sha1
251   More IKE encryption algorithms will come after porting libcrypto into
252   libstrongswan. 
253
254 - initial support for rekeying CHILD_SAs using IKEv2. Currently no
255   perfect forward secrecy is used. The rekeying parameters rekey,
256   rekeymargin, rekeyfuzz and keylife from ipsec.conf are now supported
257   when using IKEv2. WARNING: charon currently is unable to handle
258   simultaneous rekeying. To avoid such a situation, use a large
259   rekeyfuzz, or even better, set rekey=no on one peer.
260
261 - support for host2host, net2net, host2net (roadwarrior) tunnels
262   using predefined RSA certificates (see uml scenarios for
263   configuration examples).
264
265 - new build environment featuring autotools. Features such
266   as HTTP, LDAP and smartcard support may be enabled using
267   the ./configure script. Changing install directories 
268   is possible, too. See ./configure --help for more details.
269
270 - better integration of charon with ipsec starter, which allows
271   (almost) transparent operation with both daemons. charon
272   handles ipsec commands up, down, status, statusall, listall,
273   listcerts and allows proper load, reload and delete of connections
274   via ipsec starter.
275
276
277 strongswan-4.0.0
278 ----------------
279
280 - initial support of the IKEv2 protocol. Connections in
281   ipsec.conf designated by keyexchange=ikev2 are negotiated 
282   by the new IKEv2 charon keying daemon whereas those marked
283   by keyexchange=ikev1 or the default keyexchange=ike are
284   handled thy the IKEv1 pluto keying daemon. Currently only
285   a limited subset of functions are available with IKEv2
286   (Default AES encryption, authentication based on locally
287   imported X.509 certificates, unencrypted private RSA keys
288   in PKCS#1 file format, limited functionality of the ipsec
289   status command).
290
291
292 strongswan-2.7.0
293 ----------------
294
295 - the dynamic iptables rules from the _updown_x509 template
296   for KLIPS and the _updown_policy template for NETKEY have
297   been merged into the default _updown script. The existing
298   left|rightfirewall keyword causes the automatic insertion
299   and deletion of ACCEPT rules for tunneled traffic upon
300   the successful setup and teardown of an IPsec SA, respectively.
301   left|rightfirwall can be used with KLIPS under any Linux 2.4
302   kernel or with NETKEY under a Linux kernel version >= 2.6.16
303   in conjuction with iptables >= 1.3.5. For NETKEY under a Linux
304   kernel version < 2.6.16 which does not support IPsec policy
305   matching yet, please continue to use a copy of the _updown_espmark
306   template loaded via the left|rightupdown keyword.
307
308 - a new left|righthostaccess keyword has been introduced which
309   can be used in conjunction with left|rightfirewall and the
310   default _updown script. By default leftfirewall=yes inserts
311   a bi-directional iptables FORWARD rule for a local client network
312   with a netmask different from 255.255.255.255 (single host).
313   This does not allow to access the VPN gateway host via its
314   internal network interface which is part of the client subnet
315   because an iptables INPUT and OUTPUT rule would be required.
316   lefthostaccess=yes will cause this additional ACCEPT rules to
317   be inserted. 
318
319 - mixed PSK|RSA roadwarriors are now supported. The ISAKMP proposal
320   payload is preparsed in order to find out whether the roadwarrior
321   requests PSK or RSA so that a matching connection candidate can
322   be found.
323
324
325 strongswan-2.6.4
326 ----------------
327
328 - the new _updown_policy template allows ipsec policy based
329   iptables firewall rules. Required are iptables version
330   >= 1.3.5 and linux kernel >= 2.6.16. This script obsoletes
331   the _updown_espmark template, so that no INPUT mangle rules 
332   are required any more.
333
334 - added support of DPD restart mode
335
336 - ipsec starter now allows the use of wildcards in include
337   statements as e.g. in "include /etc/my_ipsec/*.conf".
338   Patch courtesy of Matthias Haas.
339
340 - the Netscape OID 'employeeNumber' is now recognized and can be
341   used as a Relative Distinguished Name in certificates.
342
343
344 strongswan-2.6.3
345 ----------------
346
347 - /etc/init.d/ipsec or /etc/rc.d/ipsec is now a copy of the ipsec 
348   command and not of ipsec setup any more.
349
350 - ipsec starter now supports AH authentication in conjunction with
351   ESP encryption. AH authentication is configured in ipsec.conf
352   via the auth=ah parameter.
353   
354 - The command ipsec scencrypt|scdecrypt <args> is now an alias for
355   ipsec whack --scencrypt|scdecrypt <args>.
356
357 - get_sa_info() now determines for the native netkey IPsec stack
358   the exact time of the last use of an active eroute. This information
359   is used by the Dead Peer Detection algorithm and is also displayed by
360   the ipsec status command.
361   
362
363 strongswan-2.6.2
364 ----------------
365
366 - running under the native Linux 2.6 IPsec stack, the function
367   get_sa_info() is called by ipsec auto --status to display the current
368   number of transmitted bytes per IPsec SA.
369
370 - get_sa_info() is also used  by the Dead Peer Detection process to detect
371   recent ESP activity. If ESP traffic was received from the peer within
372   the last dpd_delay interval then no R_Y_THERE notification must be sent.
373
374 - strongSwan now supports the Relative Distinguished Name "unstructuredName"
375   in ID_DER_ASN1_DN identities. The following notations are possible:
376
377     rightid="unstructuredName=John Doe"
378     rightid="UN=John Doe"
379
380 - fixed a long-standing bug which caused PSK-based roadwarrior connections
381   to segfault in the function id.c:same_id() called by keys.c:get_secret()
382   if an FQDN, USER_FQDN, or Key ID was defined, as in the following example.
383
384   conn rw
385        right=%any
386        rightid=@foo.bar
387        authby=secret
388
389 - the ipsec command now supports most ipsec auto commands (e.g. ipsec listall).
390
391 - ipsec starter didn't set host_addr and client.addr ports in whack msg.
392
393 - in order to guarantee backwards-compatibility with the script-based
394   auto function (e.g. auto --replace), the ipsec starter scripts stores
395   the defaultroute information in the temporary file /var/run/ipsec.info.
396
397 - The compile-time option USE_XAUTH_VID enables the sending of the XAUTH
398   Vendor ID which is expected by Cisco PIX 7 boxes that act as IKE Mode Config
399   servers.
400
401 - the ipsec starter now also recognizes the parameters authby=never and
402   type=passthrough|pass|drop|reject.
403
404
405 strongswan-2.6.1
406 ----------------
407
408 - ipsec starter now supports the also parameter which allows
409   a modular structure of the connection definitions. Thus
410   "ipsec start" is now ready to replace "ipsec setup".
411
412
413 strongswan-2.6.0
414 ----------------
415
416 - Mathieu Lafon's popular ipsec starter tool has been added to the
417   strongSwan distribution. Many thanks go to Stephan Scholz from astaro
418   for his integration work. ipsec starter is a C program which is going
419   to replace the various shell and awk starter scripts (setup, _plutoload,
420   _plutostart, _realsetup, _startklips, _confread, and auto). Since
421   ipsec.conf is now parsed only once, the starting of multiple tunnels is
422   accelerated tremedously.
423
424 - Added support of %defaultroute to the ipsec starter. If the IP address
425   changes, a HUP signal to the ipsec starter will automatically 
426   reload pluto's connections.
427
428 - moved most compile time configurations from pluto/Makefile to
429   Makefile.inc by defining the options USE_LIBCURL, USE_LDAP,
430   USE_SMARTCARD, and USE_NAT_TRAVERSAL_TRANSPORT_MODE.
431
432 - removed the ipsec verify and ipsec newhostkey commands
433
434 - fixed some 64-bit issues in formatted print statements
435
436 - The scepclient functionality implementing the Simple Certificate
437   Enrollment Protocol (SCEP) is nearly complete but hasn't been
438   documented yet.
439
440
441 strongswan-2.5.7
442 ----------------
443
444 - CA certicates are now automatically loaded from a smartcard
445   or USB crypto token and appear in the ipsec auto --listcacerts
446   listing.
447
448
449 strongswan-2.5.6
450 ----------------
451
452 - when using "ipsec whack --scencrypt <data>" with  a PKCS#11
453   library that does not support the C_Encrypt() Cryptoki
454   function (e.g. OpenSC), the RSA encryption is done in
455   software using the public key fetched from the smartcard.
456
457 - The scepclient function now allows to define the 
458   validity of a self-signed certificate using the --days,
459   --startdate, and --enddate options. The default validity
460   has been changed from one year to five years.
461
462
463 strongswan-2.5.5
464 ----------------
465
466 - the config setup parameter pkcs11proxy=yes opens pluto's PKCS#11
467   interface to other applications for RSA encryption and decryption
468   via the whack interface. Notation:
469
470   ipsec whack --scencrypt <data>
471              [--inbase  16|hex|64|base64|256|text|ascii]
472              [--outbase 16|hex|64|base64|256|text|ascii]
473              [--keyid <keyid>]
474
475   ipsec whack --scdecrypt <data>
476              [--inbase  16|hex|64|base64|256|text|ascii]
477              [--outbase 16|hex|64|base64|256|text|ascii]
478              [--keyid <keyid>]
479
480   The default setting for inbase and outbase is hex. 
481
482   The new proxy interface can be used for securing symmetric
483   encryption keys required by the cryptoloop or dm-crypt
484   disk encryption schemes, especially in the case when
485   pkcs11keepstate=yes causes pluto to lock the pkcs11 slot
486   permanently.
487
488 - if the file /etc/ipsec.secrets is lacking during the startup of
489   pluto then the root-readable file /etc/ipsec.d/private/myKey.der
490   containing a 2048 bit RSA private key and a matching self-signed
491   certificate stored in the file /etc/ipsec.d/certs/selfCert.der
492   is automatically generated by calling the function
493
494   ipsec scepclient --out pkcs1 --out cert-self
495
496   scepclient was written by Jan Hutter and Martin Willi, students
497   at the University of Applied Sciences in Rapperswil, Switzerland.
498
499
500 strongswan-2.5.4
501 ----------------
502
503 - the current extension of the PKCS#7 framework introduced
504   a parsing error in PKCS#7 wrapped X.509 certificates that are
505   e.g. transmitted by Windows XP when multi-level CAs are used.
506   the parsing syntax has been fixed.
507
508 - added a patch by Gerald Richter which tolerates multiple occurrences
509   of the ipsec0 interface when using KLIPS.
510
511
512 strongswan-2.5.3
513 ----------------
514
515 - with gawk-3.1.4 the word "default2 has become a protected
516   keyword for use in switch statements and cannot be used any
517   more in the strongSwan scripts. This problem has been
518   solved by renaming "default" to "defaults" and "setdefault"
519   in the scripts _confread and auto, respectively.
520
521 - introduced the parameter leftsendcert with the values
522
523   always|yes (the default, always send a cert)
524   ifasked    (send the cert only upon a cert request)
525   never|no   (never send a cert, used for raw RSA keys and
526               self-signed certs) 
527
528 - fixed the initialization of the ESP key length to a default of
529   128 bits in the case that the peer does not send a key length
530    attribute for AES encryption.
531
532 - applied Herbert Xu's uniqueIDs patch
533
534 - applied Herbert Xu's CLOEXEC patches
535
536
537 strongswan-2.5.2
538 ----------------
539
540 - CRLs can now be cached also in the case when the issuer's
541   certificate does not contain a subjectKeyIdentifier field.
542   In that case the subjectKeyIdentifier is computed by pluto as the
543   160 bit SHA-1 hash of the issuer's public key in compliance
544   with section 4.2.1.2 of RFC 3280.
545
546 - Fixed a bug introduced by strongswan-2.5.1 which eliminated
547   not only multiple Quick Modes of a given connection but also
548   multiple connections between two security gateways.
549
550
551 strongswan-2.5.1
552 ----------------
553
554 - Under the native IPsec of the Linux 2.6 kernel, a %trap eroute
555   installed either by setting auto=route in ipsec.conf or by
556   a connection put into hold, generates an XFRM_AQUIRE event
557   for each packet that wants to use the not-yet exisiting
558   tunnel. Up to now each XFRM_AQUIRE event led to an entry in
559   the Quick Mode queue, causing multiple IPsec SA to be
560   established in rapid succession. Starting with strongswan-2.5.1
561   only a single IPsec SA is established per host-pair connection.
562
563 - Right after loading the PKCS#11 module, all smartcard slots are
564   searched for certificates. The result can be viewed using
565   the command
566
567     ipsec auto --listcards
568
569   The certificate objects found in the slots are numbered
570   starting with #1, #2, etc. This position number can be used to address
571   certificates (leftcert=%smartcard) and keys (: PIN %smartcard)
572   in ipsec.conf and ipsec.secrets, respectively:
573
574     %smartcard      (selects object #1)
575     %smartcard#1    (selects object #1)
576     %smartcard#3    (selects object #3)
577
578   As an alternative the existing retrieval scheme can be used:
579
580     %smartcard:45   (selects object with id=45)
581     %smartcard0     (selects first object in slot 0)
582     %smartcard4:45  (selects object in slot 4 with id=45)
583
584 - Depending on the settings of CKA_SIGN and CKA_DECRYPT
585   private key flags either C_Sign() or C_Decrypt() is used
586   to generate a signature.
587
588 - The output buffer length parameter siglen in C_Sign()
589   is now initialized to the actual size of the output
590   buffer prior to the function call. This fixes the
591   CKR_BUFFER_TOO_SMALL error that could occur when using
592   the OpenSC PKCS#11 module.
593
594 - Changed the initialization of the PKCS#11 CK_MECHANISM in
595   C_SignInit() to mech  = { CKM_RSA_PKCS, NULL_PTR, 0 }.
596
597 - Refactored the RSA public/private key code and transferred it
598   from keys.c to the new pkcs1.c file as a preparatory step
599   towards the release of the SCEP client.
600
601
602 strongswan-2.5.0
603 ----------------
604
605 - The loading of a PKCS#11 smartcard library module during
606   runtime does not require OpenSC library functions any more
607   because the corresponding code has been integrated into
608   smartcard.c. Also the RSAREF pkcs11 header files have been
609   included in a newly created pluto/rsaref directory so that
610   no external include path has to be defined any longer.
611
612 - A long-awaited feature has been implemented at last:
613   The local caching of CRLs fetched via HTTP or LDAP, activated
614   by the parameter cachecrls=yes in the config setup section
615   of ipsec.conf. The dynamically fetched CRLs are stored under
616   a unique file name containing the issuer's subjectKeyID
617   in /etc/ipsec.d/crls.
618   
619 - Applied a one-line patch courtesy of Michael Richardson
620   from the Openswan project which fixes the kernel-oops
621   in KLIPS when an snmp daemon is running on the same box.
622
623
624 strongswan-2.4.4
625 ----------------
626
627 - Eliminated null length CRL distribution point strings.
628
629 - Fixed a trust path evaluation bug introduced with 2.4.3
630
631
632 strongswan-2.4.3
633 ----------------
634
635 - Improved the joint OCSP / CRL revocation policy.
636   OCSP responses have precedence over CRL entries.
637
638 - Introduced support of CRLv2 reason codes.
639
640 - Fixed a bug with key-pad equipped readers which caused
641   pluto to prompt for the pin via the console when the first
642   occasion to enter the pin via the key-pad was missed.
643
644 - When pluto is built with LDAP_V3 enabled, the library
645   liblber required by newer versions of openldap is now
646   included.
647
648
649 strongswan-2.4.2
650 ----------------
651
652 - Added the _updown_espmark template which requires all
653   incoming ESP traffic to be marked with a default mark
654   value of 50.
655   
656 - Introduced the pkcs11keepstate parameter in the config setup
657   section of ipsec.conf. With pkcs11keepstate=yes the PKCS#11
658   session and login states are kept as long as possible during 
659   the lifetime of pluto. This means that a PIN entry via a key
660   pad has to be done only once.
661
662 - Introduced the pkcs11module parameter in the config setup
663   section of ipsec.conf which specifies the PKCS#11 module
664   to be used with smart cards. Example:
665   
666     pkcs11module=/usr/lib/pkcs11/opensc-pkcs11.lo
667   
668 - Added support of smartcard readers equipped with a PIN pad.
669
670 - Added patch by Jay Pfeifer which detects when netkey
671   modules have been statically built into the Linux 2.6 kernel.
672
673 - Added two patches by Herbert Xu. The first uses ip xfrm
674   instead of setkey to flush the IPsec policy database. The
675   second sets the optional flag in inbound IPComp SAs only.
676     
677 - Applied Ulrich Weber's patch which fixes an interoperability
678   problem between native IPsec and KLIPS systems caused by
679   setting the replay window to 32 instead of 0 for ipcomp.
680
681
682 strongswan-2.4.1
683 ----------------
684
685 - Fixed a bug which caused an unwanted Mode Config request
686   to be initiated in the case where "right" was used to denote
687   the local side in ipsec.conf and "left" the remote side,
688   contrary to the recommendation that "right" be remote and
689   "left" be"local".
690
691
692 strongswan-2.4.0a
693 -----------------
694
695 - updated Vendor ID to strongSwan-2.4.0
696
697 - updated copyright statement to include David Buechi and
698   Michael Meier
699   
700   
701 strongswan-2.4.0
702 ----------------
703
704 - strongSwan now communicates with attached smartcards and
705   USB crypto tokens via the standardized PKCS #11 interface.
706   By default the OpenSC library from www.opensc.org is used
707   but any other PKCS#11 library could be dynamically linked.
708   strongSwan's PKCS#11 API was implemented by David Buechi
709   and Michael Meier, both graduates of the Zurich University
710   of Applied Sciences in Winterthur, Switzerland.
711
712 - When a %trap eroute is triggered by an outgoing IP packet
713   then the native IPsec stack of the Linux 2.6 kernel [often/
714   always?] returns an XFRM_ACQUIRE message with an undefined
715   protocol family field and the connection setup fails.
716   As a workaround IPv4 (AF_INET) is now assumed.
717   
718 - the results of the UML test scenarios are now enhanced 
719   with block diagrams of the virtual network topology used
720   in a particular test. 
721
722
723 strongswan-2.3.2
724 ----------------
725
726 - fixed IV used to decrypt informational messages.
727   This bug was introduced with Mode Config functionality.
728  
729 - fixed NCP Vendor ID.
730
731 - undid one of Ulrich Weber's maximum udp size patches
732   because it caused a segmentation fault with NAT-ed
733   Delete SA messages.
734   
735 - added UML scenarios wildcards and attr-cert which
736   demonstrate the implementation of IPsec policies based
737   on wildcard parameters contained in Distinguished Names and
738   on X.509 attribute certificates, respectively.
739
740
741 strongswan-2.3.1
742 ----------------
743
744 - Added basic Mode Config functionality
745
746 - Added Mathieu Lafon's patch which upgrades the status of
747   the NAT-Traversal implementation to RFC 3947.
748  
749 - The _startklips script now also loads the xfrm4_tunnel
750   module.
751   
752 - Added Ulrich Weber's netlink replay window size and
753   maximum udp size patches.
754
755 - UML testing now uses the Linux 2.6.10 UML kernel by default.
756    
757
758 strongswan-2.3.0
759 ----------------
760
761 - Eric Marchionni and Patrik Rayo, both recent graduates from
762   the Zuercher Hochschule Winterthur in Switzerland, created a
763   User-Mode-Linux test setup for strongSwan. For more details
764   please read the INSTALL and README documents in the testing
765   subdirectory.
766
767 - Full support of group attributes based on X.509 attribute
768   certificates. Attribute certificates can be generated 
769   using the openac facility. For more details see
770    
771   man ipsec_openac.
772  
773   The group attributes can be used in connection definitions
774   in order to give IPsec access to specific user groups.
775   This is done with the new parameter left|rightgroups as in
776   
777   rightgroups="Research, Sales"
778
779   giving access to users possessing the group attributes
780   Research or Sales, only.
781
782 - In Quick Mode clients with subnet mask /32 are now
783   coded as IP_V4_ADDRESS or IP_V6_ADDRESS. This should 
784   fix rekeying problems with the SafeNet/SoftRemote and NCP
785   Secure Entry Clients.
786
787 - Changed the defaults of the ikelifetime and keylife parameters
788   to 3h and 1h, respectively. The maximum allowable values are
789   now both set to 24 h.
790
791 - Suppressed notification wars between two IPsec peers that
792   could e.g. be triggered by incorrect ISAKMP encryption.
793
794 - Public RSA keys can now have identical IDs if either the
795   issuing CA or the serial number is different. The serial
796   number of a certificate is now shown by the command
797   
798   ipsec auto --listpubkeys
799
800
801 strongswan-2.2.2
802 ----------------
803
804 - Added Tuomo Soini's sourceip feature which allows a strongSwan
805   roadwarrior to use a fixed Virtual IP (see README section 2.6)
806   and reduces the well-known four tunnel case on VPN gateways to
807   a single tunnel definition (see README section 2.4).
808
809 - Fixed a bug occuring with NAT-Traversal enabled when the responder
810   suddenly turns initiator and the initiator cannot find a matching
811   connection because of the floated IKE port 4500.
812   
813 - Removed misleading ipsec verify command from barf.
814
815 - Running under the native IP stack, ipsec --version now shows
816   the Linux kernel version (courtesy to the Openswan project).
817
818
819 strongswan-2.2.1
820 ----------------
821
822 - Introduced the ipsec auto --listalgs monitoring command which lists
823   all currently registered IKE and ESP algorithms.
824
825 - Fixed a bug in the ESP algorithm selection occuring when the strict flag
826   is set and the first proposed transform does not match.
827   
828 - Fixed another deadlock in the use of the lock_certs_and_keys() mutex,
829   occuring when a smartcard is present.
830
831 - Prevented that a superseded Phase1 state can trigger a DPD_TIMEOUT event.
832   
833 - Fixed the printing of the notification names (null)
834
835 - Applied another of Herbert Xu's Netlink patches.
836
837
838 strongswan-2.2.0
839 ----------------
840
841 - Support of Dead Peer Detection. The connection parameter
842
843     dpdaction=clear|hold
844      
845   activates DPD for the given connection.
846
847 - The default Opportunistic Encryption (OE) policy groups are not
848   automatically included anymore. Those wishing to activate OE can include
849   the policy group with the following statement in ipsec.conf:
850   
851     include /etc/ipsec.d/examples/oe.conf
852   
853   The default for [right|left]rsasigkey is now set to %cert.
854
855 - strongSwan now has a Vendor ID of its own which can be activated
856   using the compile option VENDORID
857
858 - Applied Herbert Xu's patch which sets the compression algorithm correctly.
859
860 - Applied Herbert Xu's patch fixing an ESPINUDP problem
861
862 - Applied Herbert Xu's patch setting source/destination port numbers.
863
864 - Reapplied one of Herbert Xu's NAT-Traversal patches which got
865   lost during the migration from SuperFreeS/WAN.
866   
867 - Fixed a deadlock in the use of the lock_certs_and_keys() mutex.
868
869 - Fixed the unsharing of alg parameters when instantiating group
870   connection.
871   
872
873 strongswan-2.1.5
874 ----------------
875
876 - Thomas Walpuski made me aware of a potential DoS attack via
877   a PKCS#7-wrapped certificate bundle which could overwrite valid CA
878   certificates in Pluto's authority certificate store. This vulnerability
879   was fixed by establishing trust in CA candidate certificates up to a
880   trusted root CA prior to insertion into Pluto's chained list.
881
882 - replaced the --assign option by the -v option in the auto awk script
883   in order to make it run with mawk under debian/woody.
884
885
886 strongswan-2.1.4
887 ----------------
888
889 - Split of the status information between ipsec auto  --status (concise)
890   and ipsec auto --statusall (verbose). Both commands can be used with
891   an optional connection selector:
892
893     ipsec auto --status[all] <connection_name>
894
895 - Added the description of X.509 related features to the ipsec_auto(8)
896   man page.
897
898 - Hardened the ASN.1 parser in debug mode, especially the printing
899   of malformed distinguished names.
900
901 - The size of an RSA public key received in a certificate is now restricted to
902
903     512 bits <= modulus length <= 8192 bits.
904
905 - Fixed the debug mode enumeration.
906
907
908 strongswan-2.1.3
909 ----------------
910
911 - Fixed another PKCS#7 vulnerability which could lead to an
912   endless loop while following the X.509 trust chain.
913   
914
915 strongswan-2.1.2
916 ----------------
917
918 - Fixed the PKCS#7 vulnerability discovered by Thomas Walpuski
919   that accepted end certificates having identical issuer and subject
920   distinguished names in a multi-tier X.509 trust chain.
921   
922
923 strongswan-2.1.1
924 ----------------
925
926 - Removed all remaining references to ipsec_netlink.h in KLIPS.
927
928
929 strongswan-2.1.0
930 ----------------
931
932 - The new "ca" section allows to define the following parameters:
933
934   ca kool
935      cacert=koolCA.pem                   # cacert of kool CA
936      ocspuri=http://ocsp.kool.net:8001   # ocsp server
937      ldapserver=ldap.kool.net            # default ldap server
938      crluri=http://www.kool.net/kool.crl # crl distribution point
939      crluri2="ldap:///O=Kool, C= .."     # crl distribution point #2
940      auto=add                            # add, ignore
941      
942   The ca definitions can be monitored via the command
943   
944      ipsec auto --listcainfos
945
946 - Fixed cosmetic corruption of /proc filesystem by integrating
947   D. Hugh Redelmeier's freeswan-2.06 kernel fixes.
948
949
950 strongswan-2.0.2
951 ----------------
952
953 - Added support for the 818043 NAT-Traversal update of Microsoft's
954   Windows 2000/XP IPsec client which sends an ID_FQDN during Quick Mode.
955   
956 - A symbolic link to libcrypto is now added in the kernel sources 
957   during kernel compilation
958   
959 - Fixed a couple of 64 bit issues (mostly casts to int).
960   Thanks to Ken Bantoft who checked my sources on a 64 bit platform.
961
962 - Replaced s[n]printf() statements in the kernel by ipsec_snprintf().
963   Credits go to D. Hugh Redelmeier, Michael Richardson, and Sam Sgro
964   of the FreeS/WAN team who solved this problem with the 2.4.25 kernel.
965
966
967 strongswan-2.0.1
968 ----------------
969
970 - an empty ASN.1 SEQUENCE OF or SET OF object (e.g. a subjectAltName
971   certificate extension which contains no generalName item)  can cause
972   a pluto crash. This bug has been fixed. Additionally the ASN.1 parser has
973   been hardened to make it more robust against malformed ASN.1 objects.
974
975 - applied Herbert Xu's NAT-T patches which fixes NAT-T under the native
976   Linux 2.6 IPsec stack.
977   
978   
979 strongswan-2.0.0
980 ----------------
981
982 - based on freeswan-2.04, x509-1.5.3, nat-0.6c, alg-0.8.1rc12