]> Cypherpunks.ru repositories - gogost.git/commitdiff
PrivateKeyReverseDigest and PrivateKeyReverseDigestAndSignature v4.2.4
authorSergey Matveev <stargrave@stargrave.org>
Fri, 19 Jun 2020 12:58:30 +0000 (15:58 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 24 Jun 2020 18:18:49 +0000 (21:18 +0300)
VERSION
gost3410/private.go
install.texi
news.texi

diff --git a/VERSION b/VERSION
index f2c6cb6af20f460be7d4b1f12a4cbe216a103535..cf78d5b6a17867cab54d7a3c80e5291a4047c964 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.2.3
+4.2.4
index ae54424d7ef083c08fa9e2bdf5abc9cb17e59d38..645881bfd5c1944814637e5387899932a095a542 100644 (file)
@@ -119,3 +119,38 @@ func (prv *PrivateKey) Public() crypto.PublicKey {
        }
        return pub
 }
+
+type PrivateKeyReverseDigest struct {
+       Prv *PrivateKey
+}
+
+func (prv *PrivateKeyReverseDigest) Public() crypto.PublicKey {
+       return prv.Prv.Public()
+}
+
+func (prv *PrivateKeyReverseDigest) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error) {
+       d := make([]byte, len(digest))
+       copy(d, digest)
+       reverse(d)
+       return prv.Prv.Sign(rand, d, opts)
+}
+
+type PrivateKeyReverseDigestAndSignature struct {
+       Prv *PrivateKey
+}
+
+func (prv *PrivateKeyReverseDigestAndSignature) Public() crypto.PublicKey {
+       return prv.Prv.Public()
+}
+
+func (prv *PrivateKeyReverseDigestAndSignature) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error) {
+       d := make([]byte, len(digest))
+       copy(d, digest)
+       reverse(d)
+       sign, err := prv.Prv.Sign(rand, d, opts)
+       if err != nil {
+               return sign, err
+       }
+       reverse(sign)
+       return sign, err
+}
index 441c9a1543619ad5946264d723854c8abc619cbd..9ce6459908d4b5aafc2cac67a2b817085ec25434 100644 (file)
@@ -1,7 +1,7 @@
 @node Download
 @unnumbered Download
 
-@set VERSION 4.2.3
+@set VERSION 4.2.4
 
 Preferable way is to download tarball with the signature from
 website and, for example, run tests with benchmarks:
index d2d1e82af79782a5b76755954971cc609882ec5d..7d139e1593f5a21a81256e52b219589c2e05df2e 100644 (file)
--- a/news.texi
+++ b/news.texi
@@ -3,6 +3,12 @@
 
 @table @strong
 
+@anchor{Release 4.2.4}
+@item 4.2.4
+    @code{gost3410.PrivateKeyReverseDigest} reversed digests and
+    @code{PrivateKeyReverseDigestAndSignature} with also reversed signatures
+    signers appeared for convenience.
+
 @anchor{Release 4.2.3}
 @item 4.2.3
     Panic on all possible hash @code{Write} errors.