insert route only in case of sourceip
[strongswan.git] / NEWS
1 strongswan-4.1.3
2 ----------------
3
4 - IKEv2 peer configuration selection now can be based on a given 
5   certification authority using the rightca= statement.
6
7 - IKEv2 authentication based on RSA signatures now can handle multiple
8   certificates issued for a given peer ID. This allows a smooth transition
9   in the case of a peer certificate renewal.
10
11 - IKEv2: Support for requesting a specific virtual IP using leftsourceip on the
12   client and returning requested virtual IPs using rightsourceip=%config
13   on the server. If the server does not support configuration payloads, the
14   client enforces its leftsourceip parameter.
15
16 - The ./configure options --with-uid/--with-gid allow pluto and charon
17   to drop their privileges to a minimum and change to an other UID/GID. This
18   improves the systems security, as a possible intruder may only get the
19   CAP_NET_ADMIN capability.
20
21 - Further modularization of charon: Pluggable control interface and 
22   configuration backend modules provide extensibility. The control interface
23   for stroke is included, and further interfaces using DBUS (NetworkManager)
24   or XML are on the way. A backend for storing configurations in the daemon
25   is provided and more advanced backends (using e.g. a database) are trivial 
26   to implement.
27
28  - Fixed a compilation failure in libfreeswan occuring with Linux kernel
29    headers > 2.6.17.
30
31
32 strongswan-4.1.2
33 ----------------
34
35 - Support for an additional Diffie-Hellman exchange when creating/rekeying
36   a CHILD_SA in IKEv2 (PFS). PFS is enabled when the proposal contains a
37   DH group (e.g. "esp=aes128-sha1-modp1536"). Further, DH group negotiation
38   is implemented properly for rekeying.
39
40 - Support for the AES-XCBC-96 MAC algorithm for IPsec SAs when using IKEv2
41   (requires linux >= 2.6.20). It is enabled using e.g. "esp=aes256-aesxcbc".
42
43 - Working IPv4-in-IPv6 and IPv6-in-IPv4 tunnels for linux >= 2.6.21.
44
45 - Added support for EAP modules which do not establish an MSK.
46
47 - Removed the dependencies from the /usr/include/linux/ headers by
48   including xfrm.h, ipsec.h, and pfkeyv2.h in the distribution.
49   
50 - crlNumber is now listed by ipsec listcrls
51
52 - The xauth_modules.verify_secret() function now passes the
53   connection name.
54
55
56 strongswan-4.1.1
57 ----------------
58
59 - Server side cookie support. If to may IKE_SAs are in CONNECTING state,
60   cookies are enabled and protect against DoS attacks with faked source
61   addresses. Number of IKE_SAs in CONNECTING state is also limited per
62   peer address to avoid resource exhaustion. IKE_SA_INIT messages are
63   compared to properly detect retransmissions and incoming retransmits are
64   detected even if the IKE_SA is blocked (e.g. doing OCSP fetches).
65
66 - The IKEv2 daemon charon now supports dynamic http- and ldap-based CRL
67   fetching enabled by crlcheckinterval > 0 and caching fetched CRLs
68   enabled by cachecrls=yes.
69
70 - Added the configuration options --enable-nat-transport which enables
71   the potentially insecure NAT traversal for IPsec transport mode and
72   --disable-vendor-id which disables the sending of the strongSwan
73   vendor ID.
74
75 - Fixed a long-standing bug in the pluto IKEv1 daemon which caused
76   a segmentation fault if a malformed payload was detected in the
77   IKE MR2 message and pluto tried to send an encrypted notification
78   message.
79
80 - Added the NATT_IETF_02_N Vendor ID in order to support IKEv1 connections
81   with Windows 2003 Server which uses a wrong VID hash.
82
83
84 strongswan-4.1.0
85 ----------------
86
87 - Support of SHA2_384 hash function for protecting IKEv1
88   negotiations and support of SHA2 signatures in X.509 certificates.
89
90 - Fixed a serious bug in the computation of the SHA2-512 HMAC
91   function. Introduced automatic self-test of all IKEv1 hash
92   and hmac functions during pluto startup. Failure of a self-test
93   currently issues a warning only but does not exit pluto [yet].
94
95 - Support for SHA2-256/384/512 PRF and HMAC functions in IKEv2.
96
97 - Full support of CA information sections. ipsec listcainfos
98   now shows all collected crlDistributionPoints and OCSP 
99   accessLocations.
100
101 - Support of the Online Certificate Status Protocol (OCSP) for IKEv2.
102   This feature requires the HTTP fetching capabilities of the libcurl
103   library which must be enabled by setting the --enable-http configure
104   option.
105
106 - Refactored core of the IKEv2 message processing code, allowing better
107   code reuse and separation.
108
109 - Virtual IP support in IKEv2 using INTERNAL_IP4/6_ADDRESS configuration
110   payload. Additionally, the INTERNAL_IP4/6_DNS attribute is interpreted
111   by the requestor and installed in a resolv.conf file.
112
113 - The IKEv2 daemon charon installs a route for each IPsec policy to use
114   the correct source address even if an application does not explicitly
115   specify it.
116
117 - Integrated the EAP framework into charon which loads pluggable EAP library
118   modules. The ipsec.conf parameter authby=eap initiates EAP authentication
119   on the client side, while the "eap" parameter on the server side defines
120   the EAP method to use for client authentication.
121   A generic client side EAP-Identity module and an EAP-SIM authentication
122   module using a third party card reader implementation are included.
123
124 - Added client side support for cookies.
125
126 - Integrated the fixes done at the IKEv2 interoperability bakeoff, including
127   strict payload order, correct INVALID_KE_PAYLOAD rejection and other minor
128   fixes to enhance interoperability with other implementations.
129
130
131 strongswan-4.0.7
132 ----------------
133
134 - strongSwan now interoperates with the NCP Secure Entry Client,
135   the Shrew Soft VPN Client, and the Cisco VPN client, doing both
136   XAUTH and Mode Config.
137
138 - UNITY attributes are now recognized and UNITY_BANNER is set
139   to a default string.
140
141
142 strongswan-4.0.6
143 ----------------
144
145 - IKEv1: Support for extended authentication (XAUTH) in combination
146   with ISAKMP Main Mode RSA or PSK authentication. Both client and
147   server side were implemented. Handling of user credentials can
148   be done by a run-time loadable XAUTH module. By default user
149   credentials are stored in ipsec.secrets. 
150           
151 - IKEv2: Support for reauthentication when rekeying
152
153 - IKEv2: Support for transport mode
154
155 - fixed a lot of bugs related to byte order
156
157 - various other bugfixes
158
159
160 strongswan-4.0.5
161 ----------------
162
163 - IKEv1: Implementation of ModeConfig push mode via the new connection
164   keyword modeconfig=push allows interoperability with Cisco VPN gateways.
165
166 - IKEv1: The command ipsec statusall now shows "DPD active" for all
167   ISAKMP SAs that are under active Dead Peer Detection control.
168
169 - IKEv2: Charon's logging and debugging framework has been completely rewritten.
170   Instead of logger, special printf() functions are used to directly
171   print objects like hosts (%H) identifications (%D), certificates (%Q),
172   etc. The number of debugging levels have been reduced to:
173
174     0 (audit), 1 (control), 2 (controlmore),  3 (raw), 4 (private)
175
176   The debugging levels can either be specified statically in ipsec.conf as
177
178     config setup
179            charondebug="lib 1, cfg 3, net 2"
180
181   or changed at runtime via stroke as
182
183     ipsec stroke loglevel cfg 2
184
185
186 strongswan-4.0.4
187 ----------------
188
189 - Implemented full support for IPv6-in-IPv6 tunnels.
190
191 - Added configuration options for dead peer detection in IKEv2. dpd_action
192   types "clear", "hold" and "restart" are supported. The dpd_timeout
193   value is not used, as the normal retransmission policy applies to
194   detect dead peers. The dpd_delay parameter enables sending of empty
195   informational message to detect dead peers in case of inactivity.
196
197 - Added support for preshared keys in IKEv2. PSK keys configured in
198   ipsec.secrets are loaded. The authby parameter specifies the authentication
199   method to authentificate ourself, the other peer may use PSK or RSA.
200
201 - Changed retransmission policy to respect the keyingtries parameter.
202
203 - Added private key decryption. PEM keys encrypted with AES-128/192/256
204   or 3DES are supported.
205
206 - Implemented DES/3DES algorithms in libstrongswan. 3DES can be used to
207   encrypt IKE traffic.
208
209 - Implemented SHA-256/384/512 in libstrongswan, allows usage of certificates
210   signed with such a hash algorithm.
211
212 - Added initial support for updown scripts. The actions up-host/client and
213   down-host/client are executed. The leftfirewall=yes parameter
214   uses the default updown script to insert dynamic firewall rules, a custom
215   updown script may be specified with the leftupdown parameter.
216
217
218 strongswan-4.0.3
219 ----------------
220
221 - Added support for the auto=route ipsec.conf parameter and the
222   ipsec route/unroute commands for IKEv2. This allows to set up IKE_SAs and 
223   CHILD_SAs dynamically on demand when traffic is detected by the 
224   kernel.
225
226 - Added support for rekeying IKE_SAs in IKEv2 using the ikelifetime parameter.
227   As specified in IKEv2, no reauthentication is done (unlike in IKEv1), only
228   new keys are generated using perfect forward secrecy. An optional flag
229   which enforces reauthentication will be implemented later.
230
231 - "sha" and "sha1" are now treated as synonyms in the ike= and esp=
232   algorithm configuration statements.
233
234
235 strongswan-4.0.2
236 ----------------
237
238 - Full X.509 certificate trust chain verification has been implemented.
239   End entity certificates can be exchanged via CERT payloads. The current
240   default is leftsendcert=always, since CERTREQ payloads are not supported
241   yet. Optional CRLs must be imported locally into /etc/ipsec.d/crls.
242
243 - Added support for leftprotoport/rightprotoport parameters in IKEv2. IKEv2 
244   would offer more possibilities for traffic selection, but the Linux kernel
245   currently does not support it. That's why we stick with these simple 
246   ipsec.conf rules for now.
247
248 - Added Dead Peer Detection (DPD) which checks liveliness of remote peer if no
249   IKE or ESP traffic is received. DPD is currently hardcoded (dpdaction=clear,
250   dpddelay=60s).
251
252 - Initial NAT traversal support in IKEv2. Charon includes NAT detection
253   notify payloads to detect NAT routers between the peers. It switches
254   to port 4500, uses UDP encapsulated ESP packets, handles peer address
255   changes gracefully and sends keep alive message periodically.
256
257 - Reimplemented IKE_SA state machine for charon, which allows simultaneous 
258   rekeying, more shared code, cleaner design, proper retransmission 
259   and a more extensible code base.
260
261 - The mixed PSK/RSA roadwarrior detection capability introduced by the
262   strongswan-2.7.0 release necessitated the pre-parsing of the IKE proposal
263   payloads by the responder right before any defined IKE Main Mode state had
264   been established. Although any form of bad proposal syntax was being correctly
265   detected by the payload parser, the subsequent error handler didn't check
266   the state pointer before logging current state information, causing an
267   immediate crash of the pluto keying daemon due to a NULL pointer.
268
269
270 strongswan-4.0.1
271 ----------------
272
273 - Added algorithm selection to charon: New default algorithms for 
274   ike=aes128-sha-modp2048, as both daemons support it. The default
275   for IPsec SAs is now esp=aes128-sha,3des-md5. charon handles
276   the ike/esp parameter the same way as pluto. As this syntax does
277   not allow specification of a pseudo random function, the same 
278   algorithm as for integrity is used (currently sha/md5). Supported
279   algorithms for IKE:
280     Encryption: aes128, aes192, aes256
281     Integrity/PRF: md5, sha (using hmac)
282     DH-Groups: modp768, 1024, 1536, 2048, 4096, 8192
283   and for ESP:
284     Encryption: aes128, aes192, aes256, 3des, blowfish128, 
285                 blowfish192, blowfish256
286     Integrity: md5, sha1
287   More IKE encryption algorithms will come after porting libcrypto into
288   libstrongswan. 
289
290 - initial support for rekeying CHILD_SAs using IKEv2. Currently no
291   perfect forward secrecy is used. The rekeying parameters rekey,
292   rekeymargin, rekeyfuzz and keylife from ipsec.conf are now supported
293   when using IKEv2. WARNING: charon currently is unable to handle
294   simultaneous rekeying. To avoid such a situation, use a large
295   rekeyfuzz, or even better, set rekey=no on one peer.
296
297 - support for host2host, net2net, host2net (roadwarrior) tunnels
298   using predefined RSA certificates (see uml scenarios for
299   configuration examples).
300
301 - new build environment featuring autotools. Features such
302   as HTTP, LDAP and smartcard support may be enabled using
303   the ./configure script. Changing install directories 
304   is possible, too. See ./configure --help for more details.
305
306 - better integration of charon with ipsec starter, which allows
307   (almost) transparent operation with both daemons. charon
308   handles ipsec commands up, down, status, statusall, listall,
309   listcerts and allows proper load, reload and delete of connections
310   via ipsec starter.
311
312
313 strongswan-4.0.0
314 ----------------
315
316 - initial support of the IKEv2 protocol. Connections in
317   ipsec.conf designated by keyexchange=ikev2 are negotiated 
318   by the new IKEv2 charon keying daemon whereas those marked
319   by keyexchange=ikev1 or the default keyexchange=ike are
320   handled thy the IKEv1 pluto keying daemon. Currently only
321   a limited subset of functions are available with IKEv2
322   (Default AES encryption, authentication based on locally
323   imported X.509 certificates, unencrypted private RSA keys
324   in PKCS#1 file format, limited functionality of the ipsec
325   status command).
326
327
328 strongswan-2.7.0
329 ----------------
330
331 - the dynamic iptables rules from the _updown_x509 template
332   for KLIPS and the _updown_policy template for NETKEY have
333   been merged into the default _updown script. The existing
334   left|rightfirewall keyword causes the automatic insertion
335   and deletion of ACCEPT rules for tunneled traffic upon
336   the successful setup and teardown of an IPsec SA, respectively.
337   left|rightfirwall can be used with KLIPS under any Linux 2.4
338   kernel or with NETKEY under a Linux kernel version >= 2.6.16
339   in conjuction with iptables >= 1.3.5. For NETKEY under a Linux
340   kernel version < 2.6.16 which does not support IPsec policy
341   matching yet, please continue to use a copy of the _updown_espmark
342   template loaded via the left|rightupdown keyword.
343
344 - a new left|righthostaccess keyword has been introduced which
345   can be used in conjunction with left|rightfirewall and the
346   default _updown script. By default leftfirewall=yes inserts
347   a bi-directional iptables FORWARD rule for a local client network
348   with a netmask different from 255.255.255.255 (single host).
349   This does not allow to access the VPN gateway host via its
350   internal network interface which is part of the client subnet
351   because an iptables INPUT and OUTPUT rule would be required.
352   lefthostaccess=yes will cause this additional ACCEPT rules to
353   be inserted. 
354
355 - mixed PSK|RSA roadwarriors are now supported. The ISAKMP proposal
356   payload is preparsed in order to find out whether the roadwarrior
357   requests PSK or RSA so that a matching connection candidate can
358   be found.
359
360
361 strongswan-2.6.4
362 ----------------
363
364 - the new _updown_policy template allows ipsec policy based
365   iptables firewall rules. Required are iptables version
366   >= 1.3.5 and linux kernel >= 2.6.16. This script obsoletes
367   the _updown_espmark template, so that no INPUT mangle rules 
368   are required any more.
369
370 - added support of DPD restart mode
371
372 - ipsec starter now allows the use of wildcards in include
373   statements as e.g. in "include /etc/my_ipsec/*.conf".
374   Patch courtesy of Matthias Haas.
375
376 - the Netscape OID 'employeeNumber' is now recognized and can be
377   used as a Relative Distinguished Name in certificates.
378
379
380 strongswan-2.6.3
381 ----------------
382
383 - /etc/init.d/ipsec or /etc/rc.d/ipsec is now a copy of the ipsec 
384   command and not of ipsec setup any more.
385
386 - ipsec starter now supports AH authentication in conjunction with
387   ESP encryption. AH authentication is configured in ipsec.conf
388   via the auth=ah parameter.
389   
390 - The command ipsec scencrypt|scdecrypt <args> is now an alias for
391   ipsec whack --scencrypt|scdecrypt <args>.
392
393 - get_sa_info() now determines for the native netkey IPsec stack
394   the exact time of the last use of an active eroute. This information
395   is used by the Dead Peer Detection algorithm and is also displayed by
396   the ipsec status command.
397   
398
399 strongswan-2.6.2
400 ----------------
401
402 - running under the native Linux 2.6 IPsec stack, the function
403   get_sa_info() is called by ipsec auto --status to display the current
404   number of transmitted bytes per IPsec SA.
405
406 - get_sa_info() is also used  by the Dead Peer Detection process to detect
407   recent ESP activity. If ESP traffic was received from the peer within
408   the last dpd_delay interval then no R_Y_THERE notification must be sent.
409
410 - strongSwan now supports the Relative Distinguished Name "unstructuredName"
411   in ID_DER_ASN1_DN identities. The following notations are possible:
412
413     rightid="unstructuredName=John Doe"
414     rightid="UN=John Doe"
415
416 - fixed a long-standing bug which caused PSK-based roadwarrior connections
417   to segfault in the function id.c:same_id() called by keys.c:get_secret()
418   if an FQDN, USER_FQDN, or Key ID was defined, as in the following example.
419
420   conn rw
421        right=%any
422        rightid=@foo.bar
423        authby=secret
424
425 - the ipsec command now supports most ipsec auto commands (e.g. ipsec listall).
426
427 - ipsec starter didn't set host_addr and client.addr ports in whack msg.
428
429 - in order to guarantee backwards-compatibility with the script-based
430   auto function (e.g. auto --replace), the ipsec starter scripts stores
431   the defaultroute information in the temporary file /var/run/ipsec.info.
432
433 - The compile-time option USE_XAUTH_VID enables the sending of the XAUTH
434   Vendor ID which is expected by Cisco PIX 7 boxes that act as IKE Mode Config
435   servers.
436
437 - the ipsec starter now also recognizes the parameters authby=never and
438   type=passthrough|pass|drop|reject.
439
440
441 strongswan-2.6.1
442 ----------------
443
444 - ipsec starter now supports the also parameter which allows
445   a modular structure of the connection definitions. Thus
446   "ipsec start" is now ready to replace "ipsec setup".
447
448
449 strongswan-2.6.0
450 ----------------
451
452 - Mathieu Lafon's popular ipsec starter tool has been added to the
453   strongSwan distribution. Many thanks go to Stephan Scholz from astaro
454   for his integration work. ipsec starter is a C program which is going
455   to replace the various shell and awk starter scripts (setup, _plutoload,
456   _plutostart, _realsetup, _startklips, _confread, and auto). Since
457   ipsec.conf is now parsed only once, the starting of multiple tunnels is
458   accelerated tremedously.
459
460 - Added support of %defaultroute to the ipsec starter. If the IP address
461   changes, a HUP signal to the ipsec starter will automatically 
462   reload pluto's connections.
463
464 - moved most compile time configurations from pluto/Makefile to
465   Makefile.inc by defining the options USE_LIBCURL, USE_LDAP,
466   USE_SMARTCARD, and USE_NAT_TRAVERSAL_TRANSPORT_MODE.
467
468 - removed the ipsec verify and ipsec newhostkey commands
469
470 - fixed some 64-bit issues in formatted print statements
471
472 - The scepclient functionality implementing the Simple Certificate
473   Enrollment Protocol (SCEP) is nearly complete but hasn't been
474   documented yet.
475
476
477 strongswan-2.5.7
478 ----------------
479
480 - CA certicates are now automatically loaded from a smartcard
481   or USB crypto token and appear in the ipsec auto --listcacerts
482   listing.
483
484
485 strongswan-2.5.6
486 ----------------
487
488 - when using "ipsec whack --scencrypt <data>" with  a PKCS#11
489   library that does not support the C_Encrypt() Cryptoki
490   function (e.g. OpenSC), the RSA encryption is done in
491   software using the public key fetched from the smartcard.
492
493 - The scepclient function now allows to define the 
494   validity of a self-signed certificate using the --days,
495   --startdate, and --enddate options. The default validity
496   has been changed from one year to five years.
497
498
499 strongswan-2.5.5
500 ----------------
501
502 - the config setup parameter pkcs11proxy=yes opens pluto's PKCS#11
503   interface to other applications for RSA encryption and decryption
504   via the whack interface. Notation:
505
506   ipsec whack --scencrypt <data>
507              [--inbase  16|hex|64|base64|256|text|ascii]
508              [--outbase 16|hex|64|base64|256|text|ascii]
509              [--keyid <keyid>]
510
511   ipsec whack --scdecrypt <data>
512              [--inbase  16|hex|64|base64|256|text|ascii]
513              [--outbase 16|hex|64|base64|256|text|ascii]
514              [--keyid <keyid>]
515
516   The default setting for inbase and outbase is hex. 
517
518   The new proxy interface can be used for securing symmetric
519   encryption keys required by the cryptoloop or dm-crypt
520   disk encryption schemes, especially in the case when
521   pkcs11keepstate=yes causes pluto to lock the pkcs11 slot
522   permanently.
523
524 - if the file /etc/ipsec.secrets is lacking during the startup of
525   pluto then the root-readable file /etc/ipsec.d/private/myKey.der
526   containing a 2048 bit RSA private key and a matching self-signed
527   certificate stored in the file /etc/ipsec.d/certs/selfCert.der
528   is automatically generated by calling the function
529
530   ipsec scepclient --out pkcs1 --out cert-self
531
532   scepclient was written by Jan Hutter and Martin Willi, students
533   at the University of Applied Sciences in Rapperswil, Switzerland.
534
535
536 strongswan-2.5.4
537 ----------------
538
539 - the current extension of the PKCS#7 framework introduced
540   a parsing error in PKCS#7 wrapped X.509 certificates that are
541   e.g. transmitted by Windows XP when multi-level CAs are used.
542   the parsing syntax has been fixed.
543
544 - added a patch by Gerald Richter which tolerates multiple occurrences
545   of the ipsec0 interface when using KLIPS.
546
547
548 strongswan-2.5.3
549 ----------------
550
551 - with gawk-3.1.4 the word "default2 has become a protected
552   keyword for use in switch statements and cannot be used any
553   more in the strongSwan scripts. This problem has been
554   solved by renaming "default" to "defaults" and "setdefault"
555   in the scripts _confread and auto, respectively.
556
557 - introduced the parameter leftsendcert with the values
558
559   always|yes (the default, always send a cert)
560   ifasked    (send the cert only upon a cert request)
561   never|no   (never send a cert, used for raw RSA keys and
562               self-signed certs) 
563
564 - fixed the initialization of the ESP key length to a default of
565   128 bits in the case that the peer does not send a key length
566    attribute for AES encryption.
567
568 - applied Herbert Xu's uniqueIDs patch
569
570 - applied Herbert Xu's CLOEXEC patches
571
572
573 strongswan-2.5.2
574 ----------------
575
576 - CRLs can now be cached also in the case when the issuer's
577   certificate does not contain a subjectKeyIdentifier field.
578   In that case the subjectKeyIdentifier is computed by pluto as the
579   160 bit SHA-1 hash of the issuer's public key in compliance
580   with section 4.2.1.2 of RFC 3280.
581
582 - Fixed a bug introduced by strongswan-2.5.1 which eliminated
583   not only multiple Quick Modes of a given connection but also
584   multiple connections between two security gateways.
585
586
587 strongswan-2.5.1
588 ----------------
589
590 - Under the native IPsec of the Linux 2.6 kernel, a %trap eroute
591   installed either by setting auto=route in ipsec.conf or by
592   a connection put into hold, generates an XFRM_AQUIRE event
593   for each packet that wants to use the not-yet exisiting
594   tunnel. Up to now each XFRM_AQUIRE event led to an entry in
595   the Quick Mode queue, causing multiple IPsec SA to be
596   established in rapid succession. Starting with strongswan-2.5.1
597   only a single IPsec SA is established per host-pair connection.
598
599 - Right after loading the PKCS#11 module, all smartcard slots are
600   searched for certificates. The result can be viewed using
601   the command
602
603     ipsec auto --listcards
604
605   The certificate objects found in the slots are numbered
606   starting with #1, #2, etc. This position number can be used to address
607   certificates (leftcert=%smartcard) and keys (: PIN %smartcard)
608   in ipsec.conf and ipsec.secrets, respectively:
609
610     %smartcard      (selects object #1)
611     %smartcard#1    (selects object #1)
612     %smartcard#3    (selects object #3)
613
614   As an alternative the existing retrieval scheme can be used:
615
616     %smartcard:45   (selects object with id=45)
617     %smartcard0     (selects first object in slot 0)
618     %smartcard4:45  (selects object in slot 4 with id=45)
619
620 - Depending on the settings of CKA_SIGN and CKA_DECRYPT
621   private key flags either C_Sign() or C_Decrypt() is used
622   to generate a signature.
623
624 - The output buffer length parameter siglen in C_Sign()
625   is now initialized to the actual size of the output
626   buffer prior to the function call. This fixes the
627   CKR_BUFFER_TOO_SMALL error that could occur when using
628   the OpenSC PKCS#11 module.
629
630 - Changed the initialization of the PKCS#11 CK_MECHANISM in
631   C_SignInit() to mech  = { CKM_RSA_PKCS, NULL_PTR, 0 }.
632
633 - Refactored the RSA public/private key code and transferred it
634   from keys.c to the new pkcs1.c file as a preparatory step
635   towards the release of the SCEP client.
636
637
638 strongswan-2.5.0
639 ----------------
640
641 - The loading of a PKCS#11 smartcard library module during
642   runtime does not require OpenSC library functions any more
643   because the corresponding code has been integrated into
644   smartcard.c. Also the RSAREF pkcs11 header files have been
645   included in a newly created pluto/rsaref directory so that
646   no external include path has to be defined any longer.
647
648 - A long-awaited feature has been implemented at last:
649   The local caching of CRLs fetched via HTTP or LDAP, activated
650   by the parameter cachecrls=yes in the config setup section
651   of ipsec.conf. The dynamically fetched CRLs are stored under
652   a unique file name containing the issuer's subjectKeyID
653   in /etc/ipsec.d/crls.
654   
655 - Applied a one-line patch courtesy of Michael Richardson
656   from the Openswan project which fixes the kernel-oops
657   in KLIPS when an snmp daemon is running on the same box.
658
659
660 strongswan-2.4.4
661 ----------------
662
663 - Eliminated null length CRL distribution point strings.
664
665 - Fixed a trust path evaluation bug introduced with 2.4.3
666
667
668 strongswan-2.4.3
669 ----------------
670
671 - Improved the joint OCSP / CRL revocation policy.
672   OCSP responses have precedence over CRL entries.
673
674 - Introduced support of CRLv2 reason codes.
675
676 - Fixed a bug with key-pad equipped readers which caused
677   pluto to prompt for the pin via the console when the first
678   occasion to enter the pin via the key-pad was missed.
679
680 - When pluto is built with LDAP_V3 enabled, the library
681   liblber required by newer versions of openldap is now
682   included.
683
684
685 strongswan-2.4.2
686 ----------------
687
688 - Added the _updown_espmark template which requires all
689   incoming ESP traffic to be marked with a default mark
690   value of 50.
691   
692 - Introduced the pkcs11keepstate parameter in the config setup
693   section of ipsec.conf. With pkcs11keepstate=yes the PKCS#11
694   session and login states are kept as long as possible during 
695   the lifetime of pluto. This means that a PIN entry via a key
696   pad has to be done only once.
697
698 - Introduced the pkcs11module parameter in the config setup
699   section of ipsec.conf which specifies the PKCS#11 module
700   to be used with smart cards. Example:
701   
702     pkcs11module=/usr/lib/pkcs11/opensc-pkcs11.lo
703   
704 - Added support of smartcard readers equipped with a PIN pad.
705
706 - Added patch by Jay Pfeifer which detects when netkey
707   modules have been statically built into the Linux 2.6 kernel.
708
709 - Added two patches by Herbert Xu. The first uses ip xfrm
710   instead of setkey to flush the IPsec policy database. The
711   second sets the optional flag in inbound IPComp SAs only.
712     
713 - Applied Ulrich Weber's patch which fixes an interoperability
714   problem between native IPsec and KLIPS systems caused by
715   setting the replay window to 32 instead of 0 for ipcomp.
716
717
718 strongswan-2.4.1
719 ----------------
720
721 - Fixed a bug which caused an unwanted Mode Config request
722   to be initiated in the case where "right" was used to denote
723   the local side in ipsec.conf and "left" the remote side,
724   contrary to the recommendation that "right" be remote and
725   "left" be"local".
726
727
728 strongswan-2.4.0a
729 -----------------
730
731 - updated Vendor ID to strongSwan-2.4.0
732
733 - updated copyright statement to include David Buechi and
734   Michael Meier
735   
736   
737 strongswan-2.4.0
738 ----------------
739
740 - strongSwan now communicates with attached smartcards and
741   USB crypto tokens via the standardized PKCS #11 interface.
742   By default the OpenSC library from www.opensc.org is used
743   but any other PKCS#11 library could be dynamically linked.
744   strongSwan's PKCS#11 API was implemented by David Buechi
745   and Michael Meier, both graduates of the Zurich University
746   of Applied Sciences in Winterthur, Switzerland.
747
748 - When a %trap eroute is triggered by an outgoing IP packet
749   then the native IPsec stack of the Linux 2.6 kernel [often/
750   always?] returns an XFRM_ACQUIRE message with an undefined
751   protocol family field and the connection setup fails.
752   As a workaround IPv4 (AF_INET) is now assumed.
753   
754 - the results of the UML test scenarios are now enhanced 
755   with block diagrams of the virtual network topology used
756   in a particular test. 
757
758
759 strongswan-2.3.2
760 ----------------
761
762 - fixed IV used to decrypt informational messages.
763   This bug was introduced with Mode Config functionality.
764  
765 - fixed NCP Vendor ID.
766
767 - undid one of Ulrich Weber's maximum udp size patches
768   because it caused a segmentation fault with NAT-ed
769   Delete SA messages.
770   
771 - added UML scenarios wildcards and attr-cert which
772   demonstrate the implementation of IPsec policies based
773   on wildcard parameters contained in Distinguished Names and
774   on X.509 attribute certificates, respectively.
775
776
777 strongswan-2.3.1
778 ----------------
779
780 - Added basic Mode Config functionality
781
782 - Added Mathieu Lafon's patch which upgrades the status of
783   the NAT-Traversal implementation to RFC 3947.
784  
785 - The _startklips script now also loads the xfrm4_tunnel
786   module.
787   
788 - Added Ulrich Weber's netlink replay window size and
789   maximum udp size patches.
790
791 - UML testing now uses the Linux 2.6.10 UML kernel by default.
792    
793
794 strongswan-2.3.0
795 ----------------
796
797 - Eric Marchionni and Patrik Rayo, both recent graduates from
798   the Zuercher Hochschule Winterthur in Switzerland, created a
799   User-Mode-Linux test setup for strongSwan. For more details
800   please read the INSTALL and README documents in the testing
801   subdirectory.
802
803 - Full support of group attributes based on X.509 attribute
804   certificates. Attribute certificates can be generated 
805   using the openac facility. For more details see
806    
807   man ipsec_openac.
808  
809   The group attributes can be used in connection definitions
810   in order to give IPsec access to specific user groups.
811   This is done with the new parameter left|rightgroups as in
812   
813   rightgroups="Research, Sales"
814
815   giving access to users possessing the group attributes
816   Research or Sales, only.
817
818 - In Quick Mode clients with subnet mask /32 are now
819   coded as IP_V4_ADDRESS or IP_V6_ADDRESS. This should 
820   fix rekeying problems with the SafeNet/SoftRemote and NCP
821   Secure Entry Clients.
822
823 - Changed the defaults of the ikelifetime and keylife parameters
824   to 3h and 1h, respectively. The maximum allowable values are
825   now both set to 24 h.
826
827 - Suppressed notification wars between two IPsec peers that
828   could e.g. be triggered by incorrect ISAKMP encryption.
829
830 - Public RSA keys can now have identical IDs if either the
831   issuing CA or the serial number is different. The serial
832   number of a certificate is now shown by the command
833   
834   ipsec auto --listpubkeys
835
836
837 strongswan-2.2.2
838 ----------------
839
840 - Added Tuomo Soini's sourceip feature which allows a strongSwan
841   roadwarrior to use a fixed Virtual IP (see README section 2.6)
842   and reduces the well-known four tunnel case on VPN gateways to
843   a single tunnel definition (see README section 2.4).
844
845 - Fixed a bug occuring with NAT-Traversal enabled when the responder
846   suddenly turns initiator and the initiator cannot find a matching
847   connection because of the floated IKE port 4500.
848   
849 - Removed misleading ipsec verify command from barf.
850
851 - Running under the native IP stack, ipsec --version now shows
852   the Linux kernel version (courtesy to the Openswan project).
853
854
855 strongswan-2.2.1
856 ----------------
857
858 - Introduced the ipsec auto --listalgs monitoring command which lists
859   all currently registered IKE and ESP algorithms.
860
861 - Fixed a bug in the ESP algorithm selection occuring when the strict flag
862   is set and the first proposed transform does not match.
863   
864 - Fixed another deadlock in the use of the lock_certs_and_keys() mutex,
865   occuring when a smartcard is present.
866
867 - Prevented that a superseded Phase1 state can trigger a DPD_TIMEOUT event.
868   
869 - Fixed the printing of the notification names (null)
870
871 - Applied another of Herbert Xu's Netlink patches.
872
873
874 strongswan-2.2.0
875 ----------------
876
877 - Support of Dead Peer Detection. The connection parameter
878
879     dpdaction=clear|hold
880      
881   activates DPD for the given connection.
882
883 - The default Opportunistic Encryption (OE) policy groups are not
884   automatically included anymore. Those wishing to activate OE can include
885   the policy group with the following statement in ipsec.conf:
886   
887     include /etc/ipsec.d/examples/oe.conf
888   
889   The default for [right|left]rsasigkey is now set to %cert.
890
891 - strongSwan now has a Vendor ID of its own which can be activated
892   using the compile option VENDORID
893
894 - Applied Herbert Xu's patch which sets the compression algorithm correctly.
895
896 - Applied Herbert Xu's patch fixing an ESPINUDP problem
897
898 - Applied Herbert Xu's patch setting source/destination port numbers.
899
900 - Reapplied one of Herbert Xu's NAT-Traversal patches which got
901   lost during the migration from SuperFreeS/WAN.
902   
903 - Fixed a deadlock in the use of the lock_certs_and_keys() mutex.
904
905 - Fixed the unsharing of alg parameters when instantiating group
906   connection.
907   
908
909 strongswan-2.1.5
910 ----------------
911
912 - Thomas Walpuski made me aware of a potential DoS attack via
913   a PKCS#7-wrapped certificate bundle which could overwrite valid CA
914   certificates in Pluto's authority certificate store. This vulnerability
915   was fixed by establishing trust in CA candidate certificates up to a
916   trusted root CA prior to insertion into Pluto's chained list.
917
918 - replaced the --assign option by the -v option in the auto awk script
919   in order to make it run with mawk under debian/woody.
920
921
922 strongswan-2.1.4
923 ----------------
924
925 - Split of the status information between ipsec auto  --status (concise)
926   and ipsec auto --statusall (verbose). Both commands can be used with
927   an optional connection selector:
928
929     ipsec auto --status[all] <connection_name>
930
931 - Added the description of X.509 related features to the ipsec_auto(8)
932   man page.
933
934 - Hardened the ASN.1 parser in debug mode, especially the printing
935   of malformed distinguished names.
936
937 - The size of an RSA public key received in a certificate is now restricted to
938
939     512 bits <= modulus length <= 8192 bits.
940
941 - Fixed the debug mode enumeration.
942
943
944 strongswan-2.1.3
945 ----------------
946
947 - Fixed another PKCS#7 vulnerability which could lead to an
948   endless loop while following the X.509 trust chain.
949   
950
951 strongswan-2.1.2
952 ----------------
953
954 - Fixed the PKCS#7 vulnerability discovered by Thomas Walpuski
955   that accepted end certificates having identical issuer and subject
956   distinguished names in a multi-tier X.509 trust chain.
957   
958
959 strongswan-2.1.1
960 ----------------
961
962 - Removed all remaining references to ipsec_netlink.h in KLIPS.
963
964
965 strongswan-2.1.0
966 ----------------
967
968 - The new "ca" section allows to define the following parameters:
969
970   ca kool
971      cacert=koolCA.pem                   # cacert of kool CA
972      ocspuri=http://ocsp.kool.net:8001   # ocsp server
973      ldapserver=ldap.kool.net            # default ldap server
974      crluri=http://www.kool.net/kool.crl # crl distribution point
975      crluri2="ldap:///O=Kool, C= .."     # crl distribution point #2
976      auto=add                            # add, ignore
977      
978   The ca definitions can be monitored via the command
979   
980      ipsec auto --listcainfos
981
982 - Fixed cosmetic corruption of /proc filesystem by integrating
983   D. Hugh Redelmeier's freeswan-2.06 kernel fixes.
984
985
986 strongswan-2.0.2
987 ----------------
988
989 - Added support for the 818043 NAT-Traversal update of Microsoft's
990   Windows 2000/XP IPsec client which sends an ID_FQDN during Quick Mode.
991   
992 - A symbolic link to libcrypto is now added in the kernel sources 
993   during kernel compilation
994   
995 - Fixed a couple of 64 bit issues (mostly casts to int).
996   Thanks to Ken Bantoft who checked my sources on a 64 bit platform.
997
998 - Replaced s[n]printf() statements in the kernel by ipsec_snprintf().
999   Credits go to D. Hugh Redelmeier, Michael Richardson, and Sam Sgro
1000   of the FreeS/WAN team who solved this problem with the 2.4.25 kernel.
1001
1002
1003 strongswan-2.0.1
1004 ----------------
1005
1006 - an empty ASN.1 SEQUENCE OF or SET OF object (e.g. a subjectAltName
1007   certificate extension which contains no generalName item)  can cause
1008   a pluto crash. This bug has been fixed. Additionally the ASN.1 parser has
1009   been hardened to make it more robust against malformed ASN.1 objects.
1010
1011 - applied Herbert Xu's NAT-T patches which fixes NAT-T under the native
1012   Linux 2.6 IPsec stack.
1013   
1014   
1015 strongswan-2.0.0
1016 ----------------
1017
1018 - based on freeswan-2.04, x509-1.5.3, nat-0.6c, alg-0.8.1rc12