В письме от 18 июня 2018 12:15:59 пользователь Dmitry Belyavsky написал:
> > > Кажется, необязательный. По идее брать будем id-tc26-gost-28147-param-Z
> > > с точностью до моих ошибок.
> >
> > Я могу без доп. проверок написать в доке, что это значение по умолчанию?
> Можешь. И оговорить, что оно не такое для ГОСТа, используемого в
> шифронаборе GOST2001-GOST89-GOST89, и если умолчание не такое в каких-то
> ещё случаях, то это скорее всего баг и об этом надо сообщать мне.
На этой фразе мой мозг пожелал всем всего хорошего и сломался... O_o
То есть интуитивно ясно, что для GOST2001 должны браться старые paramset'ы. Но
как именно это запряжено в лошадь -- совершенно непонятно...
Давай я попробую разобрать по use-case'ам... Поправь меня если что...
Мы желаем зашифровать что-то несимметричным кюлчем, для этого мы откуда-то
берем симметричный ключ, шифруем им текст используя GOST89, и потом этот ключ
шифруем публичной частью несимметричного ключа получателя...
Так вот, если мы указали CRYPT_PARAMS в конфиге в явном виде, то при
шифровании GOST89 будет использован тот который мы указали, и никаких
сусликов...
Если мы ничего не указали в качестве CRYPT_PARAMS, то если мы несимметричное
шифрование будем делать при помощи GOST2001, то в качестве ParamSet'а для
GOST89 будет использован id-Gost28147-89-CryptoPro-A-ParamSet.
Если же несимметричное шифрование осуществляется при помощи GOST2012, любой ее
из размерностей, то в качестве ParamSet для GOST89 ,будет взят id-tc26-
gost-28147-param-Z
Я правильно все это понимаю?
Еще я понял, что не понимаю смысла вот этого абзаца
> Value of this parameter can be either short name, defined in OpenSSL
> `obj_dat.h` header file or numeric representation of OID, defined in
> [RFC 4357][1].
Можешь раскрыть его смысл?