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