A decent C++ library with PKI functionalities is missing. Erpiko wants to fill the gap and provide an easy to use C++ interfaces.
- X509 Certificate
- CMP over HTTP (RFC-4210, RFC-6712) (partial)
- SIM (RFC-4683)
- PKCS#7 (partial)
- PKCS#10
- PKCS#12
- S/MIME sigining, verification, encryption and decryption
- TSA (request, response, and verification)
- Random number generator
- Message Digest (SHA1, SHA2, SHA512)
- Cipher (AES, RC2, RC4, CAST5, 3DES, DES)
- Crypto functions with CUDA when available and enabled (WIP)
- PKCS#11 client (which means your Erpiko can use PKCS#11 devices as backend)
Erpiko uses LibreSSL as it's backend
CUDA support is automatically enabled by default if available. To disable CUDA, pass DISABLE_CUDA
when
initializing CMAKE, eg: cmake -DDISABLE_CUDA=1 ..
. If CUDA is not found in your system then it is not
needed to disable CUDA.
- cmake
- autoconf
- automake
- libtool
This apply to Linux & macOS build. Please consult to appveyor.yml
for CI/CD Appveyor build
./scripts/build-deps-unix.sh # Download and compile the dependencies (LibreSSL, catch and patches) for GNU/Linux
./scripts/build-deps-mac.sh # Download and compile the dependencies (LibreSSL, catch and patches) for Mac
./scripts/build.sh # Compile the erpiko
For local Windows build you need to install Microsoft Visual Studio 2015 update 3, chocolatey, Ubuntu for Windows (or Cygwin) and install package in requirements above and git, unzip, wget, ca-certificates, build-essential. Check scripts\var.bat to set Platform and Configuration (Debug or Release)
scripts\install.bat # Download and compile the dependencies (LibreSSL, catch and patches) for GNU/Linux
scripts\build.bat # Build erpiko
scripts\test.bat # Test erpiko
scripts\create-pkg.bat # Create compilation of lib and headers
Since Erpiko uses LibreSSL, it isn't ABI compatible with OpenSSL. If you work with an application that require a library that depends on OpenSSL, you need to relink the library to LibreSSL. Please see also issue #6.
Erpiko is BSD.
Erpiko development was initiated under a sponsorship granted by the Ministry of Communication and Informatics of Indonesia, then it is continued by the Erpiko contributors.