MSSPI - Micro Security Support Provider Interface

November 26, 2025 ยท View on GitHub

version windows linux macos ios mingw

A cross-platform C library that provides a high-level interface for TLS/DTLS operations using Windows SChannel or compatible implementations.

Features

  • 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

Documentation

Real-World Usage

MSSPI powers TLS/SSL implementations in various projects across different ecosystems:

ProjectLanguagePurposeRepository
Chromium-GostC++Browser cryptography with GOST supportdeemru/Chromium-Gost
stunnel-msspiCEnhanced SSL tunnelingCryptoPro/stunnel-msspi
go-msspiGoGo crypto framework integrationdeemru/go-msspi
Qt OpenSSL BackendC++Qt framework SSL backenddeemru/qtbase

Key Integration Patterns

  • 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

Building

Windows

Builds a DLL with certificate parsing support:

cd build_windows
make.bat

This creates msspi.dll with full functionality including certificate parsing.

Linux

Build static libraries:

cd build_linux
make

Available targets:

  • make or make all - Build all static libraries
  • make static - Build basic library (libmsspi.a)
  • make static-capix - Build with CAPIX support (libmsspi-capix.a) for CryptoPro GOST cryptography
  • make shared - Build shared library (libmsspi.so)
  • make clean - Clean build artifacts

Build options:

  • MSSPI_USE_MSSPI_CERT - Include certificate parsing functionality
  • MSSPI_USE_CAPIX - Enable Crypto API Proxy (CAPIX) for deferred loading of cryptographic libraries

License

See LICENSE file for details.

Contributing

Contributions are welcome! Please read the documentation and ensure your changes maintain API compatibility.