[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [openssl-gost] Re: [openssl-gost] Параметры конфига



On Fri, 15 Jun 2018 21:31:14 +0300
Nikolay Shaplov <dhyan@nataraj.su> wrote:

> В письме от 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 должно хватить всем, но совершенно не понятно чего

Разновидностей API, которые по историческим причинам есть в OpenSSL
для подключения алгоритмов. Там на самом деле есть битовая маска и
константы, соответствующие битикам.

Для RSA и DSA отдельные API остались с тех времен, когда
универсального PKEY не было. Хотя может они не там, а в PKCS#10
остались и для корректной работы pkcs10 engine, через которую сейчас
работают большинство аппаратных токенов, их нужно иметь отдельно.

Отдельные классы для PKEY и PKEY_ASN1
Хэнсон сделал по вполне очевидной причине - легко себе представить
engine, например аппаратный криптографический токен, который внутри
себя реализует собственно алгоритм с открытым ключом, но поддержкой
форматов хранения не заморачивается. Выдает наружу голые байтики
подписи и открытого ключа.  

Ну то есть реальная нужда в этом параметре у нас возникнет тогда, когда
мы захотим загрузить одновременно две engine для поддержки 
ГОСТ-овских алгоритмов
- одну для токена, хранящего закрытые ключи,  другую для реализации
 на  CPU всего, что токен не поддерживает.

И да, если ты это документируешь по-английски и пропихнешь в openssl,
то пользователи всего мира тебе будут благодарны. Хотя у меня (по моему
собственному опыту документирования недокументированных API в OpenSSL
есть большие сомнения, что пропихнется).

В общем, OpenSSL внутренне нелогична, и крайне хреново документирована.
Но gost engine в этом как-то не очень виновата.

р--

Attachment: pgpK_0gN2c1oF.pgp
Description: OpenPGP digital signature