]> Cypherpunks.ru repositories - gogost.git/commitdiff
Excess copy() usage
authorSergey Matveev <stargrave@stargrave.org>
Wed, 17 Jul 2019 14:51:46 +0000 (17:51 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 17 Jul 2019 15:18:19 +0000 (18:18 +0300)
src/cypherpunks.ru/gogost/gost3410/private.go
src/cypherpunks.ru/gogost/gost3410/public.go
src/cypherpunks.ru/gogost/gost3410/ukm.go

index 2af8a4a012bd39539ee91b8d959e674d900119c2..5f41ddc50b89b9ce805dfb0896509e2d6bd7ff2b 100644 (file)
@@ -33,8 +33,9 @@ func NewPrivateKey(curve *Curve, mode Mode, raw []byte) (*PrivateKey, error) {
                errors.New("Invalid private key length")
        }
        key := make([]byte, int(mode))
-       copy(key, raw)
-       reverse(key)
+       for i := 0; i < len(key); i++ {
+               key[i] = raw[len(raw)-i-1]
+       }
        k := bytes2big(key)
        if k.Cmp(zero) == 0 {
                return nil, errors.New("Zero private key")
index 6af21af83b9156384a0bc25f88bbf8eaae185d4c..9589ef8d215261e76a31a6c210f5bd019c750bfa 100644 (file)
@@ -29,12 +29,13 @@ type PublicKey struct {
 }
 
 func NewPublicKey(curve *Curve, mode Mode, raw []byte) (*PublicKey, error) {
-       if len(raw) != 2*int(mode) {
+       key := make([]byte, 2*int(mode))
+       if len(raw) != len(key) {
                return nil, errors.New("Invalid public key length")
        }
-       key := make([]byte, 2*int(mode))
-       copy(key, raw)
-       reverse(key)
+       for i := 0; i < len(key); i++ {
+               key[i] = raw[len(raw)-i-1]
+       }
        return &PublicKey{
                curve,
                mode,
index 4eda4fcab92bb229d0d92ae3c8e7207acc225d64..4b04d1cf605bac72a91240f7b5862c7cd728caff 100644 (file)
@@ -22,7 +22,8 @@ import (
 
 func NewUKM(raw []byte) *big.Int {
        t := make([]byte, len(raw))
-       copy(t, raw)
-       reverse(t)
+       for i := 0; i < len(t); i++ {
+               t[i] = raw[len(raw)-i-1]
+       }
        return bytes2big(t)
 }