Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не работают элептические кривые :( #458

Open
MrKribel opened this issue May 17, 2024 · 3 comments
Open

Не работают элептические кривые :( #458

MrKribel opened this issue May 17, 2024 · 3 comments

Comments

@MrKribel
Copy link

Что я делаю не так?

  1. Клонируем репозиторий с исходным кодом проекта
    git clone https://github.com/gost-engine/engine.git

  2. Переходим в директорию с проектом
    cd engine

  3. Инициализируем и обновляем подмодули
    git submodule update --init

  4. Создаем новую директорию для сборки проекта
    mkdir build

  5. Переходим в директорию сборки
    cd build

  6. Устанавливаем пакеты разработчика для OpenSSL, которые могут понадобиться для сборки проекта
    sudo apt-get install libssl-dev

  7. Запускаем CMake с указанием типа сборки (Release) и использованием родительской директории (..) в качестве корневого каталога проекта
    cmake -DCMAKE_BUILD_TYPE=Release ..

  8. Компилируем проект с использованием типа сборки Release
    cmake --build . --config Release

  9. Устанавливаем скомпилированный проект
    sudo cmake --build . --target install --config Release

  10. Проверяем версию OpenSSL и список доступных движков
    openssl version -e

  11. Выводим список файлов в директории /usr/lib/x86_64-linux-gnu/engines-3 и видим библиотеку gost.so
    ls /usr/lib/x86_64-linux-gnu/engines-3

Для использования сертификатов OpenSSL с алгоритмами ГОСТ необходимо также отредактировать файл конфигурации /etc/ssl/openssl.cnf:

Добавляем в начало файла:

openssl_conf = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
gost = gost_section

[gost_section]
engine_id = gost
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/gost.so
default_algorithms = ALL

Проверяем:

openssl ciphers -v 'GOST2001-GOST89-GOST89'

TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256   TLSv1.3 Kx=any      Au=any   Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(128)            Mac=AEAD
GOST2001-GOST89-GOST89         TLSv1   Kx=GOST     Au=GOST01 Enc=GOST89(256)
user@pc:~/engine/build$ openssl genpkey -algorithm GOST2012 -pkeyopt digest:gost2012 -out private.key
Error initializing GOST2012 context
40A7C2668F7F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../crypto/evp/evp_fetch.c:349:Global default library context, Algorithm (GOST2012 : 0), Properties (<null>)
user@pc:~/engine/build$ openssl ecparam -genkey -name gost2012_256 -out privatekey_gost2012_256.pem
unable to generate key
40877D4B7E7F0000:error:0800008D:elliptic curve routines:group_new_from_name:invalid curve:../crypto/ec/ec_lib.c:1490:
user@pc:~/engine/build$ openssl genpkey -algorithm gost2012-256 -out private_key_gost2012_256.pem
Error initializing gost2012-256 context
40E73C8B747F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../crypto/evp/evp_fetch.c:349:Global default library context, Algorithm (gost2012-256 : 0), Properties (<null>)
user@pc:~/engine/build$ openssl ecparam -name gost2012_256 -genkey -out private_key_gost2012_256.pem
unable to generate key
40B7CDB0597F0000:error:0800008D:elliptic curve routines:group_new_from_name:invalid curve:../crypto/ec/ec_lib.c:1490:
user@pc:~/engine/build$ openssl genpkey -paramfile /etc/ssl/gost/gost2012_256.param -out private_key_gost2012_256.pem
Can't open parameter file /etc/ssl/gost/gost2012_256.param
40E730FA4F7F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(/etc/ssl/gost/gost2012_256.param, r)
40E730FA4F7F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
@vt-alt
Copy link
Member

vt-alt commented May 17, 2024

Куда заинсталлировался новый gost.so?

@MrKribel
Copy link
Author

MrKribel commented May 17, 2024

Куда заинсталлировался новый gost.so?

user@pc:~$ ls /usr/lib/x86_64-linux-gnu/engines-3

afalg.so gost.so loader_attic.so padlock.so

@0x0000-dot-ru
Copy link

Вы неверно задали алгоритм. В инструкции указаны все доступные параметры (раздел Generation of private key) https://github.com/gost-engine/engine/blob/master/README.gost

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants