Статус: Участник
Группы: Участники
Зарегистрирован: 30.03.2021(UTC) Сообщений: 13
|
Автор: Андрей * Вы сделали RAW, а необходимо CMS. Спасибо!
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.03.2021(UTC) Сообщений: 13
|
Здравствуйте Если в данной теме, изначально посвященной другому вопросу, обсуждать данный вопрос некорректно, могу создать новую С присоединенной CMS-подписью все работает. Также необходимо формировать открепленную. Отвечающая требованиям подпись формируется с помощью утилиты csptest следующей командой: Цитата:csptest -sfsign -sign -in "C:\temp\Test.txt" -out "C:\temp\Out.txt" -my "Значение атрибута CN" -base64 -detached -add В рабочей программе для создания прикрепленной CMS-подписи в SignedCms сделал параметр Detached true вместо false, но получившаяся подпись получилась длиннее, чем сделанная с помощью csptest, и не соответствует требования Далее открыл пример DetachedSignature.cs и запустил его, добавив лишь кодирование получившегося результата в base64: Convert.ToBase64String(encodedSignature). Результат аналогичный. Код программы: https://bitbucket.org/pr...gn/src/master/Program.cs Подпись из csptest: https://bitbucket.org/pr...c/master/CSPTestSign.txtПодпись из программы: https://bitbucket.org/pr...c/master/ProgramSign.txtМожете пожалуйста дать наводку, что нужно сделать, что формируемая в программе подпись соответствовала подписи, формируемой в CSPTest?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
в коде на c# - вкладывается вся цепочка в cms, в csptest - только сертификат подписанта. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.03.2021(UTC) Сообщений: 13
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Автор: anton26 Особенность ГОСТ-алгоритма - значение подписи всегда разное. Проверить просто - несколько раз подписать и сверить файлы. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
+ дата\время подписания, в подписанных атрибутах меняется. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2021(UTC) Сообщений: 24
|
Автор: Андрей * Вы сделали RAW, а необходимо CMS.
Добрый день! Вы написали, что тем кодом получена RAW подпись. Я решил им воспользоваться, но не получил её. Сам код в сокращённом виде (я поменял X509IncludeOption.EndCertOnly на X509IncludeOption.None): Код:
private static byte[] SignRaw(byte[] dataToSign, X509Certificate2 signerCert)
{
ContentInfo contentInfo = new ContentInfo(dataToSign);
SignedCms signedCms = new SignedCms(contentInfo, true);
CmsSigner cmsSigner = new CmsSigner(signerCert);
cmsSigner.IncludeOption = X509IncludeOption.None;
signedCms.ComputeSignature(cmsSigner);
return signedCms.Encode();
}
Что нужно в нём изменить для получения RAW? Или это невозможно таким методом?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Автор: ZiCold Автор: Андрей * Вы сделали RAW, а необходимо CMS.
Добрый день! Вы написали, что тем кодом получена RAW подпись. Я решил им воспользоваться, но не получил её. Сам код в сокращённом виде (я поменял X509IncludeOption.EndCertOnly на X509IncludeOption.None): Код:
private static byte[] SignRaw(byte[] dataToSign, X509Certificate2 signerCert)
{
ContentInfo contentInfo = new ContentInfo(dataToSign);
SignedCms signedCms = new SignedCms(contentInfo, true);
CmsSigner cmsSigner = new CmsSigner(signerCert);
cmsSigner.IncludeOption = X509IncludeOption.None;
signedCms.ComputeSignature(cmsSigner);
return signedCms.Encode();
}
Что нужно в нём изменить для получения RAW? Или это невозможно таким методом? SignedCms делает cms, raw получается через утилиты, КриптоПро.Net (csp provider) или p\invoke + низкоуровневые процедуры. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
в том сообщении ошибка, там не raw, а cms |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close