aboutsummaryrefslogtreecommitdiff
path: root/sig.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-10-23 16:38:33 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-10-23 16:38:33 +0200
commit17ff78ec85558342223cc9d03099bd87cbf28537 (patch)
tree147e40850f44e490fcefa976b9d26f8ff8d7aa02 /sig.go
parent4a38070b2b20f755775b4eaacb142389086e7ac5 (diff)
Read/Write whole struct
Diffstat (limited to 'sig.go')
-rw-r--r--sig.go14
1 files changed, 5 insertions, 9 deletions
diff --git a/sig.go b/sig.go
index 5abea82..3ff334d 100644
--- a/sig.go
+++ b/sig.go
@@ -3,7 +3,7 @@ package main
import (
"bytes"
"encoding/base64"
- "io"
+ "encoding/binary"
"golang.org/x/crypto/ed25519"
)
@@ -17,18 +17,14 @@ type Sig struct {
func (v *Sig) Unmarshal(b []byte) error {
buf := bytes.NewBuffer(b)
dec := base64.NewDecoder(base64.StdEncoding, buf)
- io.ReadFull(dec, v.PKAlg[:])
- io.ReadFull(dec, v.KeyNum[:])
- io.ReadFull(dec, v.Sig[:])
- return nil
+ err := binary.Read(dec, binary.BigEndian, v)
+ return err
}
func (v *Sig) Marshal() ([]byte, error) {
buf := new(bytes.Buffer)
enc := base64.NewEncoder(base64.StdEncoding, buf)
- enc.Write(v.PKAlg[:])
- enc.Write(v.KeyNum[:])
- enc.Write(v.Sig[:])
+ err := binary.Write(enc, binary.BigEndian, v)
enc.Close()
- return buf.Bytes(), nil
+ return buf.Bytes(), err
}