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

From: Dmitrii Zolotov <[email-masked]>
Date: Thu, 3 Sep 2020 16:21:24 +0300

Простите, что вас беспокою, но возникла какая-то непонятная ситуация с 
созданием подписи в 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)

Заранее спасибо!

---

Дмитрий Золотов