]> Cypherpunks.ru repositories - gogost.git/blobdiff - gost3410/vko2001_test.go
Do not alter ukm in gost3410.KEK*
[gogost.git] / gost3410 / vko2001_test.go
index 3f807338cca2432c141e69f049a2b232c384dfc5..80e30ad3a9c435f96719c374e81f156f51678aa8 100644 (file)
@@ -18,6 +18,7 @@ package gost3410
 import (
        "bytes"
        "encoding/hex"
+       "math/big"
        "testing"
        "testing/quick"
 )
@@ -43,6 +44,26 @@ func TestVKO2001(t *testing.T) {
        }
 }
 
+func TestVKOUKMAltering(t *testing.T) {
+       c := CurveIdtc26gost34102012256paramSetA()
+       ukm := big.NewInt(1)
+       prv, err := NewPrivateKey(c, bytes.Repeat([]byte{0x12}, 32))
+       if err != nil {
+               panic(err)
+       }
+       pub, err := prv.PublicKey()
+       if err != nil {
+               panic(err)
+       }
+       _, err = prv.KEK(pub, ukm)
+       if err != nil {
+               panic(err)
+       }
+       if ukm.Cmp(big.NewInt(1)) != 0 {
+               t.FailNow()
+       }
+}
+
 func TestRandomVKO2001(t *testing.T) {
        c := CurveIdGostR34102001TestParamSet()
        f := func(prvRaw1 [32]byte, prvRaw2 [32]byte, ukmRaw [8]byte) bool {