On 25.06.2018 00:40, Nikolay Shaplov wrote:
В письме от 24 июня 2018 00:33:01 пользователь Igor Ustinov написал:1. Похоже что для того чтобы нормально задокументировать то какой парамсет когда используется, и как на это влияет CRYPT_PARAMS, нужно строить многомерную таблицу с осями Case(TLS, CMS etc), широнабор/ассим.алгоритм, значение CRYPT_PARAMS, направление шифрования. (Какие-то из осей внутрь поля таблицы можно всосать, но ближе к первой нормальной форме оно вот в такой размерности похоже).Таблицу строить, конечно, можно, но не нужно. Как показало вскрытие, на самом деле всё предельно просто: в большинстве случаев OpenSSL сам знает, какой paramset использовать. Не знает он это в полутора случаях: 1) при зашифровании; 2) при расшифровании голого шифртекста, не сопровождаемого никакой служебной информацией (этот случай считаю за половину, поскольку сильно сомневаюсь, что такая ситуация встречается на практике). В этих полутора случаях используется paramser, указанный в переменной окружения CRYPT_PARAMS, я если она не задана, то tc26-z. Во всех остальных случаях OpenSSL сам знает, какой paramset использовать.Вот "сам знает" у меня как раз и вызывает трепетный ужас. И желание это тайное знание экспортировать из недр энжина... Инженерное изделие не должно вести себя в режиме "оно само", должна быть задокументированная цепочка причин и следствий...
Не понимаю. У тебя же не вызывает трепетный ужас тот факт, что OpenSSL, получив на вход невнятный набор буковок и циферок, сам знает, как его декодировать и как извлекать из декодированной структуры необходимую для расшифрования информацию об использованных алгоритмах и их параметрах. Или когда TLS-клиент и TLS-сервер договорились о номере сайферсьюта, который они будут использовать, и после этого сами знают, какие алгоритмы шифрования, хэширования, подписи использовать. Почему тебя это не пугает? Потому что есть подробные спецификации, что где и как лежит в cms-структуре и что скрывается за данным номером сайфер-сьюта? Так и для ГОСТов они тоже есть.
Но пока что не сейчас...