diff options
author | gjoranv <gv@verizonmedia.com> | 2022-11-14 14:19:18 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-11-15 10:37:19 +0100 |
commit | bc24031511038576f304dcc37974e2058d93a390 (patch) | |
tree | 1b8a79dc4d5393054ba8d90e4615485194208f50 /config-provisioning | |
parent | d9394d9c527ff1ef36729861eb29a2da76768fde (diff) |
Add 'wireguardPubKey' field to Node
Diffstat (limited to 'config-provisioning')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/WireguardKey.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/WireguardKey.java b/config-provisioning/src/main/java/com/yahoo/config/provision/WireguardKey.java new file mode 100644 index 00000000000..4df6d402ce3 --- /dev/null +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/WireguardKey.java @@ -0,0 +1,30 @@ +package com.yahoo.config.provision; + +import ai.vespa.validation.PatternedStringWrapper; + +import java.util.regex.Pattern; + +/** + * Wraps a Wireguard key. + * For security reasons, this should only be used for public keys, although private keys use the same format. + * + * @author gjoranv + */ +public class WireguardKey extends PatternedStringWrapper<WireguardKey> { + + // See https://lists.zx2c4.com/pipermail/wireguard/2020-December/006222.html + private static final Pattern pattern = Pattern.compile("^[A-Za-z0-9+/]{42}[A|E|I|M|Q|U|Y|c|g|k|o|s|w|4|8|0]=$"); + + public WireguardKey(String value) { + super(value, pattern, "Wireguard key"); + } + + public static WireguardKey from(String value) { + return new WireguardKey(value); + } + + @Override + public String toString() { + return "Wireguard key '" + value() + "'"; + } +} |