Статус: Новичок
Группы: Участники
Зарегистрирован: 22.01.2014(UTC) Сообщений: 4 Откуда: Краснодар
|
Добрый день! Пытаюсь наладить онлайн взаимодействие с Вымпелкомом, уткнулся в формировании и проверки подписи. В спецификации Вымпелкома написано, работы с ЭСП выполняется по алгоритму ГОСТ Р 34.11-94 и ГОСТ Р 34.10-2001. Написал код, собственно там ни чего нового, есть функция подписи и проверки, но, ни у Вымпелкома, ни у меня, подпись не проходит. Если подписываю и проверяю своей ключевой парой все работает великолепно. Проверял данные, одно и то же. В чем может быть причина? Код ниже. Код: /// <summary>Подписать сообщение</summary>
/// <param name="message">подписываемое сообщение</param>
/// <param name="certificate">сертификат закрытого ключа</param>
/// <returns>результат кодированный в base64</returns>
public static string Sign(string message, X509Certificate2 certificate)
{
using (var gost = new Gost3411CryptoServiceProvider())
{
var sign = new GostSignatureFormatter(certificate.PrivateKey);
var buff = Encoding.UTF8.GetBytes(message);
var hash = gost.ComputeHash(buff);
return Convert.ToBase64String(sign.CreateSignature(hash));
}
}
Код: /// <summary>Проверка подписи</summary>
/// <param name="message">проверяемое сообщение</param>
/// <param name="sign">подпись сообщения</param>
/// <param name="certificate">сертификат открытого ключа</param>
public static void Verify(string message, string sign, X509Certificate2 certificate)
{
using (var gost = new Gost3411CryptoServiceProvider())
{
var gostSign = new GostSignatureDeformatter(certificate.PublicKey.Key);
var buff = Encoding.UTF8.GetBytes(message);
// Создаем объект для хеширования.
var hash = gost.ComputeHash(buff);
byte[] signature = System.Convert.FromBase64String(sign);
bool result = gostSign.VerifySignature(hash, signature);
// Выводим результат проверки подписи
if (!result)
{
throw new Exception("Подпись не верна!");
}
}
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Может подпись ожидается в формате pkcs7? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.01.2014(UTC) Сообщений: 4 Откуда: Краснодар
|
Добрый день! В спецификации упоминание по pkcs7 или CMS нет, ниже формат сообщения Код:<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://payment.beepayxp.jetinfosoft.ru">
<soap:Header>
<digitalSignature>
<signature>uL45S07uVqJ3a8dJ68AwhvWyC4rthbfPFsKcJHEDo3DvV6dhv2ocY78S3xrJRJsfl6ICawK4vwjW3w8/24l5xQ==</signature>
</digitalSignature>
</soap:Header>
<soap:Body>
<!--Подписываемая и проверяемая секция-->
</soap:Body>
</soap:Envelope>
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Подпись переверните: первый байт сделайте последним, второй - предпоследним и так далее. P.S.: Естественно это надо сделать до конвертации в BASE64. Отредактировано пользователем 23 января 2014 г. 10:14:26(UTC)
| Причина: Не указана |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
|
С уважением, Юрий Строжевский |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.01.2014(UTC) Сообщений: 4 Откуда: Краснодар
|
Сделал к вы посоветовали, вроде на той стороне моя подпись проходит, а вот их подпись, у меня нет. Код:private static byte[] MixBytes(byte[] values)
{
for (int i = 0; i <= (values.Length / 2 - 1); i++)
{
byte b = values[i];
values[i] = values[values.Length - 1 - i];
values[values.Length - 1 - i] = b;
}
return values;
}
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.01.2014(UTC) Сообщений: 4 Откуда: Краснодар
|
Ураа!!!! заработало спасибо за совет, Вы не видете..., я вам низко кланяюсь.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: djoni-kga Ураа!!!! заработало спасибо за совет, Вы не видете..., я вам низко кланяюсь. Обращайтесь :) |
С уважением, Юрий Строжевский |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close