public inbox for gost@lists.cypherpunks.ru
Atom feed
* Вопрос по созданию подписи для банка
@ 2020-09-03 13:21 Dmitrii Zolotov
2020-09-03 17:50 ` Sergey Matveev
0 siblings, 1 reply; 3+ messages in thread
From: Dmitrii Zolotov @ 2020-09-03 13:21 UTC (permalink / raw)
To: gost
Простите, что вас беспокою, но возникла какая-то непонятная ситуация с
созданием подписи в pygost (алгоритм gost3410, режим 2012). Пытаемся
взаимодействовать с банком Тинькофф, но созданная подпись не принимается
(ключ извлечён из Криптопро pfx через инструменты от ЛиссиСофт).
Дайджест по ГОСТ 34.11-2012 создаётся успешно, но размер подписи ГОСТ
34.10-2012 (256) получается 128 байт, в то время как банк ожидает
подпись 64 байта. Подскажите, пожалуйста, в какую сторону думать, уже
испытал все варианты создания подписи, ничего не получается :(
Фрагмент кода:
curve = CURVES["id-tc26-gost-3410-2012-256-paramSetA"]
data_for_signing = val.encode("utf-8")
dgst = gost34112012256.new(data_for_signing).digest()
dgstb64 = base64.b64encode(dgst)
private = prv_unmarshal(base64.b64decode(pkey))
sg = sign(curve, private, dgst, mode=2012)
print(len(sg))
signature = base64.b64encode(sg)
Заранее спасибо!
---
Дмитрий Золотов
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Вопрос по созданию подписи для банка
2020-09-03 13:21 Вопрос по созданию подписи для банка Dmitrii Zolotov
@ 2020-09-03 17:50 ` Sergey Matveev
2020-09-04 20:13 ` PyGOST 5.0, GoGOST 5.0.0 (Re: Вопрос по созданию подписи для банка) Sergey Matveev
0 siblings, 1 reply; 3+ messages in thread
From: Sergey Matveev @ 2020-09-03 17:50 UTC (permalink / raw)
To: gost
[-- Attachment #1: Type: text/plain, Size: 1665 bytes --]
Приветствую!
*** 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* PyGOST 5.0, GoGOST 5.0.0 (Re: Вопрос по созданию подписи для банка)
2020-09-03 17:50 ` Sergey Matveev
@ 2020-09-04 20:13 ` Sergey Matveev
0 siblings, 0 replies; 3+ messages in thread
From: Sergey Matveev @ 2020-09-04 20:13 UTC (permalink / raw)
To: gost
[-- Attachment #1: Type: text/plain, Size: 1938 bytes --]
Приветствую!
*** Sergey Matveev [2020-09-03 20:50]:
>*** Dmitrii Zolotov [2020-09-03 16:21]:
>>Простите, что вас беспокою, но возникла какая-то непонятная ситуация с
>>созданием подписи в pygost (алгоритм gost3410, режим 2012).
>
>Чисто исторически так сложилось, что режим 2001/2012 в PyGOST (и GoGOST)
>обозначает длину ключей с которыми идёт работа. mode=2001 должен
>использоваться при работе с 256-бит ключами, а mode=2012 для 512-бит.
>Это сбивает с толку людей уже не в первый раз и я в следующем релизе
>переименую этот сбивающий с толку "режим".
Я зарелизил как PyGOST:
http://www.pygost.cypherpunks.ru/pygost-5.0.tar.xz (78 KiB)
http://www.pygost.cypherpunks.ru/pygost-5.0.tar.xz.sig
Streebog-256 hash: ec813d16f6c7de42ccce61dfbc1a9cfd6523588e414e6e0aa9768371d405fd78
SHA256 hash: D5321979 12558C5A 543CCD67 EAA34674 604457BB BF16EB0A 740C8487 C7574C87
так и GoGOST:
http://www.gogost.cypherpunks.ru/gogost-5.0.0.tar.xz (62 KiB)
http://www.gogost.cypherpunks.ru/gogost-5.0.0.tar.xz.sig
Streebog-256 hash: 2a0fc616372fe905e8677e1e82d8bd82f852e6393c03cbfb34f69f855bcbfc85
SHA256 hash: 222CB86E 559E9CCF E80FFFB1 B3A7908B A978FE84 9E12B7F9 DA571512 6A24BCA7
В обеих библиотеках полностью удалил это понятие "режима 2001/2012" и
размеры ключей/точек определяются размерами параметров эллиптических
кривых.
--
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263 6422 AE1A 8109 E498 57EF
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-09-04 20:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-03 13:21 Вопрос по созданию подписи для банка Dmitrii Zolotov
2020-09-03 17:50 ` Sergey Matveev
2020-09-04 20:13 ` PyGOST 5.0, GoGOST 5.0.0 (Re: Вопрос по созданию подписи для банка) Sergey Matveev