removed old leak detective
[strongswan.git] / NEWS
1 strongswan-4.2.14
2 -----------------
3
4 - The new server-side EAP RADIUS plugin (--enable-eap-radius)
5   relays EAP messages to and from a RADIUS server. Succesfully
6   tested with with a freeradius server using EAP-MD5 and EAP-SIM.
7
8 - A vulnerability in the Dead Peer Detection (RFC 3706) code was found by
9   Gerd v. Egidy <gerd.von.egidy@intra2net.com> of Intra2net AG affecting
10   all Openswan and strongSwan releases. A malicious (or expired ISAKMP)
11   R_U_THERE or R_U_THERE_ACK Dead Peer Detection packet can cause the
12   pluto IKE daemon to crash and restart. No authentication or encryption
13   is required to trigger this bug. One spoofed UDP packet can cause the
14   pluto IKE daemon to restart and be unresponsive for a few seconds while
15   restarting. This DPD null state vulnerability has been officially
16   registered as CVE-2009-0790 and is fixed by this release.
17
18 - ASN.1 to time_t conversion caused a time wrap-around for
19   dates after Jan 18 03:14:07 UTC 2038 on 32-bit platforms.
20   As a workaround such dates are set to the maximum representable
21   time, i.e. Jan 19 03:14:07 UTC 2038.
22
23 - Distinguished Names containing wildcards (*) are not sent in the
24   IDr payload anymore. 
25
26
27 strongswan-4.2.13
28 -----------------
29
30 - Fixed a use-after-free bug in the DPD timeout section of the
31   IKEv1 pluto daemon which sporadically caused a segfault.
32
33 - Fixed a crash in the IKEv2 charon daemon occuring with
34   mixed RAM-based and SQL-based virtual IP address pools. 
35
36 - Fixed ASN.1 parsing of algorithmIdentifier objects where the
37   parameters field is optional.
38
39 - Ported nm plugin to NetworkManager 7.1.
40
41
42 strongswan-4.2.12
43 -----------------
44
45 - Support of the EAP-MSCHAPv2 protocol enabled by the option
46   --enable-eap-mschapv2. Requires the MD4 hash algorithm enabled
47   either by --enable-md4 or --enable-openssl.
48
49 - Assignment of up to two DNS and up to two WINS servers to peers via
50   the IKEv2 Configuration Payload (CP). The IPv4 or IPv6 nameserver 
51   addresses are defined in strongswan.conf.
52
53 - The strongSwan applet for the Gnome NetworkManager is now built and
54   distributed as a separate tarball under the name NetworkManager-strongswan.
55
56  
57 strongswan-4.2.11
58 -----------------
59
60 - Fixed ESP NULL encryption broken by the refactoring of keymat.c.
61   Also introduced proper initialization and disposal of keying material.
62
63 - Fixed the missing listing of connection definitions in ipsec statusall
64   broken by an unfortunate local variable overload.
65
66
67 strongswan-4.2.10
68 -----------------
69
70 - Several performance improvements to handle thousands of tunnels with almost
71   linear upscaling. All relevant data structures have been replaced by faster
72   counterparts with better lookup times.
73
74 - Better parallelization to run charon on multiple cores. Due to improved
75   ressource locking and other optimizations the daemon can take full
76   advantage of 16 or even more cores.
77
78 - The load-tester plugin can use a NULL Diffie-Hellman group and simulate
79   unique identities and certificates by signing peer certificates using a CA
80   on the fly.
81
82 - The redesigned stroke in-memory IP pool handles leases. The "ipsec leases"
83   command queries assigned leases.
84
85 - Added support for smartcards in charon by using the ENGINE API provided by
86   OpenSSL, based on patches by Michael Ro├čberg.
87
88 - The Padlock plugin supports the hardware RNG found on VIA CPUs to provide a
89   reliable source of randomness.
90
91 strongswan-4.2.9
92 ----------------
93
94 - Flexible configuration of logging subsystem allowing to log to multiple
95   syslog facilities or to files using fine-grained log levels for each target.
96
97 - Load testing plugin to do stress testing of the IKEv2 daemon against self
98   or another host. Found and fixed issues during tests in the multi-threaded
99   use of the OpenSSL plugin.
100
101 - Added profiling code to synchronization primitives to find bottlenecks if
102   running on multiple cores. Found and fixed an issue where parts of the
103   Diffie-Hellman calculation acquired an exclusive lock. This greatly improves
104   parallelization to multiple cores.
105
106 - updown script invocation has been separated into a plugin of its own to
107   further slim down the daemon core.
108
109 - Separated IKE_SA/CHILD_SA key derivation process into a closed system,
110   allowing future implementations to use a secured environment in e.g. kernel
111   memory or hardware.
112
113 - The kernel interface of charon has been modularized. XFRM NETLINK (default)
114   and PFKEY (--enable-kernel-pfkey) interface plugins for the native IPsec
115   stack of the Linux 2.6 kernel as well as a PFKEY interface for the KLIPS
116   IPsec stack (--enable-kernel-klips) are provided.
117
118 - Basic Mobile IPv6 support has been introduced, securing Binding Update
119   messages as well as tunneled traffic between Mobile Node and Home Agent.
120   The installpolicy=no option allows peaceful cooperation with a dominant
121   mip6d daemon and the new type=transport_proxy implements the special MIPv6
122   IPsec transport proxy mode where the IKEv2 daemon uses the Care-of-Address
123   but the IPsec SA is set up for the Home Adress.
124
125 - Implemented migration of Mobile IPv6 connections using the KMADDRESS
126   field contained in XFRM_MSG_MIGRATE messages sent by the mip6d daemon
127   via the Linux 2.6.28 (or appropriately patched) kernel.
128
129
130 strongswan-4.2.8
131 ----------------
132
133 - IKEv2 charon daemon supports authentication based on raw public keys
134   stored in the SQL database backend. The ipsec listpubkeys command
135   lists the available raw public keys via the stroke interface.
136
137 - Several MOBIKE improvements: Detect changes in NAT mappings in DPD exchanges,
138   handle events if kernel detects NAT mapping changes in UDP-encapsulated
139   ESP packets (requires kernel patch), reuse old addesses in MOBIKE updates as
140   long as possible and other fixes.
141
142 - Fixed a bug in addr_in_subnet() which caused insertion of wrong source
143   routes for destination subnets having netwmasks not being a multiple of 8 bits.
144   Thanks go to Wolfgang Steudel, TU Ilmenau for reporting this bug.
145
146
147 strongswan-4.2.7
148 ----------------
149
150 - Fixed a Denial-of-Service vulnerability where an IKE_SA_INIT message with
151   a KE payload containing zeroes only can cause a crash of the IKEv2 charon
152   daemon due to a NULL pointer returned by the mpz_export() function of the
153   GNU Multiprecision Library (GMP). Thanks go to Mu Dynamics Research Labs
154   for making us aware of this problem. 
155
156 - The new agent plugin provides a private key implementation on top of an 
157   ssh-agent.
158
159 - The NetworkManager plugin has been extended to support certificate client
160   authentication using RSA keys loaded from a file or using ssh-agent.
161
162 - Daemon capability dropping has been ported to libcap and must be enabled
163   explicitly --with-capabilities=libcap. Future version will support the
164   newer libcap2 library.
165
166 - ipsec listalgs lists the IKEv2 cryptografic algorithms registered with the
167   charon keying daemon.
168
169
170 strongswan-4.2.6
171 ----------------
172
173 - A NetworkManager plugin allows GUI-based configuration of road-warrior
174   clients in a simple way. It features X509 based gateway authentication
175   and EAP client authentication, tunnel setup/teardown and storing passwords
176   in the Gnome Keyring.
177
178 - A new EAP-GTC plugin implements draft-sheffer-ikev2-gtc-00.txt and allows
179   username/password authentication against any PAM service on the gateway.
180   The new EAP method interacts nicely with the NetworkManager plugin and allows 
181   client authentication against e.g. LDAP.
182
183 - Improved support for the EAP-Identity method. The new ipsec.conf eap_identity
184   parameter defines an additional identity to pass to the server in EAP
185   authentication.
186
187 - The "ipsec statusall" command now lists CA restrictions, EAP
188   authentication types and EAP identities.
189
190 - Fixed two multithreading deadlocks occurring when starting up
191   several hundred tunnels concurrently.
192
193 - Fixed the --enable-integrity-test configure option which
194   computes a SHA-1 checksum over the libstrongswan library.
195
196
197 strongswan-4.2.5
198 ----------------
199
200 - Consistent logging of IKE and CHILD SAs at the audit (AUD) level. 
201
202 - Improved the performance of the SQL-based virtual IP address pool
203   by introducing an additional addresses table. The leases table
204   storing only history information has become optional and can be
205   disabled by setting charon.plugins.sql.lease_history = no in
206   strongswan.conf.
207
208 - The XFRM_STATE_AF_UNSPEC flag added to xfrm.h allows IPv4-over-IPv6
209   and IPv6-over-IPv4 tunnels with the 2.6.26 and later Linux kernels.
210
211 - management of different virtual IP pools for different
212   network interfaces have become possible.
213
214 - fixed a bug which prevented the assignment of more than 256 
215   virtual IP addresses from a pool managed by an sql database.
216
217 - fixed a bug which did not delete own IPCOMP SAs in the kernel.
218
219  
220 strongswan-4.2.4
221 ----------------
222
223 - Added statistics functions to ipsec pool --status and ipsec pool --leases
224   and input validation checks to various ipsec pool commands.
225
226 - ipsec statusall now lists all loaded charon plugins and displays
227   the negotiated IKEv2 cipher suite proposals.
228
229 - The openssl plugin supports the elliptic curve Diffie-Hellman groups
230   19, 20, 21, 25, and 26.
231
232 - The openssl plugin supports ECDSA authentication using elliptic curve
233   X.509 certificates.
234
235 - Fixed a bug in stroke which caused multiple charon threads to close
236   the file descriptors during packet transfers over the stroke socket.
237  
238 - ESP sequence numbers are now migrated in IPsec SA updates handled by
239   MOBIKE. Works only with Linux kernels >= 2.6.17.
240
241
242 strongswan-4.2.3
243 ----------------
244
245 - Fixed the strongswan.conf path configuration problem that occurred when 
246   --sysconfig was not set explicitly in ./configure.
247
248 - Fixed a number of minor bugs that where discovered during the 4th
249   IKEv2 interoperability workshop in San Antonio, TX.
250
251
252 strongswan-4.2.2
253 ----------------
254
255 - Plugins for libstrongswan and charon can optionally be loaded according
256   to a configuration in strongswan.conf. Most components provide a
257   "load = " option followed by a space separated list of plugins to load.
258   This allows e.g. the fallback from a hardware crypto accelerator to
259   to software-based crypto plugins.
260
261 - Charons SQL plugin has been extended by a virtual IP address pool.
262   Configurations with a rightsourceip=%poolname setting query a SQLite or
263   MySQL database for leases. The "ipsec pool" command helps in administrating
264   the pool database. See ipsec pool --help for the available options
265
266 - The Authenticated Encryption Algorithms AES-CCM-8/12/16 and AES-GCM-8/12/16
267   for ESP are now supported starting with the Linux 2.6.25 kernel. The 
268   syntax is e.g. esp=aes128ccm12 or esp=aes256gcm16.
269
270
271 strongswan-4.2.1
272 ----------------
273
274 - Support for "Hash and URL" encoded certificate payloads has been implemented
275   in the IKEv2 daemon charon. Using the "certuribase" option of a CA section
276   allows to assign a base URL to all certificates issued by the specified CA.
277   The final URL is then built by concatenating that base and the hex encoded
278   SHA1 hash of the DER encoded certificate. Note that this feature is disabled
279   by default and must be enabled using the option "charon.hash_and_url".
280
281 - The IKEv2 daemon charon now supports the "uniqueids" option to close multiple
282   IKE_SAs with the same peer. The option value "keep" prefers existing
283   connection setups over new ones, where the value "replace" replaces existing
284   connections.
285   
286 - The crypto factory in libstrongswan additionaly supports random number 
287   generators, plugins may provide other sources of randomness. The default
288   plugin reads raw random data from /dev/(u)random.
289
290 - Extended the credential framework by a caching option to allow plugins 
291   persistent caching of fetched credentials. The "cachecrl" option has been
292   re-implemented.
293
294 - The new trustchain verification introduced in 4.2.0 has been parallelized.
295   Threads fetching CRL or OCSP information no longer block other threads.
296
297 - A new IKEv2 configuration attribute framework has been introduced allowing
298   plugins to provide virtual IP addresses, and in the future, other
299   configuration attribute services (e.g. DNS/WINS servers).
300
301 - The stroke plugin has been extended to provide virtual IP addresses from
302   a pool defined in ipsec.conf. The "rightsourceip" parameter now accepts
303   address pools in CIDR notation (e.g. 10.1.1.0/24). The parameter also accepts
304   the value "%poolname", where "poolname" identifies a pool provided by a
305   separate plugin.
306
307 - Fixed compilation on uClibc and a couple of other minor bugs.
308
309 - Set DPD defaults in ipsec starter to dpd_delay=30s and dpd_timeout=150s.
310
311 - The IKEv1 pluto daemon now supports the ESP encryption algorithm CAMELLIA
312   with key lengths of 128, 192, and 256 bits, as well as the authentication
313   algorithm AES_XCBC_MAC. Configuration example: esp=camellia192-aesxcbc.
314
315
316 strongswan-4.2.0
317 ----------------
318
319 - libstrongswan has been modularized to attach crypto algorithms,
320   credential implementations (keys, certificates) and fetchers dynamically
321   through plugins. Existing code has been ported to plugins:
322     - RSA/Diffie-Hellman implementation using the GNU Multi Precision library
323     - X509 certificate system supporting CRLs, OCSP and attribute certificates
324     - Multiple plugins providing crypto algorithms in software
325     - CURL and OpenLDAP fetcher
326
327 - libstrongswan gained a relational database API which uses pluggable database
328   providers. Plugins for MySQL and SQLite are available.
329
330 - The IKEv2 keying daemon charon is more extensible. Generic plugins may provide
331   connection configuration, credentials and EAP methods or control the daemon.
332   Existing code has been ported to plugins:
333     - EAP-AKA, EAP-SIM, EAP-MD5 and EAP-Identity
334     - stroke configuration, credential and control (compatible to pluto)
335     - XML bases management protocol to control and query the daemon
336   The following new plugins are available:
337     - An experimental SQL configuration, credential and logging plugin on
338       top of either MySQL or SQLite
339     - A unit testing plugin to run tests at daemon startup
340
341 - The authentication and credential framework in charon has been heavily
342   refactored to support modular credential providers, proper
343   CERTREQ/CERT payload exchanges and extensible authorization rules.
344
345 - The framework of strongSwan Manager has envolved to the web application 
346   framework libfast (FastCGI Application Server w/ Templates) and is usable
347   by other applications.
348         
349
350 strongswan-4.1.11
351 -----------------
352
353 - IKE rekeying in NAT situations did not inherit the NAT conditions
354   to the rekeyed IKE_SA so that the UDP encapsulation was lost with
355   the next CHILD_SA rekeying.
356
357 - Wrong type definition of the next_payload variable in id_payload.c
358   caused an INVALID_SYNTAX error on PowerPC platforms. 
359
360 - Implemented IKEv2 EAP-SIM server and client test modules that use
361   triplets stored in a file. For details on the configuration see
362   the scenario 'ikev2/rw-eap-sim-rsa'.
363
364
365 strongswan-4.1.10
366 -----------------
367
368 - Fixed error in the ordering of the certinfo_t records in the ocsp cache that
369   caused multiple entries of the same serial number to be created. 
370
371 - Implementation of a simple EAP-MD5 module which provides CHAP
372   authentication. This may be interesting in conjunction with certificate
373   based server authentication, as weak passwords can't be brute forced
374   (in contradiction to traditional IKEv2 PSK).
375
376 - A complete software based implementation of EAP-AKA, using algorithms
377   specified in 3GPP2 (S.S0055). This implementation does not use an USIM,
378   but reads the secrets from ipsec.secrets. Make sure to read eap_aka.h
379   before using it.
380
381 - Support for vendor specific EAP methods using Expanded EAP types. The
382   interface to EAP modules has been slightly changed, so make sure to 
383   check the changes if you're already rolling your own modules.
384
385
386 strongswan-4.1.9
387 ----------------
388
389 - The default _updown script now dynamically inserts and removes ip6tables
390   firewall rules if leftfirewall=yes is set in IPv6 connections. New IPv6
391   net-net and roadwarrior (PSK/RSA) scenarios for both IKEv1 and IKEV2 were
392   added.
393
394 - Implemented RFC4478 repeated authentication to force EAP/Virtual-IP clients
395   to reestablish an IKE_SA within a given timeframe.
396
397 - strongSwan Manager supports configuration listing, initiation and termination
398   of IKE and CHILD_SAs.
399
400 - Fixes and improvements to multithreading code.
401
402 - IKEv2 plugins have been renamed to libcharon-* to avoid naming conflicts.
403   Make sure to remove the old plugins in $libexecdir/ipsec, otherwise they get 
404   loaded twice.
405
406
407 strongswan-4.1.8
408 ----------------
409
410 - Removed recursive pthread mutexes since uClibc doesn't support them.
411
412
413 strongswan-4.1.7
414 ----------------
415
416 - In NAT traversal situations and multiple queued Quick Modes,
417   those pending connections inserted by auto=start after the
418   port floating from 500 to 4500 were erronously deleted.
419
420 - Added a "forceencaps" connection parameter to enforce UDP encapsulation
421   to surmount restrictive firewalls. NAT detection payloads are faked to
422   simulate a NAT situation and trick the other peer into NAT mode (IKEv2 only).
423
424 - Preview of strongSwan Manager, a web based configuration and monitoring
425   application. It uses a new XML control interface to query the IKEv2 daemon
426   (see http://trac.strongswan.org/wiki/Manager).
427
428 - Experimental SQLite configuration backend which will provide the configuration
429   interface for strongSwan Manager in future releases.
430
431 - Further improvements to MOBIKE support.
432
433
434 strongswan-4.1.6
435 ----------------
436
437 - Since some third party IKEv2 implementations run into
438   problems with strongSwan announcing MOBIKE capability per
439   default, MOBIKE can be disabled on a per-connection-basis
440   using the mobike=no option. Whereas mobike=no disables the
441   sending of the MOBIKE_SUPPORTED notification and the floating
442   to UDP port 4500 with the IKE_AUTH request even if no NAT
443   situation has been detected, strongSwan will still support
444   MOBIKE acting as a responder.
445
446 - the default ipsec routing table plus its corresponding priority
447   used for inserting source routes has been changed from 100 to 220.
448   It can be configured using the --with-ipsec-routing-table and
449   --with-ipsec-routing-table-prio options. 
450   
451 - the --enable-integrity-test configure option tests the
452   integrity of the libstrongswan crypto code during the charon
453   startup.
454   
455 - the --disable-xauth-vid configure option disables the sending
456   of the XAUTH vendor ID. This can be used as a workaround when
457   interoperating with some Windows VPN clients that get into
458   trouble upon reception of an XAUTH VID without eXtended
459   AUTHentication having been configured.
460   
461 - ipsec stroke now supports the rereadsecrets, rereadaacerts,
462   rereadacerts, and listacerts options.
463
464
465 strongswan-4.1.5
466 ----------------
467
468 - If a DNS lookup failure occurs when resolving right=%<FQDN>
469   or right=<FQDN> combined with rightallowany=yes then the
470   connection is not updated by ipsec starter thus preventing
471   the disruption of an active IPsec connection. Only if the DNS
472   lookup successfully returns with a changed IP address the
473   corresponding connection definition is updated.
474
475 - Routes installed by the keying daemons are now in a separate
476   routing table with the ID 100 to avoid conflicts with the main
477   table. Route lookup for IKEv2 traffic is done in userspace to ignore
478   routes installed for IPsec, as IKE traffic shouldn't get encapsulated.
479
480
481 strongswan-4.1.4
482 ----------------
483
484 - The pluto IKEv1 daemon now exhibits the same behaviour as its
485   IKEv2 companion charon by inserting an explicit route via the
486   _updown script only if a sourceip exists. This is admissible
487   since routing through the IPsec tunnel is handled automatically
488   by NETKEY's IPsec policies. As a consequence the left|rightnexthop
489   parameter is not required any more.
490
491 - The new IKEv1 parameter right|leftallowany parameters helps to handle
492   the case where both peers possess dynamic IP addresses that are
493   usually resolved using DynDNS or a similar service. The configuration
494
495     right=peer.foo.bar
496     rightallowany=yes
497
498   can be used by the initiator to start up a connection to a peer
499   by resolving peer.foo.bar into the currently allocated IP address.
500   Thanks to the rightallowany flag the connection behaves later on
501   as
502
503    right=%any
504
505   so that the peer can rekey the connection as an initiator when his
506   IP address changes. An alternative notation is
507
508     right=%peer.foo.bar
509
510   which will implicitly set rightallowany=yes.
511
512 - ipsec starter now fails more gracefully in the presence of parsing
513   errors. Flawed ca and conn section are discarded and pluto is started
514   if non-fatal errors only were encountered. If right=%peer.foo.bar
515   cannot be resolved by DNS then right=%any will be used so that passive
516   connections as a responder are still possible.
517
518 - The new pkcs11initargs parameter that can be placed in the
519   setup config section of /etc/ipsec.conf allows the definition
520   of an argument string that is used with the PKCS#11 C_Initialize()
521   function. This non-standard feature is required by the NSS softoken
522   library. This patch was contributed by Robert Varga.
523         
524 - Fixed a bug in ipsec starter introduced by strongswan-2.8.5
525   which caused a segmentation fault in the presence of unknown
526   or misspelt keywords in ipsec.conf. This bug fix was contributed
527   by Robert Varga.
528
529 - Partial support for MOBIKE in IKEv2. The initiator acts on interface/
530   address configuration changes and updates IKE and IPsec SAs dynamically.
531
532
533 strongswan-4.1.3
534 ----------------
535
536 - IKEv2 peer configuration selection now can be based on a given 
537   certification authority using the rightca= statement.
538
539 - IKEv2 authentication based on RSA signatures now can handle multiple
540   certificates issued for a given peer ID. This allows a smooth transition
541   in the case of a peer certificate renewal.
542
543 - IKEv2: Support for requesting a specific virtual IP using leftsourceip on the
544   client and returning requested virtual IPs using rightsourceip=%config
545   on the server. If the server does not support configuration payloads, the
546   client enforces its leftsourceip parameter.
547
548 - The ./configure options --with-uid/--with-gid allow pluto and charon
549   to drop their privileges to a minimum and change to an other UID/GID. This
550   improves the systems security, as a possible intruder may only get the
551   CAP_NET_ADMIN capability.
552
553 - Further modularization of charon: Pluggable control interface and 
554   configuration backend modules provide extensibility. The control interface
555   for stroke is included, and further interfaces using DBUS (NetworkManager)
556   or XML are on the way. A backend for storing configurations in the daemon
557   is provided and more advanced backends (using e.g. a database) are trivial 
558   to implement.
559
560  - Fixed a compilation failure in libfreeswan occuring with Linux kernel
561    headers > 2.6.17.
562
563
564 strongswan-4.1.2
565 ----------------
566
567 - Support for an additional Diffie-Hellman exchange when creating/rekeying
568   a CHILD_SA in IKEv2 (PFS). PFS is enabled when the proposal contains a
569   DH group (e.g. "esp=aes128-sha1-modp1536"). Further, DH group negotiation
570   is implemented properly for rekeying.
571
572 - Support for the AES-XCBC-96 MAC algorithm for IPsec SAs when using IKEv2
573   (requires linux >= 2.6.20). It is enabled using e.g. "esp=aes256-aesxcbc".
574
575 - Working IPv4-in-IPv6 and IPv6-in-IPv4 tunnels for linux >= 2.6.21.
576
577 - Added support for EAP modules which do not establish an MSK.
578
579 - Removed the dependencies from the /usr/include/linux/ headers by
580   including xfrm.h, ipsec.h, and pfkeyv2.h in the distribution.
581   
582 - crlNumber is now listed by ipsec listcrls
583
584 - The xauth_modules.verify_secret() function now passes the
585   connection name.
586
587
588 strongswan-4.1.1
589 ----------------
590
591 - Server side cookie support. If to may IKE_SAs are in CONNECTING state,
592   cookies are enabled and protect against DoS attacks with faked source
593   addresses. Number of IKE_SAs in CONNECTING state is also limited per
594   peer address to avoid resource exhaustion. IKE_SA_INIT messages are
595   compared to properly detect retransmissions and incoming retransmits are
596   detected even if the IKE_SA is blocked (e.g. doing OCSP fetches).
597
598 - The IKEv2 daemon charon now supports dynamic http- and ldap-based CRL
599   fetching enabled by crlcheckinterval > 0 and caching fetched CRLs
600   enabled by cachecrls=yes.
601
602 - Added the configuration options --enable-nat-transport which enables
603   the potentially insecure NAT traversal for IPsec transport mode and
604   --disable-vendor-id which disables the sending of the strongSwan
605   vendor ID.
606
607 - Fixed a long-standing bug in the pluto IKEv1 daemon which caused
608   a segmentation fault if a malformed payload was detected in the
609   IKE MR2 message and pluto tried to send an encrypted notification
610   message.
611
612 - Added the NATT_IETF_02_N Vendor ID in order to support IKEv1 connections
613   with Windows 2003 Server which uses a wrong VID hash.
614
615
616 strongswan-4.1.0
617 ----------------
618
619 - Support of SHA2_384 hash function for protecting IKEv1
620   negotiations and support of SHA2 signatures in X.509 certificates.
621
622 - Fixed a serious bug in the computation of the SHA2-512 HMAC
623   function. Introduced automatic self-test of all IKEv1 hash
624   and hmac functions during pluto startup. Failure of a self-test
625   currently issues a warning only but does not exit pluto [yet].
626
627 - Support for SHA2-256/384/512 PRF and HMAC functions in IKEv2.
628
629 - Full support of CA information sections. ipsec listcainfos
630   now shows all collected crlDistributionPoints and OCSP 
631   accessLocations.
632
633 - Support of the Online Certificate Status Protocol (OCSP) for IKEv2.
634   This feature requires the HTTP fetching capabilities of the libcurl
635   library which must be enabled by setting the --enable-http configure
636   option.
637
638 - Refactored core of the IKEv2 message processing code, allowing better
639   code reuse and separation.
640
641 - Virtual IP support in IKEv2 using INTERNAL_IP4/6_ADDRESS configuration
642   payload. Additionally, the INTERNAL_IP4/6_DNS attribute is interpreted
643   by the requestor and installed in a resolv.conf file.
644
645 - The IKEv2 daemon charon installs a route for each IPsec policy to use
646   the correct source address even if an application does not explicitly
647   specify it.
648
649 - Integrated the EAP framework into charon which loads pluggable EAP library
650   modules. The ipsec.conf parameter authby=eap initiates EAP authentication
651   on the client side, while the "eap" parameter on the server side defines
652   the EAP method to use for client authentication.
653   A generic client side EAP-Identity module and an EAP-SIM authentication
654   module using a third party card reader implementation are included.
655
656 - Added client side support for cookies.
657
658 - Integrated the fixes done at the IKEv2 interoperability bakeoff, including
659   strict payload order, correct INVALID_KE_PAYLOAD rejection and other minor
660   fixes to enhance interoperability with other implementations.
661
662
663 strongswan-4.0.7
664 ----------------
665
666 - strongSwan now interoperates with the NCP Secure Entry Client,
667   the Shrew Soft VPN Client, and the Cisco VPN client, doing both
668   XAUTH and Mode Config.
669
670 - UNITY attributes are now recognized and UNITY_BANNER is set
671   to a default string.
672
673
674 strongswan-4.0.6
675 ----------------
676
677 - IKEv1: Support for extended authentication (XAUTH) in combination
678   with ISAKMP Main Mode RSA or PSK authentication. Both client and
679   server side were implemented. Handling of user credentials can
680   be done by a run-time loadable XAUTH module. By default user
681   credentials are stored in ipsec.secrets. 
682           
683 - IKEv2: Support for reauthentication when rekeying
684
685 - IKEv2: Support for transport mode
686
687 - fixed a lot of bugs related to byte order
688
689 - various other bugfixes
690
691
692 strongswan-4.0.5
693 ----------------
694
695 - IKEv1: Implementation of ModeConfig push mode via the new connection
696   keyword modeconfig=push allows interoperability with Cisco VPN gateways.
697
698 - IKEv1: The command ipsec statusall now shows "DPD active" for all
699   ISAKMP SAs that are under active Dead Peer Detection control.
700
701 - IKEv2: Charon's logging and debugging framework has been completely rewritten.
702   Instead of logger, special printf() functions are used to directly
703   print objects like hosts (%H) identifications (%D), certificates (%Q),
704   etc. The number of debugging levels have been reduced to:
705
706     0 (audit), 1 (control), 2 (controlmore),  3 (raw), 4 (private)
707
708   The debugging levels can either be specified statically in ipsec.conf as
709
710     config setup
711            charondebug="lib 1, cfg 3, net 2"
712
713   or changed at runtime via stroke as
714
715     ipsec stroke loglevel cfg 2
716
717
718 strongswan-4.0.4
719 ----------------
720
721 - Implemented full support for IPv6-in-IPv6 tunnels.
722
723 - Added configuration options for dead peer detection in IKEv2. dpd_action
724   types "clear", "hold" and "restart" are supported. The dpd_timeout
725   value is not used, as the normal retransmission policy applies to
726   detect dead peers. The dpd_delay parameter enables sending of empty
727   informational message to detect dead peers in case of inactivity.
728
729 - Added support for preshared keys in IKEv2. PSK keys configured in
730   ipsec.secrets are loaded. The authby parameter specifies the authentication
731   method to authentificate ourself, the other peer may use PSK or RSA.
732
733 - Changed retransmission policy to respect the keyingtries parameter.
734
735 - Added private key decryption. PEM keys encrypted with AES-128/192/256
736   or 3DES are supported.
737
738 - Implemented DES/3DES algorithms in libstrongswan. 3DES can be used to
739   encrypt IKE traffic.
740
741 - Implemented SHA-256/384/512 in libstrongswan, allows usage of certificates
742   signed with such a hash algorithm.
743
744 - Added initial support for updown scripts. The actions up-host/client and
745   down-host/client are executed. The leftfirewall=yes parameter
746   uses the default updown script to insert dynamic firewall rules, a custom
747   updown script may be specified with the leftupdown parameter.
748
749
750 strongswan-4.0.3
751 ----------------
752
753 - Added support for the auto=route ipsec.conf parameter and the
754   ipsec route/unroute commands for IKEv2. This allows to set up IKE_SAs and 
755   CHILD_SAs dynamically on demand when traffic is detected by the 
756   kernel.
757
758 - Added support for rekeying IKE_SAs in IKEv2 using the ikelifetime parameter.
759   As specified in IKEv2, no reauthentication is done (unlike in IKEv1), only
760   new keys are generated using perfect forward secrecy. An optional flag
761   which enforces reauthentication will be implemented later.
762
763 - "sha" and "sha1" are now treated as synonyms in the ike= and esp=
764   algorithm configuration statements.
765
766
767 strongswan-4.0.2
768 ----------------
769
770 - Full X.509 certificate trust chain verification has been implemented.
771   End entity certificates can be exchanged via CERT payloads. The current
772   default is leftsendcert=always, since CERTREQ payloads are not supported
773   yet. Optional CRLs must be imported locally into /etc/ipsec.d/crls.
774
775 - Added support for leftprotoport/rightprotoport parameters in IKEv2. IKEv2 
776   would offer more possibilities for traffic selection, but the Linux kernel
777   currently does not support it. That's why we stick with these simple 
778   ipsec.conf rules for now.
779
780 - Added Dead Peer Detection (DPD) which checks liveliness of remote peer if no
781   IKE or ESP traffic is received. DPD is currently hardcoded (dpdaction=clear,
782   dpddelay=60s).
783
784 - Initial NAT traversal support in IKEv2. Charon includes NAT detection
785   notify payloads to detect NAT routers between the peers. It switches
786   to port 4500, uses UDP encapsulated ESP packets, handles peer address
787   changes gracefully and sends keep alive message periodically.
788
789 - Reimplemented IKE_SA state machine for charon, which allows simultaneous 
790   rekeying, more shared code, cleaner design, proper retransmission 
791   and a more extensible code base.
792
793 - The mixed PSK/RSA roadwarrior detection capability introduced by the
794   strongswan-2.7.0 release necessitated the pre-parsing of the IKE proposal
795   payloads by the responder right before any defined IKE Main Mode state had
796   been established. Although any form of bad proposal syntax was being correctly
797   detected by the payload parser, the subsequent error handler didn't check
798   the state pointer before logging current state information, causing an
799   immediate crash of the pluto keying daemon due to a NULL pointer.
800
801
802 strongswan-4.0.1
803 ----------------
804
805 - Added algorithm selection to charon: New default algorithms for 
806   ike=aes128-sha-modp2048, as both daemons support it. The default
807   for IPsec SAs is now esp=aes128-sha,3des-md5. charon handles
808   the ike/esp parameter the same way as pluto. As this syntax does
809   not allow specification of a pseudo random function, the same 
810   algorithm as for integrity is used (currently sha/md5). Supported
811   algorithms for IKE:
812     Encryption: aes128, aes192, aes256
813     Integrity/PRF: md5, sha (using hmac)
814     DH-Groups: modp768, 1024, 1536, 2048, 4096, 8192
815   and for ESP:
816     Encryption: aes128, aes192, aes256, 3des, blowfish128, 
817                 blowfish192, blowfish256
818     Integrity: md5, sha1
819   More IKE encryption algorithms will come after porting libcrypto into
820   libstrongswan. 
821
822 - initial support for rekeying CHILD_SAs using IKEv2. Currently no
823   perfect forward secrecy is used. The rekeying parameters rekey,
824   rekeymargin, rekeyfuzz and keylife from ipsec.conf are now supported
825   when using IKEv2. WARNING: charon currently is unable to handle
826   simultaneous rekeying. To avoid such a situation, use a large
827   rekeyfuzz, or even better, set rekey=no on one peer.
828
829 - support for host2host, net2net, host2net (roadwarrior) tunnels
830   using predefined RSA certificates (see uml scenarios for
831   configuration examples).
832
833 - new build environment featuring autotools. Features such
834   as HTTP, LDAP and smartcard support may be enabled using
835   the ./configure script. Changing install directories 
836   is possible, too. See ./configure --help for more details.
837
838 - better integration of charon with ipsec starter, which allows
839   (almost) transparent operation with both daemons. charon
840   handles ipsec commands up, down, status, statusall, listall,
841   listcerts and allows proper load, reload and delete of connections
842   via ipsec starter.
843
844
845 strongswan-4.0.0
846 ----------------
847
848 - initial support of the IKEv2 protocol. Connections in
849   ipsec.conf designated by keyexchange=ikev2 are negotiated 
850   by the new IKEv2 charon keying daemon whereas those marked
851   by keyexchange=ikev1 or the default keyexchange=ike are
852   handled thy the IKEv1 pluto keying daemon. Currently only
853   a limited subset of functions are available with IKEv2
854   (Default AES encryption, authentication based on locally
855   imported X.509 certificates, unencrypted private RSA keys
856   in PKCS#1 file format, limited functionality of the ipsec
857   status command).
858
859
860 strongswan-2.7.0
861 ----------------
862
863 - the dynamic iptables rules from the _updown_x509 template
864   for KLIPS and the _updown_policy template for NETKEY have
865   been merged into the default _updown script. The existing
866   left|rightfirewall keyword causes the automatic insertion
867   and deletion of ACCEPT rules for tunneled traffic upon
868   the successful setup and teardown of an IPsec SA, respectively.
869   left|rightfirwall can be used with KLIPS under any Linux 2.4
870   kernel or with NETKEY under a Linux kernel version >= 2.6.16
871   in conjuction with iptables >= 1.3.5. For NETKEY under a Linux
872   kernel version < 2.6.16 which does not support IPsec policy
873   matching yet, please continue to use a copy of the _updown_espmark
874   template loaded via the left|rightupdown keyword.
875
876 - a new left|righthostaccess keyword has been introduced which
877   can be used in conjunction with left|rightfirewall and the
878   default _updown script. By default leftfirewall=yes inserts
879   a bi-directional iptables FORWARD rule for a local client network
880   with a netmask different from 255.255.255.255 (single host).
881   This does not allow to access the VPN gateway host via its
882   internal network interface which is part of the client subnet
883   because an iptables INPUT and OUTPUT rule would be required.
884   lefthostaccess=yes will cause this additional ACCEPT rules to
885   be inserted. 
886
887 - mixed PSK|RSA roadwarriors are now supported. The ISAKMP proposal
888   payload is preparsed in order to find out whether the roadwarrior
889   requests PSK or RSA so that a matching connection candidate can
890   be found.
891
892
893 strongswan-2.6.4
894 ----------------
895
896 - the new _updown_policy template allows ipsec policy based
897   iptables firewall rules. Required are iptables version
898   >= 1.3.5 and linux kernel >= 2.6.16. This script obsoletes
899   the _updown_espmark template, so that no INPUT mangle rules 
900   are required any more.
901
902 - added support of DPD restart mode
903
904 - ipsec starter now allows the use of wildcards in include
905   statements as e.g. in "include /etc/my_ipsec/*.conf".
906   Patch courtesy of Matthias Haas.
907
908 - the Netscape OID 'employeeNumber' is now recognized and can be
909   used as a Relative Distinguished Name in certificates.
910
911
912 strongswan-2.6.3
913 ----------------
914
915 - /etc/init.d/ipsec or /etc/rc.d/ipsec is now a copy of the ipsec 
916   command and not of ipsec setup any more.
917
918 - ipsec starter now supports AH authentication in conjunction with
919   ESP encryption. AH authentication is configured in ipsec.conf
920   via the auth=ah parameter.
921   
922 - The command ipsec scencrypt|scdecrypt <args> is now an alias for
923   ipsec whack --scencrypt|scdecrypt <args>.
924
925 - get_sa_info() now determines for the native netkey IPsec stack
926   the exact time of the last use of an active eroute. This information
927   is used by the Dead Peer Detection algorithm and is also displayed by
928   the ipsec status command.
929   
930
931 strongswan-2.6.2
932 ----------------
933
934 - running under the native Linux 2.6 IPsec stack, the function
935   get_sa_info() is called by ipsec auto --status to display the current
936   number of transmitted bytes per IPsec SA.
937
938 - get_sa_info() is also used  by the Dead Peer Detection process to detect
939   recent ESP activity. If ESP traffic was received from the peer within
940   the last dpd_delay interval then no R_Y_THERE notification must be sent.
941
942 - strongSwan now supports the Relative Distinguished Name "unstructuredName"
943   in ID_DER_ASN1_DN identities. The following notations are possible:
944
945     rightid="unstructuredName=John Doe"
946     rightid="UN=John Doe"
947
948 - fixed a long-standing bug which caused PSK-based roadwarrior connections
949   to segfault in the function id.c:same_id() called by keys.c:get_secret()
950   if an FQDN, USER_FQDN, or Key ID was defined, as in the following example.
951
952   conn rw
953        right=%any
954        rightid=@foo.bar
955        authby=secret
956
957 - the ipsec command now supports most ipsec auto commands (e.g. ipsec listall).
958
959 - ipsec starter didn't set host_addr and client.addr ports in whack msg.
960
961 - in order to guarantee backwards-compatibility with the script-based
962   auto function (e.g. auto --replace), the ipsec starter scripts stores
963   the defaultroute information in the temporary file /var/run/ipsec.info.
964
965 - The compile-time option USE_XAUTH_VID enables the sending of the XAUTH
966   Vendor ID which is expected by Cisco PIX 7 boxes that act as IKE Mode Config
967   servers.
968
969 - the ipsec starter now also recognizes the parameters authby=never and
970   type=passthrough|pass|drop|reject.
971
972
973 strongswan-2.6.1
974 ----------------
975
976 - ipsec starter now supports the also parameter which allows
977   a modular structure of the connection definitions. Thus
978   "ipsec start" is now ready to replace "ipsec setup".
979
980
981 strongswan-2.6.0
982 ----------------
983
984 - Mathieu Lafon's popular ipsec starter tool has been added to the
985   strongSwan distribution. Many thanks go to Stephan Scholz from astaro
986   for his integration work. ipsec starter is a C program which is going
987   to replace the various shell and awk starter scripts (setup, _plutoload,
988   _plutostart, _realsetup, _startklips, _confread, and auto). Since
989   ipsec.conf is now parsed only once, the starting of multiple tunnels is
990   accelerated tremedously.
991
992 - Added support of %defaultroute to the ipsec starter. If the IP address
993   changes, a HUP signal to the ipsec starter will automatically 
994   reload pluto's connections.
995
996 - moved most compile time configurations from pluto/Makefile to
997   Makefile.inc by defining the options USE_LIBCURL, USE_LDAP,
998   USE_SMARTCARD, and USE_NAT_TRAVERSAL_TRANSPORT_MODE.
999
1000 - removed the ipsec verify and ipsec newhostkey commands
1001
1002 - fixed some 64-bit issues in formatted print statements
1003
1004 - The scepclient functionality implementing the Simple Certificate
1005   Enrollment Protocol (SCEP) is nearly complete but hasn't been
1006   documented yet.
1007
1008
1009 strongswan-2.5.7
1010 ----------------
1011
1012 - CA certicates are now automatically loaded from a smartcard
1013   or USB crypto token and appear in the ipsec auto --listcacerts
1014   listing.
1015
1016
1017 strongswan-2.5.6
1018 ----------------
1019
1020 - when using "ipsec whack --scencrypt <data>" with  a PKCS#11
1021   library that does not support the C_Encrypt() Cryptoki
1022   function (e.g. OpenSC), the RSA encryption is done in
1023   software using the public key fetched from the smartcard.
1024
1025 - The scepclient function now allows to define the 
1026   validity of a self-signed certificate using the --days,
1027   --startdate, and --enddate options. The default validity
1028   has been changed from one year to five years.
1029
1030
1031 strongswan-2.5.5
1032 ----------------
1033
1034 - the config setup parameter pkcs11proxy=yes opens pluto's PKCS#11
1035   interface to other applications for RSA encryption and decryption
1036   via the whack interface. Notation:
1037
1038   ipsec whack --scencrypt <data>
1039              [--inbase  16|hex|64|base64|256|text|ascii]
1040              [--outbase 16|hex|64|base64|256|text|ascii]
1041              [--keyid <keyid>]
1042
1043   ipsec whack --scdecrypt <data>
1044              [--inbase  16|hex|64|base64|256|text|ascii]
1045              [--outbase 16|hex|64|base64|256|text|ascii]
1046              [--keyid <keyid>]
1047
1048   The default setting for inbase and outbase is hex. 
1049
1050   The new proxy interface can be used for securing symmetric
1051   encryption keys required by the cryptoloop or dm-crypt
1052   disk encryption schemes, especially in the case when
1053   pkcs11keepstate=yes causes pluto to lock the pkcs11 slot
1054   permanently.
1055
1056 - if the file /etc/ipsec.secrets is lacking during the startup of
1057   pluto then the root-readable file /etc/ipsec.d/private/myKey.der
1058   containing a 2048 bit RSA private key and a matching self-signed
1059   certificate stored in the file /etc/ipsec.d/certs/selfCert.der
1060   is automatically generated by calling the function
1061
1062   ipsec scepclient --out pkcs1 --out cert-self
1063
1064   scepclient was written by Jan Hutter and Martin Willi, students
1065   at the University of Applied Sciences in Rapperswil, Switzerland.
1066
1067
1068 strongswan-2.5.4
1069 ----------------
1070
1071 - the current extension of the PKCS#7 framework introduced
1072   a parsing error in PKCS#7 wrapped X.509 certificates that are
1073   e.g. transmitted by Windows XP when multi-level CAs are used.
1074   the parsing syntax has been fixed.
1075
1076 - added a patch by Gerald Richter which tolerates multiple occurrences
1077   of the ipsec0 interface when using KLIPS.
1078
1079
1080 strongswan-2.5.3
1081 ----------------
1082
1083 - with gawk-3.1.4 the word "default2 has become a protected
1084   keyword for use in switch statements and cannot be used any
1085   more in the strongSwan scripts. This problem has been
1086   solved by renaming "default" to "defaults" and "setdefault"
1087   in the scripts _confread and auto, respectively.
1088
1089 - introduced the parameter leftsendcert with the values
1090
1091   always|yes (the default, always send a cert)
1092   ifasked    (send the cert only upon a cert request)
1093   never|no   (never send a cert, used for raw RSA keys and
1094               self-signed certs) 
1095
1096 - fixed the initialization of the ESP key length to a default of
1097   128 bits in the case that the peer does not send a key length
1098    attribute for AES encryption.
1099
1100 - applied Herbert Xu's uniqueIDs patch
1101
1102 - applied Herbert Xu's CLOEXEC patches
1103
1104
1105 strongswan-2.5.2
1106 ----------------
1107
1108 - CRLs can now be cached also in the case when the issuer's
1109   certificate does not contain a subjectKeyIdentifier field.
1110   In that case the subjectKeyIdentifier is computed by pluto as the
1111   160 bit SHA-1 hash of the issuer's public key in compliance
1112   with section 4.2.1.2 of RFC 3280.
1113
1114 - Fixed a bug introduced by strongswan-2.5.1 which eliminated
1115   not only multiple Quick Modes of a given connection but also
1116   multiple connections between two security gateways.
1117
1118
1119 strongswan-2.5.1
1120 ----------------
1121
1122 - Under the native IPsec of the Linux 2.6 kernel, a %trap eroute
1123   installed either by setting auto=route in ipsec.conf or by
1124   a connection put into hold, generates an XFRM_AQUIRE event
1125   for each packet that wants to use the not-yet exisiting
1126   tunnel. Up to now each XFRM_AQUIRE event led to an entry in
1127   the Quick Mode queue, causing multiple IPsec SA to be
1128   established in rapid succession. Starting with strongswan-2.5.1
1129   only a single IPsec SA is established per host-pair connection.
1130
1131 - Right after loading the PKCS#11 module, all smartcard slots are
1132   searched for certificates. The result can be viewed using
1133   the command
1134
1135     ipsec auto --listcards
1136
1137   The certificate objects found in the slots are numbered
1138   starting with #1, #2, etc. This position number can be used to address
1139   certificates (leftcert=%smartcard) and keys (: PIN %smartcard)
1140   in ipsec.conf and ipsec.secrets, respectively:
1141
1142     %smartcard      (selects object #1)
1143     %smartcard#1    (selects object #1)
1144     %smartcard#3    (selects object #3)
1145
1146   As an alternative the existing retrieval scheme can be used:
1147
1148     %smartcard:45   (selects object with id=45)
1149     %smartcard0     (selects first object in slot 0)
1150     %smartcard4:45  (selects object in slot 4 with id=45)
1151
1152 - Depending on the settings of CKA_SIGN and CKA_DECRYPT
1153   private key flags either C_Sign() or C_Decrypt() is used
1154   to generate a signature.
1155
1156 - The output buffer length parameter siglen in C_Sign()
1157   is now initialized to the actual size of the output
1158   buffer prior to the function call. This fixes the
1159   CKR_BUFFER_TOO_SMALL error that could occur when using
1160   the OpenSC PKCS#11 module.
1161
1162 - Changed the initialization of the PKCS#11 CK_MECHANISM in
1163   C_SignInit() to mech  = { CKM_RSA_PKCS, NULL_PTR, 0 }.
1164
1165 - Refactored the RSA public/private key code and transferred it
1166   from keys.c to the new pkcs1.c file as a preparatory step
1167   towards the release of the SCEP client.
1168
1169
1170 strongswan-2.5.0
1171 ----------------
1172
1173 - The loading of a PKCS#11 smartcard library module during
1174   runtime does not require OpenSC library functions any more
1175   because the corresponding code has been integrated into
1176   smartcard.c. Also the RSAREF pkcs11 header files have been
1177   included in a newly created pluto/rsaref directory so that
1178   no external include path has to be defined any longer.
1179
1180 - A long-awaited feature has been implemented at last:
1181   The local caching of CRLs fetched via HTTP or LDAP, activated
1182   by the parameter cachecrls=yes in the config setup section
1183   of ipsec.conf. The dynamically fetched CRLs are stored under
1184   a unique file name containing the issuer's subjectKeyID
1185   in /etc/ipsec.d/crls.
1186   
1187 - Applied a one-line patch courtesy of Michael Richardson
1188   from the Openswan project which fixes the kernel-oops
1189   in KLIPS when an snmp daemon is running on the same box.
1190
1191
1192 strongswan-2.4.4
1193 ----------------
1194
1195 - Eliminated null length CRL distribution point strings.
1196
1197 - Fixed a trust path evaluation bug introduced with 2.4.3
1198
1199
1200 strongswan-2.4.3
1201 ----------------
1202
1203 - Improved the joint OCSP / CRL revocation policy.
1204   OCSP responses have precedence over CRL entries.
1205
1206 - Introduced support of CRLv2 reason codes.
1207
1208 - Fixed a bug with key-pad equipped readers which caused
1209   pluto to prompt for the pin via the console when the first
1210   occasion to enter the pin via the key-pad was missed.
1211
1212 - When pluto is built with LDAP_V3 enabled, the library
1213   liblber required by newer versions of openldap is now
1214   included.
1215
1216
1217 strongswan-2.4.2
1218 ----------------
1219
1220 - Added the _updown_espmark template which requires all
1221   incoming ESP traffic to be marked with a default mark
1222   value of 50.
1223   
1224 - Introduced the pkcs11keepstate parameter in the config setup
1225   section of ipsec.conf. With pkcs11keepstate=yes the PKCS#11
1226   session and login states are kept as long as possible during 
1227   the lifetime of pluto. This means that a PIN entry via a key
1228   pad has to be done only once.
1229
1230 - Introduced the pkcs11module parameter in the config setup
1231   section of ipsec.conf which specifies the PKCS#11 module
1232   to be used with smart cards. Example:
1233   
1234     pkcs11module=/usr/lib/pkcs11/opensc-pkcs11.lo
1235   
1236 - Added support of smartcard readers equipped with a PIN pad.
1237
1238 - Added patch by Jay Pfeifer which detects when netkey
1239   modules have been statically built into the Linux 2.6 kernel.
1240
1241 - Added two patches by Herbert Xu. The first uses ip xfrm
1242   instead of setkey to flush the IPsec policy database. The
1243   second sets the optional flag in inbound IPComp SAs only.
1244     
1245 - Applied Ulrich Weber's patch which fixes an interoperability
1246   problem between native IPsec and KLIPS systems caused by
1247   setting the replay window to 32 instead of 0 for ipcomp.
1248
1249
1250 strongswan-2.4.1
1251 ----------------
1252
1253 - Fixed a bug which caused an unwanted Mode Config request
1254   to be initiated in the case where "right" was used to denote
1255   the local side in ipsec.conf and "left" the remote side,
1256   contrary to the recommendation that "right" be remote and
1257   "left" be"local".
1258
1259
1260 strongswan-2.4.0a
1261 -----------------
1262
1263 - updated Vendor ID to strongSwan-2.4.0
1264
1265 - updated copyright statement to include David Buechi and
1266   Michael Meier
1267   
1268   
1269 strongswan-2.4.0
1270 ----------------
1271
1272 - strongSwan now communicates with attached smartcards and
1273   USB crypto tokens via the standardized PKCS #11 interface.
1274   By default the OpenSC library from www.opensc.org is used
1275   but any other PKCS#11 library could be dynamically linked.
1276   strongSwan's PKCS#11 API was implemented by David Buechi
1277   and Michael Meier, both graduates of the Zurich University
1278   of Applied Sciences in Winterthur, Switzerland.
1279
1280 - When a %trap eroute is triggered by an outgoing IP packet
1281   then the native IPsec stack of the Linux 2.6 kernel [often/
1282   always?] returns an XFRM_ACQUIRE message with an undefined
1283   protocol family field and the connection setup fails.
1284   As a workaround IPv4 (AF_INET) is now assumed.
1285   
1286 - the results of the UML test scenarios are now enhanced 
1287   with block diagrams of the virtual network topology used
1288   in a particular test. 
1289
1290
1291 strongswan-2.3.2
1292 ----------------
1293
1294 - fixed IV used to decrypt informational messages.
1295   This bug was introduced with Mode Config functionality.
1296  
1297 - fixed NCP Vendor ID.
1298
1299 - undid one of Ulrich Weber's maximum udp size patches
1300   because it caused a segmentation fault with NAT-ed
1301   Delete SA messages.
1302   
1303 - added UML scenarios wildcards and attr-cert which
1304   demonstrate the implementation of IPsec policies based
1305   on wildcard parameters contained in Distinguished Names and
1306   on X.509 attribute certificates, respectively.
1307
1308
1309 strongswan-2.3.1
1310 ----------------
1311
1312 - Added basic Mode Config functionality
1313
1314 - Added Mathieu Lafon's patch which upgrades the status of
1315   the NAT-Traversal implementation to RFC 3947.
1316  
1317 - The _startklips script now also loads the xfrm4_tunnel
1318   module.
1319   
1320 - Added Ulrich Weber's netlink replay window size and
1321   maximum udp size patches.
1322
1323 - UML testing now uses the Linux 2.6.10 UML kernel by default.
1324    
1325
1326 strongswan-2.3.0
1327 ----------------
1328
1329 - Eric Marchionni and Patrik Rayo, both recent graduates from
1330   the Zuercher Hochschule Winterthur in Switzerland, created a
1331   User-Mode-Linux test setup for strongSwan. For more details
1332   please read the INSTALL and README documents in the testing
1333   subdirectory.
1334
1335 - Full support of group attributes based on X.509 attribute
1336   certificates. Attribute certificates can be generated 
1337   using the openac facility. For more details see
1338    
1339   man ipsec_openac.
1340  
1341   The group attributes can be used in connection definitions
1342   in order to give IPsec access to specific user groups.
1343   This is done with the new parameter left|rightgroups as in
1344   
1345   rightgroups="Research, Sales"
1346
1347   giving access to users possessing the group attributes
1348   Research or Sales, only.
1349
1350 - In Quick Mode clients with subnet mask /32 are now
1351   coded as IP_V4_ADDRESS or IP_V6_ADDRESS. This should 
1352   fix rekeying problems with the SafeNet/SoftRemote and NCP
1353   Secure Entry Clients.
1354
1355 - Changed the defaults of the ikelifetime and keylife parameters
1356   to 3h and 1h, respectively. The maximum allowable values are
1357   now both set to 24 h.
1358
1359 - Suppressed notification wars between two IPsec peers that
1360   could e.g. be triggered by incorrect ISAKMP encryption.
1361
1362 - Public RSA keys can now have identical IDs if either the
1363   issuing CA or the serial number is different. The serial
1364   number of a certificate is now shown by the command
1365   
1366   ipsec auto --listpubkeys
1367
1368
1369 strongswan-2.2.2
1370 ----------------
1371
1372 - Added Tuomo Soini's sourceip feature which allows a strongSwan
1373   roadwarrior to use a fixed Virtual IP (see README section 2.6)
1374   and reduces the well-known four tunnel case on VPN gateways to
1375   a single tunnel definition (see README section 2.4).
1376
1377 - Fixed a bug occuring with NAT-Traversal enabled when the responder
1378   suddenly turns initiator and the initiator cannot find a matching
1379   connection because of the floated IKE port 4500.
1380   
1381 - Removed misleading ipsec verify command from barf.
1382
1383 - Running under the native IP stack, ipsec --version now shows
1384   the Linux kernel version (courtesy to the Openswan project).
1385
1386
1387 strongswan-2.2.1
1388 ----------------
1389
1390 - Introduced the ipsec auto --listalgs monitoring command which lists
1391   all currently registered IKE and ESP algorithms.
1392
1393 - Fixed a bug in the ESP algorithm selection occuring when the strict flag
1394   is set and the first proposed transform does not match.
1395   
1396 - Fixed another deadlock in the use of the lock_certs_and_keys() mutex,
1397   occuring when a smartcard is present.
1398
1399 - Prevented that a superseded Phase1 state can trigger a DPD_TIMEOUT event.
1400   
1401 - Fixed the printing of the notification names (null)
1402
1403 - Applied another of Herbert Xu's Netlink patches.
1404
1405
1406 strongswan-2.2.0
1407 ----------------
1408
1409 - Support of Dead Peer Detection. The connection parameter
1410
1411     dpdaction=clear|hold
1412      
1413   activates DPD for the given connection.
1414
1415 - The default Opportunistic Encryption (OE) policy groups are not
1416   automatically included anymore. Those wishing to activate OE can include
1417   the policy group with the following statement in ipsec.conf:
1418   
1419     include /etc/ipsec.d/examples/oe.conf
1420   
1421   The default for [right|left]rsasigkey is now set to %cert.
1422
1423 - strongSwan now has a Vendor ID of its own which can be activated
1424   using the compile option VENDORID
1425
1426 - Applied Herbert Xu's patch which sets the compression algorithm correctly.
1427
1428 - Applied Herbert Xu's patch fixing an ESPINUDP problem
1429
1430 - Applied Herbert Xu's patch setting source/destination port numbers.
1431
1432 - Reapplied one of Herbert Xu's NAT-Traversal patches which got
1433   lost during the migration from SuperFreeS/WAN.
1434   
1435 - Fixed a deadlock in the use of the lock_certs_and_keys() mutex.
1436
1437 - Fixed the unsharing of alg parameters when instantiating group
1438   connection.
1439   
1440
1441 strongswan-2.1.5
1442 ----------------
1443
1444 - Thomas Walpuski made me aware of a potential DoS attack via
1445   a PKCS#7-wrapped certificate bundle which could overwrite valid CA
1446   certificates in Pluto's authority certificate store. This vulnerability
1447   was fixed by establishing trust in CA candidate certificates up to a
1448   trusted root CA prior to insertion into Pluto's chained list.
1449
1450 - replaced the --assign option by the -v option in the auto awk script
1451   in order to make it run with mawk under debian/woody.
1452
1453
1454 strongswan-2.1.4
1455 ----------------
1456
1457 - Split of the status information between ipsec auto  --status (concise)
1458   and ipsec auto --statusall (verbose). Both commands can be used with
1459   an optional connection selector:
1460
1461     ipsec auto --status[all] <connection_name>
1462
1463 - Added the description of X.509 related features to the ipsec_auto(8)
1464   man page.
1465
1466 - Hardened the ASN.1 parser in debug mode, especially the printing
1467   of malformed distinguished names.
1468
1469 - The size of an RSA public key received in a certificate is now restricted to
1470
1471     512 bits <= modulus length <= 8192 bits.
1472
1473 - Fixed the debug mode enumeration.
1474
1475
1476 strongswan-2.1.3
1477 ----------------
1478
1479 - Fixed another PKCS#7 vulnerability which could lead to an
1480   endless loop while following the X.509 trust chain.
1481   
1482
1483 strongswan-2.1.2
1484 ----------------
1485
1486 - Fixed the PKCS#7 vulnerability discovered by Thomas Walpuski
1487   that accepted end certificates having identical issuer and subject
1488   distinguished names in a multi-tier X.509 trust chain.
1489   
1490
1491 strongswan-2.1.1
1492 ----------------
1493
1494 - Removed all remaining references to ipsec_netlink.h in KLIPS.
1495
1496
1497 strongswan-2.1.0
1498 ----------------
1499
1500 - The new "ca" section allows to define the following parameters:
1501
1502   ca kool
1503      cacert=koolCA.pem                   # cacert of kool CA
1504      ocspuri=http://ocsp.kool.net:8001   # ocsp server
1505      ldapserver=ldap.kool.net            # default ldap server
1506      crluri=http://www.kool.net/kool.crl # crl distribution point
1507      crluri2="ldap:///O=Kool, C= .."     # crl distribution point #2
1508      auto=add                            # add, ignore
1509      
1510   The ca definitions can be monitored via the command
1511   
1512      ipsec auto --listcainfos
1513
1514 - Fixed cosmetic corruption of /proc filesystem by integrating
1515   D. Hugh Redelmeier's freeswan-2.06 kernel fixes.
1516
1517
1518 strongswan-2.0.2
1519 ----------------
1520
1521 - Added support for the 818043 NAT-Traversal update of Microsoft's
1522   Windows 2000/XP IPsec client which sends an ID_FQDN during Quick Mode.
1523   
1524 - A symbolic link to libcrypto is now added in the kernel sources 
1525   during kernel compilation
1526   
1527 - Fixed a couple of 64 bit issues (mostly casts to int).
1528   Thanks to Ken Bantoft who checked my sources on a 64 bit platform.
1529
1530 - Replaced s[n]printf() statements in the kernel by ipsec_snprintf().
1531   Credits go to D. Hugh Redelmeier, Michael Richardson, and Sam Sgro
1532   of the FreeS/WAN team who solved this problem with the 2.4.25 kernel.
1533
1534
1535 strongswan-2.0.1
1536 ----------------
1537
1538 - an empty ASN.1 SEQUENCE OF or SET OF object (e.g. a subjectAltName
1539   certificate extension which contains no generalName item)  can cause
1540   a pluto crash. This bug has been fixed. Additionally the ASN.1 parser has
1541   been hardened to make it more robust against malformed ASN.1 objects.
1542
1543 - applied Herbert Xu's NAT-T patches which fixes NAT-T under the native
1544   Linux 2.6 IPsec stack.
1545   
1546   
1547 strongswan-2.0.0
1548 ----------------
1549
1550 - based on freeswan-2.04, x509-1.5.3, nat-0.6c, alg-0.8.1rc12