aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-19 00:25:42 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-19 00:25:42 +0200
commit6853bddf6db6e76566809f8368a9b1534e9a91b3 (patch)
tree9622897e5d1640201b909e70640f722fc0adc3dd
parent494a546baf5d3681b4632db96eb42193986f972a (diff)
Verify signature
-rw-r--r--generate.go2
-rw-r--r--key/enc.go2
-rw-r--r--key/key.go2
-rw-r--r--key/pub.go12
-rw-r--r--key/sig.go12
-rw-r--r--sign.go2
-rw-r--r--verify.go6
7 files changed, 19 insertions, 19 deletions
diff --git a/generate.go b/generate.go
index b289b99..97c9fdb 100644
--- a/generate.go
+++ b/generate.go
@@ -34,7 +34,7 @@ func generate(args []string) error {
deriver = ask.Confirmed{}
}
- pubKey, encKey, err := key.NewKey(deriver)
+ pubKey, encKey, err := key.Generate(deriver)
if err != nil {
return err
}
diff --git a/key/enc.go b/key/enc.go
index 638e835..9c81dbf 100644
--- a/key/enc.go
+++ b/key/enc.go
@@ -52,7 +52,7 @@ func (v *Enc) UnmarshalBinary(data []byte) error {
return unmarshal(data, v)
}
-func ParseEnc(data []byte, der KeyDeriver) (*Enc, error) {
+func NewEnc(data []byte, der KeyDeriver) (*Enc, error) {
enc := new(Enc)
if err := enc.UnmarshalBinary(data); err != nil {
return nil, err
diff --git a/key/key.go b/key/key.go
index 1bb438b..3c3e98b 100644
--- a/key/key.go
+++ b/key/key.go
@@ -31,7 +31,7 @@ type KeyDeriver interface {
DeriveKey(salt []byte, rounds int, length int) ([]byte, error)
}
-func NewKey(der KeyDeriver) (*Pub, *Enc, error) {
+func Generate(der KeyDeriver) (*Pub, *Enc, error) {
pubKey, encKey, err := ed25519.GenerateKey(rand.Reader)
if err != nil {
return nil, nil, err
diff --git a/key/pub.go b/key/pub.go
index 2d955d7..9b6ac49 100644
--- a/key/pub.go
+++ b/key/pub.go
@@ -15,16 +15,6 @@ func (v *Pub) Err() error {
return nil
}
-func (v *Pub) Verify(message []byte, sig *Sig) error {
- if v.KeyNum != sig.KeyNum {
- return ErrKeyNum
- }
- if !ed25519.Verify(ed25519.PublicKey(v.Key[:]), message, sig.Sig[:]) {
- return ErrInvalidSig
- }
- return nil
-}
-
func (v *Pub) MarshalBinary() ([]byte, error) {
return marshal(v)
}
@@ -33,7 +23,7 @@ func (v *Pub) UnmarshalBinary(data []byte) error {
return unmarshal(data, v)
}
-func ParsePub(data []byte) (*Pub, error) {
+func NewPub(data []byte) (*Pub, error) {
pub := new(Pub)
if err := pub.UnmarshalBinary(data); err != nil {
return nil, err
diff --git a/key/sig.go b/key/sig.go
index 6921812..0c95c10 100644
--- a/key/sig.go
+++ b/key/sig.go
@@ -15,6 +15,16 @@ func (v *Sig) Err() error {
return nil
}
+func (v *Sig) Verify(message []byte, pub *Pub) error {
+ if v.KeyNum != pub.KeyNum {
+ return ErrKeyNum
+ }
+ if !ed25519.Verify(ed25519.PublicKey(pub.Key[:]), message, v.Sig[:]) {
+ return ErrInvalidSig
+ }
+ return nil
+}
+
func (v *Sig) MarshalBinary() ([]byte, error) {
return marshal(v)
}
@@ -23,7 +33,7 @@ func (v *Sig) UnmarshalBinary(data []byte) error {
return unmarshal(data, v)
}
-func ParseSig(data []byte) (*Sig, error) {
+func NewSig(data []byte) (*Sig, error) {
sig := new(Sig)
if err := sig.UnmarshalBinary(data); err != nil {
return nil, err
diff --git a/sign.go b/sign.go
index 56e7e03..4eb645b 100644
--- a/sign.go
+++ b/sign.go
@@ -65,5 +65,5 @@ func OpenEnc(fname string) (*key.Enc, error) {
if err != nil {
return nil, err
}
- return key.ParseEnc(block.Bytes, ask.Passphrase{})
+ return key.NewEnc(block.Bytes, ask.Passphrase{})
}
diff --git a/verify.go b/verify.go
index bbfaba7..20f3123 100644
--- a/verify.go
+++ b/verify.go
@@ -53,7 +53,7 @@ func verify(args []string) error {
return err
}
}
- if err := pubKey.Verify(msg, sig); err != nil {
+ if err := sig.Verify(msg, pubKey); err != nil {
return err
}
if !*quiet {
@@ -67,7 +67,7 @@ func OpenPub(fname string) (*key.Pub, error) {
if err != nil {
return nil, err
}
- return key.ParsePub(block.Bytes)
+ return key.NewPub(block.Bytes)
}
func OpenSig(fname string) (*key.Sig, []byte, string, error) {
@@ -75,7 +75,7 @@ func OpenSig(fname string) (*key.Sig, []byte, string, error) {
if err != nil {
return nil, nil, "", err
}
- sig, err := key.ParseSig(block.Bytes)
+ sig, err := key.NewSig(block.Bytes)
if err != nil {
return nil, nil, "", err
}