Openssl поддерживает несколько криптографических механизмов, одним из которых является механизм Windows CAPI.
Вот результат openssl engine
на моей машине. CAPI является последним:
(dynamic) Dynamic engine loading support
(4758cca) IBM 4758 CCA hardware engine support
(aep) Aep hardware engine support
(atalla) Atalla hardware engine support
(cswift) CryptoSwift hardware engine support
(chil) CHIL hardware engine support
(nuron) Nuron hardware engine support
(sureware) SureWare hardware engine support
(ubsec) UBSEC hardware engine support
(padlock) VIA PadLock (no-RNG, no-ACE)
(gost) Reference implementation of GOST engine
(capi) CryptoAPI ENGINE
Страница man OpenSSL engine (3) показывает пример кода о том, как выбрать движок в вашем коде. Сборка OpenSSL может быть немного сложнее. Вот пакетный файл, который будет производить статическую сборку со всеми статически связанными движками. Не лучший выбор для развертывания, но наличие одного файла освобождает вас от DLL Hell, пока вы работаете с деталями CAPI.
@echo off
setlocal
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
::Get the current directory name in the variable builddir
for /f "delims=\" %%a in ("%cd%") do set builddir=%%~nxa
::Configure build variable
perl Configure VC-WIN32 enable-static-engine --prefix=.
::Generate makefile
call ms\do_nasm.bat
::Build
nmake -f ms\nt.mak
::Test
nmake -f ms\nt.mak test
::Install
nmake -f ms\nt.mak install
endlocal