Skip to content

Не получается включить GOST ENGINE в openssl (3.6.0). #486

@kaperusov

Description

@kaperusov

Приветствую.

Подскажите, почему у меня не получается включить движок в openssl (3.6.0).

root@a95203518eec:/usr/local/src# openssl version -a
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)
built on: Mon Oct 20 13:19:05 2025 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib64/engines-3"
MODULESDIR: "/usr/local/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x40000000029c6fbf:0x00000000bc000e00:0x0000000000000000:0x0000000000000000

Выполняю сборку engine из тега 3.0.3:

export OPENSSL_ROOT_DIR="/usr/local"
export OPENSSL_ENGINES_DIR="${OPENSSL_ROOT_DIR}/lib64/engines-3"
export GOST_ENGINE_VERSION=3.0.3
git clone --branch v${GOST_ENGINE_VERSION} --single-branch https://github.com/gost-engine/engine.git \
  && cd engine \
  && git submodule update --init \
  && mkdir build \
  && cd build \
  && cmake \
        -DCMAKE_BUILD_TYPE=Release \
        -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} \
        -DOPENSSL_LIBRARIES=${OPENSSL_ROOT_DIR}/lib64 \
        -DOPENSSL_ENGINES_DIR=${OPENSSL_ENGINES_DIR} \
        .. \
  && cmake --build . --target install --config Release \
  && cd bin \
  && cp gostsum gost12sum /usr/local/bin

По примеру из файла https://github.com/gost-engine/engine/blob/master/example.conf
добавил конфигурацию в /etc/ssl/openssl.cnf:

root@a95203518eec:/usr/local/src# tail -n 15 /etc/ssl/openssl.cnf

# OpenSSL default section
openssl_conf = openssl_def

[openssl_def]
engines = engine_section

# Engine section
[engine_section]
gost = gost_section

[gost_section]
engine_id = gost
dynamic_path = /usr/local/lib64/engines-3/gost.so
default_algorithms = ALL

С виду, всё хорошо:

root@a95203518eec:/usr/local/src#
root@a95203518eec:/usr/local/src# ls -l /usr/local/lib64/engines-3/gost.so
-rw-r--r-- 1 root root 848888 Oct 20 13:33 /usr/local/lib64/engines-3/gost.so
root@a95203518eec:/usr/local/src#
root@a95203518eec:/usr/local/src# ldd /usr/local/lib64/engines-3/gost.so
        linux-vdso.so.1 (0x00007ffeffea7000)
        libcrypto.so.3 => /usr/local/lib64/libcrypto.so.3 (0x00007f85ad856000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f85ad660000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f85adf51000)
root@a95203518eec:/usr/local/src#
root@a95203518eec:/usr/local/src# openssl engine -vvvv -t gost
(gost) Reference implementation of GOST engine
     [ available ]
     CRYPT_PARAMS: OID of default GOST 28147-89 parameters
          (input flags): STRING
     PBE_PARAMS: Shortname of default digest alg for PBE
          (input flags): STRING
     GOST_PK_FORMAT: Private key format params
          (input flags): STRING

Тем ни менее, в списке шифров openssl, я не вижу ни одного GOST алгоритма.

root@a95203518eec:/usr/local/src# openssl ciphers | tr ':' '\n' | grep -i gost

Когда-то я уже делал подобным образом сборку движка под openssl 1.1.1g и там, вроде бы, этих действий хватало,
чтобы всё работало.

Дополнительная информация:

root@a95203518eec:/usr/local/src# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.1
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@a95203518eec:/usr/local/src# uname -a
Linux a95203518eec 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64 GNU/Linux

openssl, я также собирал из исходников. Может там чего нужно было указать? Делал всё по-простому: ./Configure && make -j$(nproc) all && make install.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions