Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline alex.master  
#1 Оставлено : 1 октября 2024 г. 20:59:04(UTC)
alex.master

Статус: Новичок

Группы: Участники
Зарегистрирован: 07.06.2023(UTC)
Сообщений: 4

Добрый вечер.

Суть проблемы - есть файл PKS#7 SignedData:

ContentInfo SEQUENCE (2 elem)
contentType ContentType OBJECT IDENTIFIER 1.2.840.113549.1.7.2 signedData (PKCS #7)
content [0] (1 elem)
SignedData SEQUENCE (5 elem)
version CMSVersion INTEGER 1

Открытый ключ отправителя - вот:
Минцифры России
--|- Центральный банк Российской Федерации
-------|- Организация

SignedCms.CheckSignature выдаёт "Неправльный хеш", а EnvelopedCms.Decode - "Недопустимый тип криптографического сообщения"
Перелопатил все примеры из .Net SDK, результат нулевой.

Подскажите, плс, как расшифровать этот файл при помощи КриптоПро .Net API?

P.S. В утилите "Инструменты КриптоПро" проверку подписи этот файл проходит.

Отредактировано пользователем 1 октября 2024 г. 21:01:22(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 1 октября 2024 г. 21:48:33(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,297
Мужчина
Российская Федерация

Сказал «Спасибо»: 549 раз
Поблагодарили: 2201 раз в 1717 постах
Здравствуйте.
Цитата:

SignedCms.CheckSignature выдаёт "Неправльный хеш"



Неправильно выполняется проверка,
код не прошу показывать, все примеры есть в SDK к КриптоПРО .NET.

Смотреть на правильность чтения файла (как бинарного)
+ тип подписи (присоединенная, а проверяется как отсоединенная).

Техническую поддержку оказываем тут
Наша база знаний
Offline alex.master  
#3 Оставлено : 2 октября 2024 г. 10:43:15(UTC)
alex.master

Статус: Новичок

Группы: Участники
Зарегистрирован: 07.06.2023(UTC)
Сообщений: 4

Собственно, все примеры, как я уже писал, перелопатил.

Вот код, зашифрованный файл бинарный, НЕ Base64.

byte[] encodedEnvelopedCms = File.ReadAllBytes(@"data\file.csv.enc.sig");

// 1. Пробовал так
//X509Certificate2Collection store = new X509Certificate2Collection(signer);
//store.Add(cbank);
//store.Add(digit);

// 2. И так
//ContentInfo ci = new ContentInfo(encodedEnvelopedCms);
//SignedCms signedCms = new SignedCms(ci, false);

// 3. И так
SignedCms signedCms = new SignedCms();

signedCms.Decode(encodedEnvelopedCms);

signedCms.CheckHash(); // Это работает.

// 4. И так
// signedCms.CheckSignature(false);
// signedCms.CheckSignature(true);
signedCms.CheckSignature(store, false); // Exception Неправильный хеш


Не работает.
Offline Санчир Момолдаев  
#4 Оставлено : 4 октября 2024 г. 18:06:30(UTC)
Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,182
Российская Федерация

Сказал(а) «Спасибо»: 99 раз
Поблагодарили: 271 раз в 252 постах
Направьте файл в рамках обращения на портале технической поддержки. Посмотрим
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.