Cryptoface is a cryptographic interface library for unified and simplified access to other cryptographic libraries. It is also a subproject of the ehrCom Communications Project and will serve as the underlying security provider.
The goal of this library is to provide a comprehensive cryptographic suite with flexible implementation selection to implement features such as:
- symmetric cryptographic streams
- asymmetric cryptography to support
- signatures
- key exchange
- key agreement
- data digest / hash
- message authentication codes (ex: HMAC, OMAC)
- certificate processing
- message processing (ex: CMS)
The library is licensed under MIT licensing terms. Please see the included LICENSE file for better details about the project.
Base support library for cryptoface and the gateway interface to cryptoface providers. It contains the code necessary to interact with the providers and the exposed functionality. Currently exposes basic digest functionality.
Test executable exercising the cryptoface interface for simple example / future unit testing.
Lua interface to consume cryptoface. May later be integrated more deeply if selected as a configuration language.
Requires Lua.
Cryptoface provider using BeeCrypt as the underlying implementation. Currently exposes basic digest functionality.
Cryptoface provider using Botan as the underlying implementation. Currently exposes basic digest functionality. Some hashing capabilities not implemented due to interface difference. Digest cloning not available.
Cryptoface provider using Crypto++ as the underlying implementation. Currently exposes basic digest functionality. Some hashing capabilities not implemented due to interface difference. Digest cloning not available.
Cryptoface provider using OpenSSL as the underlying implementation. Currently exposes basic digest functionality.
Cryptoface provider using Mhash as the underlying implementation. Currently exposes basic digest functionality.
Cryptoface provider using Nettle as the underlying implementation. Currently exposes basic digest functionality.
Cryptoface provider using libgcrypt (see gnupg) as the underlying implementation. Currently exposes basic digest functionality.
Cryptoface provider using LibTomCrypt as the underlying implementation. Currently exposes basic digest functionality.
The project is built using CMake and links in 3rd party cryptographic libraries for support.
It has been tested to build using CMake 2.6 on Windows and Linux.
Compiler versions tested:
- gcc 4.5.0 - MinGW - 32-bit Windows
- gcc 4.5.1 - Gentoo Linux - 32-bit and 64-bit
- gcc 4.5.2 - Ubuntu Linux 11.04 - 32-bit and 64-bit
Subproject dependencies:
- cf_beecrypt: BeeCrypt - tested against 4.2.1 (Linux)
- cf_botan: Botan - tested against 1.8 and 1.10 (Linux)
- cf_cryptopp: Crypto++ - tested against 5.6.0 (Linux)
- cf_openssl: OpenSSL - tested against 1.0.0a (Linux)
- cf_mhash: MHash - tested against 0.9.9 (Linux and Windows)
- cf_nettle: Nettle - tested against 2.0 (Linux)
- cf_gcrypt: libgcrypt - tested against 1.4.6 (Linux)
- cg_tomcrypt: LibTomcrypt - tested against 1.17 (Linux)
- luacf: lua 5.1.x