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