aboutsummaryrefslogtreecommitdiff
path: root/key/sig.go
diff options
context:
space:
mode:
Diffstat (limited to 'key/sig.go')
-rw-r--r--key/sig.go12
1 files changed, 11 insertions, 1 deletions
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