add simple dsa key generator
[epoint] / dsakey / dsakey_test.go
diff --git a/dsakey/dsakey_test.go b/dsakey/dsakey_test.go
new file mode 100644 (file)
index 0000000..9245199
--- /dev/null
@@ -0,0 +1,38 @@
+package dsakey
+
+import (
+       "crypto/openpgp"
+//     "fmt"
+       "bytes"
+       "time"
+       "testing"
+)
+
+func testSignAndVerify(t *testing.T, priv *openpgp.Entity) {
+       msg := []byte("testing")
+       w := new(bytes.Buffer)
+       err := openpgp.DetachSign(w, priv, bytes.NewBuffer(msg))
+       if err != nil {
+               t.Errorf("error signing: %s", err)
+               return
+       }
+
+       _, err = openpgp.CheckDetachedSignature(openpgp.EntityList{priv}, bytes.NewBuffer(msg), w)
+       if err != nil {
+               t.Errorf("Verify failed")
+       }
+}
+
+func TestKey(t *testing.T) {
+       key, err := GenKey()
+       if err != nil {
+               t.Errorf("gen dsa key failed: %s", err)
+               return
+       }
+       priv, err := NewEntity(key, time.Seconds(), "a", "b", "c")
+       if err != nil {
+               t.Errorf("new entity failed: %s", err)
+       } else {
+               testSignAndVerify(t, priv)
+       }
+}