aboutsummaryrefslogtreecommitdiff
path: root/enc.go
diff options
context:
space:
mode:
Diffstat (limited to 'enc.go')
-rw-r--r--enc.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/enc.go b/enc.go
index 4e21662..f76123e 100644
--- a/enc.go
+++ b/enc.go
@@ -2,8 +2,10 @@ package main
import (
"bytes"
+ "crypto/sha512"
"encoding/base64"
"encoding/binary"
+ "errors"
"io"
"golang.org/x/crypto/ed25519"
@@ -29,6 +31,10 @@ func (v *EncKey) Unmarshal(b []byte) error {
io.ReadFull(dec, v.Checksum[:])
io.ReadFull(dec, v.KeyNum[:])
io.ReadFull(dec, v.SecKey[:])
+ sum := sha512.Sum512(v.SecKey[:])
+ if !bytes.Equal(sum[:len(v.Checksum)], v.Checksum[:]) {
+ return errors.New("checksum mismatch")
+ }
return nil
}