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