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