package wireguard import ( "bytes" "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 } // Equal checks if two keys are identical func (k BinaryKey) Equal(alter BinaryKey) bool { return bytes.Equal(k, alter) } // 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 }