UNPKG

wireguard-wrapper

Version:
81 lines (65 loc) 1.82 kB
# NodeJS Wireguard Wrapper This project is a nodejs wrapper for the wireguard commands `wg` and `wg-quick`. Features: - No dependencies - Uses promises Limitations: - So far it can only read but not write anything - missing `wg set`, `wg setconf`, `wg addconf`, `wg syncconf` ## Installation ``` npm i --save wireguard-wrapper ``` ## Usage `wg` or `wg show` ``` const { Wg } = require('wireguard-wrapper'); Wg.show().then(function(interfaces){ console.log('all interfaces:', interfaces); }); Wg.show('wg0').then(function(interfaces){ console.log('wg0:', interfaces); }); ``` `wg showconf` ``` const { Wg } = require('wireguard-wrapper'); Wg.showconf('wg0').then(function(config){ console.log('wg0 configuration:', config); console.log('generated configuration file:', config.toString()); }); ``` `wg genkey` ``` const { Wg } = require('wireguard-wrapper'); Wg.genkey().then(function(key){ console.log('private key:', key); }); ``` `wg genpsk` ``` const { Wg } = require('wireguard-wrapper'); Wg.genpsk().then(function(psk){ console.log('preshared key:', psk); }); ``` `wg pubkey` ``` const { Wg } = require('wireguard-wrapper'); Wg.genkey().then(function(privateKey){ console.log('private key:', privateKey); Wg.pubkey(privateKey).then(function(publicKey){ console.log('public key:', publicKey); }); }); ``` ## API Commands: - `Wg.show([string device])` - Returns an Statistics-Interface-Object with the current status. The parameter is optional - `Wg.showconf(string device)` - Returns an Config-Interface-Object with the current configuration. The parameter is required. - `Wg.genkey()` - Generates a new private key. - `Wg.genpsk()` - Generates a new preshared key. - `Wg.pubkey(string privateKey)` - Generates a public key from the given private Key. The paramter is required.