Статус: Новичок
Группы: Участники
Зарегистрирован: 05.09.2014(UTC) Сообщений: 1
|
Добрый день. Нам написать обмен данными с ПФР. Согласно их распоряжению "шифрованные данные передаются в виде структуры Contentlnfo со структурой EnvelopedData в качестве содержимого" соответсвенно, мы шифруем данные следующим образом Public Function encrypt_msg(msg As Byte(), recipientCert As System.Security.Cryptography.X509Certificates.X509Certificate2) As Byte() 'envelopedData - 1.2.840.113549.1.7.3 http://msdn.microsoft.co.../2cfes5ff(v=vs.110).aspx Dim contentInfo As ContentInfo = New ContentInfo(New System.Security.Cryptography.Oid("1.2.840.113549.1.7.3"), msg) Dim envelopedCms As EnvelopedCms = New EnvelopedCms(contentInfo) Dim recipient As CmsRecipient = New CmsRecipient(recipientCert) envelopedCms.Encrypt(recipient) Return envelopedCms.Encode() End Function но при расшифровке данные не соответствуют исходным Public Function decrypt_msg(msg As Byte()) As Byte() Dim envelopedCms As EnvelopedCms = New EnvelopedCms() envelopedCms.Decode(msg) envelopedCms.Decrypt() Return envelopedCms.ContentInfo.Content End Function Подскажите, пожалуйста - где грабли? Либо как то иначе надо расшифровывать сообщение, либо при шифрации передавать в ContentInfo некую структуру (EnvelopedData)?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,395 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 718 раз в 622 постах
|
посмотрите примеры на cpdn |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.06.2015(UTC) Сообщений: 28
Сказал(а) «Спасибо»: 7 раз
|
Здравствуйте!
Подскажите, удалось ли решить проблему?
у меня шифрование таким методом(EnvelopedData) теряет часть данных.
Не могу разобраться в чем проблема...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,357 Сказал «Спасибо»: 550 раз Поблагодарили: 2217 раз в 1731 постах
|
Здравствуйте.
Без кода никто не скажет, где ошибка. Что Вам мешает скачать и посмотреть примеры? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.06.2015(UTC) Сообщений: 28
Сказал(а) «Спасибо»: 7 раз
|
Смотрел я примеры. там описывается простое шифрование. Мне нужно с EnvelopedData. Понимаю, что сложного ничего нет, все должно нормально шифроваться. Но почему то часть данных теряется если добавляю структуру. Дешифрация происходит успешно, но данные отображаются не все. Крипто-АРМ тоже расшифровывает, но отображает не все данные. Без структуры все шифруется полностью, но нам нужно именно со структурой. Вот пример. Это я кстати и без примеров написал. public byte[] EncryptData(byte[] b, X509Certificate2 Cert) { ContentInfo ContInf = new ContentInfo(new Oid("1.2.840.113549.1.7.3"), b); EnvelopedCms envCMS = new EnvelopedCms(SubjectIdentifierType.IssuerAndSerialNumber, ContInf, new AlgorithmIdentifier(new Oid("1.2.643.2.2.21"), 512)); CmsRecipient rec = new CmsRecipient(SubjectIdentifierType.IssuerAndSerialNumber, Cert); envCMS.Encrypt(rec); byte[] encb = envCMS.Encode(); return encb; } Отредактировано пользователем 20 октября 2016 г. 9:20:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 146 Поблагодарили: 31 раз в 30 постах
|
Добрый день! Код:
new ContentInfo(new Oid("1.2.840.113549.1.7.3"), b);
EnvelopedCms не кодирует данные в соответствие с указанным типом. Он считает, что они уже правильно закодированы. Поэтому, если в b лежит не Enveloped PKCS7 (1.2.840.113549.1.7.3), получится Ваш результат. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.06.2015(UTC) Сообщений: 28
Сказал(а) «Спасибо»: 7 раз
|
Спасибо!
Оказалось что данный атрибут совершенно ненужно было использовать.
Нам изначально неверно поставили задачу!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close