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