- introduced autotools

- first working version
  - make dist should work
  - things to do:
    - UML testing!
    - more cleanups
This commit is contained in:
Martin Willi
2006-05-16 14:24:03 +00:00
parent eedfdfbe6e
commit f2c2d395ff
130 changed files with 1825 additions and 6164 deletions
+56
View File
@@ -0,0 +1,56 @@
/** @mainpage
@section design strongSwans overall design
IKEv1 and IKEv2 is handled in different keying daemons. The ole IKEv1 stuff is
completely handled in pluto, as it was all the times. IKEv2 is handled in the
new keying daemon, which is called #charon.
Daemon control is done over unix sockets. Pluto uses whack, as it did for years.
Charon uses another socket interface, called stroke. Stroke uses another
format as whack and therefore is not compatible to whack. The starter utility,
wich does fast configuration parsing, speaks both the protocols, whack and
stroke. It also handles daemon startup and termination.
Pluto uses starter for some commands, for other it uses the whack utility. To be
as close to pluto as possible, charon has the same split up of commands to
starter and stroke. All commands are wrapped together in the ipsec script, which
allows transparent control of both daemons.
@verbatim
+-----------------------------------------+
| ipsec |
+-----+--------------+---------------+----+
| | |
| | |
| +-----+-----+ |
+-----+----+ | | +-----+----+
| | | starter | | |
| stroke | | | | whack |
| | +---+--+----+ | |
+------+---+ | | +--+-------+
| | | |
+---+------+ | | +------+--+
| | | | | |
| charon +----+ +----+ pluto |
| | | |
+-----+----+ +----+----+
| |
+-----+----+ |
| LSF | |
+-----+----+ |
| |
+-----+----+ +----+----+
| RAW Sock | | UDP/500 |
+----------+ +---------+
@endverbatim
Since IKEv2 uses the same port as IKEv1, both daemons must listen to UDP port
500. Under Linux, there is no clean way to set up two sockets at the same port.
To reslove this problem, charon uses a RAW socket, as they are used in network
sniffers. An installed Linux Socket Filter (LSF) filters out all none-IKEv2
traffic. Pluto receives any IKE message, independant of charons behavior.
Therefore plutos behavior is changed to discard any IKEv2 traffic silently.
To gain some reusability of the code, generic crypto and utility functions are
separeted in a shared library, libstrongswan.
*/
+7
View File
@@ -0,0 +1,7 @@
Known bugs in charon
======================
- intiating the same connection twice makes trouble
- leak_detective gets confused from libpthread (invalid frees)
- installing to many SAs in the kernel at the same time causes troubles. Threading issue?
+57
View File
@@ -0,0 +1,57 @@
Todo-List for charon
======================
+ = done, / = partial, - = todo, ordered by priority
+ private key loading: der, without passphrase
+ load all private keys from ipsec.d/private/ in stroke.c
+ handle leftcert and rightcert in starterstroke.c/stroke.c
+ load specified certs in stroke.c
+ extract public keys from certs
+ public key authentication
+ release for Andreas
+ stroke loglevels
+ stroke up
+ ike_sa_manager checkout_by_hosts
+ stroke down
+ stroke output redirection
+ stroke status
+ libx509
+ new charon build - libstrong?
+ transforms
+ utils (plus host)
+ logger_manager instance in lib
+ leak detective usable for charon and pluto and anything else
+ integrate asn1 parser/oid (asn1/oid)
+ integrate basic PEM loading
+ port x509 stuff
+ doxygen cleanup (charon/lib)
/ useable certificate support
+ more id types (use atodn from pluto)
+ rewrite certificate storage the clean way
- further subjectAltName support
- certificate validation/chaining
- certificate exchange
+ Apply -W's from Makefile.program to charon
- do ipsec status via starter
- add more output to to up/down, somehow...
- stroke status should show configured connections
- stroke loglevel update
- stroke argument parsing via getopts/gperf?
- implement 3DES to load encrypted pem files
- ipsec.secrets parsing
- trapping
- delete notify, when to send?
- notifys on connection setup failure
- create child sa message/rekeying
- new build environment (autotools?)