]> Cypherpunks.ru repositories - gogost.git/blobdiff - src/cypherpunks.ru/gogost/gost3410/2001_test.go
go.cypherpunks.ru namespace usage
[gogost.git] / src / cypherpunks.ru / gogost / gost3410 / 2001_test.go
diff --git a/src/cypherpunks.ru/gogost/gost3410/2001_test.go b/src/cypherpunks.ru/gogost/gost3410/2001_test.go
deleted file mode 100644 (file)
index 90da48c..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-// GoGOST -- Pure Go GOST cryptographic functions library
-// Copyright (C) 2015-2019 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
-// the Free Software Foundation, version 3 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-package gost3410
-
-import (
-       "bytes"
-       "crypto/rand"
-       "testing"
-       "testing/quick"
-)
-
-func TestRFCVectors(t *testing.T) {
-       priv := []byte{
-               0x28, 0x3b, 0xec, 0x91, 0x98, 0xce, 0x19, 0x1d,
-               0xee, 0x7e, 0x39, 0x49, 0x1f, 0x96, 0x60, 0x1b,
-               0xc1, 0x72, 0x9a, 0xd3, 0x9d, 0x35, 0xed, 0x10,
-               0xbe, 0xb9, 0x9b, 0x78, 0xde, 0x9a, 0x92, 0x7a,
-       }
-       pubX := []byte{
-               0x0b, 0xd8, 0x6f, 0xe5, 0xd8, 0xdb, 0x89, 0x66,
-               0x8f, 0x78, 0x9b, 0x4e, 0x1d, 0xba, 0x85, 0x85,
-               0xc5, 0x50, 0x8b, 0x45, 0xec, 0x5b, 0x59, 0xd8,
-               0x90, 0x6d, 0xdb, 0x70, 0xe2, 0x49, 0x2b, 0x7f,
-       }
-       pubY := []byte{
-               0xda, 0x77, 0xff, 0x87, 0x1a, 0x10, 0xfb, 0xdf,
-               0x27, 0x66, 0xd2, 0x93, 0xc5, 0xd1, 0x64, 0xaf,
-               0xbb, 0x3c, 0x7b, 0x97, 0x3a, 0x41, 0xc8, 0x85,
-               0xd1, 0x1d, 0x70, 0xd6, 0x89, 0xb4, 0xf1, 0x26,
-       }
-       digest := []byte{
-               0x2d, 0xfb, 0xc1, 0xb3, 0x72, 0xd8, 0x9a, 0x11,
-               0x88, 0xc0, 0x9c, 0x52, 0xe0, 0xee, 0xc6, 0x1f,
-               0xce, 0x52, 0x03, 0x2a, 0xb1, 0x02, 0x2e, 0x8e,
-               0x67, 0xec, 0xe6, 0x67, 0x2b, 0x04, 0x3e, 0xe5,
-       }
-       signature := []byte{
-               0x01, 0x45, 0x6c, 0x64, 0xba, 0x46, 0x42, 0xa1,
-               0x65, 0x3c, 0x23, 0x5a, 0x98, 0xa6, 0x02, 0x49,
-               0xbc, 0xd6, 0xd3, 0xf7, 0x46, 0xb6, 0x31, 0xdf,
-               0x92, 0x80, 0x14, 0xf6, 0xc5, 0xbf, 0x9c, 0x40,
-               0x41, 0xaa, 0x28, 0xd2, 0xf1, 0xab, 0x14, 0x82,
-               0x80, 0xcd, 0x9e, 0xd5, 0x6f, 0xed, 0xa4, 0x19,
-               0x74, 0x05, 0x35, 0x54, 0xa4, 0x27, 0x67, 0xb8,
-               0x3a, 0xd0, 0x43, 0xfd, 0x39, 0xdc, 0x04, 0x93,
-       }
-
-       c := CurveIdGostR34102001TestParamSet()
-       prv, err := NewPrivateKey(c, Mode2001, priv)
-       if err != nil {
-               t.FailNow()
-       }
-       pub, err := prv.PublicKey()
-       if err != nil {
-               t.FailNow()
-       }
-       if bytes.Compare(pub.Raw()[:32], pubX) != 0 {
-               t.FailNow()
-       }
-       if bytes.Compare(pub.Raw()[32:], pubY) != 0 {
-               t.FailNow()
-       }
-       ourSign, err := prv.SignDigest(digest, rand.Reader)
-       if err != nil {
-               t.FailNow()
-       }
-       valid, err := pub.VerifyDigest(digest, ourSign)
-       if err != nil || !valid {
-               t.FailNow()
-       }
-       valid, err = pub.VerifyDigest(digest, signature)
-       if err != nil || !valid {
-               t.FailNow()
-       }
-}
-
-func TestRandom2001(t *testing.T) {
-       c := CurveIdGostR34102001TestParamSet()
-       f := func(data [31]byte, digest [32]byte) bool {
-               prv, err := NewPrivateKey(
-                       c,
-                       Mode2001,
-                       append([]byte{0xde}, data[:]...),
-               )
-               if err != nil {
-                       return false
-               }
-               pub, err := prv.PublicKey()
-               if err != nil {
-                       return false
-               }
-               pubRaw := pub.Raw()
-               pub, err = NewPublicKey(c, Mode2001, pubRaw)
-               if err != nil {
-                       return false
-               }
-               sign, err := prv.SignDigest(digest[:], rand.Reader)
-               if err != nil {
-                       return false
-               }
-               valid, err := pub.VerifyDigest(digest[:], sign)
-               if err != nil {
-                       return false
-               }
-               return valid
-       }
-       if err := quick.Check(f, nil); err != nil {
-               t.Error(err)
-       }
-}
-
-func BenchmarkSign2001(b *testing.B) {
-       c := CurveIdGostR34102001TestParamSet()
-       prv, err := GenPrivateKey(c, Mode2001, rand.Reader)
-       if err != nil {
-               b.FailNow()
-       }
-       digest := make([]byte, 32)
-       rand.Read(digest)
-       b.ResetTimer()
-       for i := 0; i < b.N; i++ {
-               prv.SignDigest(digest, rand.Reader)
-       }
-}
-
-func BenchmarkVerify2001(b *testing.B) {
-       c := CurveIdGostR34102001TestParamSet()
-       prv, err := GenPrivateKey(c, Mode2001, rand.Reader)
-       if err != nil {
-               b.FailNow()
-       }
-       digest := make([]byte, 32)
-       rand.Read(digest)
-       sign, err := prv.SignDigest(digest, rand.Reader)
-       if err != nil {
-               b.FailNow()
-       }
-       pub, err := prv.PublicKey()
-       if err != nil {
-               b.FailNow()
-       }
-       b.ResetTimer()
-       for i := 0; i < b.N; i++ {
-               pub.VerifyDigest(digest, sign)
-       }
-}
-
-func TestPrvEqualsTo1(t *testing.T) {
-       c := CurveIdGostR34102001TestParamSet()
-       prvRaw := make([]byte, int(Mode2001))
-       prvRaw[len(prvRaw)-1] = 1
-       prv, err := NewPrivateKey(c, Mode2001, prvRaw)
-       if err != nil {
-               t.FailNow()
-       }
-       pub, err := prv.PublicKey()
-       if err != nil {
-               t.FailNow()
-       }
-       digest := []byte{
-               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-       }
-       sign, err := prv.SignDigest(digest, rand.Reader)
-       if err != nil {
-               t.FailNow()
-       }
-       valid, err := pub.VerifyDigest(digest, sign)
-       if err != nil || !valid {
-               t.FailNow()
-       }
-}