Project

General

Profile

libstrongswan » History » Version 3

Martin Willi, 23.06.2008 09:29
updated libstrongswan plugin list

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