libstrongswan » History » Version 4
« Previous -
Version 4/5
(diff) -
Next » -
Current version
Martin Willi, 05.05.2009 15:15
fixed tables
libstrongswan¶
libstrongswan is the foundation library of the IKEv2 keying daemon. It is the
base of all newer strongSwan components.
Plugins¶
libstrongswan itself also supports plugins to provide modular cryptographic
algorithms, database support or transport protocol implementations. Each plugin
implements the plugin_t interface and registers itself at one of the factories:
credentials | Credential implementations, e.g. certificates or keys. |
crypto | Crypto implementations, e.g. encryption algorithms or hashers. |
database | Database wrappers to access different databases transparently. |
fetcher | Transport helpers to fetch files, e.g. via HTTP/FTP. |
+-------------------------------------+ | libstrongswan +---+ +-----+------+ | | | | aes | | | | +-----+------+ | +-------------+ | | +-----+------+ | | credentials | ----> | p | | curl | | +-------------+ | l | +-----+------+ | +-------------+ <---- | u | +-----+------+ | | crypto | | g | | des | | +-------------+ ----> | i | +-----+------+ | +-------------+ | n | +-----+------+ | | database | <---- | | | fips_prf | | +-------------+ | l | +-----+------+ | +-------------+ ----> | o | +-----+------+ | | fetcher | | a | | gmp | | +-------------+ <---- | d | +-----+------+ | | e | +-----+------+ | | r | | hmac | | | | +-----+------+ | | | +-----+------+ | | | | ... | | +---+ +-----+------+ +-------------------------------------+
Currently libstrongswan ships with the following plugins (see source:src/libstrongswan/plugins):
aes | AES-128/192/256 implementation in software, non-US code. |
des | Single- and Triple-DES implementation in software, non-US code. |
md5 | MD5 hasher software implementation. |
sha1 | SHA1 hasher software implementation. |
sha2 | SHA-256/384/512 hasher software implementation. |
hmac | HMAC implementation to prived MAC/PRF functionality using hashers. |
xcbc | XCBC implementation to prived MAC/PRF functionality using crypters. |
fips_prf | Pseudo random function implementing the FIPS PRF function. |
gmp | Implementation of RSA private/public keys using the GNU Multi Precision library libgmp. |
x509 | Implementation of X509 certificates, CRLs, OCSP and attribute certificates. |
pubkey | Generic public key loader plugin. |
openssl | Wrapper to use OpenSSL to provide crypto services. |
padlock | Experimental plugin to provide hardware accelerated AES/SHA1 on VIA padlock. |
random | Source of random data implemented on top of /dev/(u)random. |
mysql | Database wrapper to access MySQL databases, uses libmysqlcleint_r. |
sqlite | Database wrapper to access SQLite databases, uses libsqlite3. |
curl | Fetching of HTTP and other URLs using libcurl. |
ldap | Fetching from LDAP servers using OpenLDAP. |