Всем привет!
 
Проблема с порядком байт вылезает повсюду.
Нужно разворачивать байты чтобы алгоритмы заработали.
Понятно, что о стандартизации речи не идет.
 
Хочется чтобы библиотека 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) {
 
Текущие функции можно переписать на использовании этих. В верхнеуровневых останется разбор сырых данных.
Так получится избежать дублирования кода.
 
В тоже время, это упростит клиентский код(в моем случае точно) тем, что не придется провоить избыточную сериализацию и десериализацию.
 
Если зеленый свет - я подготовлю патчи.
 
С уважением,
Эдуард Искандаров