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