В письме от 14 июня 2018 17:57:03 пользователь Dmitry Belyavsky написал:
> >
> > Скажи пожалуйста, какие еще значения может принимать параметр
> > default_algorithms, помимо ALL? Это список идентификаторов через запятую
> > или
> > как? Где-то помимо исходников этот список представлен?
> *) default_algorithms option in ENGINE config module. This allows things
> like:
> default_algorithms = ALL
> default_algorithms = RSA, DSA, RAND, CIPHERS, DIGESTS
>
> Для gost-engine это всегда ALL. Нам нужны, как правило, и шифры, и хеш, и
> подпись. Ну или ничего не нужно.
Нашел место которое ты цитируешь, но понимания это не добавило...
CIPHERS, DIGESTS -- это как я понимаю классы алгоритмов.
RSA, DSA -- конкретные алгоритмы...
RAND -- наверное тоже какой-то класс чего-то...
Понятно что ALL должно хватить всем, но совершенно не понятно чего именно эта
опция должна настраивать... Писать в документации, "а вот это такая магия,
просто пишите = ALL" как-то совсем не хорошо...
Дополнительный гуглежь принес во-первых криптопрошную инструкцию
https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/189/0/openssl-enginetls-gost-v-apache-n-linuxunix
В которой рекомендуется
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
Я проверял на генерации ключей GOST2012, с этими настройками оно работает.
Мало того, методом научного тыка сократил до
default_algorithms = PKEY
И генерация ключей продолжила работать... (Наверное так и надо) Но понимания
того что это за слова такие, мне не принесло...
Далее нашелся man от непонятно чего (что за openssltool?)
https://www.mirbsd.org/htman/i386/man1/openssltool.htm
В котором говориться:
The command default_algorithms sets the default algorithms
an ENGINE will supply using the functions
ENGINE_set_default_string()
Что ясности не вносит... Но читая эти строки я бы ожидал, что именно в этом
месте я например мог бы оторвать GOST2012 на уровне конфигурации OpenSSL'я
сказав что можно только GOST94
По ветке ENGINE_set_default_string там совсем про какие-то потроха OpenSSL'я
мне не понятные...
Короче нет понимания... Очень жаль что нет документации OpenSSL'я на этот
счет... Но это не повод не иметь ее самим :-)
> > Схожий вопрос про CRYPT_PARAMS... Насколько я понимаю id-Gost28147-89-
> > CryptoPro-A-ParamSet -- это идентификатор из RFC 4357 8.1
> > Все перечисленные в RFC идентификаторы можно туда подставлять, или только
> > некоторые?
> Все из этого раздела. Но вообще брать надо не их, а более позднее значение
> id-tc26-gost-28147-param-Z.
Так, я правильно понимаю, что этот идентификатор ParamSet'ов фактически
определен в RFC 7836 в приложении С. Или есть какое-то более фундаментальное
доступное иностранцам место где оно определяется?
И видимо во всех примерах конфига следует указывать именно его?
Каков статус CryptoPro-A-ParamSet и его друзей из 4357? Они объявлены
depricated? Есть ли смысл их упоминать в комментариях к примеру конфига, или
только в тексте описывающем конфигурацию?
> > И к стати, это обязательный параметр? Какой param-set будет использовал
> > по-умолчанию, если никакого не указывать?
> Кажется, необязательный. По идее брать будем id-tc26-gost-28147-param-Z с
> точностью до моих ошибок.
Я могу без доп. проверок написать в доке, что это значение по умолчанию?
--
Do code for fun.Attachment:
signature.asc
Description: This is a digitally signed message part.