From 4865ac3532b1d54cfe99209e5e430182313cc9a9 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 5 Aug 2017 14:58:31 +0200 Subject: kiss --- key/sec.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'key/sec.go') 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 +} -- cgit v1.2.3