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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline ZiCold  
#1 Оставлено : 12 января 2022 г. 6:44:48(UTC)
ZiCold

Статус: Участник

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

Добрый день! Использую библиотеку CoreFx для проверки подписи.
Проверка происходит кодом:
Код:
ContentInfo contentInfo = new ContentInfo(msg);

//  Создаем SignedCms для декодирования и проверки.
SignedCms signedCms = new SignedCms(contentInfo, true);

//  Декодируем подпись
signedCms.Decode(encodedSignature);

signedCms.CheckSignature(true);


У меня есть два файла для проверки. Первый был подписан при помощи кода Diadoc, второй при помощи утилиты CryptCp.
Код Диадок создаёт подпись и проверяет её через Crypt32.dll (если я правильно понял).
CoreFx подключен через nuget package, согласно его инструкции на гитхабе.
CryptCp подписывает при помощи команды -signf

Первый файл декодируется и проверяется успешно.
Второй файл выдаёт ошибку на этапе Decode:
Код:
System.Security.Cryptography.CryptographicException: 'ASN1 corrupted data.'


Как такое может быть и куда смотреть? Файлы могу приложить в принципе.
Offline TolikTipaTut1  
#2 Оставлено : 12 января 2022 г. 9:10:11(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.

Отредактировано пользователем 12 января 2022 г. 10:06:17(UTC)  | Причина: Не указана

Offline Андрей *  
#3 Оставлено : 12 января 2022 г. 10:40:29(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: ZiCold Перейти к цитате

Второй файл выдаёт ошибку на этапе Decode:
Код:
System.Security.Cryptography.CryptographicException: 'ASN1 corrupted data.'


Как такое может быть и куда смотреть? Файлы могу приложить в принципе.


Когда нет информации, что получается от утилит\сервисов в файле, такое может быть почти с каждым, но не всеми...
Кто-то идёт немного дальше, сравнивает размеры или осмеливается открывать в каких-то редакторах и видит... или asn.1 или base64... делает выводы и сам декодирует, получая нужный вид (asn1), прежде чем отправлять в Decode поток байт...
Техническую поддержку оказываем тут
Наша база знаний
Offline ZiCold  
#4 Оставлено : 22 января 2022 г. 11:24:00(UTC)
ZiCold

Статус: Участник

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

Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?
Offline ZiCold  
#5 Оставлено : 22 января 2022 г. 11:28:49(UTC)
ZiCold

Статус: Участник

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

Автор: Андрей * Перейти к цитате
или asn.1 или base64... делает выводы и сам декодирует, получая нужный вид (asn1), прежде чем отправлять в Decode поток байт...


Есть какой-то способ это делать программно?
Offline TolikTipaTut1  
#6 Оставлено : 22 января 2022 г. 11:30:10(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?


Ну вы exception отловили и попробовали иначе сделать
Offline ZiCold  
#7 Оставлено : 22 января 2022 г. 11:49:47(UTC)
ZiCold

Статус: Участник

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

Автор: TolikTipaTut1 Перейти к цитате
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?


Ну вы exception отловили и попробовали иначе сделать


Я пытаюсь поменять кодирование
var docBytes = System.IO.File.ReadAllBytes(Path.Combine(dir, docName));
var docStr64 = Convert.ToBase64String(docBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);

Но ошибка та же самая: ASN1 corrupted data

Что еще можно сделать? Меня удивляет, что проблема именно с файлом, который подписала утилита КриптоПро CryptCp, а не сторонняя программа.
Offline TolikTipaTut1  
#8 Оставлено : 22 января 2022 г. 11:55:19(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?


Ну вы exception отловили и попробовали иначе сделать


Я пытаюсь поменять кодирование
var docBytes = System.IO.File.ReadAllBytes(Path.Combine(dir, docName));
var docStr64 = Convert.ToBase64String(docBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);

Но ошибка та же самая: ASN1 corrupted data

Что еще можно сделать? Меня удивляет, что проблема именно с файлом, который подписала утилита КриптоПро CryptCp, а не сторонняя программа.


Файл пришлите
Offline Андрей *  
#9 Оставлено : 22 января 2022 г. 12:14:02(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?


Ну вы exception отловили и попробовали иначе сделать


Я пытаюсь поменять кодирование
var docBytes = System.IO.File.ReadAllBytes(Path.Combine(dir, docName));
var docStr64 = Convert.ToBase64String(docBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);

Но ошибка та же самая: ASN1 corrupted data

Что еще можно сделать? Меня удивляет, что проблема именно с файлом, который подписала утилита КриптоПро CryptCp, а не сторонняя программа.


И что же делает написанное?
Техническую поддержку оказываем тут
Наша база знаний
Offline TolikTipaTut1  
#10 Оставлено : 22 января 2022 г. 12:15:46(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: Андрей * Перейти к цитате
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Автор: ZiCold Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Проблема может быть в том, что одна подпись в "формате" DER, a вторая - в Base64.


Хорошо, а как можно это проверить программно? Например, запустить метод с другими параметрами?


Ну вы exception отловили и попробовали иначе сделать


Я пытаюсь поменять кодирование
var docBytes = System.IO.File.ReadAllBytes(Path.Combine(dir, docName));
var docStr64 = Convert.ToBase64String(docBytes);
var docBytes64 = Encoding.ASCII.GetBytes(docStr64);

Но ошибка та же самая: ASN1 corrupted data

Что еще можно сделать? Меня удивляет, что проблема именно с файлом, который подписала утилита КриптоПро CryptCp, а не сторонняя программа.


И что же делает написанное?


А, лол, я только внимание обратил на encoding.getbytes
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.