A cross-platform C library that provides a high-level interface for TLS/DTLS operations using Windows SChannel or compatible implementations.
- OpenSSL-compatible API: Core functions are interchangeable with OpenSSL counterparts
- Cross-platform: Windows, Linux, macOS, iOS, and MinGW support
- TLS/DTLS support: TLS 1.0-1.3 and DTLS 1.2 for secure connections
- CAPIX support: Crypto API Proxy - deferred loading of cryptographic libraries without compile-time linking
- Smart card support: PIN caching and hardware token integration
- MSSPI - Core TLS/DTLS functions
- MSSPI_CERT - Certificate parsing functions
- CHANGELOG - Version history and changes
MSSPI powers TLS/SSL implementations in various projects across different ecosystems:
| Project | Language | Purpose | Repository |
|---|---|---|---|
| Chromium-Gost | C++ | Browser cryptography with GOST support | deemru/Chromium-Gost |
| stunnel-msspi | C | Enhanced SSL tunneling | CryptoPro/stunnel-msspi |
| go-msspi | Go | Go crypto framework integration | deemru/go-msspi |
| Qt OpenSSL Backend | C++ | Qt framework SSL backend | deemru/qtbase |
- Browser Integration: Seamless TLS handshake switching between different crypto libraries
- Tunneling: Enhanced SSL/TLS proxying with Windows cryptography
- Language Bindings: Native TLS support for Go applications
- Framework Backends: Drop-in SSL backend for Qt applications
Builds a DLL with certificate parsing support:
cd build_windows
make.batThis creates msspi.dll with full functionality including certificate parsing.
Build static libraries:
cd build_linux
makeAvailable targets:
makeormake all- Build all static librariesmake static- Build basic library (libmsspi.a)make static-capix- Build with CAPIX support (libmsspi-capix.a) for CryptoPro GOST cryptographymake shared- Build shared library (libmsspi.so)make clean- Clean build artifacts
Build options:
MSSPI_USE_MSSPI_CERT- Include certificate parsing functionalityMSSPI_USE_CAPIX- Enable Crypto API Proxy (CAPIX) for deferred loading of cryptographic libraries
See LICENSE file for details.
Contributions are welcome! Please read the documentation and ensure your changes maintain API compatibility.