Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
Расхождение между подписью сделанной в .NetCore и через UI пользователя
Статус: Новичок
Группы: Участники
Зарегистрирован: 23.07.2025(UTC) Сообщений: 2  Сказал(а) «Спасибо»: 1 раз
|
Цитата: public static string CreateDetachedSign(CpX509Certificate2 gostCert, byte[] bytesToHash) { byte[] signature;
var contentInfo = new ContentInfo(bytesToHash); var signedCms = new CpSignedCms(contentInfo, true); CpCmsSigner cmsSigner = new CpCmsSigner(gostCert);
// Опционально добавляем подписанные атрибуты. cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now)); cmsSigner.SignedAttributes.Add(new PkcsSigningCertificateV2(gostCert));
// Вычисляем и кодируем подпись в массив байт. signedCms.ComputeSignature(cmsSigner); signature = signedCms.Encode();
Console.WriteLine($"CMS Sign: {Convert.ToBase64String(signature)}");
// Создаем объект ContentInfo по сообщению. // Это необходимо для создания объекта SignedCms. ContentInfo contentInfoVerify = new ContentInfo(bytesToHash);
// Создаем SignedCms для декодирования и проверки. CpSignedCms signedCmsVerify = new CpSignedCms(contentInfoVerify, true);
// Декодируем подпись signedCmsVerify.Decode(signature);
// Проверяем подпись signedCmsVerify.CheckSignature(false);
File.WriteAllBytes(@"C:\app\Gareev\dataSignedWithDotNet.txt", signature);
return Convert.ToBase64String(signature); } Создаю таким образом подпись. Но созданная через UI подпись 4 кбайта вместо 6 кбайтов созданных через .NET и последняя не валидируется через UI
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,961   Сказал «Спасибо»: 602 раз Поблагодарили: 2342 раз в 1839 постах
|
Здравствуйте.
Информации как обычно, минимум.
Что такое UI? Инструменты КриптоПРО?
Прикладывайте тестовый файл и подпись к нем из .net
byte[] bytesToHash - здесь же файл целиком, надеюсь? Название странное, конечно, выбрано... |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 23.07.2025(UTC) Сообщений: 2  Сказал(а) «Спасибо»: 1 раз
|
Всё верно - "Инструменты КриптоПРО" Исходные данные, файл подписи КриптоПРО, файл подписи через .NET Core в файле  Iskhodnye dannye.zip (5kb) загружен 3 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
|
Автор: Камиль Гареев  Всё верно - "Инструменты КриптоПРО" Исходные данные, файл подписи КриптоПРО, файл подписи через .NET Core в файле  Iskhodnye dannye.zip (5kb) загружен 3 раз(а). Обе приложенные подписи успешно проверяются через тестовый сервис проверки подписи (https://dss.cryptopro.ru/verify/) и через cptools 5.0.12900 (linux).  Protokol_28072025_142714.pdf (81kb) загружен 1 раз(а). Protokol_28072025_142803.pdf (82kb) загружен 1 раз(а). Snimok.PNG (148kb) загружен 3 раз(а).Файл из Libcore больше, так как подпись по умолчанию содержит данные о промежуточном сертификате (узел SignedData->CertificateSet содержит 2 сертификата). Управлять этим поведением можно через свойство IncludeOption. По умолчанию используется значение ExcludeRoot. |
|
 1 пользователь поблагодарил Артём Макаров за этот пост.
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
Расхождение между подписью сделанной в .NetCore и через UI пользователя
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close