aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-18 01:23:30 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-18 01:23:30 +0200
commit86044db4f41178dd19ad9a00d82b57970cc0dbb9 (patch)
tree7113183d3474f5f6f4699a59d8549ad85d57e487
parent77a47c251ecac64ed625c7963aa9bb2c4f09fcbd (diff)
Unmarshaler
-rw-r--r--key/enc.go6
-rw-r--r--key/pub.go6
-rw-r--r--key/sig.go6
3 files changed, 15 insertions, 3 deletions
diff --git a/key/enc.go b/key/enc.go
index 2f2d48d..6ade4f6 100644
--- a/key/enc.go
+++ b/key/enc.go
@@ -41,9 +41,13 @@ func (v *Enc) MarshalBinary() ([]byte, error) {
return Marshal(v)
}
+func (v *Enc) UnmarshalBinary(data []byte) error {
+ return Unmarshal(data, v)
+}
+
func ParseEnc(data []byte, d KeyDeriver) (*Enc, error) {
var enc *Enc
- if err := Unmarshal(data, enc); err != nil {
+ if err := enc.UnmarshalBinary(data); err != nil {
return nil, err
}
if d != nil && enc.KDFRounds > 0 {
diff --git a/key/pub.go b/key/pub.go
index bc94e30..6e3784e 100644
--- a/key/pub.go
+++ b/key/pub.go
@@ -29,9 +29,13 @@ func (v *Pub) MarshalBinary() ([]byte, error) {
return Marshal(v)
}
+func (v *Pub) UnmarshalBinary(data []byte) error {
+ return Unmarshal(data, v)
+}
+
func ParsePub(data []byte) (*Pub, error) {
var pub *Pub
- if err := Unmarshal(data, pub); err != nil {
+ if err := pub.UnmarshalBinary(data); err != nil {
return nil, err
}
return pub, pub.Check()
diff --git a/key/sig.go b/key/sig.go
index ecd02c6..73379cf 100644
--- a/key/sig.go
+++ b/key/sig.go
@@ -19,9 +19,13 @@ func (v *Sig) MarshalBinary() ([]byte, error) {
return Marshal(v)
}
+func (v *Sig) UnmarshalBinary(data []byte) error {
+ return Unmarshal(data, v)
+}
+
func ParseSig(data []byte) (*Sig, error) {
var sig *Sig
- if err := Unmarshal(data, sig); err != nil {
+ if err := sig.UnmarshalBinary(data); err != nil {
return nil, err
}
return sig, sig.Check()