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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline orandno  
#1 Оставлено : 12 марта 2026 г. 10:56:15(UTC)
orandno

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

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

Сказал(а) «Спасибо»: 1 раз
Код ниже вызывает исключение на приложенном файле 101_PZ.pdf.sig (84kb) загружен 3 раз(а).
В КриптоПРо все ок. screen.png (48kb) загружен 4 раз(а).

В чем проблема, подскажите пожалуйста?

internal class Program
{
[STAThread]
static void Main(string[] args)
{
// Проверка корректности переданных параметров.
if (args.Length < 1)
{
Console.WriteLine("CMS.Verify <file>");
return;
}

// Загружаем CMS сообщение в память.
string filename = args[0];
byte[] encodedSignedCms = File.ReadAllBytes(filename);

// Объект, в котором будут происходить декодирование и проверка.
SignedCms signedCms = new SignedCms();

// Декодируем сообщение.
signedCms.Decode(encodedSignedCms);//Вызывает исключение{"Встречено неверное значение тега ASN1.\r\n"} System.Security.Cryptography.CryptographicException

}
}
Offline Илья К.А.  
#2 Оставлено : 12 марта 2026 г. 12:10:21(UTC)
Илья К.А.

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте.
Приложенный файл подписи использует BER base64 кодпировку. А метод SignedCms.Decode(Byte[]) ожидает байты CMS/PKCS#7 сообщения, то есть DER.

string b64SignedCms = File.ReadAllText(filename);
byte[] encodedSignedCms = Convert.FromBase64String(b64SignedCms);
SignedCms signedCms = new SignedCms();
signedCms.Decode(encodedSignedCms);

Отредактировано пользователем 12 марта 2026 г. 13:47:43(UTC)  | Причина: Не указана

Offline Андрей *  
#3 Оставлено : 12 марта 2026 г. 13:36:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 615 раз
Поблагодарили: 2381 раз в 1873 постах
Автор: Илья К.А. Перейти к цитате
Здравствуйте.
Приложенный файл подписи использует BER кодпировку. А метод SignedCms.Decode(Byte[]) ожидает байты CMS/PKCS#7 сообщения, то есть DER.

string b64SignedCms = File.ReadAllText(filename);
byte[] encodedSignedCms = Convert.FromBase64String(b64SignedCms);
SignedCms signedCms = new SignedCms();
signedCms.Decode(encodedSignedCms);


Не BER, а base64 в sig-файле,
и внутри base64 - там DER, а не BER.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
orandno оставлено 12.03.2026(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.