Subject: Запрос функционала. Big-endian функции для проверки подписи по ГОСТ 34.10

From: Искандаров Эдуард <[email-masked]>
Date: Mon, 07 Aug 2023 13:54:24 +0500

Всем привет!

Проблема с порядком байт вылезает повсюду.

Нужно разворачивать байты чтобы алгоритмы заработали.

Понятно, что о стандартизации речи не идет.

Хочется чтобы библиотека GoGOST предлагала функции для big-endian систем тоже.

А конкретно:

В файле gost3410/public.go добавить функцию по созданию объекта PublicKey из int.Big значений.

func NewPublicFromCoords(c *Curve, x *int.Big, y *int.Big) (*PublicKey, error) {

Кроме этого, в файле gost3410/public.go добавить функцию VerifyDigestByParams

func (pub *PublicKey) VerifyDigestByParams(digest *int.Big, r *int.Big, s *int.Big) (bool, error) {

Текущие функции можно переписать на использовании этих. В верхнеуровневых останется разбор сырых данных.

Так получится избежать дублирования кода.

В тоже время, это упростит клиентский код(в моем случае точно) тем, что не придется провоить избыточную сериализацию и десериализацию.

Если зеленый свет - я подготовлю патчи.

С уважением,
Эдуард Искандаров