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