wireguard: introduce initial BinaryKey and KeyPair structs

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-08-22 15:02:13 +00:00
parent 0d14510958
commit 4d25ea1d16
+30
View File
@@ -0,0 +1,30 @@
package wireguard
import (
"encoding/base64"
)
// BinaryKey is a binary blob
type BinaryKey []byte
func (k BinaryKey) String() string {
return base64.StdEncoding.EncodeToString(k)
}
// IsZero tells if the key hasn't been set
func (k BinaryKey) IsZero() bool {
return len(k) == 0
}
// BinaryKeyFromBase64 decodes a base64-based string into
// a [BinaryKey]
func BinaryKeyFromBase64(data string) (BinaryKey, error) {
b, err := base64.StdEncoding.DecodeString(data)
return BinaryKey(b), err
}
// KeyPair holds a Key pair
type KeyPair struct {
PrivateKey BinaryKey
PublicKey BinaryKey
}