Compare commits

...

2 Commits

Author SHA1 Message Date
karasz 07d4f462a3 Merge pull request 'wireguard: fix KeyPair.Validate()' (#30)
Reviewed-on: #30
2023-10-27 18:11:16 +02:00
amery 142ea00577 wireguard: fix KeyPair.Validate()
PrivateKey and PublicKey are now fixed length arrays,
so testing for len 0 is invalid

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-10-27 15:55:27 +00:00
+3 -9
View File
@@ -183,20 +183,14 @@ type KeyPair struct {
// Validate checks the PublicKey matches the PrivateKey,
// and sets the PublicKey if missing
func (kp *KeyPair) Validate() error {
keyLen := len(kp.PrivateKey)
pubLen := len(kp.PublicKey)
switch {
case keyLen != PrivateKeySize:
// bad private key
case kp.PrivateKey.IsZero():
// no private key
return ErrInvalidPrivateKey
case pubLen == 0:
case kp.PublicKey.IsZero():
// no public key, set it
kp.PublicKey = kp.PrivateKey.Public()
return nil
case pubLen != PublicKeySize:
// bad public key
return ErrInvalidPublicKey
case !kp.PrivateKey.Public().Equal(kp.PublicKey):
// wrong public key
return ErrInvalidPublicKey