From 312dbe22692758d200777a34b93dfc1380d45b04 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Fri, 1 Sep 2023 19:54:36 +0000 Subject: [PATCH] wireguard: implement UnmarshalText for PrivateKey and PublicKey Signed-off-by: Alejandro Mery --- pkg/wireguard/keys.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/wireguard/keys.go b/pkg/wireguard/keys.go index 532f64e..f084f40 100644 --- a/pkg/wireguard/keys.go +++ b/pkg/wireguard/keys.go @@ -51,6 +51,30 @@ func (pub PublicKey) String() string { } } +// UnmarshalText loads the value from base64 +func (key *PrivateKey) UnmarshalText(b []byte) error { + v, err := PrivateKeyFromBase64(string(b)) + switch { + case err != nil: + return err + default: + *key = v + return nil + } +} + +// UnmarshalText loads the value from base64 +func (pub *PublicKey) UnmarshalText(b []byte) error { + v, err := PublicKeyFromBase64(string(b)) + switch { + case err != nil: + return err + default: + *pub = v + return nil + } +} + // MarshalJSON encodes the key for JSON, omitting empty. func (key PrivateKey) MarshalJSON() ([]byte, error) { return encodeKeyJSON(key.String())