-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
42 lines (35 loc) · 1.37 KB
/
Copy pathscript.js
File metadata and controls
42 lines (35 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function generateRandomHex(length) {
const bytes = new Uint8Array(length / 2);
window.crypto.getRandomValues(bytes);
return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
}
function generateKeys() {
// Generate PSK Identity (6 bytes = 12 hex chars)
const pskIdentity = generateRandomHex(12);
document.getElementById('pskIdentity').value = pskIdentity;
// Generate PSK Key (24 bytes = 48 hex chars)
const pskKey = generateRandomHex(48);
document.getElementById('pskKey').value = pskKey;
// Add visual feedback
const button = document.querySelector('button[onclick="generateKeys()"]');
button.classList.add('animate-pulse');
setTimeout(() => {
button.classList.remove('animate-pulse');
}, 1000);
}
function copyToClipboard(elementId) {
const element = document.getElementById(elementId);
element.select();
document.execCommand('copy');
// Visual feedback
const button = element.nextElementSibling;
const originalIcon = button.innerHTML;
button.innerHTML = '<i data-feather="check" class="w-5 h-5"></i>';
feather.replace();
setTimeout(() => {
button.innerHTML = originalIcon;
feather.replace();
}, 2000);
}
// Generate keys on page load
document.addEventListener('DOMContentLoaded', generateKeys);