Files
WGDashboard/src/static/app/dist/assets/wireguard.js
T
2024-11-03 18:35:21 +08:00

5 lines
3.6 KiB
JavaScript

/*! SPDX-License-Identifier: GPL-2.0
*
* Copyright (C) 2015-2020 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
*/(function(){function c(n){var r=new Float64Array(16);if(n)for(var a=0;a<n.length;++a)r[a]=n[a];return r}function F(n,r){for(var a,e=c(),f=c(),t=0;t<16;++t)f[t]=r[t];b(f),b(f),b(f);for(var u=0;u<2;++u){e[0]=f[0]-65517;for(var t=1;t<15;++t)e[t]=f[t]-65535-(e[t-1]>>16&1),e[t-1]&=65535;e[15]=f[15]-32767-(e[14]>>16&1),a=e[15]>>16&1,e[14]&=65535,h(f,e,1-a)}for(var t=0;t<16;++t)n[2*t]=f[t]&255,n[2*t+1]=f[t]>>8}function b(n){for(var r=0;r<16;++r)n[(r+1)%16]+=(r<15?1:38)*Math.floor(n[r]/65536),n[r]&=65535}function h(n,r,a){for(var e,f=~(a-1),t=0;t<16;++t)e=f&(n[t]^r[t]),n[t]^=e,r[t]^=e}function g(n,r,a){for(var e=0;e<16;++e)n[e]=r[e]+a[e]|0}function i(n,r,a){for(var e=0;e<16;++e)n[e]=r[e]-a[e]|0}function v(n,r,a){for(var e=new Float64Array(31),f=0;f<16;++f)for(var t=0;t<16;++t)e[f+t]+=r[f]*a[t];for(var f=0;f<15;++f)e[f]+=38*e[f+16];for(var f=0;f<16;++f)n[f]=e[f];b(n),b(n)}function B(n,r){for(var a=c(),e=0;e<16;++e)a[e]=r[e];for(var e=253;e>=0;--e)v(a,a,a),e!==2&&e!==4&&v(a,a,r);for(var e=0;e<16;++e)n[e]=a[e]}function A(n){n[31]=n[31]&127|64,n[0]&=248}function m(n){for(var r,a=new Uint8Array(32),e=c([1]),f=c([9]),t=c(),u=c([1]),y=c(),U=c(),L=c([56129,1]),S=c([9]),d=0;d<32;++d)a[d]=n[d];A(a);for(var d=254;d>=0;--d)r=a[d>>>3]>>>(d&7)&1,h(e,f,r),h(t,u,r),g(y,e,t),i(e,e,t),g(t,f,u),i(f,f,u),v(u,y,y),v(U,e,e),v(e,t,e),v(t,f,y),g(y,e,t),i(e,e,t),v(f,e,e),i(t,u,U),v(e,t,L),g(e,e,u),v(t,t,e),v(e,u,U),v(u,f,S),v(f,y,y),h(e,f,r),h(t,u,r);return B(t,t),v(e,e,t),F(a,e),a}function K(){var n=new Uint8Array(32);return window.crypto.getRandomValues(n),n}function P(){var n=K();return A(n),n}function s(n,r){for(var a=Uint8Array.from([r[0]>>2&63,(r[0]<<4|r[1]>>4)&63,(r[1]<<2|r[2]>>6)&63,r[2]&63]),e=0;e<4;++e)n[e]=a[e]+65+(25-a[e]>>8&6)-(51-a[e]>>8&75)-(61-a[e]>>8&15)+(62-a[e]>>8&3)}function x(n){var r,a=new Uint8Array(44);for(r=0;r<32/3;++r)s(a.subarray(r*4),n.subarray(r*3));return s(a.subarray(r*4),Uint8Array.from([n[r*3+0],n[r*3+1],0])),a[43]=61,String.fromCharCode.apply(null,a)}function R(n){let r=window.atob(n),a=r.length,e=new Uint8Array(a);for(let t=0;t<a;t++)e[t]=r.charCodeAt(t);return new Uint8Array(e.buffer)}function l(n,r){n.push(r&255,r>>>8&255,r>>>16&255,r>>>24&255)}function o(n,r){n.push(r&255,r>>>8&255)}function w(n,r){for(var a=0;a<r.length;++a)n.push(r[a]&255)}function C(n){for(var r=unescape(encodeURIComponent(n)),a=new Uint8Array(r.length),e=0;e<r.length;++e)a[e]=r.charCodeAt(e);return a}function p(n){if(!p.table){p.table=[];for(var r=0,a=0;a<256;r=++a){for(var e=0;e<8;++e)r=r&1?3988292384^r>>>1:r>>>1;p.table[a]=r}}for(var f=-1,t=0;t<n.length;++t)f=f>>>8^p.table[(f^n[t])&255];return(f^-1)>>>0}function _(n){for(var r=[],a=[],e=0,f=0;f<n.length;++f){var t=C(n[f].fileName),u=C(n[f].file),y=p(u);l(r,67324752),o(r,20),o(r,0),o(r,0),o(r,0),o(r,0),l(r,y),l(r,u.length),l(r,u.length),o(r,t.length),o(r,0),w(r,t),w(r,u),l(a,33639248),o(a,0),o(a,20),o(a,0),o(a,0),o(a,0),o(a,0),l(a,y),l(a,u.length),l(a,u.length),o(a,t.length),o(a,0),o(a,0),o(a,0),o(a,0),l(a,32),l(a,e),w(a,t),e+=30+u.length+t.length}return w(r,a),l(r,101010256),o(r,0),o(r,0),o(r,n.length),o(r,n.length),l(r,a.length),l(r,e),o(r,0),Uint8Array.from(r)}window.wireguard={generateKeypair:function(){var n=P(),r=m(n),a=K();return{publicKey:x(r),privateKey:x(n),presharedKey:x(a)}},generatePublicKey:function(n){return n=R(n),x(m(n))},generateZipFiles:function(n,r){var a=n.data,e=_(a),f=new Blob([e],{type:"application/zip"}),t=document.createElement("a");t.download=r,t.href=URL.createObjectURL(f),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}}})();