• Страница:
  • 1
  • 2

ТЕМА: Подписание GOST

Re: Подписание GOST 2 года, 5 мес. назад #3021

  • simakvladimir
  • Новый участник
  • Постов: 9
  • Репутация: 0
Добрый день!

Murat Seisenov написал:


Какую ошибку выдает KalkanCryptCOM?



В моем приложении, как я писал в первом посте, проблема в том, ошибку выдает не KalkanCryptCOM, а функция .net платформы:

                var signedCms = new SignedCms(new ContentInfo(inData), true);
                signedCms.Decode(signedData);


Насколько я понимаю, реализация функции Decode использует реестр для поиска алгоритма хэширования, и не находит. Тут я понял - необходимо отказаться от .net функций в сторону максимального использования функций KalkanCryptCOM.

И еще вопрос: достаточно при при верификации подписи на серверной стороне вызвать функцию VerifyData у KalkanCryptCOM? Является ли условие успешного выполнения данной функции достаточным для того, чтобы утверждать, что подпись верна? Или на серверной стороне желательно выполнять еще какие-либо проверки?


Murat Seisenov написал:


Проверьте Ваши ключи на нашем онлайн сервисе.



Ключи проверил, все валидные, не отозванные.

Re: Подписание GOST 2 года, 5 мес. назад #3022

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Функции .net не смогут работать с нашими ключами, алгоритмами, OID'ами и т.п.

VerifyData проверит только подпись. Также Вам необходимо проверить цепочку до корневого сертификата, проверить статус сертификата (отозван или нет), срок действия и т.п. Подробно можете изучить "Правила проверки подлинности электронной цифровой подписи" на сайте pki.gov.kz в разделе Документация.
Модератор

Re: Подписание GOST 2 года, 5 мес. назад #3023

  • simakvladimir
  • Новый участник
  • Постов: 9
  • Репутация: 0
Теперь при проверке подписи через VerifyData:
const KALKANCRYPTCOM_FLAGS flagsVerify = 
	KALKANCRYPTCOM_FLAGS.KC_WITH_CERT | /*KALKANCRYPTCOM_FLAGS.KC_IN2_BASE64 |*/ 
	KALKANCRYPTCOM_FLAGS.KC_IN_BASE64 | KALKANCRYPTCOM_FLAGS.KC_DETACHED_DATA |
	KALKANCRYPTCOM_FLAGS.KC_SIGN_CMS;

var kalkanCryptCom = new KalkanCryptCOM();
kalkanCryptCom.Init();
if (kalkanCryptCom.GetLastError() > 0)
	throw new CryptographicException(SR.T("KalkanCrypt не инициализирован."));

var inDataStr = Convert.ToBase64String(inData);
var signedDataStr = Convert.ToBase64String(signedData);


string outData = "";
string outVerifyInfo = "";
string outCert = "";
kalkanCryptCom.VerifyData("", (int)flagsVerify, 0, inDataStr, signedDataStr, out outData, out outVerifyInfo, out outCert);
uint rv = kalkanCryptCom.GetLastError();
if (rv > 0)
{
	string errorStr = "";
	kalkanCryptCom.GetLastErrorString(out errorStr, out rv);
	throw new CryptographicException(SR.T("ЭЦП не верна."));
}


появляется ошибка Error: 0x08F0001E. Используется х64 вариант KalkanCryptCOM.dll. Причем аналогичный код ошибки возникает при попытке выполнить тестовую подпись (Sign Data) в программе из sdk KNCA Kalkan Crypt Test Project x64, а в х32 при выполнении тех же манипуляций ошибка возникает только при проверке подписи (Verify Data) (алгоритм действий описывал в посте ранее), код ошибки абсолютно другой - Error: 0x04091077

Но у меня последняя версия библиотеки, в SDK ее должны добавить на днях.


Какой примерно срок ждать, и, извиняюсь за наглость, нельзя ли выслать x64 вариант на почту Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. ?)
Изменено: 2 года, 5 мес. назад от simakvladimir.

Re: Подписание GOST 2 года, 5 мес. назад #3025

  • simakvladimir
  • Новый участник
  • Постов: 9
  • Репутация: 0
Доброе время суток!

Еще раз хотел уточнить, когда ожидать выхода обновленного sdk?

Re: Подписание GOST 2 года, 4 мес. назад #3026

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Добрый день!

Сегодня обновили.
Модератор
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba