aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-10-23 18:47:36 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-10-23 18:47:36 +0200
commit5b1f187c7a3515a8335a134364929f6e0bbef1f5 (patch)
tree168c353969c87772468d70d7c35aca9b59ccf026
parentbb4dbe34df4907c123bae0f34eb3786d244b4480 (diff)
Simplify interface
-rw-r--r--enc_test.go17
-rw-r--r--gen.go4
-rw-r--r--keys.go (renamed from enc.go)17
-rw-r--r--keys_test.go36
-rw-r--r--main.go2
-rw-r--r--pub.go12
-rw-r--r--pub_test.go17
-rw-r--r--sig.go12
-rw-r--r--sig_test.go17
9 files changed, 52 insertions, 82 deletions
diff --git a/enc_test.go b/enc_test.go
deleted file mode 100644
index 5af09d4..0000000
--- a/enc_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
- "bytes"
- "testing"
-)
-
-var b64enc = []byte(`RWRCSwAAAACzJBN2gC5//jVvDiV76rs4m2aKXkljqDpbOC0bBf7abZhV/Zygr6b0KIbSI56JQutwzsQeouxnnHuVTZp3IW4M9qdpe5Nh8Jrr5g7r0rHLPxEPmcv/dNru6ZjqI7CcGsY=`)
-
-func TestUnmarshalEnc(t *testing.T) {
- v := new(EncKey)
- v.Unmarshal(b64enc)
- out, _ := v.Marshal()
- if !bytes.Equal(b64enc, out) {
- t.Errorf("expected %v, got %v", b64enc, out)
- }
-}
diff --git a/gen.go b/gen.go
index 43cea67..2d2ddd4 100644
--- a/gen.go
+++ b/gen.go
@@ -24,7 +24,7 @@ func Generate(pubkeyfile, seckeyfile, comment string, rounds int) error {
rand.Read(enckey.Salt[:])
copy(enckey.Checksum[:], digest[:len(enckey.Checksum)])
- sb64, err := enckey.Marshal()
+ sb64, err := EncodeBase64(enckey)
if err != nil {
return err
}
@@ -42,7 +42,7 @@ func Generate(pubkeyfile, seckeyfile, comment string, rounds int) error {
copy(pubkey.KeyNum[:], enckey.KeyNum[:])
copy(pubkey.PubKey[:], pub[:])
- pb64, err := enckey.Marshal()
+ pb64, err := EncodeBase64(enckey)
if err != nil {
return err
}
diff --git a/enc.go b/keys.go
index 467e0f0..d96d999 100644
--- a/enc.go
+++ b/keys.go
@@ -4,9 +4,21 @@ import (
"bytes"
"crypto/sha512"
- "golang.org/x/crypto/ed25519"
+ "github.com/agl/ed25519"
)
+type Sig struct {
+ PKAlg [2]byte
+ KeyNum [KeyNumLen]byte
+ Sig [ed25519.SignatureSize]byte
+}
+
+type PubKey struct {
+ PKAlg [2]byte
+ KeyNum [KeyNumLen]byte
+ PubKey [ed25519.PublicKeySize]byte
+}
+
type EncKey struct {
PKAlg [2]byte
KDFAlg [2]byte
@@ -21,6 +33,3 @@ func (v *EncKey) Valid() bool {
sum := sha512.Sum512(v.SecKey[:])
return bytes.Equal(sum[:len(v.Checksum)], v.Checksum[:])
}
-
-func (v *EncKey) Unmarshal(b []byte) error { return DecodeBase64(v, b) }
-func (v *EncKey) Marshal() ([]byte, error) { return EncodeBase64(v) }
diff --git a/keys_test.go b/keys_test.go
new file mode 100644
index 0000000..c9d6d1e
--- /dev/null
+++ b/keys_test.go
@@ -0,0 +1,36 @@
+package main
+
+import (
+ "bytes"
+ "testing"
+)
+
+func TestUnmarshalSig(t *testing.T) {
+ b64sig := []byte(`RWRbOC0bBf7abaGwGtq45KLDK63tgcF7CO4qTZSlTKCSbZTYlDfFm/DISQ60u+/jEzrk22suvXXAEsxQTe2xUOfV90get1YRGQo=`)
+ v := new(Sig)
+ DecodeBase64(v, b64sig)
+ out, _ := EncodeBase64(v)
+ if !bytes.Equal(b64sig, out) {
+ t.Errorf("expected %v, got %v", b64sig, out)
+ }
+}
+
+func TestUnmarshalPub(t *testing.T) {
+ b64pub := []byte(`RWRbOC0bBf7abfanaXuTYfCa6+YO69Kxyz8RD5nL/3Ta7umY6iOwnBrG`)
+ v := new(PubKey)
+ DecodeBase64(v, b64pub)
+ out, _ := EncodeBase64(v)
+ if !bytes.Equal(b64pub, out) {
+ t.Errorf("expected %v, got %v", b64pub, out)
+ }
+}
+
+func TestUnmarshalEnc(t *testing.T) {
+ b64enc := []byte(`RWRCSwAAAACzJBN2gC5//jVvDiV76rs4m2aKXkljqDpbOC0bBf7abZhV/Zygr6b0KIbSI56JQutwzsQeouxnnHuVTZp3IW4M9qdpe5Nh8Jrr5g7r0rHLPxEPmcv/dNru6ZjqI7CcGsY=`)
+ v := new(EncKey)
+ DecodeBase64(v, b64enc)
+ out, _ := EncodeBase64(v)
+ if !bytes.Equal(b64enc, out) {
+ t.Errorf("expected %v, got %v", b64enc, out)
+ }
+}
diff --git a/main.go b/main.go
index 422eb4f..842d6dc 100644
--- a/main.go
+++ b/main.go
@@ -63,6 +63,6 @@ func main() {
PKAlg: PKAlg,
}
rand.Read(ss.KeyNum[:])
- ms, _ := ss.Marshal()
+ ms, _ := EncodeBase64(ss)
fmt.Println(string(ms))
}
diff --git a/pub.go b/pub.go
deleted file mode 100644
index 43b48f0..0000000
--- a/pub.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package main
-
-import "golang.org/x/crypto/ed25519"
-
-type PubKey struct {
- PKAlg [2]byte
- KeyNum [KeyNumLen]byte
- PubKey [ed25519.PublicKeySize]byte
-}
-
-func (v *PubKey) Unmarshal(b []byte) error { return DecodeBase64(v, b) }
-func (v *PubKey) Marshal() ([]byte, error) { return EncodeBase64(v) }
diff --git a/pub_test.go b/pub_test.go
deleted file mode 100644
index e2e995a..0000000
--- a/pub_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
- "bytes"
- "testing"
-)
-
-var b64pub = []byte(`RWRbOC0bBf7abfanaXuTYfCa6+YO69Kxyz8RD5nL/3Ta7umY6iOwnBrG`)
-
-func TestUnmarshalPub(t *testing.T) {
- v := new(PubKey)
- v.Unmarshal(b64pub)
- out, _ := v.Marshal()
- if !bytes.Equal(b64pub, out) {
- t.Errorf("expected %v, got %v", b64pub, out)
- }
-}
diff --git a/sig.go b/sig.go
deleted file mode 100644
index b81d03a..0000000
--- a/sig.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package main
-
-import "golang.org/x/crypto/ed25519"
-
-type Sig struct {
- PKAlg [2]byte
- KeyNum [KeyNumLen]byte
- Sig [ed25519.SignatureSize]byte
-}
-
-func (v *Sig) Unmarshal(b []byte) error { return DecodeBase64(v, b) }
-func (v *Sig) Marshal() ([]byte, error) { return EncodeBase64(v) }
diff --git a/sig_test.go b/sig_test.go
deleted file mode 100644
index dc2d595..0000000
--- a/sig_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
- "bytes"
- "testing"
-)
-
-var b64sig = []byte(`RWRbOC0bBf7abaGwGtq45KLDK63tgcF7CO4qTZSlTKCSbZTYlDfFm/DISQ60u+/jEzrk22suvXXAEsxQTe2xUOfV90get1YRGQo=`)
-
-func TestUnmarshalSig(t *testing.T) {
- v := new(Sig)
- v.Unmarshal(b64sig)
- out, _ := v.Marshal()
- if !bytes.Equal(b64sig, out) {
- t.Errorf("expected %v, got %v", b64sig, out)
- }
-}