<?xml version="1.0"?> <!-- wireguard key management --> <interfaceDefinition> <node name="generate"> <children> <node name="wireguard"> <properties> <help>wireguard key generation utility</help> </properties> <children> <leafNode name="default-keypair"> <properties> <help>generates the wireguard default-keypair</help> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey</command> </leafNode> <leafNode name="preshared-key"> <properties> <help>generate a wireguard preshared key</help> </properties> <command>${vyos_op_scripts_dir}/wireguard.py --genpsk</command> </leafNode> <tagNode name="named-keypairs"> <properties> <help>Generates named wireguard keypairs</help> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey --location "$4"</command> </tagNode> <tagNode name="client-config"> <properties> <help>Generate Client config QR code</help> <completionHelp> <list><client-name></list> </completionHelp> </properties> <children> <tagNode name="interface"> <properties> <help>Local interface used for connection</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script> </completionHelp> </properties> <children> <tagNode name="server"> <properties> <help>IP address/FQDN used for client connection</help> <completionHelp> <script>${vyos_completion_dir}/list_local_ips.sh --both</script> <list><hostname></list> </completionHelp> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8"</command> <children> <tagNode name="address"> <properties> <help>IPv4/IPv6 address used by client</help> <completionHelp> <list><x.x.x.x> <h:h:h:h:h:h:h:h></list> </completionHelp> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}"</command> <children> <tagNode name="address"> <properties> <help>IPv4/IPv6 address used by client</help> <completionHelp> <list><x.x.x.x> <h:h:h:h:h:h:h:h></list> </completionHelp> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}" --address "${12}"</command> </tagNode> </children> </tagNode> </children> </tagNode> </children> </tagNode> </children> </tagNode> </children> </node> </children> </node> <node name="show"> <children> <node name="wireguard"> <properties> <help>Show wireguard properties</help> </properties> <children> <node name="keypairs"> <properties> <help>Shows named wireguard keys</help> </properties> <children> <tagNode name="pubkey"> <properties> <help>Show wireguard private named key</help> <completionHelp> <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/wireguard.py --showpub --location "$5"</command> </tagNode> <tagNode name="privkey"> <properties> <help>Show wireguard public named key</help> <completionHelp> <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/wireguard.py --showpriv --location "$5"</command> </tagNode> </children> </node> </children> </node> </children> </node> <node name="delete"> <children> <node name="wireguard"> <properties> <help>Delete wireguard properties</help> </properties> <children> <tagNode name="keypair"> <properties> <help>Delete a wireguard keypair</help> <completionHelp> <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script> </completionHelp> </properties> <command>sudo ${vyos_op_scripts_dir}/wireguard.py --delkdir --location "$4"</command> </tagNode> </children> </node> </children> </node> </interfaceDefinition>