Добрый день!
Может кто решал вопрос.
Как "привязать" данные для расшифровки к сертификату. Так как данные приходят без сертификата, а если есть сертификат на клиенте, то как расшифровать?
МенеджерКриптографии.Расшифровать(Данные);
Ошибка при получении свойства сертификата (0x00000000)
Сталкивался с подобным, приходили подписанные данные, но подпись была без указания сертификата подписанта. Т.е. автоматом было непонятно, какой сертификат нужно использовать. Разбирал ASN-1, т.к. там и подпись-то проверять не нужно было - сами исходные данные подписанные только вытянуть. А Вам либо разбирать файл подписи и собирать назад с указанием получателя шифровки - чтобы МенеджерКриптографии сработал. Либо посмотреть - может через COM можно криптопровайдеру объяснить, чего от него требуется (CADESCOM например). Криптопровайдер какой используется при шифровании/дешифровании?
(3) На уровне двоичных данных. Нужно знать, какая структура у зашифрованного файла, когда все идет в одном конверте - и зашифрованные данные, и получатели. И воспроизвести эту же структуру.
(4) Структуру файлов можно посмотреть в АСН-1 декодере https://www.lapo.it/asn1js/ Взять файл, в котором только шифровка без указания получателей, и файл, в котором шифровка вместе с получателем - сравнить структуру. Почитать про DER/BER кодировку - чтобы понятно было, как декодер эти файлы разобрал. И потом зная, как устроена кодировка, собрать конверт шифровка+получатель.
https://cpdn.cryptopro.ru/content/csp39/html/group___capicom_example_CapicomEnvelop.html Вот тут смотрю при шифровании делают EnvelopedData.Recipients.Add Recipient
При расшифровке делают EnvelopedData.Decrypt(Message)
Надежда маленькая, но может быть если перед EnvelopedData.Decrypt добавить в EnvelopedData получателя - то вдруг прокатит. С двоичными данными наверно дольше ковыряться - чтобы нужный конверт собрать, который МенеджерКриптографии сможет расшифровать.
CADESCOM (с КриптоПро идет) и CAPICOM (в старых виндах был встроен) - интерфейсы аналогичные https://cpdn.cryptopro.ru/content/cades/cadescom.html
(5) Это я вообще к тому, что есть вариант без менеджера криптографии попробовать - с помощью COM интерфейса, который предоставляет КриптоПрошный CADESCOM.