Ахат, добрый день!
Среди ваших попыток загрузки engine была, как минимум, одна удачная, но она осталась незамеченной. Давайте разберемся.
Существует два метода загрузки engine в openssl-tool:
1. С использованием конфигурационного файла openssl.cnf
2. При помощи dynamic engine (https://github.com/openssl/openssl/blob … ic-engines)
Как произвести загрузку rtengine с использованием openssl.cnf
1. Указать в openssl.cnf, как минимум, следующие значения:
openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
rtengine = gost_section
[gost_section]
dynamic_path = c:\\test\\openssl_1.1\\rtengine.dll
pkcs11_path = c:\\windows\\system32\\rtpkcs11ecp.dll
# rand_token = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP
default_algorithms = CIPHERS, DIGEST, PKEY
# enable_rand = yes
* Я закомментировал опции rand_token и enable_rand, чтобы openssl-tool с rtengine мог работать и без токена. Если вам из соображений безопасности важно брать энтропию для случайных чисел с токена, так делать не стоит.
* На windows есть проблема с прямыми/обратными слешами. Рабочий вариант (проверил у себя перед рекомендацией) -- использовать по два обратных слеша.
2. Задать переменную окружения OPENSSL_CONF, указывающую на ваш файл openssl.cnf. В пределах одной консоли cmd.exe это делается командой set OPENSSL_CONF=C:\test\openssl_1.1\openssl.cnf
Как произвести загрузку rtengine с использованием dynamic engine
Загрузка осуществляется командой:
> engine dynamic -pre SO_PATH:c:\test\openssl_1.1\rtengine.dll -pre ID:rtengine -pre LIST_ADD:1 -pre LOAD -pre pkcs11_path:rtpkcs11ecp.dll
Загрузка openssl при помощи dynamic engine, пожалуй, имеет смысл только если вы используете openssl-tool как криптокалькулятор (однократно запустили openssl без параметров, и через командный интерфейс зовете доступные команды).
Загрузка rtengine обоими способами сразу (что вы продемонстрировали) не имеет логичного объяснения и на предвещает ничего хорошего.