implemented NAT detection for IPv6
[strongswan.git] / ChangeLog
1  strongswan-4.0.3 / R:1235 
2 ===========================
4 fixed rekeying behavior when proposing an inacceptable DH group (INVALID_KE_PAYLOAD)
5 implement proper handling of most simultaneous IKE_SA rekeying cases
6 version bump to 4.0.3
7 implemented proper refcounting using atomic operations
8 implemented IKE_SA rekeying
9         uses ikelifetime, rekeymargin and rekeyfuzz config settings
10         no handling of simultaneus exchanges yet!
11 added possibility to route CHILD_SAs, without to set them up
12         support for auto=route parameter
13         support for ipsec route and ipsec unroute
14         initiating of CHILD and/or IKE_SAs based on kernel acquires
15 reuse an existing IKE_SA to set up additional CHILD_SAs
16 introduced refcounting on policy and connections
17         aren't stored in the IKE_SA anymore, they are queried on the fly
18         are immutable now, allows it to share them
19 policy selection based on traffic selectors, leads to valid lookup results
20         rekeying queries the policy based on its traffic selectors
21 cleanups in kernel interface code
22 added proper traffic selector to string conversion
23 some cleanups here & there
24 X.509 certificate trust path verification
25 added
26 fixed UDP decapsulation by adding inbound bypass policy for send socket
27 updated mixed tests to new charon output
28 corrected DPD entry
29 reenabled module tests for charon
30 fixed bug which erroneously detected KE payload when rekeying
31 added IPsec bypass policy to receiving socket, allows incoming IKE traffic on host2host tunnels when using NAT
32 improved logging on verify errors for some payloads
33 enforcing IKE_SA shutdown, even when transactions are outstanding
34 proper reject of CREATE_CHILD_SA message with KE payload
35 added test cases from NAT team
36 updated all IKEv2 tests to work with new status output
37 added tcpdumpcount function from NATT guys
38 added possibility to mount the strongswan tree into all UMLs
39 added script for installing from shared tree in all UMLs
40 added script to shut down all UMLs properly
41 removed in favour of tests from NAT team
42 fixed CREATE_CHILD_SA transaction dispatching
43 added CHILD_SA states, which allows us to detect further simultaneous transactions
44 reimplemented the buggy message id handling
45 updated some inline docs
46 fixed crypter/signer in/out to conform with standard
47 fixed payload order
48 added message id logging
49 added all currently known notify payload types
50 added policy cache to kernel interface
51         allows refcounting of multiple installed policies
52         finally brings us stable simultaneous rekeying
53 leak detective blanks memory on free & alloc, allows further membug detection
54 code cleanups
55 identification_t.matches() supports multiple wildcard counts
56 identification_t.matches() supports multiple wildcard counts
57 further work done for simultaneous rekeying/delete
58         still some cases which cause trouble
59 fixed compiler warnings in parser when using -O2
60 reenabled check_expiry
61 updated copyright information
62 reimplemented CHILD_SA rekeying & delete
63         no simultanous transaction with CHILD_SAs yet!
64 removed NAT_TRAVERSAL and VIRTUAL_IP compile options
65 removed NAT_TRAVERSAL compile option
66 removed NAT_TRAVERSAL and VIRTUAL_IP compile options
67 added
68 updated NEWS
69 added support for leftprotoport and rightprotoport
70 improved CHILD_SA output for "ipsec statusall"
71 updated whitelist (getprotobynumber)
72 redesigned IKE_SA using a transaction mechanism:
73         removed old state machine
74         reimplemented IKE_SA setup and delete
75         implemented dead peer detection
76         implemented keep-alives
77         a lot of fixes
78         no rekeying yet         
79 fixed compiler warnings
80 made thread ids unsigned again, to avoid negative thread ids on some systems
81 fixed memleak when initiating a connection already up
82 updated leak detective whitelist
83 applied latest NATT patch with some fixes and cleanups
84 test currently without firewall
85 added
86 added
87 added
88 removed
89 removed version information from ipsec.conf
90 log entries start with lowcercase character
91 restored lost IKEv2 packet suppression
92 added USE_LEAK_DETECTIVE option
93 fixed natd_hash memory leak
94 tests with subdirectory structure
95 removed tests
96 introduced subdirectory structure
97 support of cert payloads
98 lowercase log entries
99 distributed by ITA
100 added support of updown parameter
101 generation of default key
102 cosmetics
103 added support of updown parameter
104 version bump to 4.0.2
105 added X.509 trust chain verification
106 version bump to 4.0.2
107 ESP packet size changed
108 fixed bad_proposal_syntax bug
109 updated ingorelist for stroke_keywords.c
110 applied new changes from NATT team
111         DPD only done when no IPsec and IKE traffic processed
112         minor changes here and there
113 some message code cleanups
114 fixed identification_t clone to apply function pointers
115 cleaner error handling on UDP encapsultion sockopt failure
116 added mysterious UDP encapsulation socket option to get encapsulation working
117 fixed BAD_PROPOSAL_SYNTAX vulnerability
118 first merge of NATT code
119 fixed testing build
120 updated for 4.0.1 release
121 updated news for 4.0.1 release
122 fixed whitelist detection
125  strongswan-4.0.1 / R:1144 
126 ===========================
128 fixed whitelist detection
129 reworked function ignore mechanism to not-report whitelist
130   rather than overriding functions
131 fixed execv call args to work when using strictcrl and syslog
132 fixed bug: usage of already freed mem
133 readded local_credential_store
134 added sendcert policy to connection
135 some other cleanups
136 implemented rereadcrls rereadcacerts
137 implemented rereadcrls rereadcacerts
138 implemented rereadcrls rereadcacerts
139 removed local_credential_store
140 fixed SPI when acting as initiator of rekeying
141 fixed SPI when rekeying and deleting CHILD_SAs
142 change key derivation order to fullfill RFC
143 added crl support
144 added listcrls
145 added chunk_equals_or_null()
146 added crl support
147 changed tabs from 8 to 4 spaces
148 added crl support
149 cosmetics
150 cosmetics (space)
151 fixed compilation error
152 updated for release
153 fixed aes code, we support now aes128, aes192, aes256 in IKE
154 added support for "ike" and "esp" keywords
155 fixed bugs in proposal code
156 algorithm selection for charon works now with ipsec.conf
157 a lot of other fixes
158 implemented clean spi allocation behavior when using multiple proposals
159 fixed logleve(l) keyword typo
160 handling of "rekey=no" parameter added
161 changed default algorithms to:
162   ike: aes128-sha-modp2048
163   esp: aes128-sha1, 3des-md5
164 added default CRL directory path
165 added strictcrlpolicy command line argument
166 added option parsing
167 added local CRLs
168 added rekeying parameters
169 corrected some descriptions
170 moved RSA key size constraints to definitions.h
171 fixed down keyword
172 debug and logging improvements
173 support for stroke listcerts|listcacerts|listcrls|listall
174 support for stroke listcerts|listcacerts|listall and left|rightca=
175 gperf creates optimum hash table for stroke keywords
176 using same reqid if a child sa rekeys an existing one
177 NULL string argument is treated as %any
178 add_certificate() now returns pointer to added cert
179 cosmetics
180 single tests now start up faster
181 workaround for peers rekeying at the same time
182 loading lifetime policies from ipsec.conf
183 old child_sa gets deleted after rekeying
184 rekeying almost complete, but:
185         IKE_SA get in an invalid state when both initiate rekeying at the same time,
186 corrected type
187 improved kernel interface logging
188 fixed clone/destroy behavior when not using CAs
189 specifying keysize in bits, as it is required in IKEv2
190 added generic kernel SA algorithm handling, which brings us:
191         aes-128, aes-256, blowfish, des, 3des and null encryption for CHILD_SAs
192 added support for leftsendcert= and left|rightca= parameters
193 discard cert if CA basic constraints flag is not set and warn if cert is not valide
194 added public methods is_ca() and is_valid()
195 changed ASN.1 CONTROL log output to LEVEL2
196 cosmetics
197 removed unused Makefile
198 stroke.h requires libstrongswan/types.h
199 fixed compile warnings when using -Wall
200 further CHILD_SA rekeying work done:
201         creation of a new CHILD_SA on a expire from a kernel works
202         delete of old CHILD_SA still missing
203         some issues when both initiate rekeing 
204 updated INSTALL to conform with autotools
205 added a short HACKING introduction
206 further work for rekeying:
207   get liftimes from policy
208   added new state
209   initiation of rekeying done
210 proposal redone:
211   removed support for AH+ESP proposals
212 proper leak detective hook for realloc
213 excluded pthread_setspecific from leak detective
214 fixed a memleak
215 cosmetics
216 ipv6-host2host scenario added
217 created IPv6 environment
218 job management:
219   moved job code from thread_pool to job, jobs have an "execute" method now
220   added two new jobs: delete_child_sa & rekey_child_sa
221 kernel interface:
222   listens now for ACQUIRE & EXPIRE
223   supports hard and soft lifetimes
224   fires jobs for delete and rekey child sa
225 ike sa manager:
226   can checkout IKE SAs by requid of owned CHILD SAs
227 we have now the infrastructure to do the rekeying... :-)
228 fixed some memleaks/freebugs
229 leak detective works almost usable now (?!)
230 added host2host test for ikev2
231 fixed host-host tunnel traffic selection, host-host works now
232 bug fixed circumventing an assertion in delete_connection when ikev1 is not set
233 minimized prefixed on stroke logger output
234 charon outputs strongSwan version
235 tests with subjectAltNames now
236 fixed event queue for events >36min
237 included charons module tests to build & dist
238 full support of ikev1 and ikev2 connection flags
239 cosmetics in log_status output
240 use of streq
241 added testing files to dist
242   required the use of the "ustar" format to support 
243   filenames longer than 99 chars
244 lookup of private key based on keyid of public key
245 new functions to add certificates and retrieve private and public keys
246 changed log level
247 list ca certificates
248 computation of SHA-1 hash over publicKeyInfo object
249 moved abbreviated thread_id in front of brackets
250 added has_key parameter to log_certificates()
251 log_certificates() now shows keyid and availability of matching private key
252 indented loaded file log entry
253 moved TIMETOA_BUF definition to types.h
254 moved TIMETOA_BUF definition from asn1.h
255 define default CA_CERTIFICATE_DIR
256 load all ca certificates
257 fixed daemon destruction order to prevent
258   crashes on termination
259 fixed memleak when deleting a connection
260 updated todo list
261 policies contain a connections name now
262   used for initiate and delete
263 connections won't get initiated twice anymore
264 deleting of connections is now possible, which allows us to use
265   ipsec update and ipsec reload
266 changed iterator->remove behavior
267 ipsec up|down|route|delete require a connection name
268 stroke now uses constant size string buffer
269 changed to standard connection log output
270 reworked parsing and matching of subjectAltNames
271 added memeq() macro
272 moved timetoa() from asn1.c to types.c
273 corrected type
274 some logging improvements and cosmetics
275 handle IKE_SA setup without a piggy-packed CHILD_SA
276   more IKEv2 conform
277 initiate IKE_SA deletion befor manager destruction
278 improved code of chunk_equals
279 added streq() macro and defined default BUF_LEN
280 typo
281 build gets perl and gperf from configure now
282 moved built sources to maintainer-clean
283 show connection templates in status & statusall
284 don't complain on termination of IKEv1 connections
285 updated ipsec.conf manual to reflect actual state of
286   keyexchange-parameter
287 using hubs instead of switches, which allows us
288   to sniff the traffic from the host system.
289 changed config load strategy:
290   starter loads both connections in charon & pluto,
291   charon ignores anything with keyexchange!=ikev2.
292   pluto needs the same behavior.
293  changed build order to fix build error after distclean
294 load_end_certificate() now loads certificates
295 cosmetics
296 moved definition of generalNames_t to identification.h; initialized subjectKeyID, authKeyID and authKeySerialNumber
297 moved definition of generalNames_t to identification.h
298 corrrected description
299 reimplemented proper IKE SA deletion using a seperate state,
300   should conform now to IKEv2
301 fixed build when using --enable-leak-detective
302 added removed files to svn:ignore
303 fixed bug in pluto/
304 removed perl-generated oid.c/h from svn,
305   added them to "dist" and "distclean"
306 removed lex, yacc and gperf output from svn,
307   added them to "dist" and "distclean"
308 storing release revision in svn property "release-revision", because I forget it all the times
309 fixed ignorelist, should work now
310 added ingorelist for builded files
311 re-added doxygen apidoc, buildable with "make apidoc"
312 added missing ipsec.conf.5 to distribution :-/
313 fixed another typo
314 added missing ipsec.conf ipsec.conf.5
315 existing ipsec.conf won't get overwritten anymore
316 fixed typo in Makefile which corrupted the build
317 applied patch from the NAT-T team fixing several typos
318 applied patch from andreas, which allows certificate listing via stroke
319 added ipsec.conf template and man page back
320 removed old Makefiles
321 added new strongswan KDevelop project & startup hack
322 fixed Revision in changelog fo 4.0.0
323 started ChangeLog
324 simple script for ChangeLog update via "svn log"
325 fixed compliation error using --enable-smartcard
326 added test for ikev1-ikev2 mixed mode
327 added test ikev2 roadwarrior scenario
328 applied andreas's patch
329   logger output improvements
330   testin gupdates
331   and a lot more
332 updated testsuite to autotools
333 added random source ./configure options
334 fixed default-pkcs11 option
335 testcommit
336 fixed errors when --enable-pkcs11
337 added autogen script
338 introduced autotools
339   first working version
340   make dist should work
341   things to do:
342     UML testing!
343     more cleanups
344 fixed build
345 started to rebuild source layout
346 fixed stroke error output to starter
347 using random SPIs now, but without collision checks
348 applied some -W's from strongswan
349 fixed that warnings
350 removed IKEV2 ifdefs
351 applied patch from andreas
352   added charonstart option to config
353   new ikev2 tests for UML
355  strongSwan-4.0.0 / R:967
356 ==========================
358 removed IKEV2 ifdefs
359 applied patch from andreas
360   added charonstart option to config
361   new ikev2 tests for UML
362 applied patch from andreas
363   pem loading
364   secrets file parsing
365   ikev2 testcase
366   some other additions here and there
367 connection termination is handled cleanly by name now
368 fixed bad bug, certs load now cleanly again
369 fixed make install (subdir order)
370 fixed include path
371 added missing script
372 finished initial import of strongswan file tree
373 removed a lot of old and unused stuff
374 moved RFCs from ikev2 into doc dir
375 added missing files for starter
376 applied patch for charon (this time really)
377 import of strongswan-2.7.0
378 applied patch for charon
379 renamed get_block_size of hasher
380 reworked usage of IDs in various states
381 using ID_ANY for any, not NULL as before
382 initiator sends IDr payload in IKE_AUTH when ID unique
383 fixed charon checks
384 using status & statusall
385 patch for 2.7.0 
386 add connection names to connections
387 stroke status / ipsec status shows them
388 added statusall for stroke
389 added status by connection name
390 some tests repaired, more to come
391 fixed spi conversion
392 improved "stroke status" output
393 setup PID file after daemon initilization, to correctly inform
394   starter about daemon startup
395 added separate implementation for connection_store, credential_store, policy_store
396 added folder structure to config
397 credentials are fetched solely on IDs now
398 identification_t supports now almost all id types
399 x509 certificates work with identification_t now
400 fixes here, fixes there
401 fixed doxygen build
402 seperates now in lib and charon
403 library initialization done at a central point (library.c)
404 some leak_detective fixes
405 updated Todos
406 fixed log-to-syslog behavior
407 added patch against strongswan-2.6.4
408 x509 certificate loading with pluto asn1 code
409 x509 needs a lot more attention!
410 renamed some files
411 using asn1 pluto stuff now
412 removed, since we use pluto asn1 stuff
413 leak detective is usable, but does not show static function names
414   a script which gets address via ldd and resolves address via addr2line would be nice
415 fixed a leak in child_sa with new detective ;-)
416 some improvements to new asn1 stuff
417 to be continued
418 fixed bad bugs in kernel interface
419 added some logging info
420 works now much more stable
421 startet importing pluto ASN1 stuff
422 der PKCS#1 key loading works (as it did with der_decoder)
423 split up in libstrong, charon, stroke, testing done
424 new leak detective with malloc hook in library
425   useable, but needs improvements
426 logger_manager has now a single instance per library
427   allows use of loggers from any linking prog
428 a LOT of other things
429 ../svn-commit.tmp
430 added misssing stroke.h
431 improved strokeing
432   down connection
433   status
434 some other tweaks
435 rewrote a lot of RSA stuff
436 done major work for ASN1/decoder
437 allow loading of ASN1 der encoded private keys, public keys and certificates
438 extracting public key from certificates
439 passing certificates from stroke to charon
440 => basic authentication with RSA certificates works!
441 starter work on asn1 with der de/encoder
442 RSA private and public key can load read key from ASN1 DER
443 some other fixes here and there
444 rewrite of logger_manager, uses now one instance per context
445 cleanups for logger here and there
446 removed critical flag check in payload verification (conformance to IKEv2)
447 so thats and theres everywere... ;-)
448 patch for strongswan-2.6.3
449 added charon support for strongswan build process
450 ipsec starter supports charon startup and control
451 removed old diploma thesis scripts
452 some cleanups
453 compatibility to strongswan, Makefile can be called by "make programs"
454   and "make install" (ikev2 patch must be applied to strongswan)
455 first version of stroke control utility
456 moved output to doc/api, since doc is used for other docs now
457 some first documentation in english
458 removed old eclipse project files
459 works quite well now with ipsec.conf & ipsec starter
460 belongs to previous commit ;-)
461 reworked configuration framework completly
462 configuration is now split up in: connections, policies, credentials and daemon config
463 further alloc/free fixes needed!
464 first attempt for connection loading and starting via "stroke"
465 some improvements here and there
466 configuration_manager replaced by configuration_t interface
467 current configuration_manager is now static_configuration (testing)
468 first draft of starter_configuration, which should once interact with ipsec starter (via whack?)
469 some cleanups
470 socket_t uses RAW socket, which allows parallel service of pluto/charon
471 comments and cleanups
472 working policy installation and removal
473 fixed policy setup bug
474 proposal setup implementation begun
475 fixed socket code, so we know on which address we receive traffic
476 AH/ESP setup in kernel is working now!!! :-)))
477 installing of child sa works
478 need correct IP adresses to actually use IPsec
479 new RFCs of IKEv2, IKEv2 algs and IPSec arch added
480 update of IKEv2 clarification document
481 refactored ike proposal
482 uses now proposal_t, wich is also used by child proposals
483 ike key derivation refactored
484 crypter_t api has get_key_size now
485 some other improvements here and there
486 config uses uml hosts alice and bob
487 key derivation for child_sa works
488 some fixes here and there
489 fixed memleaks
490 works with new proposal code
491 still some(!) memleaks
492 fixed alot of bugs in child_proposal
493 near to working state ;-)
494 dead end implementation
496 ... there is a lot more of it, but nothing of interest