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