aboutsummaryrefslogtreecommitdiff
path: root/key/enc.go
diff options
context:
space:
mode:
Diffstat (limited to 'key/enc.go')
-rw-r--r--key/enc.go25
1 files changed, 10 insertions, 15 deletions
diff --git a/key/enc.go b/key/enc.go
index 898eb4c..6013ab7 100644
--- a/key/enc.go
+++ b/key/enc.go
@@ -17,14 +17,6 @@ type Enc struct {
Key [ed25519.PrivateKeySize]byte
}
-// Public key of encryption key
-func (v *Enc) Public() *Pub {
- key := ed25519.PrivateKey(v.Key[:]).Public().(ed25519.PublicKey)
- pub := &Pub{PKAlg: pkAlg, KeyNum: v.KeyNum}
- copy(pub.Key[:], key)
- return pub
-}
-
// Sign message
func (v *Enc) Sign(message []byte) *Sig {
sig := &Sig{PKAlg: v.PKAlg, KeyNum: v.KeyNum}
@@ -46,22 +38,25 @@ func (v *Enc) Err() error {
return nil
}
-func (v *Enc) MarshalBinary() ([]byte, error) {
- return marshal(v)
-}
+func (v *Enc) MarshalBinary() ([]byte, error) { return marshal(v) }
+func (v *Enc) UnmarshalBinary(data []byte) error { return unmarshal(data, v) }
-func (v *Enc) UnmarshalBinary(data []byte) error {
- return unmarshal(data, v)
+// Public key of encryption key
+func (v *Enc) Public() *Pub {
+ key := ed25519.PrivateKey(v.Key[:]).Public().(ed25519.PublicKey)
+ pub := &Pub{PKAlg: pkAlg, KeyNum: v.KeyNum}
+ copy(pub.Key[:], key)
+ return pub
}
// NewEnc returns a parsed and decoded encryption key
-func NewEnc(data []byte, der KeyDeriver) (*Enc, error) {
+func NewEnc(data []byte, der Deriver) (*Enc, error) {
enc := new(Enc)
if err := enc.UnmarshalBinary(data); err != nil {
return nil, err
}
if der != nil && enc.KDFRounds > 0 {
- xor, err := der.DeriveKey(enc.Salt[:], int(enc.KDFRounds), len(enc.Key))
+ xor, err := der.Derive(enc.Salt[:], int(enc.KDFRounds), len(enc.Key))
if err != nil {
return nil, err
}