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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline WilSom  
#1 Оставлено : 3 июля 2017 г. 13:15:14(UTC)
WilSom

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

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

Сказал(а) «Спасибо»: 1 раз
Пытаюсь расшифровать и проверить подпись файла p7s.p7m. Файл подписан моим сертификатом. Файл зашифрован с помощью АРМ КриптоАРМ версии 4. АРМ КриптоАРМ версии 4 его без проблем проверяет и расшифровывает.

Использую код из Samples.CMS.Verify

// Пример проверки подписи в подписанном PKCS#7/CMS сообщении.
Код:
 
byte[] encodedSignedCms = File.ReadAllBytes(filename);

SignedCms signedCms = new SignedCms();

signedCms.Decode(encodedSignedCms);// Получаю исключение "Встречено неверное значение тега ASN"


Побывал считывать и с кодировкой BASE64

Цитата:
Код:
byte[] encodedSignedCms =  Convert.FromBase64String(File.ReadAllText(filename));// Получаю "Входные данные не являются действительной строкой Base-64" 


и удалять первую и последнюю служебную строку (BEGIN/END PKCS7 ENCRYPTED ) из файла p7s.p7m. Результат тот же.

Offline Андрей Писарев  
#2 Оставлено : 3 июля 2017 г. 13:50:26(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Здравствуйте.

Файл необходимо сначала расшифровать, а потом проверять подпись\извлекать подписанные данные.

В приведенном коде нет расшифрования.
Класс SignedCms - отвечает за подписание\проверку, а не за шифрование\расшифровку.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
WilSom оставлено 04.07.2017(UTC)
Offline WilSom  
#3 Оставлено : 4 июля 2017 г. 12:27:11(UTC)
WilSom

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
Здравствуйте.

Файл необходимо сначала расшифровать, а потом проверять подпись\извлекать подписанные данные.

В приведенном коде нет расшифрования.
Класс SignedCms - отвечает за подписание\проверку, а не за шифрование\расшифровку.


Спасибо за ответ!

Попробовал расшифрование из пример Samples.Encrypt.gEncryptFileAgree. В качестве названия ключа расшифровки использую название своего ключа.
Получаю исключение "Чтение после конца потока невозможно." Наверника виной тому, что в тестовом примере в конце данных писали сихропосылку. А у меня её там нету.
Файл зашифрован с помощью КриптоАРМ версии 4. Как расшифрование этот файл?

Код:
 // Открываем ключ получателя.
            CspParameters par = new CspParameters(75, null, DestContainer);
            Gost3410CryptoServiceProvider destCont = new Gost3410CryptoServiceProvider(par);

            // Открываем зашифрованный файл.
            using (FileStream ifs = new FileStream(EncryptedFileName, FileMode.Open, FileAccess.Read))
            {
                // Читаем зашифрованный симметричный ключ.
                BinaryReader br = new BinaryReader(ifs);
                byte[] cek;
                int cekLength = br.ReadInt32();
                cek = br.ReadBytes(cekLength);

                // Читаем синхропосылку
                byte[] iv;
                int ivLength = br.ReadInt32(); //!!! Исключение  "Чтение после конца потока невозможно."
                iv = br.ReadBytes(ivLength);

Отредактировано пользователем 4 июля 2017 г. 14:53:32(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#4 Оставлено : 21 июля 2017 г. 14:32:00(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Здравствуйте.

Цитата:
Файл зашифрован с помощью КриптоАРМ


Расшифровывать используя соответствующий класс EnvelopedCms.

Примеры есть в КриптоПРО.NET SDK
\Program Files (x86)\Crypto Pro\.NET SDK\Examples\simple.zip\CMS\cs\EnvelopedMultipleRecipients.cs
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.