Подписание ключами ГОСТ в .NET (C#)
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА: Подписание ключами ГОСТ в .NET (C#)

Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2610

  • Dauren
  • Новый участник
  • Постов: 13
  • Репутация: 1
У нас с одним из наших интеграторов возникла проблема при проверке подписи.
Подписание у интегратора реализовано на C# (.NET). В качестве алгоритма при подписании они передают алгоритм хеширования:

var digest = MessageDigest.CreateByName("GOST 34.311-95"); //GOST Certificate Public Key says - Signature Algorithm: GOST 34.311-95 with GOST 34.310-2004

Как утверждает разработчик со стороны интегратора, алгоритма GOST 34.310-2004 нет среди доступных.

Алгоритм подписания, полученный нами средствами Java из тестового ГОСТ ЭЦП (X.509 сертификат, открытый ключ, закрытый ключ), - “ECGOST34310”.

Вопрос таков:
Какой значение следует передавать в метод CreateByName для генерации подписи по алгоритму GOST 34.310-2004?

P.S. Проверка подписания ключами RSA с передачей в качестве алгоритма значения "SHA1withRSAEncryption" прошла успешно.

Re: Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2618

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

В какой библиотеке вызываете метод CreateByName? C или Java?

И Вы же сами пишите:
алгоритм хэширования - GOST 34.311-95
алгоритм подписи - GOST 34.310-2004

Все так и есть. Хэширование и подпись - это разные вещи.
Модератор
Спасибо сказали: Dauren

Re: Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2622

  • Dauren
  • Новый участник
  • Постов: 13
  • Репутация: 1
Метод CreateByName вызывается в коде .NET (C#).

Я знаю, что хеширование и шифрование разные вещи.

Как я уже говорил ранее, алгоритма GOST 34.310-2004 нет среди доступных. Какое значение следует передавать в метод CreateByName для генерации подписи по алгоритму GOST 34.310-2004?

Если я чего-то недопонимаю, прошу объяснить принципы генерации подписи в С#.

Re: Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2624

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
По всей видимости, Вы используете библиотеку ManagedOpenSSL.
К сожалению, мы прекратили ее развитие и поддержку.
В настоящий момент как замену ManagedOpenSSL мы позиционируем нашу другую библиотеку - KalkanCryptCOM, которая входит в текущий SDK НУЦ РК.
Модератор
Спасибо сказали: Dauren

Re: Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2626

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

От лица интегратора:
В SDK 2.0 от НУЦ РК нет упоминаний "KalkanCryptCOM" (ни в названиях ни в содержании файлов).
Есть упоминание "KALKANCRYPT (OPENSSL)" (каталог "CC(Kalkan)") - если это оно самое, то вот это самое мы и используем.

Мы не используем ManagedOpenSSL от НУЦ РК, мы используем свой wrapper на базе open source варианта ManagedOpenSSL (не НУЦ РК). На суть дела это никак не влияет.

Нам сказали что нужен алгоритм "ECGOST34310" (его реально нет), теперь вы пишете что нужен "GOST 34.310-2004". В "obj_mac.h" есть строки:
#define SN_id_Gost34310_2004 "gost2004"
#define LN_id_Gost34310_2004 "GOST 34.310-2004"
#define NID_id_Gost34310_2004 927
#define OBJ_id_Gost34310_2004 OBJ_pkigovkz,1L,1L,1L

Это тот алгоритм что нужен?

Re: Подписание ключами ГОСТ в .NET (C#) 2 года, 10 мес. назад #2628

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Добрый день!
Он в последней версии SDK.
Хорошо, с этого и надо было начинать, что у вас своя библиотека на основе нашей.

Давайте сделаем так. Приложите здесь или вышлите мне на почту оба варианта подписи.
А после посмотрим что у вас не так.
Модератор
Спасибо сказали: Dauren
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
FaLang translation system by Faboba