Closed agievich closed 3 years ago
В некоторых стандартах в каскадах Signed-then-Enveloped компонент EnvelopedData.encryptedContentInfo.contentInfo
все-таки принимает значение id-SignedData
.
Тем не менее, назначение EnvelopedData.encryptedContentInfo.contentInfo = id-data
представляется целесообразным. Аргументы:
Реализовано в #68.
В контейнере
EnvelopedData
тип конвертуемых данных должен принимать либо значениеid-data
, либо значениеid-signedData
:Данное правило несколько снижает издержки при обработке каскадов Signed-then-Enveloped. Подписанные данные можно не погружать в контейнер
EncapsulatedContentInfo
вместе сid-signedData
, а зашифровывать напрямую. При этом сокращается объем зашифровываемых данных, что может быть полезно на практике.К сожалению, на практике ситуация запутывается. Делое в том, что для работы с контейнерами в основном используется библиотека OpenSSL, и в этой библиотеке отсутствует налаженный доступ к полю
EnvelopedData.encryptedContentInfo.contentInfo
. Программисты ошибаются, думая что для установки типа конвертуемых данных следует использовать функциюCMS_set1_eContentType
. Это не так. Функция изменяет полеeContentType
в контейнереEncapsulatedContentInfo
, опоясывающемEnvelopedData
.Предлагается изменить правило: