Статус: Новичок
Группы: Участники
Зарегистрирован: 19.11.2019(UTC) Сообщений: 7 Откуда: Иркутск
|
Всеже уточнить. Делаю подпись для в входа в честныйзнак Если создаю файл со сданными Цитата:b5374438-16e6-4f74-a318-87bac08b9dcc и подписываю через csptest Цитата:csptest -sfsign -sign -in d:\temp\doc.txt -out d:\temp\doc_out.txt -my "XXXX" -detached -base64 -add и когда делаю через ваши примеры Код:
String signerName = SertName.Text;
// Исходное сообщение.
String msg = "b5374438-16e6-4f74-a318-87bac08b9dcc";
// Переводим исходное сообщение в массив байтов.
Encoding unicode = Encoding.Unicode;
byte[] msgBytes = unicode.GetBytes(msg);
// Получаем сертификат ключа подписи;
// он будет использоваться для получения
// секретного ключа подписи.
X509Certificate2 signerCert = GetSignerCert(signerName);
byte[] encodedSignature = SignMsg(msgBytes, signerCert);
File.WriteAllBytes(filename_sign, encodedSignature);
// При проверка detached подписи передаем и само сообщение
if (VerifyMsg(msgBytes, encodedSignature))
{
// Console.WriteLine("{0}Сообщение проверено.",
// Environment.NewLine);
}
else
{
// Console.WriteLine("{0}Ошибка при проверке сообщения.",
// Environment.NewLine);
}
EncodeFromFile(filename_sign, filename_sign64);// скопировано из Base64Encode.cs
в функции static byte[] SignMsg(Byte[] msg, X509Certificate2 signerCert) я указал Код:cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly;
Должны быть подписаны одинаково? Даже если к конце обоих подписей есть различие? суммарно байт одинаково. только последние данные 88 байтов разные Просто портал за честныйзнак пишет что подпись через криптопро.net не подходит.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
А утилита проверяет подпись для файла от кода из C#?
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Если заменить на Encoding.UTF8 - то будет проверять)
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Код:
byte[] msgBytes = File.ReadAllBytes("d:\\файл.txt");
File.WriteAllBytes("d:\\файл.txt.p7s", SignMsg(msgBytes, GetSignerCert(), true));
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Цитата:Должны быть подписаны одинаково? Даже если к конце обоих подписей есть различие? суммарно байт одинаково. только последние данные 88 байтов разные Просто портал за честный знак пишет что подпись через криптопро.net не подходит. Отличие последних 88 байтов (88 в base64 или 64 двоичных байт) нормально - каждый раз при вычислении подписи гост выбирается случайное число и из-за этого значение Raw подписи получается разное (одна половина из 64 двоичных байт - как раз это случайное число, другая половина данные полученные при подписании). Если все кроме последних 88 байт совпадает, то формат верный. Проверьте что делаете urlencode при отправке на сервис - без него символы + в записи base64 будут искажены. Отредактировано пользователем 21 ноября 2019 г. 8:18:42(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close