--- /dev/null
+package gost28147
+
+import (
+ "bytes"
+ "crypto/rand"
+ "io"
+ "testing"
+)
+
+func TestWrapSymmetric(t *testing.T) {
+ kek := make([]byte, KeySize)
+ cek := make([]byte, KeySize)
+ ukm := make([]byte, 8)
+ for i := 0; i < 1000; i++ {
+ if _, err := io.ReadFull(rand.Reader, kek); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := io.ReadFull(rand.Reader, cek); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := io.ReadFull(rand.Reader, ukm); err != nil {
+ t.Fatal(err)
+ }
+ data := WrapGost(ukm, kek, cek)
+ got := UnwrapGost(kek, data)
+ if !bytes.Equal(got, cek) {
+ t.FailNow()
+ }
+ }
+}