Я хотел бы использовать XMLDSIG для проверки того, что файл .config не был подделан. Я также хочу иметь возможность проверить цепочку подписи, чтобы я мог доверять подписи .
У меня есть три сертификата в цепочке:
Root CA -> Intermediate Signing CA -> Signing Key
Проверяю, что файл подписан ключом, который выдает промежуточный ЦС.
Я хотел бы сделать это без установки каких-либо сертификатов в хранилище сертификатов Windows пользователя. Это самозаверяющие сертификаты, поэтому не каждый пользователь захочет, чтобы я устанавливал их в своем корневом хранилище. У меня нет проблем с их установкой в моем корневом хранилище.
У меня есть исходные файлы .CER — они включены в блок подписи, и я могу включить их вместе с проверочным кодом. Я могу построить цепочку сертификатов из этого, используя X509ChainPolicy.ExtraStore
.
Если сертификаты не установлены в корневом хранилище, и я проверяю цепочку, то X509Chain.Build
возвращает false
, а в цепочке есть X509ChainStatusFlags.UntrustedRoot
.
Могу ли я добавить доверенные сертификаты только на время этой операции?