Subject: Re: Вопрос по созданию подписи для банка

From: Sergey Matveev <[email-masked]>
Date: Thu, 3 Sep 2020 20:50:50 +0300

Приветствую!

*** Dmitrii Zolotov [2020-09-03 16:21]:
>Простите, что вас беспокою, но возникла какая-то непонятная ситуация с
>созданием подписи в pygost (алгоритм gost3410, режим 2012).

Чисто исторически так сложилось, что режим 2001/2012 в PyGOST (и GoGOST)
обозначает длину ключей с которыми идёт работа. mode=2001 должен
использоваться при работе с 256-бит ключами, а mode=2012 для 512-бит.
Это сбивает с толку людей уже не в первый раз и я в следующем релизе
переименую этот сбивающий с толку "режим".

>    dgst = gost34112012256.new(data_for_signing).digest()
>    dgstb64 = base64.b64encode(dgst)
>    private = prv_unmarshal(base64.b64decode(pkey))
>    sg = sign(curve, private, dgst, mode=2012)

Лично я не знаком с тем что нужно банкам, но просто напоминаю что
возможно хэш или подпись придётся "перевернуть". Форматы сериализации
хэшей и ключей у ГОСТ алгоритмов не регламентированы и в разных
контекстах применения (X.509, CMS, etc) могут отличаться:
http://www.pygost.cypherpunks.ru/FAQ.html

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF