# coding: utf-8
# PyGOST -- Pure Python GOST cryptographic functions library
-# Copyright (C) 2015-2020 Sergey Matveev <stargrave@stargrave.org>
+# Copyright (C) 2015-2021 Sergey Matveev <stargrave@stargrave.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
:param bytes prv: serialized private key
:rtype: long
+
+ It is advisable to use :py:func:`pygost.gost3410.prv_marshal` to
+ assure that key i in curve's Q field for better compatibility with
+ some implementations.
"""
return bytes2long(prv[::-1])
+def prv_marshal(curve, prv):
+ """Marshal little-endian private key
+
+ :param GOST3410Curve curve: curve to use
+ :param long prv: serialized private key
+ :rtype: bytes
+
+ Key is in curve's Q field.
+ """
+ return long2bytes(prv % curve.q, point_size(prv))[::-1]
+
+
def pub_marshal(pub):
"""Marshal public key