Skip to content

Commit 66beb19

Browse files
author
Peter Koevesdi
committed
added PSK autogenerate function
1 parent 055c082 commit 66beb19

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed

index.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,16 @@ <h2>Wireguard</h2>
8383
<label for="sp">Port</label>:<input type="number" name="sp" min="1" max="65635" value="51820"><br>
8484
<label for="sk">Server Pubkey</label>:<input type="text" name="sk" value="RANDOM-EXAMPLE"><br>
8585
<label for="pk">Preshared Key</label>:<input type="text" name="pk" value="">
86-
<button type="button" id="pskbtn" onclick="genPsk()">Generate PSK</button><br>
86+
<button type="button" id="pskbtn" onclick="genPsk()">Generate PSK</button>
87+
<label for="pka">Autogenerate</label>:<input type="checkbox" name="pka"
88+
onchange="pskbtn.disabled = this.checked"><br>
8789
<label for="ca">Client Address</label>:<input type="text" name="ca" value="10.0.0.2"><br>
8890
<label for="dn">DNS</label>:<input type="text" name="dn" value=""><br>
8991
<label for="mt">MTU</label>:<input type="number" name="mt" min="0" max="65635" value="1400"><br>
9092
<label for="aa">Allowed Subnets</label>:<input type="text" name="aa" value="10.0.0.0"><br>
9193
<label for="ka">Keepalive</label>:<input type="number" name="ka" min="0" max="1000" value="25"><br>
94+
<label for="cn">Client name</label>:<input type="text" name="cn">
9295
</span>
93-
<label for="cn">Client name</label>(optional):<input type="text" name="cn">
9496
<button type="button" id="gencnbtn" onclick="generateCN()">Generate</button><br>
9597
<input type="hidden" id="puk">
9698
<h2>OPNsense interface (optional)</h2>
@@ -159,8 +161,8 @@ <h3>Server Fragment</h3>
159161
<a href="https://github.com/jcarrano/wg-keygen-notrust">GitHub Repository</a>
160162
</p>
161163
</div>
162-
<script src="ui.js" integrity="sha256-U9/gaT9VCAlsWaIP5louwsKG1P1uq0J8Kj6dF3ATSII="
164+
<script src="ui.js" integrity="sha256-Kpd2eUaaYkyJTLg9uD/wnhZcalpPBObdvUH4hIi8gyE="
163165
crossorigin="anonymous"></script>
164166
</body>
165167

166-
</html>
168+
</html>

opnsensebridge.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def getip(opnsenseURL, APIkey, APIsecret, tunnelRealm):
5151

5252
print('{"ip":"'+usableHost.exploded+'/32"}')
5353

54-
def createclient(opnsenseURL, APIkey, APIsecret, PeerName, pubkey, tunnelAddress):
54+
def createclient(opnsenseURL, APIkey, APIsecret, PeerName, pubkey, pskey, tunnelAddress):
5555
wireguardsClients = getclients(opnsenseURL, APIkey, APIsecret)
5656

5757
if PeerName in [item["name"] for item in wireguardsClients]:
@@ -75,6 +75,7 @@ def createclient(opnsenseURL, APIkey, APIsecret, PeerName, pubkey, tunnelAddress
7575
"enabled": '1',
7676
"name": PeerName,
7777
"pubkey": pubkey,
78+
"psk": pskey,
7879
"tunneladdress": tunnelAddress,
7980
"keepalive ": '25'
8081
}
@@ -125,7 +126,7 @@ def reconfigure(opnsenseURL, APIkey, APIsecret):
125126
if r.json()["status"] != "ok":
126127
print('{"error":'+r.text+'}')
127128
sys.exit()
128-
print(r.text)
129+
print('{"res":"'+r.text+'/32"}')
129130

130131
print("Content-type: text/html\n\n")
131132
form = cgi.FieldStorage()
@@ -134,6 +135,6 @@ def reconfigure(opnsenseURL, APIkey, APIsecret):
134135
if form.getvalue('task') == "getip":
135136
getip(form.getvalue('opnsenseURL'),form.getvalue('key'),form.getvalue('secret'),form.getvalue('tunnelRealm'))
136137
if form.getvalue('task') == "createclient":
137-
uuid = createclient(form.getvalue('opnsenseURL'),form.getvalue('key'),form.getvalue('secret'),form.getvalue('PeerName'),form.getvalue('pubkey'),form.getvalue('tunnelAddress'))
138+
uuid = createclient(form.getvalue('opnsenseURL'),form.getvalue('key'),form.getvalue('secret'),form.getvalue('PeerName'),form.getvalue('pubkey'),form.getvalue('pskey'),form.getvalue('tunnelAddress'))
138139
enableclient(form.getvalue('opnsenseURL'),form.getvalue('key'),form.getvalue('secret'),form.getvalue('ServerUUID'),uuid)
139140
reconfigure(form.getvalue('opnsenseURL'),form.getvalue('key'),form.getvalue('secret'))

ui.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
(new URL(window.location.href)).searchParams.forEach((x, y) => {
22
let el = document.getElementsByName(y)[0];
3-
if (el)
4-
el.value = x;
3+
if (el) {
4+
console.log(el.type);
5+
if (el.type == "checkbox") {
6+
el.checked = (x == "on");
7+
el.dispatchEvent(new InputEvent('change'));
8+
}
9+
else el.value = x;
10+
}
511
});
612

713
// Make the result section disappear when changing relevant input fields
@@ -10,9 +16,11 @@ for (var element of document.getElementById("relevant_for_clientconfig").getElem
1016
}
1117

1218
function genCfg() {
19+
if (document.getElementsByName("pka")[0].checked) genPsk();
1320
let results = document.getElementById('results');
1421
results.setAttribute("style", "");
1522
let kp = wireguard.generateKeypair();
23+
document.getElementById("puk").value = kp.publicKey;
1624
let fd = new FormData(document.getElementById('params'));
1725
let clientcfg = [
1826
"[Interface]",
@@ -79,6 +87,15 @@ function genPsk() {
7987
pkfield.dispatchEvent(new InputEvent('beforeinput'));
8088
}
8189

90+
function generateCN() {
91+
d = new Date();
92+
var datestring = d.getFullYear().toString().substring(2) + "-" + ("0" + (d.getMonth() + 1)).slice(-2) + "-" + ("0" + d.getDate()).slice(-2) +
93+
"_" + ("0" + d.getHours()).slice(-2) + "-" + ("0" + d.getMinutes()).slice(-2) + "-" + ("0" + d.getSeconds()).slice(-2);
94+
let cnfield = document.getElementsByName('cn')[0];
95+
cnfield.value = 'user_' + datestring;
96+
cnfield.dispatchEvent(new InputEvent('beforeinput'));
97+
}
98+
8299
function copycl(text) {
83100
navigator.clipboard.writeText(text).then(function () {
84101
console.log('Async: Copying to clipboard was successful!');
@@ -170,7 +187,9 @@ function getIP() {
170187
try {
171188
res = JSON.parse(xmlHttp.responseText);
172189
if (res.error || !res.ip) throw ""
173-
document.getElementsByName('ca')[0].value = res.ip;
190+
let cafield = document.getElementsByName('ca')[0];
191+
cafield.value = res.ip;
192+
cafield.dispatchEvent(new InputEvent('beforeinput'));
174193
document.getElementById('err').innerHTML = "Get unused IP: success";
175194
document.getElementById('err').setAttribute("style", "background-color: rgb(100, 255, 100)");
176195
}
@@ -200,7 +219,8 @@ function pushconfig() {
200219
"&key=" + encodeURIComponent(document.getElementsByName('osk')[0].value) +
201220
"&secret=" + encodeURIComponent(document.getElementsByName('oss')[0].value) +
202221
"&PeerName=" + encodeURIComponent(document.getElementsByName('cn')[0].value) +
203-
"&pubkey=" + encodeURIComponent(document.getElementsByName('puk')[0].value) +
222+
"&pubkey=" + encodeURIComponent(document.getElementById('puk').value) +
223+
"&pskey=" + encodeURIComponent(document.getElementsByName('pk')[0].value) +
204224
"&ServerUUID=" + encodeURIComponent(document.getElementsByName('owg')[0].value) +
205225
"&tunnelAddress=" + encodeURIComponent(document.getElementsByName('ca')[0].value), true);
206226
xmlHttp.responseType = "JSON";
@@ -225,9 +245,3 @@ function pushconfig() {
225245

226246
}
227247

228-
function generateCN() {
229-
d = new Date();
230-
var datestring = d.getFullYear().toString().substring(2) + "-" + ("0" + (d.getMonth() + 1)).slice(-2) + "-" + ("0" + d.getDate()).slice(-2) +
231-
"_" + ("0" + d.getHours()).slice(-2) + "-" + ("0" + d.getMinutes()).slice(-2) + "-" + ("0" + d.getSeconds()).slice(-2);
232-
document.getElementsByName('cn')[0].value = 'user_' + datestring;
233-
}

0 commit comments

Comments
 (0)