Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2014(UTC) Сообщений: 104 Откуда: Москва Сказал(а) «Спасибо»: 24 раз
|
Добрый день.
Посылаю запросы к вашему тестовому OCSP-серверу "http://testca.cryptopro.ru/ocsp/ocsp.srf" и пытаюсь проверить подпись у ответов - проверка не проходит. Вот фрагмент кода для проверки подписи (используется библиотека bouncycastle и CSP "КриптоПРО"):
... br = (BasicOcspResp)r.GetResponseObject(); responses = (br == null) ? null : br.Responses;
var msc = new X509Certificate2(br.GetCerts()[0].GetEncoded()); var pk = msc.PublicKey.Key; if (pk is CryptoPro.Sharpei.Gost3410CryptoServiceProvider) { var p = pk as CryptoPro.Sharpei.Gost3410CryptoServiceProvider; var chk = p.VerifyData(br.GetTbsResponseData(), new CryptoPro.Sharpei.Gost3411CryptoServiceProvider(), br.GetSignature()); if (!chk) throw new Exception("!!!"); } ...
--- я что-то не так делаю? Объект BasicOcspResp приходит вполне корректный. Непонятно...
С уважением, Константин Ткачук.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2014(UTC) Сообщений: 104 Откуда: Москва Сказал(а) «Спасибо»: 24 раз
|
Разобрался сам - надо "переворачивать" подписи перед проверкой. Вот такой код работает:
... br = (BasicOcspResp)r.GetResponseObject(); var msc = new X509Certificate2(br.GetCerts()[0].GetEncoded()); var pk = msc.PublicKey.Key; bool res = false; if (pk is CryptoPro.Sharpei.Gost3410CryptoServiceProvider) { var p = pk as CryptoPro.Sharpei.Gost3410CryptoServiceProvider; var sg = br.GetSignature().Reverse().ToArray(); res = p.VerifyData(br.GetTbsResponseData(), new CryptoPro.Sharpei.Gost3411CryptoServiceProvider(), sg); } if (!res) throw new Exception("!!!"); ... --- вопрос разработчикам: а не проще было "переворачивание" подписи спрятать в крипто-провайдер? Ну, чтобы об это всякий раз не спотыкаться...
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close