diff options
author | Christian Breunig <christian@breunig.cc> | 2025-03-20 22:00:10 +0100 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2025-03-20 22:00:10 +0100 |
commit | 8021bdd62e4142caf4a5e82000c8ca3da99fcae4 (patch) | |
tree | adb02422a3cfe1fb17613f8523a925ab5e5c6204 /interface-definitions/include/constraint | |
parent | 95af91597c94856a38722daa5ea388646f9b735f (diff) | |
download | vyos-1x-8021bdd62e4142caf4a5e82000c8ca3da99fcae4.tar.gz vyos-1x-8021bdd62e4142caf4a5e82000c8ca3da99fcae4.zip |
wireguard: T7246: verify Base64 encoded 32byte boundary on keys
Not 31 bytes or 33 bytes, but exactly 32. This matters, because 32 does not
divide evenly by .75, so there's a padding character and the penultimate
character does not include the whole base64 alphabet.
Extend the base64 validator with an optional argument to define the length
to match of the decrypted Base64 encoded string.
Source: https://lists.zx2c4.com/pipermail/wireguard/2020-December/006222.html
Diffstat (limited to 'interface-definitions/include/constraint')
-rw-r--r-- | interface-definitions/include/constraint/wireguard-keys.xml.i | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/interface-definitions/include/constraint/wireguard-keys.xml.i b/interface-definitions/include/constraint/wireguard-keys.xml.i new file mode 100644 index 000000000..f59c86087 --- /dev/null +++ b/interface-definitions/include/constraint/wireguard-keys.xml.i @@ -0,0 +1,6 @@ +<!-- include start from constraint/wireguard-keys.xml.i --> +<constraint> + <validator name="base64" argument="--decoded-len 32"/> +</constraint> +<constraintErrorMessage>Key must be Base64-encoded with 32 bytes in length</constraintErrorMessage> +<!-- include end --> |