aboutsummaryrefslogtreecommitdiff
path: root/key/sec.go
diff options
context:
space:
mode:
Diffstat (limited to 'key/sec.go')
-rw-r--r--key/sec.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/key/sec.go b/key/sec.go
index 6ae8c83..19b0e85 100644
--- a/key/sec.go
+++ b/key/sec.go
@@ -3,6 +3,7 @@ package key
import (
"bytes"
"crypto/sha512"
+ "encoding/binary"
"golang.org/x/crypto/ed25519"
)
@@ -38,9 +39,6 @@ func (v *Sec) Validate() error {
return nil
}
-func (v *Sec) MarshalBinary() ([]byte, error) { return Marshal(v) }
-func (v *Sec) UnmarshalBinary(data []byte) error { return Unmarshal(data, v) }
-
// Public key of secret key
func (v *Sec) Public() *Pub {
key := ed25519.PrivateKey(v.Key[:]).Public().(ed25519.PublicKey)
@@ -74,3 +72,19 @@ func NewSec(data []byte, der Deriver) (*Sec, error) {
}
return sec, sec.Validate()
}
+
+func (v *Sec) MarshalBinary() ([]byte, error) {
+ buf := new(bytes.Buffer)
+ if err := binary.Write(buf, binary.BigEndian, v); err != nil {
+ return nil, err
+ }
+ return buf.Bytes(), nil
+}
+
+func (v *Sec) UnmarshalBinary(data []byte) error {
+ buf := bytes.NewReader(data)
+ if err := binary.Read(buf, binary.BigEndian, v); err != nil {
+ return err
+ }
+ return nil
+}