summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--op-mode-definitions/show-interfaces-wireguard.xml.in2
-rwxr-xr-xsrc/op_mode/wireguard.py87
2 files changed, 1 insertions, 88 deletions
diff --git a/op-mode-definitions/show-interfaces-wireguard.xml.in b/op-mode-definitions/show-interfaces-wireguard.xml.in
index ecbb903f8..863357ef7 100644
--- a/op-mode-definitions/show-interfaces-wireguard.xml.in
+++ b/op-mode-definitions/show-interfaces-wireguard.xml.in
@@ -11,7 +11,7 @@
<script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script>
</completionHelp>
</properties>
- <command>sudo ${vyos_op_scripts_dir}/wireguard.py --showinterface "$4"</command>
+ <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
<children>
<leafNode name="allowed-ips">
<properties>
diff --git a/src/op_mode/wireguard.py b/src/op_mode/wireguard.py
deleted file mode 100755
index 3ed8e17ca..000000000
--- a/src/op_mode/wireguard.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (C) 2018-2021 VyOS maintainers and contributors
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 or later as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import argparse
-import sys
-import tabulate
-
-from vyos.config import Config
-from vyos.ifconfig import WireGuardIf
-from vyos.util import cmd
-from vyos import ConfigError
-
-base = ['interfaces', 'wireguard']
-
-def get_public_keys():
- config = Config()
- headers = ['Interface', 'Peer', 'Public Key']
- out = []
- if config.exists(base):
- wg_interfaces = config.get_config_dict(base, key_mangling=('-', '_'),
- get_first_key=True,
- no_tag_node_value_mangle=True)
-
- for wg, wg_conf in wg_interfaces.items():
- if 'peer' in wg_conf:
- for peer, peer_conf in wg_conf['peer'].items():
- out.append([wg, peer, peer_conf['public_key']])
-
- print("Wireguard Public Keys:")
- print(tabulate.tabulate(out, headers))
-
-def get_private_keys():
- config = Config()
- headers = ['Interface', 'Private Key', 'Public Key']
- out = []
- if config.exists(base):
- wg_interfaces = config.get_config_dict(base, key_mangling=('-', '_'),
- get_first_key=True,
- no_tag_node_value_mangle=True)
-
- for wg, wg_conf in wg_interfaces.items():
- private_key = wg_conf['private_key']
- public_key = cmd('wg pubkey', input=private_key)
- out.append([wg, private_key, public_key])
-
- print("Wireguard Private Keys:")
- print(tabulate.tabulate(out, headers))
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='wireguard key management')
- parser.add_argument(
- '--showpub', action="store_true", help='shows public keys')
- parser.add_argument(
- '--showpriv', action="store_true", help='shows private keys')
- parser.add_argument(
- '--showinterface', action="store", help='shows interface details')
- args = parser.parse_args()
-
- try:
- if args.showpub:
- get_public_keys()
- if args.showpriv:
- get_private_keys()
- if args.showinterface:
- try:
- intf = WireGuardIf(args.showinterface, create=False, debug=False)
- print(intf.operational.show_interface())
- # the interface does not exists
- except Exception:
- pass
-
- except ConfigError as e:
- print(e)
- sys.exit(1)