Project

General

Profile

libstrongswan » History » Version 4

Martin Willi, 05.05.2009 15:15
fixed tables

1 3 Martin Willi
h1. libstrongswan
2 1 Martin Willi
3 4 Martin Willi
libstrongswan is the foundation library of the IKEv2 keying daemon. It is the
4 4 Martin Willi
base of all newer strongSwan components. 
5 1 Martin Willi
6 1 Martin Willi
h2. Plugins
7 1 Martin Willi
8 4 Martin Willi
libstrongswan itself also supports plugins to provide modular cryptographic 
9 4 Martin Willi
algorithms, database support or transport protocol implementations. Each plugin 
10 4 Martin Willi
implements the _plugin_t_ interface and registers itself at one of the factories:
11 4 Martin Willi
12 4 Martin Willi
|credentials |Credential implementations, e.g. certificates or keys.|
13 4 Martin Willi
|crypto      |Crypto implementations, e.g. encryption algorithms or hashers.|
14 4 Martin Willi
|database    |Database wrappers to access different databases transparently.|
15 4 Martin Willi
|fetcher     |Transport helpers to fetch files, e.g. via HTTP/FTP.|
16 4 Martin Willi
17 3 Martin Willi
<pre>
18 1 Martin Willi
  +-------------------------------------+
19 1 Martin Willi
  | libstrongswan           +---+ +-----+------+
20 1 Martin Willi
  |                         |   | |    aes     |
21 1 Martin Willi
  |                         |   | +-----+------+
22 1 Martin Willi
  | +-------------+         |   | +-----+------+
23 1 Martin Willi
  | | credentials |  ---->  | p | |    curl    |
24 1 Martin Willi
  | +-------------+         | l | +-----+------+
25 1 Martin Willi
  | +-------------+  <----  | u | +-----+------+
26 1 Martin Willi
  | | crypto      |         | g | |    des     |
27 1 Martin Willi
  | +-------------+  ---->  | i | +-----+------+
28 1 Martin Willi
  | +-------------+         | n | +-----+------+
29 1 Martin Willi
  | | database    |  <----  |   | |  fips_prf  |
30 1 Martin Willi
  | +-------------+         | l | +-----+------+
31 1 Martin Willi
  | +-------------+  ---->  | o | +-----+------+
32 1 Martin Willi
  | | fetcher     |         | a | |    gmp     |
33 1 Martin Willi
  | +-------------+  <----  | d | +-----+------+
34 1 Martin Willi
  |                         | e | +-----+------+
35 1 Martin Willi
  |                         | r | |    hmac    |
36 1 Martin Willi
  |                         |   | +-----+------+
37 1 Martin Willi
  |                         |   | +-----+------+
38 1 Martin Willi
  |                         |   | |    ...     |
39 1 Martin Willi
  |                         +---+ +-----+------+
40 1 Martin Willi
  +-------------------------------------+
41 1 Martin Willi
</pre>
42 4 Martin Willi
43 4 Martin Willi
Currently libstrongswan ships with the following plugins (see source:src/libstrongswan/plugins):
44 4 Martin Willi
45 4 Martin Willi
|aes|AES-128/192/256 implementation in software, non-US code.|
46 4 Martin Willi
|des|Single- and Triple-DES implementation in software, non-US code.|
47 4 Martin Willi
|md5|MD5 hasher software implementation.|
48 4 Martin Willi
|sha1|SHA1 hasher software implementation.|
49 4 Martin Willi
|sha2|SHA-256/384/512 hasher software implementation.|
50 4 Martin Willi
|hmac|HMAC implementation to prived MAC/PRF functionality using hashers.|
51 4 Martin Willi
|xcbc|XCBC implementation to prived MAC/PRF functionality using crypters.|
52 4 Martin Willi
|fips_prf|Pseudo random function implementing the FIPS PRF function.|
53 4 Martin Willi
|gmp|Implementation of RSA private/public keys using the GNU Multi Precision library libgmp.|
54 4 Martin Willi
|x509|Implementation of X509 certificates, CRLs, OCSP and attribute certificates.|
55 4 Martin Willi
|pubkey|Generic public key loader plugin.|
56 4 Martin Willi
|openssl|Wrapper to use OpenSSL to provide crypto services.|
57 4 Martin Willi
|padlock|Experimental plugin to provide hardware accelerated AES/SHA1 on VIA padlock.|
58 4 Martin Willi
|random|Source of random data implemented on top of _/dev/(u)random_.|
59 4 Martin Willi
|mysql|Database wrapper to access MySQL databases, uses libmysqlcleint_r.|
60 4 Martin Willi
|sqlite|Database wrapper to access SQLite databases, uses libsqlite3.|
61 4 Martin Willi
|curl|Fetching of HTTP and other URLs using libcurl.|
62 4 Martin Willi
|ldap|Fetching from LDAP servers using OpenLDAP.|