From f8935c656c642ec870d917aae868c81fc23cdd65 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Thu, 17 Sep 2026 22:10:12 -0700 Subject: [PATCH] Use 11-character signatures and detect headers across WBR --- BUILD.md | 18 ---- content.js | 63 +++++++------ content.test.js | 89 +++++++++++++++++++ dist/chrome/content.js | 8 +- dist/chrome/index.html | 2 +- dist/chrome/index.js | 8 +- dist/chrome/manifest.json | 2 +- dist/firefox/content.js | 8 +- dist/firefox/index.html | 2 +- dist/firefox/index.js | 8 +- dist/firefox/manifest.json | 2 +- dist/inzerosight-chrome.zip | Bin 167606 -> 168262 bytes dist/inzerosight-firefox-source.zip | Bin 220132 -> 0 bytes dist/inzerosight-firefox.zip | Bin 167710 -> 168367 bytes dist/web/assets/index-DlLeEfTp.js | 4 + dist/web/assets/index-G7fqkm88.js | 4 - dist/web/index.html | 4 +- docs/zwus.md | 24 +++++ index.html | 2 +- package-lock.json | 4 +- package.json | 3 +- sig.js | 74 ++++++++++------ sig.test.js | 133 ++++++++++++++++++++++++++++ vite.config.js | 2 +- 24 files changed, 363 insertions(+), 101 deletions(-) delete mode 100644 BUILD.md create mode 100644 content.test.js delete mode 100644 dist/inzerosight-firefox-source.zip create mode 100644 dist/web/assets/index-DlLeEfTp.js delete mode 100644 dist/web/assets/index-G7fqkm88.js create mode 100644 sig.test.js diff --git a/BUILD.md b/BUILD.md deleted file mode 100644 index a88e083..0000000 --- a/BUILD.md +++ /dev/null @@ -1,18 +0,0 @@ -# Building inØsight - -## Prerequisites -- Node.js (v20+ or v22+) -- npm (v10+) - -## Step-by-Step Build Instructions -1. Install dependencies: - ```bash - npm ci - ``` - -2. Build the Firefox extension: - ```bash - npm run build:firefox - ``` - -3. The generated add-on files will be in `dist/firefox/`. diff --git a/content.js b/content.js index 63f692b..9831f31 100644 --- a/content.js +++ b/content.js @@ -199,41 +199,44 @@ function onAction(entry, parsed) { } } -function getPayloadRange(node, base, start) { - let endNode = node; - let end = getPayloadEnd(node.nodeValue, base, start); - - // Gmail inserts elements into long zero-width runs, splitting one payload across text nodes. - while (end === endNode.nodeValue.length) { - let next = endNode.nextSibling; - let hasWbr = false; - while (next?.nodeType === Node.ELEMENT_NODE && next.tagName === 'WBR') { - hasWbr = true; - next = next.nextSibling; - } - if (!hasWbr || next?.nodeType !== Node.TEXT_NODE) break; - const nextEnd = getPayloadEnd(next.nodeValue, base, 0); - if (!nextEnd) break; - endNode = next; - end = nextEnd; +function acrossWbr(node, side) { + let sibling = node[side], hasWbr = false; + while (sibling?.nodeType === Node.ELEMENT_NODE && sibling.tagName === 'WBR') { + hasWbr = true; + sibling = sibling[side]; } - return { endNode, end }; + return hasWbr && sibling?.nodeType === Node.TEXT_NODE ? sibling : null; } function scanNode(node) { if (!node || node.nodeType !== Node.TEXT_NODE) return; - const val = node.nodeValue; + for (let prev; (prev = acrossWbr(node, 'previousSibling'));) node = prev; + const nodes = [node]; + let val = node.nodeValue; + for (let next; (next = acrossWbr(nodes.at(-1), 'nextSibling'));) { + nodes.push(next); + val += next.nodeValue; + } if (!val || !val.includes(SIG_PREFIX)) return; + const point = (offset, atEnd) => { + for (const current of nodes) { + if (offset < current.nodeValue.length || (atEnd && offset === current.nodeValue.length)) + return { node: current, offset }; + offset -= current.nodeValue.length; + } + return { node: nodes.at(-1), offset: nodes.at(-1).nodeValue.length }; + }; + let idx = 0; while (idx < val.length) { - const sub = val.slice(idx); - const p = parseSig(sub); + const p = parseSig(val.slice(idx)); if (!p) break; const start = idx + p.sigIdx; - const { endNode, end } = getPayloadRange(node, p.base, start + p.sigLen); - createOverlay(node, p, start, endNode, end); - idx = endNode === node ? end + 1 : val.length; + const end = getPayloadEnd(val, p.base, start + p.sigLen); + const from = point(start, false), to = point(end, true); + createOverlay(from.node, p, from.offset, to.node, to.offset); + idx = end + 1; } } @@ -244,7 +247,7 @@ function scanTree(root) { acceptNode: n => (ign[n.parentElement?.tagName] ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT) }); let n; - while ((n = walker.nextNode())) scanNode(n); + while ((n = walker.nextNode())) if (!acrossWbr(n, 'previousSibling')) scanNode(n); } scanTree(document.body); @@ -260,7 +263,10 @@ function scheduleUpdate() { const obs = new MutationObserver(muts => { for (const e of [...active]) { - if (!e.node.isConnected || !e.node.nodeValue?.startsWith(SIG_PREFIX, e.start)) { + let prefix = e.node.nodeValue?.slice(e.start) || ''; + for (let next = e.node; prefix.length < SIG_PREFIX.length && + (next = acrossWbr(next, 'nextSibling'));) prefix += next.nodeValue; + if (!e.node.isConnected || !prefix.startsWith(SIG_PREFIX)) { e.wrap.remove(); active.delete(e); } @@ -269,7 +275,10 @@ const obs = new MutationObserver(muts => { if (m.type === 'characterData') scanNode(m.target); else for (const an of m.addedNodes) { if (an.nodeType === Node.TEXT_NODE) scanNode(an); - else if (an.nodeType === Node.ELEMENT_NODE && an.id !== 'in0-host') scanTree(an); + else if (an.nodeType === Node.ELEMENT_NODE && an.tagName === 'WBR') { + scanNode(an.previousSibling); + scanNode(an.nextSibling); + } else if (an.nodeType === Node.ELEMENT_NODE && an.id !== 'in0-host') scanTree(an); } } scheduleUpdate(); diff --git a/content.test.js b/content.test.js new file mode 100644 index 0000000..6819872 --- /dev/null +++ b/content.test.js @@ -0,0 +1,89 @@ +import assert from 'node:assert/strict'; +import { test } from 'node:test'; +import zwus from 'zwus'; +import { makeSig } from './sig.js'; + +test('page overlay detects headers split by WBR and decodes across the split', async () => { + const buttons = [], inserted = [], fixtures = [], texts = []; + const rect = { top: 10, bottom: 20, left: 10, right: 20, width: 10, height: 10 }; + const body = { tagName: 'BODY', appendChild() {} }; + const parent = { tagName: 'DIV', parentElement: body, getBoundingClientRect: () => rect }; + let observer; + + const element = tag => ({ + tagName: tag.toUpperCase(), nodeType: 1, style: {}, offsetWidth: 0, offsetHeight: 0, + appendChild(child) { child.parentElement = this; }, + attachShadow() { return element('shadow'); }, + getBoundingClientRect: () => rect, + remove() { this.removed = true; } + }); + const addRun = (encoded, cut, cipher) => { + const parts = [encoded.slice(0, cut), encoded.slice(cut, 13), encoded.slice(13)]; + const nodes = parts.flatMap((part, i) => i ? [element('wbr'), { + nodeType: 3, nodeValue: part, parentElement: parent, isConnected: true + }] : [{ nodeType: 3, nodeValue: part, parentElement: parent, isConnected: true }]); + nodes.forEach((node, i) => { + node.previousSibling = nodes[i - 1] || null; + node.nextSibling = nodes[i + 1] || null; + if (node.nodeType === 3) texts.push(node); + }); + fixtures.push({ nodes, cipher }); + }; + + for (const base of [3, 6, 7]) for (const cipher of + ['PLAIN', 'SPECK48_96CTR', 'SPECK32_64ECB (insecure)']) { + const payload = cipher === 'PLAIN' ? zwus.encodeString('hello', base) : + zwus.encodeNumberArray([1, 2, 3], base); + for (const cut of [1, 2, 3, 5, 6, 10]) addRun(makeSig(base, cipher) + payload, cut, cipher); + } + + globalThis.Node = { ELEMENT_NODE: 1, TEXT_NODE: 3 }; + globalThis.NodeFilter = { SHOW_TEXT: 4, FILTER_ACCEPT: 1, FILTER_REJECT: 2 }; + globalThis.document = { + body, documentElement: body, + createElement(tag) { const node = element(tag); if (tag === 'button') buttons.push(node); return node; }, + createTreeWalker() { + let i = 0; + return { nextNode: () => texts[i++] || null }; + }, + createRange() { + return { + setStart(node, offset) { this.startNode = node; this.start = offset; }, + setEnd(node, offset) { this.endNode = node; this.end = offset; }, + getBoundingClientRect: () => rect, + toString() { + let value = '', node = this.startNode; + while (node) { + if (node.nodeType === 3) value += node.nodeValue.slice( + node === this.startNode ? this.start : 0, + node === this.endNode ? this.end : undefined + ); + if (node === this.endNode) break; + node = node.nextSibling; + } + return value; + }, + deleteContents() {}, + insertNode(node) { inserted.push(node); } + }; + } + }; + globalThis.window = { + innerHeight: 100, innerWidth: 100, addEventListener() {}, + getComputedStyle: () => ({ overflow: 'visible', overflowX: 'visible', overflowY: 'visible' }) + }; + globalThis.MutationObserver = class { + constructor(callback) { this.callback = callback; observer = this; } + observe() {} + }; + globalThis.requestAnimationFrame = callback => { callback(); return 1; }; + + await import('./content.js'); + assert.equal(buttons.length, fixtures.length); + fixtures.forEach(({ cipher }, i) => + assert.equal(buttons[i].textContent, cipher === 'PLAIN' ? 'Decode' : 'Decrypt')); + observer.callback([{ type: 'childList', addedNodes: [] }]); + assert.equal(buttons.some(button => button.parentElement.removed), false); + buttons[0].onclick(); + assert.equal(inserted[0].textContent, ' hello '); +}); diff --git a/dist/chrome/content.js b/dist/chrome/content.js index 6f63110..c165703 100644 --- a/dist/chrome/content.js +++ b/dist/chrome/content.js @@ -1,6 +1,6 @@ -(function(){"use strict";const A={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(n,e=7)=>Array.from(n,l=>(+e==7?ee(l):l.codePointAt(0)).toString(e).split("").map(p=>A[e][p]).join("")).join(A[e].unifier),encodeNumberArray:(n,e=7)=>n.map(l=>l.toString(e).split("").map(p=>A[e][p]).join("")).join(A[e].unifier),decodeToString:(n,e=7)=>A.decodeToNumberArray(n,e).map(l=>String.fromCodePoint(+e==7?te(l):l)).join(""),decodeToNumberArray:(n,e=7)=>n.split(A[e].unifier).map(l=>Array.from(l).map(p=>Object.keys(A[e]).find(b=>A[e][b]===p)).join("")).filter(Boolean).map(l=>parseInt(l,e))},Q="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",H=[...new Set([...Q,...Array.from({length:95},(n,e)=>String.fromCharCode(e+32))])],Z=new Map(H.map((n,e)=>[n,e])),ee=n=>Z.get(n)??(n.codePointAt(0)<32?n.codePointAt(0)+95:n.codePointAt(0)),te=n=>n<95?H[n].codePointAt(0):n<127?n-95:n;function ne(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var D,L;function oe(){if(L)return D;L=1;function n(e={}){const l=e.bits||16,p=e.rounds||22,b=e.rightRotations||7,d=e.leftRotations||2,c=2**l,i=c-1,s=(a,o)=>a>>o|a<a<>l-o,g=(a,o,t)=>(a=s(a,b),a=a+o&i,a^=t,o=h(o,d),o^=a,[a,o]),y=(a,o,t)=>(o^=a,o=s(o,d),a^=t,a=a-o&i,a=h(a,b),[a,o]);function k(a,o){let t=a[0],u=a[1],r=o[0],m=o.slice(1);[u,t]=g(u,t,r);for(let w=0;w{const u=a([o/c|0,o&i],t);return u[0]*c+u[1]}}return{encrypt:f(k),decrypt:f(I),encryptRaw:k,decryptRaw:I}}return D=n,D}var re=oe();const M=ne(re);var U,z;function G(){if(z)return U;z=1;const n="Input must be an string, Buffer or Uint8Array";function e(c){let i;if(c instanceof Uint8Array)i=c;else if(typeof c=="string")i=new TextEncoder().encode(c);else throw new Error(n);return i}function l(c){return Array.prototype.map.call(c,function(i){return(i<16?"0":"")+i.toString(16)}).join("")}function p(c){return(4294967296+c).toString(16).substring(1)}function b(c,i,s){let h=` -`+c+" = ";for(let g=0;g=4294967296&&w++,t[u]=m,t[u+1]=w}function l(t,u,r,m){let w=t[u]+r;r<0&&(w+=4294967296);let E=t[u+1]+m;w>=4294967296&&E++,t[u]=w,t[u+1]=E}function p(t,u){return t[u]^t[u+1]<<8^t[u+2]<<16^t[u+3]<<24}function b(t,u,r,m,w,E){const ye=h[w],Ee=h[w+1],ke=h[E],Ae=h[E+1];e(s,t,u),l(s,t,ye,Ee);let S=s[m]^s[t],T=s[m+1]^s[t+1];s[m]=T,s[m+1]=S,e(s,r,m),S=s[u]^s[r],T=s[u+1]^s[r+1],s[u]=S>>>24^T<<8,s[u+1]=T>>>24^S<<8,e(s,t,u),l(s,t,ke,Ae),S=s[m]^s[t],T=s[m+1]^s[t+1],s[m]=S>>>16^T<<16,s[m+1]=T>>>16^S<<16,e(s,r,m),S=s[u]^s[r],T=s[u+1]^s[r+1],s[u]=T>>>31^S<<1,s[u+1]=S>>>31^T<<1}const d=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),c=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],i=new Uint8Array(c.map(function(t){return t*2})),s=new Uint32Array(32),h=new Uint32Array(32);function g(t,u){let r=0;for(r=0;r<16;r++)s[r]=t.h[r],s[r+16]=d[r];for(s[24]=s[24]^t.t,s[25]=s[25]^t.t/4294967296,u&&(s[28]=~s[28],s[29]=~s[29]),r=0;r<32;r++)h[r]=p(t.b,4*r);for(r=0;r<12;r++)b(0,8,16,24,i[r*16+0],i[r*16+1]),b(2,10,18,26,i[r*16+2],i[r*16+3]),b(4,12,20,28,i[r*16+4],i[r*16+5]),b(6,14,22,30,i[r*16+6],i[r*16+7]),b(0,10,20,30,i[r*16+8],i[r*16+9]),b(2,12,22,24,i[r*16+10],i[r*16+11]),b(4,14,16,26,i[r*16+12],i[r*16+13]),b(6,8,18,28,i[r*16+14],i[r*16+15]);for(r=0;r<16;r++)t.h[r]=t.h[r]^s[r]^s[r+16]}const y=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(t,u,r,m){if(t===0||t>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(u&&u.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(r&&r.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(m&&m.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const w={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:t};y.fill(0),y[0]=t,u&&(y[1]=u.length),y[2]=1,y[3]=1,r&&y.set(r,32),m&&y.set(m,48);for(let E=0;E<16;E++)w.h[E]=d[E]^p(y,E*4);return u&&(I(w,u),w.c=128),w}function I(t,u){for(let r=0;r>2]>>8*(r&3);return u}function a(t,u,r,m,w){r=r||64,t=n.normalizeInput(t),m&&(m=n.normalizeInput(m)),w&&(w=n.normalizeInput(w));const E=k(r,u,m,w);return I(E,t),f(E)}function o(t,u,r,m,w){const E=a(t,u,r,m,w);return n.toHex(E)}return B={blake2b:a,blake2bHex:o,blake2bInit:k,blake2bUpdate:I,blake2bFinal:f},B}var O,V;function se(){if(V)return O;V=1;const n=G();function e(f,a){return f[a]^f[a+1]<<8^f[a+2]<<16^f[a+3]<<24}function l(f,a,o,t,u,r){c[f]=c[f]+c[a]+u,c[t]=p(c[t]^c[f],16),c[o]=c[o]+c[t],c[a]=p(c[a]^c[o],12),c[f]=c[f]+c[a]+r,c[t]=p(c[t]^c[f],8),c[o]=c[o]+c[t],c[a]=p(c[a]^c[o],7)}function p(f,a){return f>>>a^f<<32-a}const b=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),d=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),c=new Uint32Array(16),i=new Uint32Array(16);function s(f,a){let o=0;for(o=0;o<8;o++)c[o]=f.h[o],c[o+8]=b[o];for(c[12]^=f.t,c[13]^=f.t/4294967296,a&&(c[14]=~c[14]),o=0;o<16;o++)i[o]=e(f.b,4*o);for(o=0;o<10;o++)l(0,4,8,12,i[d[o*16+0]],i[d[o*16+1]]),l(1,5,9,13,i[d[o*16+2]],i[d[o*16+3]]),l(2,6,10,14,i[d[o*16+4]],i[d[o*16+5]]),l(3,7,11,15,i[d[o*16+6]],i[d[o*16+7]]),l(0,5,10,15,i[d[o*16+8]],i[d[o*16+9]]),l(1,6,11,12,i[d[o*16+10]],i[d[o*16+11]]),l(2,7,8,13,i[d[o*16+12]],i[d[o*16+13]]),l(3,4,9,14,i[d[o*16+14]],i[d[o*16+15]]);for(o=0;o<8;o++)f.h[o]^=c[o]^c[o+8]}function h(f,a){if(!(f>0&&f<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const t={h:new Uint32Array(b),b:new Uint8Array(64),c:0,t:0,outlen:f};return t.h[0]^=16842752^o<<8^f,o>0&&(g(t,a),t.c=64),t}function g(f,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function k(f,a,o){o=o||32,f=n.normalizeInput(f);const t=h(o,a);return g(t,f),y(t)}function I(f,a,o){const t=k(f,a,o);return n.toHex(t)}return O={blake2s:k,blake2sHex:I,blake2sInit:h,blake2sUpdate:g,blake2sFinal:y},O}var _,W;function le(){if(W)return _;W=1;const n=ie(),e=se();return _={blake2b:n.blake2b,blake2bHex:n.blake2bHex,blake2bInit:n.blake2bInit,blake2bUpdate:n.blake2bUpdate,blake2bFinal:n.blake2bFinal,blake2s:e.blake2s,blake2sHex:e.blake2sHex,blake2sInit:e.blake2sInit,blake2sUpdate:e.blake2sUpdate,blake2sFinal:e.blake2sFinal},_}var X=le();const ce=M({bits:24,rounds:23,rightRotations:8,leftRotations:3});function ae(n){const e=X.blake2bHex(n,null,12);return[parseInt(e.slice(0,6),16),parseInt(e.slice(6,12),16),parseInt(e.slice(12,18),16),parseInt(e.slice(18,24),16)]}function ue(n,e){if(!n||n.length===0)return"";const l=n[0];return n.slice(1).map((b,d)=>{const c=l*16777216+(d&16777215),i=ce.encrypt(c,e),s=(b^i)>>>0;try{return String.fromCodePoint(s)}catch{return""}}).join("")}const fe=M();function de(n){const e=X.blake2bHex(n,null,8);return[parseInt(e.slice(0,4),16),parseInt(e.slice(4,8),16),parseInt(e.slice(8,12),16),parseInt(e.slice(12,16),16)]}function pe(n,e){return n.map(l=>{try{return String.fromCodePoint(fe.decrypt(l,e))}catch{return""}}).join("")}const N="‍​­",x={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},K={1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(K).map(([n,e])=>[e,+n]));function be(n){let e=n.indexOf(N),l;for(;e!==-1&&(l=Object.keys(x).find(d=>n.startsWith(x[d],e)),!l);)e=n.indexOf(N,e+N.length);if(!l)return null;const p=n.slice(e+x[l].length),b=A[l].unifier+A[l][0];if(p.startsWith(b)){const c=Array.from(p.slice(b.length,b.length+3)).map(g=>Object.keys(A[l]).find(y=>A[l][y]===g)).join(""),i=K[parseInt(c,l)];if(!i)return{base:l,cipher:"PLAIN",payload:p,sigIdx:e,sigLen:x[l].length};const s=p.slice(b.length+3),h=x[l].length+b.length+3;return{base:l,cipher:i,payload:s,sigIdx:e,sigLen:h}}return{base:l,cipher:"PLAIN",payload:p,sigIdx:e,sigLen:x[l].length}}function $(n,e,l){const p=new Set(Object.values(A[e]));let b=l;for(;bArray.from(e,r=>(+t==7?ne(r):r.codePointAt(0)).toString(t).split("").map(u=>S[t][u]).join("")).join(S[t].unifier),encodeNumberArray:(e,t=7)=>e.map(r=>r.toString(t).split("").map(u=>S[t][u]).join("")).join(S[t].unifier),decodeToString:(e,t=7)=>S.decodeToNumberArray(e,t).map(r=>String.fromCodePoint(+t==7?re(r):r)).join(""),decodeToNumberArray:(e,t=7)=>e.split(S[t].unifier).map(r=>Array.from(r).map(u=>Object.keys(S[t]).find(h=>S[t][h]===u)).join("")).filter(Boolean).map(r=>parseInt(r,t))},ee="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",M=[...new Set([...ee,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],te=new Map(M.map((e,t)=>[e,t])),ne=e=>te.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),re=e=>e<95?M[e].codePointAt(0):e<127?e-95:e;function oe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var D,G;function ie(){if(G)return D;G=1;function e(t={}){const r=t.bits||16,u=t.rounds||22,h=t.rightRotations||7,f=t.leftRotations||2,c=2**r,s=c-1,l=(a,o)=>a>>o|a<a<>r-o,b=(a,o,n)=>(a=l(a,h),a=a+o&s,a^=n,o=g(o,f),o^=a,[a,o]),E=(a,o,n)=>(o^=a,o=l(o,f),a^=n,a=a-o&s,a=g(a,h),[a,o]);function k(a,o){let n=a[0],d=a[1],i=o[0],m=o.slice(1);[d,n]=b(d,n,i);for(let w=0;w{const d=a([o/c|0,o&s],n);return d[0]*c+d[1]}}return{encrypt:p(k),decrypt:p(A),encryptRaw:k,decryptRaw:A}}return D=e,D}var se=ie();const V=oe(se);var B,z;function W(){if(z)return B;z=1;const e="Input must be an string, Buffer or Uint8Array";function t(c){let s;if(c instanceof Uint8Array)s=c;else if(typeof c=="string")s=new TextEncoder().encode(c);else throw new Error(e);return s}function r(c){return Array.prototype.map.call(c,function(s){return(s<16?"0":"")+s.toString(16)}).join("")}function u(c){return(4294967296+c).toString(16).substring(1)}function h(c,s,l){let g=` +`+c+" = ";for(let b=0;b=4294967296&&w++,n[d]=m,n[d+1]=w}function r(n,d,i,m){let w=n[d]+i;i<0&&(w+=4294967296);let y=n[d+1]+m;w>=4294967296&&y++,n[d]=w,n[d+1]=y}function u(n,d){return n[d]^n[d+1]<<8^n[d+2]<<16^n[d+3]<<24}function h(n,d,i,m,w,y){const Ie=g[w],Te=g[w+1],xe=g[y],Ce=g[y+1];t(l,n,d),r(l,n,Ie,Te);let I=l[m]^l[n],T=l[m+1]^l[n+1];l[m]=T,l[m+1]=I,t(l,i,m),I=l[d]^l[i],T=l[d+1]^l[i+1],l[d]=I>>>24^T<<8,l[d+1]=T>>>24^I<<8,t(l,n,d),r(l,n,xe,Ce),I=l[m]^l[n],T=l[m+1]^l[n+1],l[m]=I>>>16^T<<16,l[m+1]=T>>>16^I<<16,t(l,i,m),I=l[d]^l[i],T=l[d+1]^l[i+1],l[d]=T>>>31^I<<1,l[d+1]=I>>>31^T<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),c=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],s=new Uint8Array(c.map(function(n){return n*2})),l=new Uint32Array(32),g=new Uint32Array(32);function b(n,d){let i=0;for(i=0;i<16;i++)l[i]=n.h[i],l[i+16]=f[i];for(l[24]=l[24]^n.t,l[25]=l[25]^n.t/4294967296,d&&(l[28]=~l[28],l[29]=~l[29]),i=0;i<32;i++)g[i]=u(n.b,4*i);for(i=0;i<12;i++)h(0,8,16,24,s[i*16+0],s[i*16+1]),h(2,10,18,26,s[i*16+2],s[i*16+3]),h(4,12,20,28,s[i*16+4],s[i*16+5]),h(6,14,22,30,s[i*16+6],s[i*16+7]),h(0,10,20,30,s[i*16+8],s[i*16+9]),h(2,12,22,24,s[i*16+10],s[i*16+11]),h(4,14,16,26,s[i*16+12],s[i*16+13]),h(6,8,18,28,s[i*16+14],s[i*16+15]);for(i=0;i<16;i++)n.h[i]=n.h[i]^l[i]^l[i+16]}const E=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(n,d,i,m){if(n===0||n>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(i&&i.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(m&&m.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const w={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:n};E.fill(0),E[0]=n,d&&(E[1]=d.length),E[2]=1,E[3]=1,i&&E.set(i,32),m&&E.set(m,48);for(let y=0;y<16;y++)w.h[y]=f[y]^u(E,y*4);return d&&(A(w,d),w.c=128),w}function A(n,d){for(let i=0;i>2]>>8*(i&3);return d}function a(n,d,i,m,w){i=i||64,n=e.normalizeInput(n),m&&(m=e.normalizeInput(m)),w&&(w=e.normalizeInput(w));const y=k(i,d,m,w);return A(y,n),p(y)}function o(n,d,i,m,w){const y=a(n,d,i,m,w);return e.toHex(y)}return v={blake2b:a,blake2bHex:o,blake2bInit:k,blake2bUpdate:A,blake2bFinal:p},v}var O,X;function ce(){if(X)return O;X=1;const e=W();function t(p,a){return p[a]^p[a+1]<<8^p[a+2]<<16^p[a+3]<<24}function r(p,a,o,n,d,i){c[p]=c[p]+c[a]+d,c[n]=u(c[n]^c[p],16),c[o]=c[o]+c[n],c[a]=u(c[a]^c[o],12),c[p]=c[p]+c[a]+i,c[n]=u(c[n]^c[p],8),c[o]=c[o]+c[n],c[a]=u(c[a]^c[o],7)}function u(p,a){return p>>>a^p<<32-a}const h=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),c=new Uint32Array(16),s=new Uint32Array(16);function l(p,a){let o=0;for(o=0;o<8;o++)c[o]=p.h[o],c[o+8]=h[o];for(c[12]^=p.t,c[13]^=p.t/4294967296,a&&(c[14]=~c[14]),o=0;o<16;o++)s[o]=t(p.b,4*o);for(o=0;o<10;o++)r(0,4,8,12,s[f[o*16+0]],s[f[o*16+1]]),r(1,5,9,13,s[f[o*16+2]],s[f[o*16+3]]),r(2,6,10,14,s[f[o*16+4]],s[f[o*16+5]]),r(3,7,11,15,s[f[o*16+6]],s[f[o*16+7]]),r(0,5,10,15,s[f[o*16+8]],s[f[o*16+9]]),r(1,6,11,12,s[f[o*16+10]],s[f[o*16+11]]),r(2,7,8,13,s[f[o*16+12]],s[f[o*16+13]]),r(3,4,9,14,s[f[o*16+14]],s[f[o*16+15]]);for(o=0;o<8;o++)p.h[o]^=c[o]^c[o+8]}function g(p,a){if(!(p>0&&p<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const n={h:new Uint32Array(h),b:new Uint8Array(64),c:0,t:0,outlen:p};return n.h[0]^=16842752^o<<8^p,o>0&&(b(n,a),n.c=64),n}function b(p,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function k(p,a,o){o=o||32,p=e.normalizeInput(p);const n=g(o,a);return b(n,p),E(n)}function A(p,a,o){const n=k(p,a,o);return e.toHex(n)}return O={blake2s:k,blake2sHex:A,blake2sInit:g,blake2sUpdate:b,blake2sFinal:E},O}var _,K;function ae(){if(K)return _;K=1;const e=le(),t=ce();return _={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},_}var $=ae();const ue=V({bits:24,rounds:23,rightRotations:8,leftRotations:3});function fe(e){const t=$.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function de(e,t){if(!e||e.length===0)return"";const r=e[0];return e.slice(1).map((h,f)=>{const c=r*16777216+(f&16777215),s=ue.encrypt(c,t),l=(h^s)>>>0;try{return String.fromCodePoint(l)}catch{return""}}).join("")}const pe=V();function he(e){const t=$.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function ge(e,t){return e.map(r=>{try{return String.fromCodePoint(pe.decrypt(r,t))}catch{return""}}).join("")}const C="‍​­",P={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},F={0:"PLAIN",1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(F).map(([e,t])=>[t,+e]));const be=Object.entries(P).flatMap(([e,t])=>Object.entries(F).map(([r,u])=>{const h=(+r).toString(e).padStart(4,"0");if(h.length!==4)throw new RangeError(`Cipher ID ${r} exceeds ZWUS-${e}'s signature capacity`);const f=t+S[e].unifier+S[e][0]+Array.from(h,c=>S[e][c]).join("");if(f.length!==11)throw new RangeError("Signatures must contain exactly 11 characters");return{base:e,cipher:u,sig:f,legacy:!1}}));function Y(e,t){let r=e.indexOf(C);for(;r!==-1;){const u=t.find(h=>e.startsWith(h.sig,r)&&(!h.legacyPlain||e[r+h.sig.length]!==S[h.base].unifier));if(u){const{base:h,cipher:f,sig:c,legacy:s}=u;return{base:h,cipher:f,payload:e.slice(r+c.length),sigIdx:r,sigLen:c.length,legacy:s}}r=e.indexOf(C,r+1)}return null}const me=e=>Y(e,be),we=[3,6,7].flatMap(e=>[...[1,2].map(t=>({base:String(e),cipher:F[t],legacy:!0,sig:P[e]+S[e].unifier+S[e][0].repeat(3)+S[e][t]})),{base:String(e),cipher:"PLAIN",sig:P[e],legacy:!0,legacyPlain:!0}]),ye=e=>Y(e,we);function Ee(e){const t=me(e),r=ye(e);return!t||r&&r.sigIdxme(h,e),Y(h)}function Y(n){const{wrap:e,node:l,start:p,endNode:b,end:d}=n;if(!l.isConnected||!b.isConnected){e.remove(),C.delete(n);return}const c=l.parentElement;if(!c||c.checkVisibility&&!c.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0})){e.style.display="none";return}const i=document.createRange();try{i.setStart(l,p),i.setEnd(b,Math.min(d,b.nodeValue.length))}catch{e.remove(),C.delete(n);return}let s=i.getBoundingClientRect();if(!s.width&&!s.height&&(s=c.getBoundingClientRect()),!s.width&&!s.height){e.style.display="none";return}if(s.bottom<0||s.top>window.innerHeight||s.right<0||s.left>window.innerWidth){e.style.display="none";return}let h=c;for(;h&&h!==document.body&&h!==document.documentElement;){const k=window.getComputedStyle(h);if(k.overflow!=="visible"||k.overflowX!=="visible"||k.overflowY!=="visible"){const I=h.getBoundingClientRect();if(s.bottomI.bottom||s.rightI.right){e.style.display="none";return}}h=h.parentElement}e.style.display="flex";const g=s.left+(s.width||0)/2,y=s.top;e.style.left=`${g-e.offsetWidth/2}px`,e.style.top=`${y-e.offsetHeight-2}px`}function me(n,e){const{wrap:l,node:p,start:b,endNode:d,end:c}=n,i=document.createRange();i.setStart(p,b),i.setEnd(d,c);const s=i.toString().slice(e.sigLen);let h="";if(e.cipher==="PLAIN")try{h=A.decodeToString(s,e.base)}catch(g){console.error(g)}else{const g=prompt(`inØsight: enter password (${e.cipher}):`);if(!g)return;try{const y=A.decodeToNumberArray(s,e.base);e.cipher==="SPECK48_96CTR"?h=ue(y,ae(g)):e.cipher==="SPECK32_64ECB (insecure)"&&(h=pe(y,de(g)))}catch(y){console.error(y)}if(!h){alert("Decryption failed.");return}}if(h){i.deleteContents();const g=document.createElement("span");g.className="inzerosight-decoded",g.style.color="#00b4d8",g.style.fontWeight="600",g.textContent=` ${h} `,i.insertNode(g),l.remove(),C.delete(n)}}function we(n,e,l){let p=n,b=$(n.nodeValue,e,l);for(;b===p.nodeValue.length;){let d=p.nextSibling,c=!1;for(;(d==null?void 0:d.nodeType)===Node.ELEMENT_NODE&&d.tagName==="WBR";)c=!0,d=d.nextSibling;if(!c||(d==null?void 0:d.nodeType)!==Node.TEXT_NODE)break;const i=$(d.nodeValue,e,0);if(!i)break;p=d,b=i}return{endNode:p,end:b}}function v(n){if(!n||n.nodeType!==Node.TEXT_NODE)return;const e=n.nodeValue;if(!e||!e.includes(N))return;let l=0;for(;l{var d;return e[(d=b.parentElement)==null?void 0:d.tagName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let p;for(;p=l.nextNode();)v(p)}J(document.body);let F;function j(){F||C.size===0||(F=requestAnimationFrame(()=>{F=null,C.forEach(Y)}))}new MutationObserver(n=>{var e;for(const l of[...C])(!l.node.isConnected||!((e=l.node.nodeValue)!=null&&e.startsWith(N,l.start)))&&(l.wrap.remove(),C.delete(l));for(const l of n)if(l.type==="characterData")v(l.target);else for(const p of l.addedNodes)p.nodeType===Node.TEXT_NODE?v(p):p.nodeType===Node.ELEMENT_NODE&&p.id!=="in0-host"&&J(p);j()}).observe(document.documentElement,{childList:!0,subtree:!0,characterData:!0}),window.addEventListener("scroll",j,{capture:!0,passive:!0}),window.addEventListener("resize",j,{passive:!0})})(); + `,j.appendChild(e),(document.body||document.documentElement).appendChild(N)}function Se(e,t,r,u,h){for(const b of x)if(b.node===e&&b.start===r)return;ke();const f=document.createElement("div");f.className="in0-wrap";const c=document.createElement("button");c.className="in0-btn",c.textContent=t.cipher==="PLAIN"?"Decode":"Decrypt";const s=document.createElement("span");s.className="in0-badge",s.textContent="Ø",c.appendChild(s);const l=document.createElement("div");l.className="in0-arrow",f.appendChild(c),f.appendChild(l),j.appendChild(f);const g={wrap:f,node:e,start:r,endNode:u,end:h};x.add(g),c.onclick=()=>Ae(g,t),Z(g)}function Z(e){const{wrap:t,node:r,start:u,endNode:h,end:f}=e;if(!r.isConnected||!h.isConnected){t.remove(),x.delete(e);return}const c=r.parentElement;if(!c||c.checkVisibility&&!c.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0})){t.style.display="none";return}const s=document.createRange();try{s.setStart(r,u),s.setEnd(h,Math.min(f,h.nodeValue.length))}catch{t.remove(),x.delete(e);return}let l=s.getBoundingClientRect();if(!l.width&&!l.height&&(l=c.getBoundingClientRect()),!l.width&&!l.height){t.style.display="none";return}if(l.bottom<0||l.top>window.innerHeight||l.right<0||l.left>window.innerWidth){t.style.display="none";return}let g=c;for(;g&&g!==document.body&&g!==document.documentElement;){const k=window.getComputedStyle(g);if(k.overflow!=="visible"||k.overflowX!=="visible"||k.overflowY!=="visible"){const A=g.getBoundingClientRect();if(l.bottomA.bottom||l.rightA.right){t.style.display="none";return}}g=g.parentElement}t.style.display="flex";const b=l.left+(l.width||0)/2,E=l.top;t.style.left=`${b-t.offsetWidth/2}px`,t.style.top=`${E-t.offsetHeight-2}px`}function Ae(e,t){const{wrap:r,node:u,start:h,endNode:f,end:c}=e,s=document.createRange();s.setStart(u,h),s.setEnd(f,c);const l=s.toString().slice(t.sigLen);let g="";if(t.cipher==="PLAIN")try{g=S.decodeToString(l,t.base)}catch(b){console.error(b)}else{const b=prompt(`inØsight: enter password (${t.cipher}):`);if(!b)return;try{const E=S.decodeToNumberArray(l,t.base);t.cipher==="SPECK48_96CTR"?g=de(E,fe(b)):t.cipher==="SPECK32_64ECB (insecure)"&&(g=ge(E,he(b)))}catch(E){console.error(E)}if(!g){alert("Decryption failed.");return}}if(g){s.deleteContents();const b=document.createElement("span");b.className="inzerosight-decoded",b.style.color="#00b4d8",b.style.fontWeight="600",b.textContent=` ${g} `,s.insertNode(b),r.remove(),x.delete(e)}}function U(e,t){let r=e[t],u=!1;for(;(r==null?void 0:r.nodeType)===Node.ELEMENT_NODE&&r.tagName==="WBR";)u=!0,r=r[t];return u&&(r==null?void 0:r.nodeType)===Node.TEXT_NODE?r:null}function R(e){if(!e||e.nodeType!==Node.TEXT_NODE)return;for(let f;f=U(e,"previousSibling");)e=f;const t=[e];let r=e.nodeValue;for(let f;f=U(t.at(-1),"nextSibling");)t.push(f),r+=f.nodeValue;if(!r||!r.includes(C))return;const u=(f,c)=>{for(const s of t){if(f{var f;return t[(f=h.parentElement)==null?void 0:f.tagName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let u;for(;u=r.nextNode();)U(u,"previousSibling")||R(u)}Q(document.body);let H;function L(){H||x.size===0||(H=requestAnimationFrame(()=>{H=null,x.forEach(Z)}))}new MutationObserver(e=>{var t;for(const r of[...x]){let u=((t=r.node.nodeValue)==null?void 0:t.slice(r.start))||"";for(let h=r.node;u.length -

inØsight 3.2.0source

+

inØsight 3.3.0source

diff --git a/dist/chrome/index.js b/dist/chrome/index.js index d0f0c10..9b44be8 100644 --- a/dist/chrome/index.js +++ b/dist/chrome/index.js @@ -1,4 +1,4 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))g(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&g(s)}).observe(document,{childList:!0,subtree:!0});function c(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function g(u){if(u.ep)return;u.ep=!0;const f=c(u);fetch(u.href,f)}})();const I={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,c=>(+t==7?ge(c):c.codePointAt(0)).toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),encodeNumberArray:(e,t=7)=>e.map(c=>c.toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),decodeToString:(e,t=7)=>I.decodeToNumberArray(e,t).map(c=>String.fromCodePoint(+t==7?he(c):c)).join(""),decodeToNumberArray:(e,t=7)=>e.split(I[t].unifier).map(c=>Array.from(c).map(g=>Object.keys(I[t]).find(u=>I[t][u]===g)).join("")).filter(Boolean).map(c=>parseInt(c,t))},de="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",X=[...new Set([...de,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],pe=new Map(X.map((e,t)=>[e,t])),ge=e=>pe.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),he=e=>e<95?X[e].codePointAt(0):e<127?e-95:e,J=65536;function Q(e,t,c){const g=[];for(let u=0;u=55296&&e.charCodeAt(f-1)<=56319&&f--,g.push(I[c](e.slice(u,f),t)),u=f}return g.join(I[t].unifier)}function ee(e,t,c){const g=[],u=I[t].unifier;for(let f=0;f=f?n+1:e.indexOf(u,s)+1||e.length}g.push(I[c](e.slice(f,s),t)),f=s}return c==="decodeToString"?g.join(""):g.flat()}const be=(e,t)=>Q(e,t,"encodeString"),M=(e,t)=>Q(e,t,"encodeNumberArray"),ye=(e,t)=>ee(e,t,"decodeToString"),v=(e,t)=>ee(e,t,"decodeToNumberArray");function me(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,G;function Ae(){if(G)return F;G=1;function e(t={}){const c=t.bits||16,g=t.rounds||22,u=t.rightRotations||7,f=t.leftRotations||2,s=2**c,n=s-1,a=(l,o)=>l>>o|l<l<>c-o,m=(l,o,r)=>(l=a(l,u),l=l+o&n,l^=r,o=y(o,f),o^=l,[l,o]),w=(l,o,r)=>(o^=l,o=a(o,f),l^=r,l=l-o&n,l=y(l,u),[l,o]);function k(l,o){let r=l[0],d=l[1],i=o[0],h=o.slice(1);[d,r]=m(d,r,i);for(let b=0;b{const d=l([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:p(k),decrypt:p(E),encryptRaw:k,decryptRaw:E}}return F=e,F}var we=Ae();const te=me(we);var P,K;function ne(){if(K)return P;K=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function c(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function g(s){return(4294967296+s).toString(16).substring(1)}function u(s,n,a){let y=` -`+s+" = ";for(let m=0;m=4294967296&&b++,r[d]=h,r[d+1]=b}function c(r,d,i,h){let b=r[d]+i;i<0&&(b+=4294967296);let A=r[d+1]+h;b>=4294967296&&A++,r[d]=b,r[d+1]=A}function g(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function u(r,d,i,h,b,A){const le=y[b],ae=y[b+1],ue=y[A],fe=y[A+1];t(a,r,d),c(a,r,le,ae);let S=a[h]^a[r],C=a[h+1]^a[r+1];a[h]=C,a[h+1]=S,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=S>>>24^C<<8,a[d+1]=C>>>24^S<<8,t(a,r,d),c(a,r,ue,fe),S=a[h]^a[r],C=a[h+1]^a[r+1],a[h]=S>>>16^C<<16,a[h+1]=C>>>16^S<<16,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=C>>>31^S<<1,a[d+1]=S>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),a=new Uint32Array(32),y=new Uint32Array(32);function m(r,d){let i=0;for(i=0;i<16;i++)a[i]=r.h[i],a[i+16]=f[i];for(a[24]=a[24]^r.t,a[25]=a[25]^r.t/4294967296,d&&(a[28]=~a[28],a[29]=~a[29]),i=0;i<32;i++)y[i]=g(r.b,4*i);for(i=0;i<12;i++)u(0,8,16,24,n[i*16+0],n[i*16+1]),u(2,10,18,26,n[i*16+2],n[i*16+3]),u(4,12,20,28,n[i*16+4],n[i*16+5]),u(6,14,22,30,n[i*16+6],n[i*16+7]),u(0,10,20,30,n[i*16+8],n[i*16+9]),u(2,12,22,24,n[i*16+10],n[i*16+11]),u(4,14,16,26,n[i*16+12],n[i*16+13]),u(6,8,18,28,n[i*16+14],n[i*16+15]);for(i=0;i<16;i++)r.h[i]=r.h[i]^a[i]^a[i+16]}const w=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(r,d,i,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(i&&i.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};w.fill(0),w[0]=r,d&&(w[1]=d.length),w[2]=1,w[3]=1,i&&w.set(i,32),h&&w.set(h,48);for(let A=0;A<16;A++)b.h[A]=f[A]^g(w,A*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let i=0;i>2]>>8*(i&3);return d}function l(r,d,i,h,b){i=i||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const A=k(i,d,h,b);return E(A,r),p(A)}function o(r,d,i,h,b){const A=l(r,d,i,h,b);return e.toHex(A)}return O={blake2b:l,blake2bHex:o,blake2bInit:k,blake2bUpdate:E,blake2bFinal:p},O}var R,z;function ke(){if(z)return R;z=1;const e=ne();function t(p,l){return p[l]^p[l+1]<<8^p[l+2]<<16^p[l+3]<<24}function c(p,l,o,r,d,i){s[p]=s[p]+s[l]+d,s[r]=g(s[r]^s[p],16),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],12),s[p]=s[p]+s[l]+i,s[r]=g(s[r]^s[p],8),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],7)}function g(p,l){return p>>>l^p<<32-l}const u=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function a(p,l){let o=0;for(o=0;o<8;o++)s[o]=p.h[o],s[o+8]=u[o];for(s[12]^=p.t,s[13]^=p.t/4294967296,l&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(p.b,4*o);for(o=0;o<10;o++)c(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),c(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),c(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),c(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),c(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),c(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),c(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),c(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)p.h[o]^=s[o]^s[o+8]}function y(p,l){if(!(p>0&&p<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=l?l.length:0;if(l&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(u),b:new Uint8Array(64),c:0,t:0,outlen:p};return r.h[0]^=16842752^o<<8^p,o>0&&(m(r,l),r.c=64),r}function m(p,l){for(let o=0;o>2]>>8*(o&3)&255;return l}function k(p,l,o){o=o||32,p=e.normalizeInput(p);const r=y(o,l);return m(r,p),w(r)}function E(p,l,o){const r=k(p,l,o);return e.toHex(r)}return R={blake2s:k,blake2sHex:E,blake2sInit:y,blake2sUpdate:m,blake2sFinal:w},R}var _,$;function Ee(){if($)return _;$=1;const e=Ie(),t=ke();return _={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},_}var re=Ee();const oe=te({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=re.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Se(e,t){const c=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,g=Array.from(e,(u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t);return(u.codePointAt(0)^n)>>>0});return[c,...g]}function Ce(e,t){if(!e||e.length===0)return"";const c=e[0];return e.slice(1).map((u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t),a=(u^n)>>>0;try{return String.fromCodePoint(a)}catch{return""}}).join("")}const ie=te();function Y(e){const t=re.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Be(e,t){return Array.from(e,c=>ie.encrypt(c.codePointAt(0),t))}function Te(e,t){return e.map(c=>{try{return String.fromCodePoint(ie.decrypt(c,t))}catch{return""}}).join("")}const j="‍​­",B={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},ce={1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"},Ue=Object.fromEntries(Object.entries(ce).map(([e,t])=>[t,+e]));function De(e,t){let c=B[e];const g=Ue[t];if(g){const u=Array.from(g.toString(e).padStart(3,"0"),f=>I[e][f]).join("");c+=I[e].unifier+I[e][0]+u}return c}function Fe(e){let t=e.indexOf(j),c;for(;t!==-1&&(c=Object.keys(B).find(f=>e.startsWith(B[f],t)),!c);)t=e.indexOf(j,t+j.length);if(!c)return null;const g=e.slice(t+B[c].length),u=I[c].unifier+I[c][0];if(g.startsWith(u)){const s=Array.from(g.slice(u.length,u.length+3)).map(m=>Object.keys(I[c]).find(w=>I[c][w]===m)).join(""),n=ce[parseInt(s,c)];if(!n)return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length};const a=g.slice(u.length+3),y=B[c].length+u.length+3;return{base:c,cipher:n,payload:a,sigIdx:t,sigLen:y}}return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length}}const T=document.getElementById("textarea"),N=document.getElementById("encoder"),L=document.getElementById("cipher"),H=document.getElementById("sign"),D=document.getElementById("sigDetect"),U=document.getElementById("notice"),Pe=["encodeButton","decodeButton"].map(e=>document.getElementById(e)),V=[...Pe,N,L,H];document.getElementById("encodeButton").addEventListener("click",se);document.getElementById("decodeButton").addEventListener("click",se);H.addEventListener("click",e=>e.target.classList.toggle("on"));let Z,x=!1;async function se(e){if(x)return;if(clearTimeout(Z),D.className="",T.value===""){T.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let c=Re(),g=N.value.split("-")[1],u=T.value;if(t==="YES"){const n=Fe(u);if(n){if(n.base!==g||n.cipher&&n.cipher!==c){const a=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";D.textContent=`ZWUS-${n.base}${a} signature detected`,D.className="show",Z=setTimeout(()=>D.className="",2e3)}g=n.base,N.value="ZWUS-"+g,n.cipher&&(c=n.cipher,L.value=c),u=u.slice(0,n.sigIdx)+n.payload}}const f=c!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await _e[t][c](u,g,s);if(t==="NO"&&H.classList.contains("on")&&(n=De(g,c)+n),T.value=n,t==="NO"){U.textContent="Copying…";const a=await Oe(n);a&&n.length<=65536&&(T.value=`Copied to your clipboard. - A copy has been placed between these brackets [`+n+"]"),U.textContent=a?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function Oe(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let c;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((g,u)=>c=setTimeout(()=>u(new Error("Copy timed out")),5e3))]),!0}catch(g){console.warn("Clipboard copy failed",g)}finally{clearTimeout(c)}}if(e.length>65536)return!1;T.select();try{return document.execCommand("copy")}catch(c){return console.warn("Clipboard copy failed",c),!1}}function Re(){return L.value}const _e={NO:{PLAIN:(e,t)=>be(e,t),SPECK48_96CTR:(e,t,c)=>M(Se(e,W(c)),t),"SPECK32_64ECB (insecure)":(e,t,c)=>M(Be(e,Y(c)),t)},YES:{PLAIN:(e,t)=>ye(e,t),SPECK48_96CTR:async(e,t,c)=>Ce(await v(e,t),W(c)),"SPECK32_64ECB (insecure)":async(e,t,c)=>Te(await v(e,t),Y(c))}}; +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))p(l);new MutationObserver(l=>{for(const f of l)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&p(s)}).observe(document,{childList:!0,subtree:!0});function i(l){const f={};return l.integrity&&(f.integrity=l.integrity),l.referrerPolicy&&(f.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?f.credentials="include":l.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function p(l){if(l.ep)return;l.ep=!0;const f=i(l);fetch(l.href,f)}})();const w={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,i=>(+t==7?be(i):i.codePointAt(0)).toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),encodeNumberArray:(e,t=7)=>e.map(i=>i.toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),decodeToString:(e,t=7)=>w.decodeToNumberArray(e,t).map(i=>String.fromCodePoint(+t==7?ye(i):i)).join(""),decodeToNumberArray:(e,t=7)=>e.split(w[t].unifier).map(i=>Array.from(i).map(p=>Object.keys(w[t]).find(l=>w[t][l]===p)).join("")).filter(Boolean).map(i=>parseInt(i,t))},pe="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",J=[...new Set([...pe,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],he=new Map(J.map((e,t)=>[e,t])),be=e=>he.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),ye=e=>e<95?J[e].codePointAt(0):e<127?e-95:e,Q=65536;function ee(e,t,i){const p=[];for(let l=0;l=55296&&e.charCodeAt(f-1)<=56319&&f--,p.push(w[i](e.slice(l,f),t)),l=f}return p.join(w[t].unifier)}function te(e,t,i){const p=[],l=w[t].unifier;for(let f=0;f=f?n+1:e.indexOf(l,s)+1||e.length}p.push(w[i](e.slice(f,s),t)),f=s}return i==="decodeToString"?p.join(""):p.flat()}const me=(e,t)=>ee(e,t,"encodeString"),M=(e,t)=>ee(e,t,"encodeNumberArray"),Ae=(e,t)=>te(e,t,"decodeToString"),v=(e,t)=>te(e,t,"decodeToNumberArray");function we(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var P,G;function Ie(){if(G)return P;G=1;function e(t={}){const i=t.bits||16,p=t.rounds||22,l=t.rightRotations||7,f=t.leftRotations||2,s=2**i,n=s-1,u=(a,o)=>a>>o|a<a<>i-o,A=(a,o,r)=>(a=u(a,l),a=a+o&n,a^=r,o=y(o,f),o^=a,[a,o]),I=(a,o,r)=>(o^=a,o=u(o,f),a^=r,a=a-o&n,a=y(a,l),[a,o]);function S(a,o){let r=a[0],d=a[1],c=o[0],h=o.slice(1);[d,r]=A(d,r,c);for(let b=0;b{const d=a([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:g(S),decrypt:g(E),encryptRaw:S,decryptRaw:E}}return P=e,P}var Se=Ie();const ne=we(Se);var R,$;function re(){if($)return R;$=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function i(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function p(s){return(4294967296+s).toString(16).substring(1)}function l(s,n,u){let y=` +`+s+" = ";for(let A=0;A=4294967296&&b++,r[d]=h,r[d+1]=b}function i(r,d,c,h){let b=r[d]+c;c<0&&(b+=4294967296);let m=r[d+1]+h;b>=4294967296&&m++,r[d]=b,r[d+1]=m}function p(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function l(r,d,c,h,b,m){const ue=y[b],fe=y[b+1],de=y[m],ge=y[m+1];t(u,r,d),i(u,r,ue,fe);let k=u[h]^u[r],C=u[h+1]^u[r+1];u[h]=C,u[h+1]=k,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=k>>>24^C<<8,u[d+1]=C>>>24^k<<8,t(u,r,d),i(u,r,de,ge),k=u[h]^u[r],C=u[h+1]^u[r+1],u[h]=k>>>16^C<<16,u[h+1]=C>>>16^k<<16,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=C>>>31^k<<1,u[d+1]=k>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),u=new Uint32Array(32),y=new Uint32Array(32);function A(r,d){let c=0;for(c=0;c<16;c++)u[c]=r.h[c],u[c+16]=f[c];for(u[24]=u[24]^r.t,u[25]=u[25]^r.t/4294967296,d&&(u[28]=~u[28],u[29]=~u[29]),c=0;c<32;c++)y[c]=p(r.b,4*c);for(c=0;c<12;c++)l(0,8,16,24,n[c*16+0],n[c*16+1]),l(2,10,18,26,n[c*16+2],n[c*16+3]),l(4,12,20,28,n[c*16+4],n[c*16+5]),l(6,14,22,30,n[c*16+6],n[c*16+7]),l(0,10,20,30,n[c*16+8],n[c*16+9]),l(2,12,22,24,n[c*16+10],n[c*16+11]),l(4,14,16,26,n[c*16+12],n[c*16+13]),l(6,8,18,28,n[c*16+14],n[c*16+15]);for(c=0;c<16;c++)r.h[c]=r.h[c]^u[c]^u[c+16]}const I=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function S(r,d,c,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(c&&c.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};I.fill(0),I[0]=r,d&&(I[1]=d.length),I[2]=1,I[3]=1,c&&I.set(c,32),h&&I.set(h,48);for(let m=0;m<16;m++)b.h[m]=f[m]^p(I,m*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let c=0;c>2]>>8*(c&3);return d}function a(r,d,c,h,b){c=c||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const m=S(c,d,h,b);return E(m,r),g(m)}function o(r,d,c,h,b){const m=a(r,d,c,h,b);return e.toHex(m)}return F={blake2b:a,blake2bHex:o,blake2bInit:S,blake2bUpdate:E,blake2bFinal:g},F}var D,q;function ke(){if(q)return D;q=1;const e=re();function t(g,a){return g[a]^g[a+1]<<8^g[a+2]<<16^g[a+3]<<24}function i(g,a,o,r,d,c){s[g]=s[g]+s[a]+d,s[r]=p(s[r]^s[g],16),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],12),s[g]=s[g]+s[a]+c,s[r]=p(s[r]^s[g],8),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],7)}function p(g,a){return g>>>a^g<<32-a}const l=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function u(g,a){let o=0;for(o=0;o<8;o++)s[o]=g.h[o],s[o+8]=l[o];for(s[12]^=g.t,s[13]^=g.t/4294967296,a&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(g.b,4*o);for(o=0;o<10;o++)i(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),i(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),i(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),i(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),i(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),i(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),i(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),i(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)g.h[o]^=s[o]^s[o+8]}function y(g,a){if(!(g>0&&g<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(l),b:new Uint8Array(64),c:0,t:0,outlen:g};return r.h[0]^=16842752^o<<8^g,o>0&&(A(r,a),r.c=64),r}function A(g,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function S(g,a,o){o=o||32,g=e.normalizeInput(g);const r=y(o,a);return A(r,g),I(r)}function E(g,a,o){const r=S(g,a,o);return e.toHex(r)}return D={blake2s:S,blake2sHex:E,blake2sInit:y,blake2sUpdate:A,blake2sFinal:I},D}var O,z;function Ce(){if(z)return O;z=1;const e=Ee(),t=ke();return O={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},O}var oe=Ce();const ie=ne({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=oe.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Be(e,t){const i=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,p=Array.from(e,(l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t);return(l.codePointAt(0)^n)>>>0});return[i,...p]}function Ue(e,t){if(!e||e.length===0)return"";const i=e[0];return e.slice(1).map((l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t),u=(l^n)>>>0;try{return String.fromCodePoint(u)}catch{return""}}).join("")}const ce=ne();function Y(e){const t=oe.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Te(e,t){return Array.from(e,i=>ce.encrypt(i.codePointAt(0),t))}function Pe(e,t){return e.map(i=>{try{return String.fromCodePoint(ce.decrypt(i,t))}catch{return""}}).join("")}const Z="‍​­",N={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},_={0:"PLAIN",1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(_).map(([e,t])=>[t,+e]));const se=Object.entries(N).flatMap(([e,t])=>Object.entries(_).map(([i,p])=>{const l=(+i).toString(e).padStart(4,"0");if(l.length!==4)throw new RangeError(`Cipher ID ${i} exceeds ZWUS-${e}'s signature capacity`);const f=t+w[e].unifier+w[e][0]+Array.from(l,s=>w[e][s]).join("");if(f.length!==11)throw new RangeError("Signatures must contain exactly 11 characters");return{base:e,cipher:p,sig:f,legacy:!1}}));function Re(e,t){const i=se.find(p=>p.base===String(e)&&p.cipher===t);if(!i)throw new RangeError(`Unsupported signature: ZWUS-${e}, ${t}`);return i.sig}function le(e,t){let i=e.indexOf(Z);for(;i!==-1;){const p=t.find(l=>e.startsWith(l.sig,i)&&(!l.legacyPlain||e[i+l.sig.length]!==w[l.base].unifier));if(p){const{base:l,cipher:f,sig:s,legacy:n}=p;return{base:l,cipher:f,payload:e.slice(i+s.length),sigIdx:i,sigLen:s.length,legacy:n}}i=e.indexOf(Z,i+1)}return null}const Fe=e=>le(e,se),De=[3,6,7].flatMap(e=>[...[1,2].map(t=>({base:String(e),cipher:_[t],legacy:!0,sig:N[e]+w[e].unifier+w[e][0].repeat(3)+w[e][t]})),{base:String(e),cipher:"PLAIN",sig:N[e],legacy:!0,legacyPlain:!0}]),Oe=e=>le(e,De);function xe(e){const t=Fe(e),i=Oe(e);return!t||i&&i.sigIdxdocument.getElementById(e)),V=[...je,j,L,H];document.getElementById("encodeButton").addEventListener("click",ae);document.getElementById("decodeButton").addEventListener("click",ae);H.addEventListener("click",e=>e.target.classList.toggle("on"));let X,x=!1;async function ae(e){if(x)return;if(clearTimeout(X),T.className="",B.value===""){B.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let i=Le(),p=j.value.split("-")[1],l=B.value;if(t==="YES"){const n=xe(l);if(n){if(n.base!==p||n.cipher&&n.cipher!==i){const u=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";T.textContent=`ZWUS-${n.base}${u} signature detected`,T.className="show",X=setTimeout(()=>T.className="",2e3)}p=n.base,j.value="ZWUS-"+p,n.cipher&&(i=n.cipher,L.value=i),l=l.slice(0,n.sigIdx)+n.payload}}const f=i!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await He[t][i](l,p,s);if(t==="NO"&&H.classList.contains("on")&&(n=Re(p,i)+n),B.value=n,t==="NO"){U.textContent="Copying…";const u=await _e(n);u&&n.length<=65536&&(B.value=`Copied to your clipboard. + A copy has been placed between these brackets [`+n+"]"),U.textContent=u?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function _e(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let i;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((p,l)=>i=setTimeout(()=>l(new Error("Copy timed out")),5e3))]),!0}catch(p){console.warn("Clipboard copy failed",p)}finally{clearTimeout(i)}}if(e.length>65536)return!1;B.select();try{return document.execCommand("copy")}catch(i){return console.warn("Clipboard copy failed",i),!1}}function Le(){return L.value}const He={NO:{PLAIN:(e,t)=>me(e,t),SPECK48_96CTR:(e,t,i)=>M(Be(e,W(i)),t),"SPECK32_64ECB (insecure)":(e,t,i)=>M(Te(e,Y(i)),t)},YES:{PLAIN:(e,t)=>Ae(e,t),SPECK48_96CTR:async(e,t,i)=>Ue(await v(e,t),W(i)),"SPECK32_64ECB (insecure)":async(e,t,i)=>Pe(await v(e,t),Y(i))}}; diff --git a/dist/chrome/manifest.json b/dist/chrome/manifest.json index 43eaf6c..6768ba0 100644 --- a/dist/chrome/manifest.json +++ b/dist/chrome/manifest.json @@ -1 +1 @@ -{"name":"inØsight","version":"3.2.0","author":"planetrenox@pm.me","homepage_url":"https://github.com/inzerosight/inzerosight","description":"Communicate undetected in plain sight.","icons":{"48":"icon_500.png"},"permissions":["clipboardWrite"],"manifest_version":3,"action":{"default_icon":{"48":"icon_500.png"},"default_title":"inØsight","default_popup":"index.html"},"content_scripts":[{"matches":[""],"js":["content.js"],"run_at":"document_idle"}]} \ No newline at end of file +{"name":"inØsight","version":"3.3.0","author":"planetrenox@pm.me","homepage_url":"https://github.com/inzerosight/inzerosight","description":"Communicate undetected in plain sight.","icons":{"48":"icon_500.png"},"permissions":["clipboardWrite"],"manifest_version":3,"action":{"default_icon":{"48":"icon_500.png"},"default_title":"inØsight","default_popup":"index.html"},"content_scripts":[{"matches":[""],"js":["content.js"],"run_at":"document_idle"}]} \ No newline at end of file diff --git a/dist/firefox/content.js b/dist/firefox/content.js index 6f63110..c165703 100644 --- a/dist/firefox/content.js +++ b/dist/firefox/content.js @@ -1,6 +1,6 @@ -(function(){"use strict";const A={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(n,e=7)=>Array.from(n,l=>(+e==7?ee(l):l.codePointAt(0)).toString(e).split("").map(p=>A[e][p]).join("")).join(A[e].unifier),encodeNumberArray:(n,e=7)=>n.map(l=>l.toString(e).split("").map(p=>A[e][p]).join("")).join(A[e].unifier),decodeToString:(n,e=7)=>A.decodeToNumberArray(n,e).map(l=>String.fromCodePoint(+e==7?te(l):l)).join(""),decodeToNumberArray:(n,e=7)=>n.split(A[e].unifier).map(l=>Array.from(l).map(p=>Object.keys(A[e]).find(b=>A[e][b]===p)).join("")).filter(Boolean).map(l=>parseInt(l,e))},Q="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",H=[...new Set([...Q,...Array.from({length:95},(n,e)=>String.fromCharCode(e+32))])],Z=new Map(H.map((n,e)=>[n,e])),ee=n=>Z.get(n)??(n.codePointAt(0)<32?n.codePointAt(0)+95:n.codePointAt(0)),te=n=>n<95?H[n].codePointAt(0):n<127?n-95:n;function ne(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var D,L;function oe(){if(L)return D;L=1;function n(e={}){const l=e.bits||16,p=e.rounds||22,b=e.rightRotations||7,d=e.leftRotations||2,c=2**l,i=c-1,s=(a,o)=>a>>o|a<a<>l-o,g=(a,o,t)=>(a=s(a,b),a=a+o&i,a^=t,o=h(o,d),o^=a,[a,o]),y=(a,o,t)=>(o^=a,o=s(o,d),a^=t,a=a-o&i,a=h(a,b),[a,o]);function k(a,o){let t=a[0],u=a[1],r=o[0],m=o.slice(1);[u,t]=g(u,t,r);for(let w=0;w{const u=a([o/c|0,o&i],t);return u[0]*c+u[1]}}return{encrypt:f(k),decrypt:f(I),encryptRaw:k,decryptRaw:I}}return D=n,D}var re=oe();const M=ne(re);var U,z;function G(){if(z)return U;z=1;const n="Input must be an string, Buffer or Uint8Array";function e(c){let i;if(c instanceof Uint8Array)i=c;else if(typeof c=="string")i=new TextEncoder().encode(c);else throw new Error(n);return i}function l(c){return Array.prototype.map.call(c,function(i){return(i<16?"0":"")+i.toString(16)}).join("")}function p(c){return(4294967296+c).toString(16).substring(1)}function b(c,i,s){let h=` -`+c+" = ";for(let g=0;g=4294967296&&w++,t[u]=m,t[u+1]=w}function l(t,u,r,m){let w=t[u]+r;r<0&&(w+=4294967296);let E=t[u+1]+m;w>=4294967296&&E++,t[u]=w,t[u+1]=E}function p(t,u){return t[u]^t[u+1]<<8^t[u+2]<<16^t[u+3]<<24}function b(t,u,r,m,w,E){const ye=h[w],Ee=h[w+1],ke=h[E],Ae=h[E+1];e(s,t,u),l(s,t,ye,Ee);let S=s[m]^s[t],T=s[m+1]^s[t+1];s[m]=T,s[m+1]=S,e(s,r,m),S=s[u]^s[r],T=s[u+1]^s[r+1],s[u]=S>>>24^T<<8,s[u+1]=T>>>24^S<<8,e(s,t,u),l(s,t,ke,Ae),S=s[m]^s[t],T=s[m+1]^s[t+1],s[m]=S>>>16^T<<16,s[m+1]=T>>>16^S<<16,e(s,r,m),S=s[u]^s[r],T=s[u+1]^s[r+1],s[u]=T>>>31^S<<1,s[u+1]=S>>>31^T<<1}const d=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),c=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],i=new Uint8Array(c.map(function(t){return t*2})),s=new Uint32Array(32),h=new Uint32Array(32);function g(t,u){let r=0;for(r=0;r<16;r++)s[r]=t.h[r],s[r+16]=d[r];for(s[24]=s[24]^t.t,s[25]=s[25]^t.t/4294967296,u&&(s[28]=~s[28],s[29]=~s[29]),r=0;r<32;r++)h[r]=p(t.b,4*r);for(r=0;r<12;r++)b(0,8,16,24,i[r*16+0],i[r*16+1]),b(2,10,18,26,i[r*16+2],i[r*16+3]),b(4,12,20,28,i[r*16+4],i[r*16+5]),b(6,14,22,30,i[r*16+6],i[r*16+7]),b(0,10,20,30,i[r*16+8],i[r*16+9]),b(2,12,22,24,i[r*16+10],i[r*16+11]),b(4,14,16,26,i[r*16+12],i[r*16+13]),b(6,8,18,28,i[r*16+14],i[r*16+15]);for(r=0;r<16;r++)t.h[r]=t.h[r]^s[r]^s[r+16]}const y=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(t,u,r,m){if(t===0||t>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(u&&u.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(r&&r.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(m&&m.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const w={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:t};y.fill(0),y[0]=t,u&&(y[1]=u.length),y[2]=1,y[3]=1,r&&y.set(r,32),m&&y.set(m,48);for(let E=0;E<16;E++)w.h[E]=d[E]^p(y,E*4);return u&&(I(w,u),w.c=128),w}function I(t,u){for(let r=0;r>2]>>8*(r&3);return u}function a(t,u,r,m,w){r=r||64,t=n.normalizeInput(t),m&&(m=n.normalizeInput(m)),w&&(w=n.normalizeInput(w));const E=k(r,u,m,w);return I(E,t),f(E)}function o(t,u,r,m,w){const E=a(t,u,r,m,w);return n.toHex(E)}return B={blake2b:a,blake2bHex:o,blake2bInit:k,blake2bUpdate:I,blake2bFinal:f},B}var O,V;function se(){if(V)return O;V=1;const n=G();function e(f,a){return f[a]^f[a+1]<<8^f[a+2]<<16^f[a+3]<<24}function l(f,a,o,t,u,r){c[f]=c[f]+c[a]+u,c[t]=p(c[t]^c[f],16),c[o]=c[o]+c[t],c[a]=p(c[a]^c[o],12),c[f]=c[f]+c[a]+r,c[t]=p(c[t]^c[f],8),c[o]=c[o]+c[t],c[a]=p(c[a]^c[o],7)}function p(f,a){return f>>>a^f<<32-a}const b=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),d=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),c=new Uint32Array(16),i=new Uint32Array(16);function s(f,a){let o=0;for(o=0;o<8;o++)c[o]=f.h[o],c[o+8]=b[o];for(c[12]^=f.t,c[13]^=f.t/4294967296,a&&(c[14]=~c[14]),o=0;o<16;o++)i[o]=e(f.b,4*o);for(o=0;o<10;o++)l(0,4,8,12,i[d[o*16+0]],i[d[o*16+1]]),l(1,5,9,13,i[d[o*16+2]],i[d[o*16+3]]),l(2,6,10,14,i[d[o*16+4]],i[d[o*16+5]]),l(3,7,11,15,i[d[o*16+6]],i[d[o*16+7]]),l(0,5,10,15,i[d[o*16+8]],i[d[o*16+9]]),l(1,6,11,12,i[d[o*16+10]],i[d[o*16+11]]),l(2,7,8,13,i[d[o*16+12]],i[d[o*16+13]]),l(3,4,9,14,i[d[o*16+14]],i[d[o*16+15]]);for(o=0;o<8;o++)f.h[o]^=c[o]^c[o+8]}function h(f,a){if(!(f>0&&f<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const t={h:new Uint32Array(b),b:new Uint8Array(64),c:0,t:0,outlen:f};return t.h[0]^=16842752^o<<8^f,o>0&&(g(t,a),t.c=64),t}function g(f,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function k(f,a,o){o=o||32,f=n.normalizeInput(f);const t=h(o,a);return g(t,f),y(t)}function I(f,a,o){const t=k(f,a,o);return n.toHex(t)}return O={blake2s:k,blake2sHex:I,blake2sInit:h,blake2sUpdate:g,blake2sFinal:y},O}var _,W;function le(){if(W)return _;W=1;const n=ie(),e=se();return _={blake2b:n.blake2b,blake2bHex:n.blake2bHex,blake2bInit:n.blake2bInit,blake2bUpdate:n.blake2bUpdate,blake2bFinal:n.blake2bFinal,blake2s:e.blake2s,blake2sHex:e.blake2sHex,blake2sInit:e.blake2sInit,blake2sUpdate:e.blake2sUpdate,blake2sFinal:e.blake2sFinal},_}var X=le();const ce=M({bits:24,rounds:23,rightRotations:8,leftRotations:3});function ae(n){const e=X.blake2bHex(n,null,12);return[parseInt(e.slice(0,6),16),parseInt(e.slice(6,12),16),parseInt(e.slice(12,18),16),parseInt(e.slice(18,24),16)]}function ue(n,e){if(!n||n.length===0)return"";const l=n[0];return n.slice(1).map((b,d)=>{const c=l*16777216+(d&16777215),i=ce.encrypt(c,e),s=(b^i)>>>0;try{return String.fromCodePoint(s)}catch{return""}}).join("")}const fe=M();function de(n){const e=X.blake2bHex(n,null,8);return[parseInt(e.slice(0,4),16),parseInt(e.slice(4,8),16),parseInt(e.slice(8,12),16),parseInt(e.slice(12,16),16)]}function pe(n,e){return n.map(l=>{try{return String.fromCodePoint(fe.decrypt(l,e))}catch{return""}}).join("")}const N="‍​­",x={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},K={1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(K).map(([n,e])=>[e,+n]));function be(n){let e=n.indexOf(N),l;for(;e!==-1&&(l=Object.keys(x).find(d=>n.startsWith(x[d],e)),!l);)e=n.indexOf(N,e+N.length);if(!l)return null;const p=n.slice(e+x[l].length),b=A[l].unifier+A[l][0];if(p.startsWith(b)){const c=Array.from(p.slice(b.length,b.length+3)).map(g=>Object.keys(A[l]).find(y=>A[l][y]===g)).join(""),i=K[parseInt(c,l)];if(!i)return{base:l,cipher:"PLAIN",payload:p,sigIdx:e,sigLen:x[l].length};const s=p.slice(b.length+3),h=x[l].length+b.length+3;return{base:l,cipher:i,payload:s,sigIdx:e,sigLen:h}}return{base:l,cipher:"PLAIN",payload:p,sigIdx:e,sigLen:x[l].length}}function $(n,e,l){const p=new Set(Object.values(A[e]));let b=l;for(;bArray.from(e,r=>(+t==7?ne(r):r.codePointAt(0)).toString(t).split("").map(u=>S[t][u]).join("")).join(S[t].unifier),encodeNumberArray:(e,t=7)=>e.map(r=>r.toString(t).split("").map(u=>S[t][u]).join("")).join(S[t].unifier),decodeToString:(e,t=7)=>S.decodeToNumberArray(e,t).map(r=>String.fromCodePoint(+t==7?re(r):r)).join(""),decodeToNumberArray:(e,t=7)=>e.split(S[t].unifier).map(r=>Array.from(r).map(u=>Object.keys(S[t]).find(h=>S[t][h]===u)).join("")).filter(Boolean).map(r=>parseInt(r,t))},ee="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",M=[...new Set([...ee,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],te=new Map(M.map((e,t)=>[e,t])),ne=e=>te.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),re=e=>e<95?M[e].codePointAt(0):e<127?e-95:e;function oe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var D,G;function ie(){if(G)return D;G=1;function e(t={}){const r=t.bits||16,u=t.rounds||22,h=t.rightRotations||7,f=t.leftRotations||2,c=2**r,s=c-1,l=(a,o)=>a>>o|a<a<>r-o,b=(a,o,n)=>(a=l(a,h),a=a+o&s,a^=n,o=g(o,f),o^=a,[a,o]),E=(a,o,n)=>(o^=a,o=l(o,f),a^=n,a=a-o&s,a=g(a,h),[a,o]);function k(a,o){let n=a[0],d=a[1],i=o[0],m=o.slice(1);[d,n]=b(d,n,i);for(let w=0;w{const d=a([o/c|0,o&s],n);return d[0]*c+d[1]}}return{encrypt:p(k),decrypt:p(A),encryptRaw:k,decryptRaw:A}}return D=e,D}var se=ie();const V=oe(se);var B,z;function W(){if(z)return B;z=1;const e="Input must be an string, Buffer or Uint8Array";function t(c){let s;if(c instanceof Uint8Array)s=c;else if(typeof c=="string")s=new TextEncoder().encode(c);else throw new Error(e);return s}function r(c){return Array.prototype.map.call(c,function(s){return(s<16?"0":"")+s.toString(16)}).join("")}function u(c){return(4294967296+c).toString(16).substring(1)}function h(c,s,l){let g=` +`+c+" = ";for(let b=0;b=4294967296&&w++,n[d]=m,n[d+1]=w}function r(n,d,i,m){let w=n[d]+i;i<0&&(w+=4294967296);let y=n[d+1]+m;w>=4294967296&&y++,n[d]=w,n[d+1]=y}function u(n,d){return n[d]^n[d+1]<<8^n[d+2]<<16^n[d+3]<<24}function h(n,d,i,m,w,y){const Ie=g[w],Te=g[w+1],xe=g[y],Ce=g[y+1];t(l,n,d),r(l,n,Ie,Te);let I=l[m]^l[n],T=l[m+1]^l[n+1];l[m]=T,l[m+1]=I,t(l,i,m),I=l[d]^l[i],T=l[d+1]^l[i+1],l[d]=I>>>24^T<<8,l[d+1]=T>>>24^I<<8,t(l,n,d),r(l,n,xe,Ce),I=l[m]^l[n],T=l[m+1]^l[n+1],l[m]=I>>>16^T<<16,l[m+1]=T>>>16^I<<16,t(l,i,m),I=l[d]^l[i],T=l[d+1]^l[i+1],l[d]=T>>>31^I<<1,l[d+1]=I>>>31^T<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),c=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],s=new Uint8Array(c.map(function(n){return n*2})),l=new Uint32Array(32),g=new Uint32Array(32);function b(n,d){let i=0;for(i=0;i<16;i++)l[i]=n.h[i],l[i+16]=f[i];for(l[24]=l[24]^n.t,l[25]=l[25]^n.t/4294967296,d&&(l[28]=~l[28],l[29]=~l[29]),i=0;i<32;i++)g[i]=u(n.b,4*i);for(i=0;i<12;i++)h(0,8,16,24,s[i*16+0],s[i*16+1]),h(2,10,18,26,s[i*16+2],s[i*16+3]),h(4,12,20,28,s[i*16+4],s[i*16+5]),h(6,14,22,30,s[i*16+6],s[i*16+7]),h(0,10,20,30,s[i*16+8],s[i*16+9]),h(2,12,22,24,s[i*16+10],s[i*16+11]),h(4,14,16,26,s[i*16+12],s[i*16+13]),h(6,8,18,28,s[i*16+14],s[i*16+15]);for(i=0;i<16;i++)n.h[i]=n.h[i]^l[i]^l[i+16]}const E=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(n,d,i,m){if(n===0||n>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(i&&i.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(m&&m.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const w={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:n};E.fill(0),E[0]=n,d&&(E[1]=d.length),E[2]=1,E[3]=1,i&&E.set(i,32),m&&E.set(m,48);for(let y=0;y<16;y++)w.h[y]=f[y]^u(E,y*4);return d&&(A(w,d),w.c=128),w}function A(n,d){for(let i=0;i>2]>>8*(i&3);return d}function a(n,d,i,m,w){i=i||64,n=e.normalizeInput(n),m&&(m=e.normalizeInput(m)),w&&(w=e.normalizeInput(w));const y=k(i,d,m,w);return A(y,n),p(y)}function o(n,d,i,m,w){const y=a(n,d,i,m,w);return e.toHex(y)}return v={blake2b:a,blake2bHex:o,blake2bInit:k,blake2bUpdate:A,blake2bFinal:p},v}var O,X;function ce(){if(X)return O;X=1;const e=W();function t(p,a){return p[a]^p[a+1]<<8^p[a+2]<<16^p[a+3]<<24}function r(p,a,o,n,d,i){c[p]=c[p]+c[a]+d,c[n]=u(c[n]^c[p],16),c[o]=c[o]+c[n],c[a]=u(c[a]^c[o],12),c[p]=c[p]+c[a]+i,c[n]=u(c[n]^c[p],8),c[o]=c[o]+c[n],c[a]=u(c[a]^c[o],7)}function u(p,a){return p>>>a^p<<32-a}const h=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),c=new Uint32Array(16),s=new Uint32Array(16);function l(p,a){let o=0;for(o=0;o<8;o++)c[o]=p.h[o],c[o+8]=h[o];for(c[12]^=p.t,c[13]^=p.t/4294967296,a&&(c[14]=~c[14]),o=0;o<16;o++)s[o]=t(p.b,4*o);for(o=0;o<10;o++)r(0,4,8,12,s[f[o*16+0]],s[f[o*16+1]]),r(1,5,9,13,s[f[o*16+2]],s[f[o*16+3]]),r(2,6,10,14,s[f[o*16+4]],s[f[o*16+5]]),r(3,7,11,15,s[f[o*16+6]],s[f[o*16+7]]),r(0,5,10,15,s[f[o*16+8]],s[f[o*16+9]]),r(1,6,11,12,s[f[o*16+10]],s[f[o*16+11]]),r(2,7,8,13,s[f[o*16+12]],s[f[o*16+13]]),r(3,4,9,14,s[f[o*16+14]],s[f[o*16+15]]);for(o=0;o<8;o++)p.h[o]^=c[o]^c[o+8]}function g(p,a){if(!(p>0&&p<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const n={h:new Uint32Array(h),b:new Uint8Array(64),c:0,t:0,outlen:p};return n.h[0]^=16842752^o<<8^p,o>0&&(b(n,a),n.c=64),n}function b(p,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function k(p,a,o){o=o||32,p=e.normalizeInput(p);const n=g(o,a);return b(n,p),E(n)}function A(p,a,o){const n=k(p,a,o);return e.toHex(n)}return O={blake2s:k,blake2sHex:A,blake2sInit:g,blake2sUpdate:b,blake2sFinal:E},O}var _,K;function ae(){if(K)return _;K=1;const e=le(),t=ce();return _={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},_}var $=ae();const ue=V({bits:24,rounds:23,rightRotations:8,leftRotations:3});function fe(e){const t=$.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function de(e,t){if(!e||e.length===0)return"";const r=e[0];return e.slice(1).map((h,f)=>{const c=r*16777216+(f&16777215),s=ue.encrypt(c,t),l=(h^s)>>>0;try{return String.fromCodePoint(l)}catch{return""}}).join("")}const pe=V();function he(e){const t=$.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function ge(e,t){return e.map(r=>{try{return String.fromCodePoint(pe.decrypt(r,t))}catch{return""}}).join("")}const C="‍​­",P={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},F={0:"PLAIN",1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(F).map(([e,t])=>[t,+e]));const be=Object.entries(P).flatMap(([e,t])=>Object.entries(F).map(([r,u])=>{const h=(+r).toString(e).padStart(4,"0");if(h.length!==4)throw new RangeError(`Cipher ID ${r} exceeds ZWUS-${e}'s signature capacity`);const f=t+S[e].unifier+S[e][0]+Array.from(h,c=>S[e][c]).join("");if(f.length!==11)throw new RangeError("Signatures must contain exactly 11 characters");return{base:e,cipher:u,sig:f,legacy:!1}}));function Y(e,t){let r=e.indexOf(C);for(;r!==-1;){const u=t.find(h=>e.startsWith(h.sig,r)&&(!h.legacyPlain||e[r+h.sig.length]!==S[h.base].unifier));if(u){const{base:h,cipher:f,sig:c,legacy:s}=u;return{base:h,cipher:f,payload:e.slice(r+c.length),sigIdx:r,sigLen:c.length,legacy:s}}r=e.indexOf(C,r+1)}return null}const me=e=>Y(e,be),we=[3,6,7].flatMap(e=>[...[1,2].map(t=>({base:String(e),cipher:F[t],legacy:!0,sig:P[e]+S[e].unifier+S[e][0].repeat(3)+S[e][t]})),{base:String(e),cipher:"PLAIN",sig:P[e],legacy:!0,legacyPlain:!0}]),ye=e=>Y(e,we);function Ee(e){const t=me(e),r=ye(e);return!t||r&&r.sigIdxme(h,e),Y(h)}function Y(n){const{wrap:e,node:l,start:p,endNode:b,end:d}=n;if(!l.isConnected||!b.isConnected){e.remove(),C.delete(n);return}const c=l.parentElement;if(!c||c.checkVisibility&&!c.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0})){e.style.display="none";return}const i=document.createRange();try{i.setStart(l,p),i.setEnd(b,Math.min(d,b.nodeValue.length))}catch{e.remove(),C.delete(n);return}let s=i.getBoundingClientRect();if(!s.width&&!s.height&&(s=c.getBoundingClientRect()),!s.width&&!s.height){e.style.display="none";return}if(s.bottom<0||s.top>window.innerHeight||s.right<0||s.left>window.innerWidth){e.style.display="none";return}let h=c;for(;h&&h!==document.body&&h!==document.documentElement;){const k=window.getComputedStyle(h);if(k.overflow!=="visible"||k.overflowX!=="visible"||k.overflowY!=="visible"){const I=h.getBoundingClientRect();if(s.bottomI.bottom||s.rightI.right){e.style.display="none";return}}h=h.parentElement}e.style.display="flex";const g=s.left+(s.width||0)/2,y=s.top;e.style.left=`${g-e.offsetWidth/2}px`,e.style.top=`${y-e.offsetHeight-2}px`}function me(n,e){const{wrap:l,node:p,start:b,endNode:d,end:c}=n,i=document.createRange();i.setStart(p,b),i.setEnd(d,c);const s=i.toString().slice(e.sigLen);let h="";if(e.cipher==="PLAIN")try{h=A.decodeToString(s,e.base)}catch(g){console.error(g)}else{const g=prompt(`inØsight: enter password (${e.cipher}):`);if(!g)return;try{const y=A.decodeToNumberArray(s,e.base);e.cipher==="SPECK48_96CTR"?h=ue(y,ae(g)):e.cipher==="SPECK32_64ECB (insecure)"&&(h=pe(y,de(g)))}catch(y){console.error(y)}if(!h){alert("Decryption failed.");return}}if(h){i.deleteContents();const g=document.createElement("span");g.className="inzerosight-decoded",g.style.color="#00b4d8",g.style.fontWeight="600",g.textContent=` ${h} `,i.insertNode(g),l.remove(),C.delete(n)}}function we(n,e,l){let p=n,b=$(n.nodeValue,e,l);for(;b===p.nodeValue.length;){let d=p.nextSibling,c=!1;for(;(d==null?void 0:d.nodeType)===Node.ELEMENT_NODE&&d.tagName==="WBR";)c=!0,d=d.nextSibling;if(!c||(d==null?void 0:d.nodeType)!==Node.TEXT_NODE)break;const i=$(d.nodeValue,e,0);if(!i)break;p=d,b=i}return{endNode:p,end:b}}function v(n){if(!n||n.nodeType!==Node.TEXT_NODE)return;const e=n.nodeValue;if(!e||!e.includes(N))return;let l=0;for(;l{var d;return e[(d=b.parentElement)==null?void 0:d.tagName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let p;for(;p=l.nextNode();)v(p)}J(document.body);let F;function j(){F||C.size===0||(F=requestAnimationFrame(()=>{F=null,C.forEach(Y)}))}new MutationObserver(n=>{var e;for(const l of[...C])(!l.node.isConnected||!((e=l.node.nodeValue)!=null&&e.startsWith(N,l.start)))&&(l.wrap.remove(),C.delete(l));for(const l of n)if(l.type==="characterData")v(l.target);else for(const p of l.addedNodes)p.nodeType===Node.TEXT_NODE?v(p):p.nodeType===Node.ELEMENT_NODE&&p.id!=="in0-host"&&J(p);j()}).observe(document.documentElement,{childList:!0,subtree:!0,characterData:!0}),window.addEventListener("scroll",j,{capture:!0,passive:!0}),window.addEventListener("resize",j,{passive:!0})})(); + `,j.appendChild(e),(document.body||document.documentElement).appendChild(N)}function Se(e,t,r,u,h){for(const b of x)if(b.node===e&&b.start===r)return;ke();const f=document.createElement("div");f.className="in0-wrap";const c=document.createElement("button");c.className="in0-btn",c.textContent=t.cipher==="PLAIN"?"Decode":"Decrypt";const s=document.createElement("span");s.className="in0-badge",s.textContent="Ø",c.appendChild(s);const l=document.createElement("div");l.className="in0-arrow",f.appendChild(c),f.appendChild(l),j.appendChild(f);const g={wrap:f,node:e,start:r,endNode:u,end:h};x.add(g),c.onclick=()=>Ae(g,t),Z(g)}function Z(e){const{wrap:t,node:r,start:u,endNode:h,end:f}=e;if(!r.isConnected||!h.isConnected){t.remove(),x.delete(e);return}const c=r.parentElement;if(!c||c.checkVisibility&&!c.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0})){t.style.display="none";return}const s=document.createRange();try{s.setStart(r,u),s.setEnd(h,Math.min(f,h.nodeValue.length))}catch{t.remove(),x.delete(e);return}let l=s.getBoundingClientRect();if(!l.width&&!l.height&&(l=c.getBoundingClientRect()),!l.width&&!l.height){t.style.display="none";return}if(l.bottom<0||l.top>window.innerHeight||l.right<0||l.left>window.innerWidth){t.style.display="none";return}let g=c;for(;g&&g!==document.body&&g!==document.documentElement;){const k=window.getComputedStyle(g);if(k.overflow!=="visible"||k.overflowX!=="visible"||k.overflowY!=="visible"){const A=g.getBoundingClientRect();if(l.bottomA.bottom||l.rightA.right){t.style.display="none";return}}g=g.parentElement}t.style.display="flex";const b=l.left+(l.width||0)/2,E=l.top;t.style.left=`${b-t.offsetWidth/2}px`,t.style.top=`${E-t.offsetHeight-2}px`}function Ae(e,t){const{wrap:r,node:u,start:h,endNode:f,end:c}=e,s=document.createRange();s.setStart(u,h),s.setEnd(f,c);const l=s.toString().slice(t.sigLen);let g="";if(t.cipher==="PLAIN")try{g=S.decodeToString(l,t.base)}catch(b){console.error(b)}else{const b=prompt(`inØsight: enter password (${t.cipher}):`);if(!b)return;try{const E=S.decodeToNumberArray(l,t.base);t.cipher==="SPECK48_96CTR"?g=de(E,fe(b)):t.cipher==="SPECK32_64ECB (insecure)"&&(g=ge(E,he(b)))}catch(E){console.error(E)}if(!g){alert("Decryption failed.");return}}if(g){s.deleteContents();const b=document.createElement("span");b.className="inzerosight-decoded",b.style.color="#00b4d8",b.style.fontWeight="600",b.textContent=` ${g} `,s.insertNode(b),r.remove(),x.delete(e)}}function U(e,t){let r=e[t],u=!1;for(;(r==null?void 0:r.nodeType)===Node.ELEMENT_NODE&&r.tagName==="WBR";)u=!0,r=r[t];return u&&(r==null?void 0:r.nodeType)===Node.TEXT_NODE?r:null}function R(e){if(!e||e.nodeType!==Node.TEXT_NODE)return;for(let f;f=U(e,"previousSibling");)e=f;const t=[e];let r=e.nodeValue;for(let f;f=U(t.at(-1),"nextSibling");)t.push(f),r+=f.nodeValue;if(!r||!r.includes(C))return;const u=(f,c)=>{for(const s of t){if(f{var f;return t[(f=h.parentElement)==null?void 0:f.tagName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let u;for(;u=r.nextNode();)U(u,"previousSibling")||R(u)}Q(document.body);let H;function L(){H||x.size===0||(H=requestAnimationFrame(()=>{H=null,x.forEach(Z)}))}new MutationObserver(e=>{var t;for(const r of[...x]){let u=((t=r.node.nodeValue)==null?void 0:t.slice(r.start))||"";for(let h=r.node;u.length -

inØsight 3.2.0source

+

inØsight 3.3.0source

diff --git a/dist/firefox/index.js b/dist/firefox/index.js index d0f0c10..9b44be8 100644 --- a/dist/firefox/index.js +++ b/dist/firefox/index.js @@ -1,4 +1,4 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))g(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&g(s)}).observe(document,{childList:!0,subtree:!0});function c(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function g(u){if(u.ep)return;u.ep=!0;const f=c(u);fetch(u.href,f)}})();const I={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,c=>(+t==7?ge(c):c.codePointAt(0)).toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),encodeNumberArray:(e,t=7)=>e.map(c=>c.toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),decodeToString:(e,t=7)=>I.decodeToNumberArray(e,t).map(c=>String.fromCodePoint(+t==7?he(c):c)).join(""),decodeToNumberArray:(e,t=7)=>e.split(I[t].unifier).map(c=>Array.from(c).map(g=>Object.keys(I[t]).find(u=>I[t][u]===g)).join("")).filter(Boolean).map(c=>parseInt(c,t))},de="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",X=[...new Set([...de,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],pe=new Map(X.map((e,t)=>[e,t])),ge=e=>pe.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),he=e=>e<95?X[e].codePointAt(0):e<127?e-95:e,J=65536;function Q(e,t,c){const g=[];for(let u=0;u=55296&&e.charCodeAt(f-1)<=56319&&f--,g.push(I[c](e.slice(u,f),t)),u=f}return g.join(I[t].unifier)}function ee(e,t,c){const g=[],u=I[t].unifier;for(let f=0;f=f?n+1:e.indexOf(u,s)+1||e.length}g.push(I[c](e.slice(f,s),t)),f=s}return c==="decodeToString"?g.join(""):g.flat()}const be=(e,t)=>Q(e,t,"encodeString"),M=(e,t)=>Q(e,t,"encodeNumberArray"),ye=(e,t)=>ee(e,t,"decodeToString"),v=(e,t)=>ee(e,t,"decodeToNumberArray");function me(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,G;function Ae(){if(G)return F;G=1;function e(t={}){const c=t.bits||16,g=t.rounds||22,u=t.rightRotations||7,f=t.leftRotations||2,s=2**c,n=s-1,a=(l,o)=>l>>o|l<l<>c-o,m=(l,o,r)=>(l=a(l,u),l=l+o&n,l^=r,o=y(o,f),o^=l,[l,o]),w=(l,o,r)=>(o^=l,o=a(o,f),l^=r,l=l-o&n,l=y(l,u),[l,o]);function k(l,o){let r=l[0],d=l[1],i=o[0],h=o.slice(1);[d,r]=m(d,r,i);for(let b=0;b{const d=l([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:p(k),decrypt:p(E),encryptRaw:k,decryptRaw:E}}return F=e,F}var we=Ae();const te=me(we);var P,K;function ne(){if(K)return P;K=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function c(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function g(s){return(4294967296+s).toString(16).substring(1)}function u(s,n,a){let y=` -`+s+" = ";for(let m=0;m=4294967296&&b++,r[d]=h,r[d+1]=b}function c(r,d,i,h){let b=r[d]+i;i<0&&(b+=4294967296);let A=r[d+1]+h;b>=4294967296&&A++,r[d]=b,r[d+1]=A}function g(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function u(r,d,i,h,b,A){const le=y[b],ae=y[b+1],ue=y[A],fe=y[A+1];t(a,r,d),c(a,r,le,ae);let S=a[h]^a[r],C=a[h+1]^a[r+1];a[h]=C,a[h+1]=S,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=S>>>24^C<<8,a[d+1]=C>>>24^S<<8,t(a,r,d),c(a,r,ue,fe),S=a[h]^a[r],C=a[h+1]^a[r+1],a[h]=S>>>16^C<<16,a[h+1]=C>>>16^S<<16,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=C>>>31^S<<1,a[d+1]=S>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),a=new Uint32Array(32),y=new Uint32Array(32);function m(r,d){let i=0;for(i=0;i<16;i++)a[i]=r.h[i],a[i+16]=f[i];for(a[24]=a[24]^r.t,a[25]=a[25]^r.t/4294967296,d&&(a[28]=~a[28],a[29]=~a[29]),i=0;i<32;i++)y[i]=g(r.b,4*i);for(i=0;i<12;i++)u(0,8,16,24,n[i*16+0],n[i*16+1]),u(2,10,18,26,n[i*16+2],n[i*16+3]),u(4,12,20,28,n[i*16+4],n[i*16+5]),u(6,14,22,30,n[i*16+6],n[i*16+7]),u(0,10,20,30,n[i*16+8],n[i*16+9]),u(2,12,22,24,n[i*16+10],n[i*16+11]),u(4,14,16,26,n[i*16+12],n[i*16+13]),u(6,8,18,28,n[i*16+14],n[i*16+15]);for(i=0;i<16;i++)r.h[i]=r.h[i]^a[i]^a[i+16]}const w=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(r,d,i,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(i&&i.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};w.fill(0),w[0]=r,d&&(w[1]=d.length),w[2]=1,w[3]=1,i&&w.set(i,32),h&&w.set(h,48);for(let A=0;A<16;A++)b.h[A]=f[A]^g(w,A*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let i=0;i>2]>>8*(i&3);return d}function l(r,d,i,h,b){i=i||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const A=k(i,d,h,b);return E(A,r),p(A)}function o(r,d,i,h,b){const A=l(r,d,i,h,b);return e.toHex(A)}return O={blake2b:l,blake2bHex:o,blake2bInit:k,blake2bUpdate:E,blake2bFinal:p},O}var R,z;function ke(){if(z)return R;z=1;const e=ne();function t(p,l){return p[l]^p[l+1]<<8^p[l+2]<<16^p[l+3]<<24}function c(p,l,o,r,d,i){s[p]=s[p]+s[l]+d,s[r]=g(s[r]^s[p],16),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],12),s[p]=s[p]+s[l]+i,s[r]=g(s[r]^s[p],8),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],7)}function g(p,l){return p>>>l^p<<32-l}const u=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function a(p,l){let o=0;for(o=0;o<8;o++)s[o]=p.h[o],s[o+8]=u[o];for(s[12]^=p.t,s[13]^=p.t/4294967296,l&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(p.b,4*o);for(o=0;o<10;o++)c(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),c(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),c(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),c(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),c(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),c(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),c(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),c(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)p.h[o]^=s[o]^s[o+8]}function y(p,l){if(!(p>0&&p<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=l?l.length:0;if(l&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(u),b:new Uint8Array(64),c:0,t:0,outlen:p};return r.h[0]^=16842752^o<<8^p,o>0&&(m(r,l),r.c=64),r}function m(p,l){for(let o=0;o>2]>>8*(o&3)&255;return l}function k(p,l,o){o=o||32,p=e.normalizeInput(p);const r=y(o,l);return m(r,p),w(r)}function E(p,l,o){const r=k(p,l,o);return e.toHex(r)}return R={blake2s:k,blake2sHex:E,blake2sInit:y,blake2sUpdate:m,blake2sFinal:w},R}var _,$;function Ee(){if($)return _;$=1;const e=Ie(),t=ke();return _={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},_}var re=Ee();const oe=te({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=re.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Se(e,t){const c=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,g=Array.from(e,(u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t);return(u.codePointAt(0)^n)>>>0});return[c,...g]}function Ce(e,t){if(!e||e.length===0)return"";const c=e[0];return e.slice(1).map((u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t),a=(u^n)>>>0;try{return String.fromCodePoint(a)}catch{return""}}).join("")}const ie=te();function Y(e){const t=re.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Be(e,t){return Array.from(e,c=>ie.encrypt(c.codePointAt(0),t))}function Te(e,t){return e.map(c=>{try{return String.fromCodePoint(ie.decrypt(c,t))}catch{return""}}).join("")}const j="‍​­",B={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},ce={1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"},Ue=Object.fromEntries(Object.entries(ce).map(([e,t])=>[t,+e]));function De(e,t){let c=B[e];const g=Ue[t];if(g){const u=Array.from(g.toString(e).padStart(3,"0"),f=>I[e][f]).join("");c+=I[e].unifier+I[e][0]+u}return c}function Fe(e){let t=e.indexOf(j),c;for(;t!==-1&&(c=Object.keys(B).find(f=>e.startsWith(B[f],t)),!c);)t=e.indexOf(j,t+j.length);if(!c)return null;const g=e.slice(t+B[c].length),u=I[c].unifier+I[c][0];if(g.startsWith(u)){const s=Array.from(g.slice(u.length,u.length+3)).map(m=>Object.keys(I[c]).find(w=>I[c][w]===m)).join(""),n=ce[parseInt(s,c)];if(!n)return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length};const a=g.slice(u.length+3),y=B[c].length+u.length+3;return{base:c,cipher:n,payload:a,sigIdx:t,sigLen:y}}return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length}}const T=document.getElementById("textarea"),N=document.getElementById("encoder"),L=document.getElementById("cipher"),H=document.getElementById("sign"),D=document.getElementById("sigDetect"),U=document.getElementById("notice"),Pe=["encodeButton","decodeButton"].map(e=>document.getElementById(e)),V=[...Pe,N,L,H];document.getElementById("encodeButton").addEventListener("click",se);document.getElementById("decodeButton").addEventListener("click",se);H.addEventListener("click",e=>e.target.classList.toggle("on"));let Z,x=!1;async function se(e){if(x)return;if(clearTimeout(Z),D.className="",T.value===""){T.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let c=Re(),g=N.value.split("-")[1],u=T.value;if(t==="YES"){const n=Fe(u);if(n){if(n.base!==g||n.cipher&&n.cipher!==c){const a=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";D.textContent=`ZWUS-${n.base}${a} signature detected`,D.className="show",Z=setTimeout(()=>D.className="",2e3)}g=n.base,N.value="ZWUS-"+g,n.cipher&&(c=n.cipher,L.value=c),u=u.slice(0,n.sigIdx)+n.payload}}const f=c!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await _e[t][c](u,g,s);if(t==="NO"&&H.classList.contains("on")&&(n=De(g,c)+n),T.value=n,t==="NO"){U.textContent="Copying…";const a=await Oe(n);a&&n.length<=65536&&(T.value=`Copied to your clipboard. - A copy has been placed between these brackets [`+n+"]"),U.textContent=a?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function Oe(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let c;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((g,u)=>c=setTimeout(()=>u(new Error("Copy timed out")),5e3))]),!0}catch(g){console.warn("Clipboard copy failed",g)}finally{clearTimeout(c)}}if(e.length>65536)return!1;T.select();try{return document.execCommand("copy")}catch(c){return console.warn("Clipboard copy failed",c),!1}}function Re(){return L.value}const _e={NO:{PLAIN:(e,t)=>be(e,t),SPECK48_96CTR:(e,t,c)=>M(Se(e,W(c)),t),"SPECK32_64ECB (insecure)":(e,t,c)=>M(Be(e,Y(c)),t)},YES:{PLAIN:(e,t)=>ye(e,t),SPECK48_96CTR:async(e,t,c)=>Ce(await v(e,t),W(c)),"SPECK32_64ECB (insecure)":async(e,t,c)=>Te(await v(e,t),Y(c))}}; +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))p(l);new MutationObserver(l=>{for(const f of l)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&p(s)}).observe(document,{childList:!0,subtree:!0});function i(l){const f={};return l.integrity&&(f.integrity=l.integrity),l.referrerPolicy&&(f.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?f.credentials="include":l.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function p(l){if(l.ep)return;l.ep=!0;const f=i(l);fetch(l.href,f)}})();const w={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,i=>(+t==7?be(i):i.codePointAt(0)).toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),encodeNumberArray:(e,t=7)=>e.map(i=>i.toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),decodeToString:(e,t=7)=>w.decodeToNumberArray(e,t).map(i=>String.fromCodePoint(+t==7?ye(i):i)).join(""),decodeToNumberArray:(e,t=7)=>e.split(w[t].unifier).map(i=>Array.from(i).map(p=>Object.keys(w[t]).find(l=>w[t][l]===p)).join("")).filter(Boolean).map(i=>parseInt(i,t))},pe="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",J=[...new Set([...pe,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],he=new Map(J.map((e,t)=>[e,t])),be=e=>he.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),ye=e=>e<95?J[e].codePointAt(0):e<127?e-95:e,Q=65536;function ee(e,t,i){const p=[];for(let l=0;l=55296&&e.charCodeAt(f-1)<=56319&&f--,p.push(w[i](e.slice(l,f),t)),l=f}return p.join(w[t].unifier)}function te(e,t,i){const p=[],l=w[t].unifier;for(let f=0;f=f?n+1:e.indexOf(l,s)+1||e.length}p.push(w[i](e.slice(f,s),t)),f=s}return i==="decodeToString"?p.join(""):p.flat()}const me=(e,t)=>ee(e,t,"encodeString"),M=(e,t)=>ee(e,t,"encodeNumberArray"),Ae=(e,t)=>te(e,t,"decodeToString"),v=(e,t)=>te(e,t,"decodeToNumberArray");function we(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var P,G;function Ie(){if(G)return P;G=1;function e(t={}){const i=t.bits||16,p=t.rounds||22,l=t.rightRotations||7,f=t.leftRotations||2,s=2**i,n=s-1,u=(a,o)=>a>>o|a<a<>i-o,A=(a,o,r)=>(a=u(a,l),a=a+o&n,a^=r,o=y(o,f),o^=a,[a,o]),I=(a,o,r)=>(o^=a,o=u(o,f),a^=r,a=a-o&n,a=y(a,l),[a,o]);function S(a,o){let r=a[0],d=a[1],c=o[0],h=o.slice(1);[d,r]=A(d,r,c);for(let b=0;b{const d=a([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:g(S),decrypt:g(E),encryptRaw:S,decryptRaw:E}}return P=e,P}var Se=Ie();const ne=we(Se);var R,$;function re(){if($)return R;$=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function i(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function p(s){return(4294967296+s).toString(16).substring(1)}function l(s,n,u){let y=` +`+s+" = ";for(let A=0;A=4294967296&&b++,r[d]=h,r[d+1]=b}function i(r,d,c,h){let b=r[d]+c;c<0&&(b+=4294967296);let m=r[d+1]+h;b>=4294967296&&m++,r[d]=b,r[d+1]=m}function p(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function l(r,d,c,h,b,m){const ue=y[b],fe=y[b+1],de=y[m],ge=y[m+1];t(u,r,d),i(u,r,ue,fe);let k=u[h]^u[r],C=u[h+1]^u[r+1];u[h]=C,u[h+1]=k,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=k>>>24^C<<8,u[d+1]=C>>>24^k<<8,t(u,r,d),i(u,r,de,ge),k=u[h]^u[r],C=u[h+1]^u[r+1],u[h]=k>>>16^C<<16,u[h+1]=C>>>16^k<<16,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=C>>>31^k<<1,u[d+1]=k>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),u=new Uint32Array(32),y=new Uint32Array(32);function A(r,d){let c=0;for(c=0;c<16;c++)u[c]=r.h[c],u[c+16]=f[c];for(u[24]=u[24]^r.t,u[25]=u[25]^r.t/4294967296,d&&(u[28]=~u[28],u[29]=~u[29]),c=0;c<32;c++)y[c]=p(r.b,4*c);for(c=0;c<12;c++)l(0,8,16,24,n[c*16+0],n[c*16+1]),l(2,10,18,26,n[c*16+2],n[c*16+3]),l(4,12,20,28,n[c*16+4],n[c*16+5]),l(6,14,22,30,n[c*16+6],n[c*16+7]),l(0,10,20,30,n[c*16+8],n[c*16+9]),l(2,12,22,24,n[c*16+10],n[c*16+11]),l(4,14,16,26,n[c*16+12],n[c*16+13]),l(6,8,18,28,n[c*16+14],n[c*16+15]);for(c=0;c<16;c++)r.h[c]=r.h[c]^u[c]^u[c+16]}const I=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function S(r,d,c,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(c&&c.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};I.fill(0),I[0]=r,d&&(I[1]=d.length),I[2]=1,I[3]=1,c&&I.set(c,32),h&&I.set(h,48);for(let m=0;m<16;m++)b.h[m]=f[m]^p(I,m*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let c=0;c>2]>>8*(c&3);return d}function a(r,d,c,h,b){c=c||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const m=S(c,d,h,b);return E(m,r),g(m)}function o(r,d,c,h,b){const m=a(r,d,c,h,b);return e.toHex(m)}return F={blake2b:a,blake2bHex:o,blake2bInit:S,blake2bUpdate:E,blake2bFinal:g},F}var D,q;function ke(){if(q)return D;q=1;const e=re();function t(g,a){return g[a]^g[a+1]<<8^g[a+2]<<16^g[a+3]<<24}function i(g,a,o,r,d,c){s[g]=s[g]+s[a]+d,s[r]=p(s[r]^s[g],16),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],12),s[g]=s[g]+s[a]+c,s[r]=p(s[r]^s[g],8),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],7)}function p(g,a){return g>>>a^g<<32-a}const l=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function u(g,a){let o=0;for(o=0;o<8;o++)s[o]=g.h[o],s[o+8]=l[o];for(s[12]^=g.t,s[13]^=g.t/4294967296,a&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(g.b,4*o);for(o=0;o<10;o++)i(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),i(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),i(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),i(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),i(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),i(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),i(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),i(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)g.h[o]^=s[o]^s[o+8]}function y(g,a){if(!(g>0&&g<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(l),b:new Uint8Array(64),c:0,t:0,outlen:g};return r.h[0]^=16842752^o<<8^g,o>0&&(A(r,a),r.c=64),r}function A(g,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function S(g,a,o){o=o||32,g=e.normalizeInput(g);const r=y(o,a);return A(r,g),I(r)}function E(g,a,o){const r=S(g,a,o);return e.toHex(r)}return D={blake2s:S,blake2sHex:E,blake2sInit:y,blake2sUpdate:A,blake2sFinal:I},D}var O,z;function Ce(){if(z)return O;z=1;const e=Ee(),t=ke();return O={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},O}var oe=Ce();const ie=ne({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=oe.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Be(e,t){const i=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,p=Array.from(e,(l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t);return(l.codePointAt(0)^n)>>>0});return[i,...p]}function Ue(e,t){if(!e||e.length===0)return"";const i=e[0];return e.slice(1).map((l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t),u=(l^n)>>>0;try{return String.fromCodePoint(u)}catch{return""}}).join("")}const ce=ne();function Y(e){const t=oe.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Te(e,t){return Array.from(e,i=>ce.encrypt(i.codePointAt(0),t))}function Pe(e,t){return e.map(i=>{try{return String.fromCodePoint(ce.decrypt(i,t))}catch{return""}}).join("")}const Z="‍​­",N={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},_={0:"PLAIN",1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(_).map(([e,t])=>[t,+e]));const se=Object.entries(N).flatMap(([e,t])=>Object.entries(_).map(([i,p])=>{const l=(+i).toString(e).padStart(4,"0");if(l.length!==4)throw new RangeError(`Cipher ID ${i} exceeds ZWUS-${e}'s signature capacity`);const f=t+w[e].unifier+w[e][0]+Array.from(l,s=>w[e][s]).join("");if(f.length!==11)throw new RangeError("Signatures must contain exactly 11 characters");return{base:e,cipher:p,sig:f,legacy:!1}}));function Re(e,t){const i=se.find(p=>p.base===String(e)&&p.cipher===t);if(!i)throw new RangeError(`Unsupported signature: ZWUS-${e}, ${t}`);return i.sig}function le(e,t){let i=e.indexOf(Z);for(;i!==-1;){const p=t.find(l=>e.startsWith(l.sig,i)&&(!l.legacyPlain||e[i+l.sig.length]!==w[l.base].unifier));if(p){const{base:l,cipher:f,sig:s,legacy:n}=p;return{base:l,cipher:f,payload:e.slice(i+s.length),sigIdx:i,sigLen:s.length,legacy:n}}i=e.indexOf(Z,i+1)}return null}const Fe=e=>le(e,se),De=[3,6,7].flatMap(e=>[...[1,2].map(t=>({base:String(e),cipher:_[t],legacy:!0,sig:N[e]+w[e].unifier+w[e][0].repeat(3)+w[e][t]})),{base:String(e),cipher:"PLAIN",sig:N[e],legacy:!0,legacyPlain:!0}]),Oe=e=>le(e,De);function xe(e){const t=Fe(e),i=Oe(e);return!t||i&&i.sigIdxdocument.getElementById(e)),V=[...je,j,L,H];document.getElementById("encodeButton").addEventListener("click",ae);document.getElementById("decodeButton").addEventListener("click",ae);H.addEventListener("click",e=>e.target.classList.toggle("on"));let X,x=!1;async function ae(e){if(x)return;if(clearTimeout(X),T.className="",B.value===""){B.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let i=Le(),p=j.value.split("-")[1],l=B.value;if(t==="YES"){const n=xe(l);if(n){if(n.base!==p||n.cipher&&n.cipher!==i){const u=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";T.textContent=`ZWUS-${n.base}${u} signature detected`,T.className="show",X=setTimeout(()=>T.className="",2e3)}p=n.base,j.value="ZWUS-"+p,n.cipher&&(i=n.cipher,L.value=i),l=l.slice(0,n.sigIdx)+n.payload}}const f=i!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await He[t][i](l,p,s);if(t==="NO"&&H.classList.contains("on")&&(n=Re(p,i)+n),B.value=n,t==="NO"){U.textContent="Copying…";const u=await _e(n);u&&n.length<=65536&&(B.value=`Copied to your clipboard. + A copy has been placed between these brackets [`+n+"]"),U.textContent=u?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function _e(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let i;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((p,l)=>i=setTimeout(()=>l(new Error("Copy timed out")),5e3))]),!0}catch(p){console.warn("Clipboard copy failed",p)}finally{clearTimeout(i)}}if(e.length>65536)return!1;B.select();try{return document.execCommand("copy")}catch(i){return console.warn("Clipboard copy failed",i),!1}}function Le(){return L.value}const He={NO:{PLAIN:(e,t)=>me(e,t),SPECK48_96CTR:(e,t,i)=>M(Be(e,W(i)),t),"SPECK32_64ECB (insecure)":(e,t,i)=>M(Te(e,Y(i)),t)},YES:{PLAIN:(e,t)=>Ae(e,t),SPECK48_96CTR:async(e,t,i)=>Ue(await v(e,t),W(i)),"SPECK32_64ECB (insecure)":async(e,t,i)=>Pe(await v(e,t),Y(i))}}; diff --git a/dist/firefox/manifest.json b/dist/firefox/manifest.json index 52e92a4..797bef1 100644 --- a/dist/firefox/manifest.json +++ b/dist/firefox/manifest.json @@ -1 +1 @@ -{"name":"inØsight","version":"3.2.0","author":"planetrenox@pm.me","homepage_url":"https://github.com/inzerosight/inzerosight","description":"Communicate undetected in plain sight.","icons":{"48":"icon_500.png"},"permissions":["clipboardWrite"],"manifest_version":2,"browser_action":{"browser_style":false,"default_icon":"icon_500.png","default_title":"inØsight","default_popup":"index.html"},"content_security_policy":"script-src 'self'; style-src 'self';","browser_specific_settings":{"gecko":{"id":"{0a73f41c-c59c-404b-9e07-f7392fa830d4}"}},"content_scripts":[{"matches":[""],"js":["content.js"],"run_at":"document_idle"}]} \ No newline at end of file +{"name":"inØsight","version":"3.3.0","author":"planetrenox@pm.me","homepage_url":"https://github.com/inzerosight/inzerosight","description":"Communicate undetected in plain sight.","icons":{"48":"icon_500.png"},"permissions":["clipboardWrite"],"manifest_version":2,"browser_action":{"browser_style":false,"default_icon":"icon_500.png","default_title":"inØsight","default_popup":"index.html"},"content_security_policy":"script-src 'self'; style-src 'self';","browser_specific_settings":{"gecko":{"id":"{0a73f41c-c59c-404b-9e07-f7392fa830d4}"}},"content_scripts":[{"matches":[""],"js":["content.js"],"run_at":"document_idle"}]} \ No newline at end of file diff --git a/dist/inzerosight-chrome.zip b/dist/inzerosight-chrome.zip index 25a043ef14a4e520748443df29e16004e2f9c3c7..5dd508833f03cc64b3bb68f43dcb010f6479c0f5 100644 GIT binary patch delta 14517 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 mSX-F8{>NbG=PNcBpIOs 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%0A}2c1sW{0GP8<5#%M7h`HQc+ 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�fzmFy`* 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 ON(6ou68gaW0sSAnr&~w> diff --git a/dist/inzerosight-firefox.zip b/dist/inzerosight-firefox.zip index 37d61efe03290aa509dcc8b45678d7362021f50b..6c09cb73566fe3de43df6ed822135e1260aec742 100644 GIT binary patch delta 14655 zcmZv@18^oV`{-M{-P*Rdw)xh!ZJTect-ZBv+qT_p_pQxsyXD#Mod2Ego;x>_XC}#$ zJd;c^nIykFd3gx+#Rx!UIY=l>FfcGUF!V-NgY#}_^L2bMum>?PFob`lW=@Xo7LM-B zwr*Ga+pgOH&zm2Qr^Pj|aHcmT3g8 zJV0J)etAU)Xcvh89gTucP*OqB=8Mskc2u(peCmQH>V;RDZwxV}46*rZ78(FPo@QjYq&$j`)POu_hrL|zq1L6@ai11ZANFtZ+tSd}#P(dbZGy%NLB zZaHA9qR{LyxA3R?TeFnn+-IRh9O@c!^X}QxYv}L8*Z0+<>1r#dJOQBJ9q6oExbO4& zj(hJD`1x(`s~{Q2y~;*+L~{!30B$N4O<~zKbSsQ8>mi);@;XZSw$K(w5#e02XOoMy ztx(=xj^ZUMT2^r+C)KeBAcv}U@nFk06747Qr~5=s{LvLEn;Ek{ z#mqM6CavmI4}2QNBfD9TAyn2P-x;s_#Ojw=8_7-6ZY9Mk0kXZzpU_CZ750mroCj|w zPYG-<-|#^0&BFv|nW|H*Is?sDYo|#$u1s+c6Vq*a%an)}Fb~i`3^!Qk=BqX(|EbnQ z;NL$|DIF{RkF->H9(pkFbgqEdvr0E#e5c$y9*5Dm*qQ3%J03@Ky^}`{hf#CtESaz~ zI#=r`!lr?dLPZScoM#Sl*4*OEm&}oyO7Sw3Xa{*}PL4(5Wo0pV!brZ5O7WBAB8lzl z-%@bR@OWC}=kgxe-YY-xx!|plTB+h%fs9D{5l8}AzLZU8NIsP0;KYAjV!&J^|18?( zw8t)1Z8CCpl~wOCaoP+QpSgCm$$)h1wd=cG!THRm9FMLZ< z`NgKkpie(ot7q1816Qx4 z9hbB5pXx}vOp>zeFdV5)rM#DlT$w>o>c4mxF3K*0r+lKT1qx#Y(59))FtO#(iu#LL z#qowIPJQJAe`QbccNPRP>6Asa0PaNVW502F=css%48_s~Ck*h9^np~XWQpnL!Y;Zk z+x^MO&0`v<&8S=(B@TaZ7}9}p$t?3o)~GtP|MgZ}ngXCXOs1cntg@LI zle&>#)sWM0Vc(84E{^ni^KL##z2Pm4=euTi~JT+mOwsMV~09KHFPn2Ur zm+hTB8{hM{?^4hxjL~HZ!CRGXcG1kbsF6`%4InFRaRB+G9Mfjc+3!Dd$!PojHb*jH zb5hk%k=fkih$pME0h8@T3B+w8cNLC4fLHlmtfYwREsOm=gV~A)TDnW3(eHSG7GRruM^I4`^8&e5ibjBF};H6MM{!quypwc!gXU2y%{Kk(jtJ?li(= zU+mDGxZJa>s*?X9z;0amJ)@>da}O#-k4nRo zh}n`zStI0LwJ0-XD^H;)D>T;ah<7_L!lRz-C5#qNS@Y*8hv(h@0M1Ne&!qGa?wirs zKJ-|6@UeRAsBmDpULz)esf0>$zmc@;>T=1j|RPP+f*>&f6;)&F9Hi{vsyGT-l+D;q`RXW9C(9Ir`_Pn}8_c|H= znpF87yG{}#)&7`4y%{10cOt3sega&+MH_A7X3c6|1mUsfK*_aIbY{FUL$_?L)Em5ON*__y(#}EkN1y{E0;a}#0jtqV5jR%XXsh+Bb^q9Au?6pq9E7+RZ`z7@OxG1 zN$nnkY8Ky|fN*fu4&nuA5DrMrTi+qX5wXHuN$^+&Lem!E&KPbksbr* zDUTOUz5EP{cWI=$`3aG>BUmW|nzuQT%y=j*mDXX)fV>?1C1&`$PsSTpk233okK4J1 z-Ev!&Mo#St0f1P?@l*H6vdvajmos%57*?5VcR?~0T52EH2b3!UIvqZWpIUFTw z0Jh>07%c;JAr>K4M~nv+&E*`NRS1di92t!3K&BMU29?RYKLrC00T-}D;lM^o4PZJ7 zP6CUSL0Vi*0}TxL4ambYO8WA zVK+35gq&}#z}}euA>D!i zifM;eVz?={dC|jZ%OS2{q}wOA8MZysNA(3QgqxglMu|eRG9Ix6j~S{KQ&*+7Qpgu+ zrL1ls+5v1#!Uvq`P2zf6q;Nc=#@T6TYBTwN&O@T4W($GBek`*DA9YHl<1(NI_%XTC zU{mRQ%IaX7IN5?MELzOE$Tp@TGGM_peV*(N^EMKo@MjUf#&6dil-8D6H;7ex^~{@< z_@{U-@M71xz^x@D%&fFi9nNU_eXewxVRA}REk=`(C_{C?jzhWRjyjGbBdA<}l_gk_ zD9~~l;FhhB?Yq3cUqhNaA~&M~Ea@~GCX97PmL`Gs^{w={@n)6ES~(4TS6yf_fIHV< zcz;}JQBs0UP+qXU!D`Hy+AL4@##k`!zVZM_{PfIRDF#%KFx@;cvQjeu;%+=^oq1z9 zdqu(Tpt4nC+*+v7sNr?jpIluG^3dCv&7)^I8mGYyUHe72n-@Awj%Qqf0F{scfW9Vk zagZLj#gzkyH%I5h;==}&w=nH;f~Jw%N3w6vkEnek+u!I~!7#25=svj+NEHzDb@fYfZV3`#i#s+)hWIcX zz|&6^4~_@Ql(C(!S6Hr|ITm?b%BA$MFKo(|t-+MX%Yf*@nE>FDl+wan5SMiH1f$uR zE+Uu#SP8)LI6|hWQaH}S*5-yG!eN*T+no)HNu9`&sEVmDrZ#qQ^V$8}*Z`hd{d*g` zhEhGsT88oH$jTs$M}rBSZvBSKWw;Qb7%Pn0rSiEM3kr-0W^vF*Z06s9`9WGF+_7An zRQ4Cc7d&T%Sy3R9)Lbb%ln|fjWaTewN;96r9-5!gJ3IocqK*J-2vG-QU_3@19YF{6aWMaBdIw2G(C+wq(~m zCEB1=#(1DwVuh@zVHzDk^9T>Ggw!HADH_wbZ}~>Pze{aS1>Jb|rqPv`T61TS|GAn)N}RXqN)s+z_g__LUkMtQ~c1T3&{q@LEgZb5DC)XN$YXC!@-?A~#M zZTs+6cLP5$l)$9Aw>q58XeUt4Hz!a-jog%SY8Vy0&J?9=^#RgQ-|4(0QgY3+yqpHT z)vueh0fqRS0JWLo)wX)Y3^W_$Tw>pCF?t@k>uMro`!|)Q)V^xlFNN933Yv~E%4eN&u_dZQoN z{R0A^;q@n*Ymz_sXZ7q5=tncl%MPVG@q#7n{l1?cOnyEwZ}lH#O?lDM4Up*6vD_A5 zpEqo!#J~Aoa#vs3``e%C{4a?50>k0unkwLDKJY8sn|^hh`{Uo$Hm2-TW!Y$z$VZmD ztF$jLFz~OcKz*05VCPF4`wPpZfqp;Qw^|9g?e~QXd1hh;+9eVvsVUUW)e4~4MT)R>?FaG5{t5~~33e)8cO0(9f{LGO*Tz7+ zHT3arkm8g|WJQ+%r_N=9{JFHCQ;zkV`TLhQ8YN;neTGtMJ=d9{NjtNdVcGlb^_9j& zHS+d{c$xX2fU9>N+o%WnIP%M@882o2{V|q64V|H2^ptvgb}OtHB50_Y+EQtE%Z?d! zzCQO9_j$V9Fl~n2$LeMb%_{_8(hiKD9&Rgw^STsl+tJAW1!Jt zY4?Yqk+|OCWA)_M*RuzvmLa+DmC7TMC+zm!FNP!S6+eb8rL)p!PzZF>8QHNiL8e*V zK=g?qG9eyQj>f_8fzLwLuNPuSY%^t-DJ&YqZU_}V+IB67%zUJ<7N+*>Qvf3yXe0N3 zkaZlPHWAH!8`Fi9&+)+J&(q-RZqYFmHzRdD8{D~Q`oXW!!3_med3(ah6FjiDb!fa*RR6Q(LbJTJx{t?`l$M$A8 zy`-AX5?RcZ&a@N39|Q}RAqVU&(Kb`fCcco^+sv$~Cacw+<)Mbn^M>b4UgCVm#&8~L z-)>n1m;`?B-Ddrc5I1)7ySFscT=j`d@;C1fXK1fQ*Cx@ep?jcrx*P$G& zdYGf#3(Zf<~Z*^qy-qtAgx@3|wx!K=4E;w3<<3F^ln_~qn zD_w@jJ+xj?o=8_?>&44JXv;j^M>sAcIwSusQ?#S`Fg2Q$DYV&D$e+nPh{jOqAlUX9 z0wNC>G%K4Q0j6m4jHAFwAAh(zH@VDzqmnA$!)x)&{Ui&*F_$^5VH*9md1Zpr($WLQ zr78x-jq+gO4tEeXC}0bnGxz|V5zHYi0g7t(x55jvlbc+_vzpc)0#W6~$GdqH z;%Ddm1cLUJ&u2%Xa<$o+pE?*9B-tBQJp(veF9|+lkU-#W2xElgdtkxvWLWEp5ZCa$ zd})dperu=FpVtrHexSz?_M&Rnsx0;|Di>AkyEhsc^tV57LxH}2N-p{3I(%mWQIysf z16UI(KuTd-#pH&GZf&SS*hV}J6$@;?i>tP(^l8FK^xox-#?Ja~(2qA&rUbl-7=VtTK8y1bO~E$Y#))c{nV zbT?vYXL7Gt;e#aEozQ_v&YvhMvOmI3e+m+&V!+~Bdf|p#D9d;b zsD2~>q3O=?=Va5ujFe@(XGFDIWZxlOnT2fO?tn>5FI2<4yFr>v`2#gNu~G2Nszc;A zR4s?fP1xOwwa4DXS!N(xm&1r)KXEjF;o${Bt`A{Cf$8_cDMTtC=E-vCzdhvrsD~d! z7KwZLCAx_QBPx{FW$oK3lD+ZV`f{6WpHL?T?OEeuV|JC6Ndes)tA|tc?lf@S+qKo5 zh`{4t{y64?jBt>BjvR{DEroH`-c)K(fQSSz=DIpknlaMYiP4s!6BW)FiZWsZw{i24 zCu9>B=H$Wfww?4c%5jMmng$28-bsY zvaEsXb0>>f6jeG8g?EY;uL=>IAQTAaZHm+%+p(3Mlr7CVD4l+ z=sWi!*(2{d*Tb;?<5Bc9l&)&@shq@pq%~PBlh=DcMuzUVumm*)0Xs1pN ziS+TZYPkl|{rBK^V2aYur62B1Nnp+`0Wv50#?!bfllmA}{%G37`x3z6QG&$*bnMIm0tNoOsV!T*jCF9fp)e7B=!hfl(zi%zkq=J|v9xLS7D zKfEU0*=A)i0nIygV(<)n(~9P(`gU*&b!)FE7(qQ^WgXGz0ejmQD(XF;1Uw09Mb$n^ zq!|~_GrmQqaqDprOLtX|FmyS+h9Y}tIe)i>EpY3ZM99z@S*>|m`a*Q^^~99~TG}u^ zZY6i!sk1TIs~t|LGu@vA@S6|bg#A=)Ex%ZBX&}<-+nVv3l1{cMh)oUE7@GckG)(B- z*8961dcei=HhC6Jwu>iA2MjkWYgTgEr|U|KnQ-n^#4SsOKy&kERLxTK@wm?C#_tcg|8wXk^TgOXqN7E1PZ0HI)j>Sk+cj28 z*UabQB*7n{SR*Ah00AV>jbK^$f@&Rx_vc6Fq5IU~a3GIwHTiEeEMOfkVJnjSO4RN> zK3N@=Pn(DkwN1(^r+<>YeS4y_gkz>3qc~0nW}|=sdRt&Zm*`8%!D4;S5EAL%Y*fa`OuNpJ3=8;bnZSaq;N4> zP)dXIu{pEeu_RFn^lX;Y?BSR4=6vBN@2cEQ z{|9!LVP93j%5;YB#b$N2-71?WrJyI|I-S`~&TT|#6dKE1IS|xsa&^90?L`vAw#idB zjozqR3oW=iKviT^han^>WI#A3#rdlAJ>N*_m%lgr-;YDkR@b&mpbM){ zK=1ZsQ1W!=v`tkoE8={x^b6C}jSl_x6+!C3E(r>^XYxYxN9B=Q825bJwjQ$QpZi@# zUn#XGwK=vxVj#4f%jRDWk8~ta)qWr92uVjyVMUtwZV};qqA~tE2Uq5LDWh4o^gsv$ z>=@8JZ+wrAx+zI~hm*tEv}+7%BwDas#mp1H?oFa$YhADt}@KX%n+%Y+EfrEvEdrhl~3`CFh%khXgk}i8Qp-1xUt%TXb z3CXW@)X(GDQMn^HbzR~;7^QLZyCiH-+t6f9YBT4l-}$$nB4Rk~Li0Sn{B0Z;7I#vv zBicl!UeH#<{^U%B{D!`MPT9Tq0y%Ye${XTDVP=Em$1X5cJvkO0aPmNU0K%roze{E9 z?5(PlC{?aR)zGi-gQyBxZHm5Ju4ZD00=M42_6+FwKS z#QnYK^obZ6fEO8n2i_il2SJ4h`4616mr_E2L&5(Cp_LTa_A6%8(?U=KE5#~%7#2Cc z!9iisiQTIDTus(huD4xow)~cR75-p7?3GX`loZ%3<~@0d9Vh<0ynFzG-u@=9Y-ECr zhrAfzGzjJ4$ildTLMC*>;4+u7*O$$@GMbBma~wJJ{csY|&lp2Sa}4dmJ?e~$spPx& zsTMVhu`TgSSrYrFP;6X)i6h>rqJESee-f9+D%ZfM*g9|x7Sh@%VScKW)rMqWT9rUs z36=uvi?6WYja~6w>`2$ZI+W@mYrOpND43{okUj2~DjjswexcU7o^zqfqFE0H6khE* ztZ2lUr_VNt6ZbX{(Vm|pp;CGp_B24_7!-LTd#ivGq12)U2$<9Wm$ch0s11f&KA;CZ znx3Ci3*a=mPNtXO{3PG9YTSq!p>!qIVc>J3L)eX+%O1-zox=z)!C#lhgV3GA!nW|B z$;!80v1MeF@gdB0((M!W)%_Cy=*FdL&RgVsa*^q&;wxT$v0OtfEa-527@{g| z^_Ba=oPH2GuyIEBzt{zW$bei zw`c?Yu-=(8z2B4tZ)b%Xe(-&tWV>kmwj+0SK{NBc7HM1Y-sx#xxXt`IK31D>zAT%-Lh=8&!$}0Xwa9v zC@+-da2YO(G0+Vl&+b55;nc}sXrbwVYeyMw$u1j8O0g)N`-5e;-}dh#_L-*r;Qu$A z6>TK_>xByjcFzAFTnh$f<7jT-{Xb}Srz7p=FG38b2^a<_@$wD2Hrc`lSQ9(0$;h7q zpV78y-#}o-HA%LZ?pvZbD@2q15iW4G{Wi-kRsrlJJ~R{( zgesX$i7B9f+K0Scf|^zEgJY*ghrEWxD%kjhH57ZvEYE+TF|GN9_xnhgGypfEAx0s+ zw3Bvg9$-}dLt&;VXVj(vxWGF1bK`K5Qr4~HWkeU>hO_#Hi*e7eF*BTeR_Oru1EIr* z_s1DH-Io@w7429`n1P*QQ8lXwH$RpD^~z zn-SA*d@%dML28@iVUJGdeD{Gsa6s@RJhmT19}MkSP$I8hE#Xrd@@_VMeZiO^l}Wkc z+x3r0sq0)Ahs~9209uY$j;zVFRM&#B`%Y6}>M>UPL+70(30B5Jre{gWhcRI4Rp&@j z4s{brb%b@4wddYlQU6A>`m6nw|Fsq^xc2p$A$&1{cOm?FE1lbM`$qB_|EL%AFGm9p zPl0eROht)$8vBRj>*G7$Svr*O?VDAAG|U$+_!7y*SDTM7@bj^L8oleQPz&|9gdId7WwP&N|gfU}>z$CL|Z4GV!@I&aC#9aNKOt^YKc*re(BM?K6=-~M!107#zsff zLsP;=bt~CwRHB>JeK!%nW|U4?=CBl1Rhtj#F~*4&$$^XYqBK*-kw;X`!>sm4a~kq+ z@0}Hz%OL6dxIXs#L74k~?kym?;kl#OzD|N9eNwLkG&1bz@O?U;eBib+68w10p57Ds z1Wg-#9eee!Pu5pj>0pnHGf<-nSjB3mud1GNSx&0fj1~Wi2SDCrdtx0L8&b~1|7c7I zXfjoY*&!A0Pq$6gCZ-q~&z!-taBnkRONJl0orE`qW#+r;pot7PuHY8B95!dLX*{d& zy0=RJ{)Ig-;EbVZuqa6yqg_R`A>3st!rx}e#7d9g!=mN$yp4VGy{-VxPozG* z5?Pt!F5aQcn`o}h7 zu8pljr15Bw)G7_p;qgkD8bS%1*Jg=!8HYb2Hlf8`Z{CY`cv`0?aaL?<;V4h9>awI2 z!#PiiI=bCnDT{}umKB<4udnqpMivf%(`nvmRXtT5-2{nI2n?1g-OE(a9wdSw%EHk` zaV|_~%29Xh8Ot*RmfZV;6~IK>b)KRcMJJ*qdtgqo+NOf5ycKN$0cIj@N)Qb7K9rM< zqH32U9b?oZ6LJ(z;>!48Q8@LRT9=A4I!!^aIsQUzQN;p2yS|J`$;k=Ft$jX_(R!a( z2;K&v7E3{H-u-q&FL9^5+*;HX9ppB%9d^oPHD6u*S2=dZy6NboGiukQ%k0f4jbvS%_1cSS`NsMlI{(IK{E zq?|rf#n8x!8G(j7o0OdB`G*}q*#MlpD`EPX@ROJBjLexZ(u}RJShK`o7@ZjXmfRqHsb)eGxlvAa<8WF{AKzN=4WGPnUei{W6iZtk zI5p4em4ax%1*w`z1?eAn)=C<-pL`z}yKCcJ@v|k9aJfQ+p;gwqbJuo?6&LYc#h(L2 ze`br)TKNL(v9ddt(0G}E=80rv1QzW~0bf6!EltkxS08=xa#a0X`4s3Q1vx7j%ALgN zt~$K!mXN4^RepQ_WsWyJ9}+?)-$uR4nX7(K<_4#t1gU)PbvK;Ine-+@s2CNPko{sV3V^qo;Nb*FgWpB-=aVXrZStejv4Hw$73WRF!mywVA2mF(`7F zj#=!(3VuxyVF@EM@ta+rZQ@A_jpHvWiRRW?$>NuIT(3LoLC2+>|?9VU6#?9rvqhvZ#F0*;(EJNg)HuYpsz@OfG z^KULuZ616u(rVfR3%#KStZL4VeWow$L0cOuOw&tu#8opXheFZG^GWQvU0k1p(E0o| zp(MO*al&5q+bga0#C91c^)1y8%^BbGPCMd7>Q5b#k1t4%_t^3H#zLYV@w)Ncnv5T2 z@7YeGamOVZ#Pls9fElbl%Szc$6lDbW}K+d$}HwVn-=lObVgvzi>w z*nL0!3WZe$g`cs@DE#Ed^J^?ybh0B@xfLMb+@Xcb4wilR-2qGHrSCGy_p{FEiVnjf zZq1VLa+Vh{o3?CwC(U&)GYmo(p8FG%MJTFZPnzHg<>G%2UzaPFGZKh^d>-9b9V%0R zV{-#Mli^d~TJ{@da(~%D3ba6NKvQbJFZ>ZIB z64O8kny-{P&4)-30&W!862yR5I21@6F>@I1gC%=*=X$&O%pHy>D6p(cNMt>j2T>|r zUL`;TGf`B<<5gt!OiLA9r~I3F?&lsEX@Lh}v?e?dZiPR-#PArTLd3;a7eipUP8`3Z z=(N8zf`=sKS-$OM7_Of^N!4vXu+mjnVMKP6hO>Rjj1PN!8*k4OB*?`XlZ5S6oTk!5hGNG z04f96Q%$PJ!1SwtWI{*NaDN+>6E+_Vb>dF`*vVsz=c|qea#3e%NE#K6`d&HOh*8jvx8r*G{nz#my7@t;;O6z@(}_YNCE_sH zZK2W^DG4|HcxN=XW>p(%60MmsVYJ#m?>p>rP2(vjYgF`V;7g3~om!6>v7me72zh?2o_&!0GWt?1td3p%%-c z;8=4c^D(KU)fk+if27waQq&ZegkwRRuMF|UwJ3f=iH>A1r>@Q6$HUiLalu8fly7^GjZX9rRl8?QGWdYlsVo@TIhugo;+qgynnTOz$ub<(7IDa{9=7 z*ras2D{hG zqEE1Mc5Du7KicuSNH3&!j~^XyPYGwqerM{Dr46;S^}Au+(>K{Jsu!in(Uf4`B0(Od zv)DL>Ly;dPg~B6k-LgNsGH@v5Gxs>(c!<_TX=SGDgiLVe>|@6ZCIKHWr_O&2k7nvk z6~%qZE>syIbX91**dM<(Z{DII#3`CZNmUidP~ABIhP%51GY(UA-gE?~O8+jNFDGI3 zkVme(EEn?Dt!OVZU?zu~tI4>;uThShN3Ycm>vz#8MQ>v_4OylOSc18F7#FlZ@VpG{ z{N*7%!XT7bs&YwkW(D?D={hw@l5V{8*a{!XpeAJS->VZV<|W=_RXh|5Y{}b=bO}Bw?t>ANSHE+56A>rm*h&}zpp=lGuu>AG~ zCF4pgLj+|yks~2+Wq1rQ`E!hM=uAP`-{q+h!b;W+&mc1;;Pj?Fc8`H#Ingr@?Q_!0 za!Y3#Lp%DRrsj@pxZYnUh6@MP-Cii}F01+1FaKww)SD^D@c=(DS0krpXRfJI(y~&E zIr#oFcODr947nS9U549{A-UN?CA04ucvio8>%P*NnM4uh&nm_}^YCzCz&rw8VgH6k zlV3ejT|rqR0$WlmEviiI;EmoVTm2pf%yoDnw1Rl+B#U5cAy8TL-r8LPpVZ@9) zGia3MzJvH>@F4L(SmdGKKWCzfp96IiFVsfngn)DaS2{rVp`%E$@#JKdvb?R7QiPkL zbYC8bGfgSO5xvw@mlFK3{j{fAE_~S)n)k+)MgW(zL=M1!Nb>+o>uLO5*<_MNOuMb6 zo1q5g1C;N#!?lK=oLEADXA}aM8P7!Icebn3$?TWb;&qA0Np=tAFxEP6-6%REj^+Ve zJ+LtdBTkNJbYjt)&ofM6{)E&wXRe$Y4`2PECxDJK*0Q}AX{S@Tx#nZm3Cv1l%*G3` z>nNC`9>|iDXI6g0f9)yK{;kf4;+EJmCz_|u`|ocF4LlEQ(i)}UG zp{aD<1mPjo-@fR0D+`qSfV9w_9RIy3(ftoPG)%TM*`5pqv5}hl%3R#l-1&`J!+7;? zA{V4aRpaV@!hTh-7R^hxj8oS|4#{23zw2t$zO{5{rB{tVb!2!}!&=2t&KhcQkQxCrMVkRSr*v-5 zV{larUAIaSEPg#r0*uORpHT+a`24Ny0XubscD2jn_k8`G_(o&@pp#L(x5?y>5llxc z!^!NJJ(#-)tkaZUJhS;Hi$}Hei=lJJki>Isbgfy)>2io`gyqbheO{b2O~H zil~GIE+&b3e~-egJy$5g(2^@5y{tG8LP+UpFB z;Q22NcUsseIbIs_JLYD60$>{6eN@r`ssVngPw^Eax^THpR0O?bWtY7_-M|y81kRC^knrprlK^fyJ2R2&2Z_TRtcpuhiwA?V zysG=yIRR1mMQ%HS_y5D$Zd|Y{oi?M8p-UuG(Mp zqq7X9Pt^@tqD|)Xg1*49W~}MfA2eH5?f&JB*@=ykg&&_6+*;%LyG^_G2*BF?X-d@W z92=8FXfmAb=QLR~tYc2hp)?DFrr(==oA=e3n930o{`J-xMj_rR7jYSG{r;~Sqdm%! z$R=4)K{WW?@M36Aoa2iH1x#?z(}=ygdhHJd#%5AtmAgC?&_?kT5Kaq2S1%KrSI%~e zeSA@^&}v61c)1qX%0;Pbo=H(PE9YE8dN#*cxt4jy(d&TT z1Gnn^=`}$UI-EnT94<-wel45zFcKBtOZhA|ewB;>wrVgV+P-55+hoK(N@9@e6S7XuOP0zqldV~-$i6JHEQ+c$` z5Vwejndgh*642QOl}kotCpeilb0hG3-Ox-cx_ z6>VE)%P}m%eSo|n7m!cTgsH#R?oHy?f zv*j9LCR&<1mxt2vQv65)RRr_>>qtw_r;-XO&>i)Fwl|8n5 zCLhJTzbW~R5;FM1UX&*!I^_G)-)Ox>eQ_UdLlq$+NT{1=_U2K2o^DxE74^s`GUT;Q z2r;2Ww8;&a&43Z^q_zIXUWXCHyeS16)P-w3=jp%ZDBRToBEYrSSP@-m>twhgK2TED zV;bHCq}C_Rj*^tSs}HuTO8X62kqKq8%ekEuhSq*===z>Tlwu(0B2MFon9Qfry#B~| z)&4qum(5^vdnHtK#{1A@trQaBSz}F=9cwXX7FL9?4FYbev+S|FgoQ~fPr-a04G9!+ zba%^5U5&9+l~c%GP<0eO$7kFf9ri{Db=SUny?kh|)6_F9d@w3N$w37eT}#CrT{myf z*0mmdFR^PLeG8bzu71>|=`RkivWGaJkhg+e^U{I6VXLA|Sz=MoK=NRxh&zm0w@o~u zB8-fA=m09lrLd8U>KJt?KFGGB_Qzl(!&OcR{`YE zjv8RFwDj3Q6)&?% zzu6da?WWx~1E?Eb5R-S|Ljw+Tq;0V?6IA@?>-8R1R->?zS9*4%*b!|cL(v~g#0ns52q+dTIxUkcI9 z6ni;FM9zY}8P$(nSu+F?srCNq4YI(9d{kqSk9#nKnC5MTz`Oqc;tY&`pbV%Se-sK1 z1{MGT28R3(XE>NR+E`k+{m0qN${U7BXPSlH z**hym`zHQg@$=c}l($XOp#lK#`e*}P&J+yc3H+kWvkXQLR0Yak646>;v^f?)^-f$; z(85XaCj;jC{o&i%pr~eksV-prk>e;Z#)g+6Lcy5s$+3HU8o1_`>`&;AD+~)pmqKwh zcwW`(=8=X!KfDhA8%eUqRS4vy{GhjV!AS%{FErQ*Oz*hlgMB z5*hw|=|R{hi46=XN3Zb|P)+{)v-E~OxA-NC=@+M!^@lU%&=hW^LZK*D;CvL2-`;2R zsfmUC@ay7B_tpg7&!Hg07u$}F)0gJ3L@7+pyz_C8U<{GAgT6|21jL+#cO!(&zvKY( z3k49IC_N^W1lMhY!-@8J%exPbSraGJX7&uu;Ll^S%Bi^9$*1C0GiK)3Me@gN8)+A2 zn`sRtDZI|Obzi=FM`i>8i{m(zpYp$Gpgbt2+00p+d|lqdJ6ysw(w8L{#)f=YEKFx!%hN%JOeHP0u|;Z;a@kw F{uc~&6l?$h delta 13951 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 diff --git a/dist/web/assets/index-DlLeEfTp.js b/dist/web/assets/index-DlLeEfTp.js new file mode 100644 index 0000000..9b44be8 --- /dev/null +++ b/dist/web/assets/index-DlLeEfTp.js @@ -0,0 +1,4 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))p(l);new MutationObserver(l=>{for(const f of l)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&p(s)}).observe(document,{childList:!0,subtree:!0});function i(l){const f={};return l.integrity&&(f.integrity=l.integrity),l.referrerPolicy&&(f.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?f.credentials="include":l.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function p(l){if(l.ep)return;l.ep=!0;const f=i(l);fetch(l.href,f)}})();const w={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,i=>(+t==7?be(i):i.codePointAt(0)).toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),encodeNumberArray:(e,t=7)=>e.map(i=>i.toString(t).split("").map(p=>w[t][p]).join("")).join(w[t].unifier),decodeToString:(e,t=7)=>w.decodeToNumberArray(e,t).map(i=>String.fromCodePoint(+t==7?ye(i):i)).join(""),decodeToNumberArray:(e,t=7)=>e.split(w[t].unifier).map(i=>Array.from(i).map(p=>Object.keys(w[t]).find(l=>w[t][l]===p)).join("")).filter(Boolean).map(i=>parseInt(i,t))},pe="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",J=[...new Set([...pe,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],he=new Map(J.map((e,t)=>[e,t])),be=e=>he.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),ye=e=>e<95?J[e].codePointAt(0):e<127?e-95:e,Q=65536;function ee(e,t,i){const p=[];for(let l=0;l=55296&&e.charCodeAt(f-1)<=56319&&f--,p.push(w[i](e.slice(l,f),t)),l=f}return p.join(w[t].unifier)}function te(e,t,i){const p=[],l=w[t].unifier;for(let f=0;f=f?n+1:e.indexOf(l,s)+1||e.length}p.push(w[i](e.slice(f,s),t)),f=s}return i==="decodeToString"?p.join(""):p.flat()}const me=(e,t)=>ee(e,t,"encodeString"),M=(e,t)=>ee(e,t,"encodeNumberArray"),Ae=(e,t)=>te(e,t,"decodeToString"),v=(e,t)=>te(e,t,"decodeToNumberArray");function we(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var P,G;function Ie(){if(G)return P;G=1;function e(t={}){const i=t.bits||16,p=t.rounds||22,l=t.rightRotations||7,f=t.leftRotations||2,s=2**i,n=s-1,u=(a,o)=>a>>o|a<a<>i-o,A=(a,o,r)=>(a=u(a,l),a=a+o&n,a^=r,o=y(o,f),o^=a,[a,o]),I=(a,o,r)=>(o^=a,o=u(o,f),a^=r,a=a-o&n,a=y(a,l),[a,o]);function S(a,o){let r=a[0],d=a[1],c=o[0],h=o.slice(1);[d,r]=A(d,r,c);for(let b=0;b{const d=a([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:g(S),decrypt:g(E),encryptRaw:S,decryptRaw:E}}return P=e,P}var Se=Ie();const ne=we(Se);var R,$;function re(){if($)return R;$=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function i(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function p(s){return(4294967296+s).toString(16).substring(1)}function l(s,n,u){let y=` +`+s+" = ";for(let A=0;A=4294967296&&b++,r[d]=h,r[d+1]=b}function i(r,d,c,h){let b=r[d]+c;c<0&&(b+=4294967296);let m=r[d+1]+h;b>=4294967296&&m++,r[d]=b,r[d+1]=m}function p(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function l(r,d,c,h,b,m){const ue=y[b],fe=y[b+1],de=y[m],ge=y[m+1];t(u,r,d),i(u,r,ue,fe);let k=u[h]^u[r],C=u[h+1]^u[r+1];u[h]=C,u[h+1]=k,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=k>>>24^C<<8,u[d+1]=C>>>24^k<<8,t(u,r,d),i(u,r,de,ge),k=u[h]^u[r],C=u[h+1]^u[r+1],u[h]=k>>>16^C<<16,u[h+1]=C>>>16^k<<16,t(u,c,h),k=u[d]^u[c],C=u[d+1]^u[c+1],u[d]=C>>>31^k<<1,u[d+1]=k>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),u=new Uint32Array(32),y=new Uint32Array(32);function A(r,d){let c=0;for(c=0;c<16;c++)u[c]=r.h[c],u[c+16]=f[c];for(u[24]=u[24]^r.t,u[25]=u[25]^r.t/4294967296,d&&(u[28]=~u[28],u[29]=~u[29]),c=0;c<32;c++)y[c]=p(r.b,4*c);for(c=0;c<12;c++)l(0,8,16,24,n[c*16+0],n[c*16+1]),l(2,10,18,26,n[c*16+2],n[c*16+3]),l(4,12,20,28,n[c*16+4],n[c*16+5]),l(6,14,22,30,n[c*16+6],n[c*16+7]),l(0,10,20,30,n[c*16+8],n[c*16+9]),l(2,12,22,24,n[c*16+10],n[c*16+11]),l(4,14,16,26,n[c*16+12],n[c*16+13]),l(6,8,18,28,n[c*16+14],n[c*16+15]);for(c=0;c<16;c++)r.h[c]=r.h[c]^u[c]^u[c+16]}const I=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function S(r,d,c,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(c&&c.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};I.fill(0),I[0]=r,d&&(I[1]=d.length),I[2]=1,I[3]=1,c&&I.set(c,32),h&&I.set(h,48);for(let m=0;m<16;m++)b.h[m]=f[m]^p(I,m*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let c=0;c>2]>>8*(c&3);return d}function a(r,d,c,h,b){c=c||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const m=S(c,d,h,b);return E(m,r),g(m)}function o(r,d,c,h,b){const m=a(r,d,c,h,b);return e.toHex(m)}return F={blake2b:a,blake2bHex:o,blake2bInit:S,blake2bUpdate:E,blake2bFinal:g},F}var D,q;function ke(){if(q)return D;q=1;const e=re();function t(g,a){return g[a]^g[a+1]<<8^g[a+2]<<16^g[a+3]<<24}function i(g,a,o,r,d,c){s[g]=s[g]+s[a]+d,s[r]=p(s[r]^s[g],16),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],12),s[g]=s[g]+s[a]+c,s[r]=p(s[r]^s[g],8),s[o]=s[o]+s[r],s[a]=p(s[a]^s[o],7)}function p(g,a){return g>>>a^g<<32-a}const l=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function u(g,a){let o=0;for(o=0;o<8;o++)s[o]=g.h[o],s[o+8]=l[o];for(s[12]^=g.t,s[13]^=g.t/4294967296,a&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(g.b,4*o);for(o=0;o<10;o++)i(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),i(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),i(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),i(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),i(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),i(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),i(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),i(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)g.h[o]^=s[o]^s[o+8]}function y(g,a){if(!(g>0&&g<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=a?a.length:0;if(a&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(l),b:new Uint8Array(64),c:0,t:0,outlen:g};return r.h[0]^=16842752^o<<8^g,o>0&&(A(r,a),r.c=64),r}function A(g,a){for(let o=0;o>2]>>8*(o&3)&255;return a}function S(g,a,o){o=o||32,g=e.normalizeInput(g);const r=y(o,a);return A(r,g),I(r)}function E(g,a,o){const r=S(g,a,o);return e.toHex(r)}return D={blake2s:S,blake2sHex:E,blake2sInit:y,blake2sUpdate:A,blake2sFinal:I},D}var O,z;function Ce(){if(z)return O;z=1;const e=Ee(),t=ke();return O={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},O}var oe=Ce();const ie=ne({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=oe.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Be(e,t){const i=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,p=Array.from(e,(l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t);return(l.codePointAt(0)^n)>>>0});return[i,...p]}function Ue(e,t){if(!e||e.length===0)return"";const i=e[0];return e.slice(1).map((l,f)=>{const s=i*16777216+(f&16777215),n=ie.encrypt(s,t),u=(l^n)>>>0;try{return String.fromCodePoint(u)}catch{return""}}).join("")}const ce=ne();function Y(e){const t=oe.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Te(e,t){return Array.from(e,i=>ce.encrypt(i.codePointAt(0),t))}function Pe(e,t){return e.map(i=>{try{return String.fromCodePoint(ce.decrypt(i,t))}catch{return""}}).join("")}const Z="‍​­",N={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},_={0:"PLAIN",1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"};Object.fromEntries(Object.entries(_).map(([e,t])=>[t,+e]));const se=Object.entries(N).flatMap(([e,t])=>Object.entries(_).map(([i,p])=>{const l=(+i).toString(e).padStart(4,"0");if(l.length!==4)throw new RangeError(`Cipher ID ${i} exceeds ZWUS-${e}'s signature capacity`);const f=t+w[e].unifier+w[e][0]+Array.from(l,s=>w[e][s]).join("");if(f.length!==11)throw new RangeError("Signatures must contain exactly 11 characters");return{base:e,cipher:p,sig:f,legacy:!1}}));function Re(e,t){const i=se.find(p=>p.base===String(e)&&p.cipher===t);if(!i)throw new RangeError(`Unsupported signature: ZWUS-${e}, ${t}`);return i.sig}function le(e,t){let i=e.indexOf(Z);for(;i!==-1;){const p=t.find(l=>e.startsWith(l.sig,i)&&(!l.legacyPlain||e[i+l.sig.length]!==w[l.base].unifier));if(p){const{base:l,cipher:f,sig:s,legacy:n}=p;return{base:l,cipher:f,payload:e.slice(i+s.length),sigIdx:i,sigLen:s.length,legacy:n}}i=e.indexOf(Z,i+1)}return null}const Fe=e=>le(e,se),De=[3,6,7].flatMap(e=>[...[1,2].map(t=>({base:String(e),cipher:_[t],legacy:!0,sig:N[e]+w[e].unifier+w[e][0].repeat(3)+w[e][t]})),{base:String(e),cipher:"PLAIN",sig:N[e],legacy:!0,legacyPlain:!0}]),Oe=e=>le(e,De);function xe(e){const t=Fe(e),i=Oe(e);return!t||i&&i.sigIdxdocument.getElementById(e)),V=[...je,j,L,H];document.getElementById("encodeButton").addEventListener("click",ae);document.getElementById("decodeButton").addEventListener("click",ae);H.addEventListener("click",e=>e.target.classList.toggle("on"));let X,x=!1;async function ae(e){if(x)return;if(clearTimeout(X),T.className="",B.value===""){B.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let i=Le(),p=j.value.split("-")[1],l=B.value;if(t==="YES"){const n=xe(l);if(n){if(n.base!==p||n.cipher&&n.cipher!==i){const u=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";T.textContent=`ZWUS-${n.base}${u} signature detected`,T.className="show",X=setTimeout(()=>T.className="",2e3)}p=n.base,j.value="ZWUS-"+p,n.cipher&&(i=n.cipher,L.value=i),l=l.slice(0,n.sigIdx)+n.payload}}const f=i!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await He[t][i](l,p,s);if(t==="NO"&&H.classList.contains("on")&&(n=Re(p,i)+n),B.value=n,t==="NO"){U.textContent="Copying…";const u=await _e(n);u&&n.length<=65536&&(B.value=`Copied to your clipboard. + A copy has been placed between these brackets [`+n+"]"),U.textContent=u?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function _e(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let i;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((p,l)=>i=setTimeout(()=>l(new Error("Copy timed out")),5e3))]),!0}catch(p){console.warn("Clipboard copy failed",p)}finally{clearTimeout(i)}}if(e.length>65536)return!1;B.select();try{return document.execCommand("copy")}catch(i){return console.warn("Clipboard copy failed",i),!1}}function Le(){return L.value}const He={NO:{PLAIN:(e,t)=>me(e,t),SPECK48_96CTR:(e,t,i)=>M(Be(e,W(i)),t),"SPECK32_64ECB (insecure)":(e,t,i)=>M(Te(e,Y(i)),t)},YES:{PLAIN:(e,t)=>Ae(e,t),SPECK48_96CTR:async(e,t,i)=>Ue(await v(e,t),W(i)),"SPECK32_64ECB (insecure)":async(e,t,i)=>Pe(await v(e,t),Y(i))}}; diff --git a/dist/web/assets/index-G7fqkm88.js b/dist/web/assets/index-G7fqkm88.js deleted file mode 100644 index d0f0c10..0000000 --- a/dist/web/assets/index-G7fqkm88.js +++ /dev/null @@ -1,4 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))g(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&g(s)}).observe(document,{childList:!0,subtree:!0});function c(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function g(u){if(u.ep)return;u.ep=!0;const f=c(u);fetch(u.href,f)}})();const I={3:{unifier:"­",0:"᠎",1:"​",2:"‍"},6:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎"},7:{unifier:"‌",0:"‍",1:"‏",2:"­",3:"⁠",4:"​",5:"‎",6:"\uFEFF"},encodeString:(e,t=7)=>Array.from(e,c=>(+t==7?ge(c):c.codePointAt(0)).toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),encodeNumberArray:(e,t=7)=>e.map(c=>c.toString(t).split("").map(g=>I[t][g]).join("")).join(I[t].unifier),decodeToString:(e,t=7)=>I.decodeToNumberArray(e,t).map(c=>String.fromCodePoint(+t==7?he(c):c)).join(""),decodeToNumberArray:(e,t=7)=>e.split(I[t].unifier).map(c=>Array.from(c).map(g=>Object.keys(I[t]).find(u=>I[t][u]===g)).join("")).filter(Boolean).map(c=>parseInt(c,t))},de="te aoinshrdlucmfwypvbgkjqxz.,!?'-:;()0123456789ETAOINSHRDLUCMFWYPVBGKJQXZ",X=[...new Set([...de,...Array.from({length:95},(e,t)=>String.fromCharCode(t+32))])],pe=new Map(X.map((e,t)=>[e,t])),ge=e=>pe.get(e)??(e.codePointAt(0)<32?e.codePointAt(0)+95:e.codePointAt(0)),he=e=>e<95?X[e].codePointAt(0):e<127?e-95:e,J=65536;function Q(e,t,c){const g=[];for(let u=0;u=55296&&e.charCodeAt(f-1)<=56319&&f--,g.push(I[c](e.slice(u,f),t)),u=f}return g.join(I[t].unifier)}function ee(e,t,c){const g=[],u=I[t].unifier;for(let f=0;f=f?n+1:e.indexOf(u,s)+1||e.length}g.push(I[c](e.slice(f,s),t)),f=s}return c==="decodeToString"?g.join(""):g.flat()}const be=(e,t)=>Q(e,t,"encodeString"),M=(e,t)=>Q(e,t,"encodeNumberArray"),ye=(e,t)=>ee(e,t,"decodeToString"),v=(e,t)=>ee(e,t,"decodeToNumberArray");function me(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,G;function Ae(){if(G)return F;G=1;function e(t={}){const c=t.bits||16,g=t.rounds||22,u=t.rightRotations||7,f=t.leftRotations||2,s=2**c,n=s-1,a=(l,o)=>l>>o|l<l<>c-o,m=(l,o,r)=>(l=a(l,u),l=l+o&n,l^=r,o=y(o,f),o^=l,[l,o]),w=(l,o,r)=>(o^=l,o=a(o,f),l^=r,l=l-o&n,l=y(l,u),[l,o]);function k(l,o){let r=l[0],d=l[1],i=o[0],h=o.slice(1);[d,r]=m(d,r,i);for(let b=0;b{const d=l([o/s|0,o&n],r);return d[0]*s+d[1]}}return{encrypt:p(k),decrypt:p(E),encryptRaw:k,decryptRaw:E}}return F=e,F}var we=Ae();const te=me(we);var P,K;function ne(){if(K)return P;K=1;const e="Input must be an string, Buffer or Uint8Array";function t(s){let n;if(s instanceof Uint8Array)n=s;else if(typeof s=="string")n=new TextEncoder().encode(s);else throw new Error(e);return n}function c(s){return Array.prototype.map.call(s,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}function g(s){return(4294967296+s).toString(16).substring(1)}function u(s,n,a){let y=` -`+s+" = ";for(let m=0;m=4294967296&&b++,r[d]=h,r[d+1]=b}function c(r,d,i,h){let b=r[d]+i;i<0&&(b+=4294967296);let A=r[d+1]+h;b>=4294967296&&A++,r[d]=b,r[d+1]=A}function g(r,d){return r[d]^r[d+1]<<8^r[d+2]<<16^r[d+3]<<24}function u(r,d,i,h,b,A){const le=y[b],ae=y[b+1],ue=y[A],fe=y[A+1];t(a,r,d),c(a,r,le,ae);let S=a[h]^a[r],C=a[h+1]^a[r+1];a[h]=C,a[h+1]=S,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=S>>>24^C<<8,a[d+1]=C>>>24^S<<8,t(a,r,d),c(a,r,ue,fe),S=a[h]^a[r],C=a[h+1]^a[r+1],a[h]=S>>>16^C<<16,a[h+1]=C>>>16^S<<16,t(a,i,h),S=a[d]^a[i],C=a[d+1]^a[i+1],a[d]=C>>>31^S<<1,a[d+1]=S>>>31^C<<1}const f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],n=new Uint8Array(s.map(function(r){return r*2})),a=new Uint32Array(32),y=new Uint32Array(32);function m(r,d){let i=0;for(i=0;i<16;i++)a[i]=r.h[i],a[i+16]=f[i];for(a[24]=a[24]^r.t,a[25]=a[25]^r.t/4294967296,d&&(a[28]=~a[28],a[29]=~a[29]),i=0;i<32;i++)y[i]=g(r.b,4*i);for(i=0;i<12;i++)u(0,8,16,24,n[i*16+0],n[i*16+1]),u(2,10,18,26,n[i*16+2],n[i*16+3]),u(4,12,20,28,n[i*16+4],n[i*16+5]),u(6,14,22,30,n[i*16+6],n[i*16+7]),u(0,10,20,30,n[i*16+8],n[i*16+9]),u(2,12,22,24,n[i*16+10],n[i*16+11]),u(4,14,16,26,n[i*16+12],n[i*16+13]),u(6,8,18,28,n[i*16+14],n[i*16+15]);for(i=0;i<16;i++)r.h[i]=r.h[i]^a[i]^a[i+16]}const w=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function k(r,d,i,h){if(r===0||r>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(d&&d.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(i&&i.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(h&&h.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const b={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:r};w.fill(0),w[0]=r,d&&(w[1]=d.length),w[2]=1,w[3]=1,i&&w.set(i,32),h&&w.set(h,48);for(let A=0;A<16;A++)b.h[A]=f[A]^g(w,A*4);return d&&(E(b,d),b.c=128),b}function E(r,d){for(let i=0;i>2]>>8*(i&3);return d}function l(r,d,i,h,b){i=i||64,r=e.normalizeInput(r),h&&(h=e.normalizeInput(h)),b&&(b=e.normalizeInput(b));const A=k(i,d,h,b);return E(A,r),p(A)}function o(r,d,i,h,b){const A=l(r,d,i,h,b);return e.toHex(A)}return O={blake2b:l,blake2bHex:o,blake2bInit:k,blake2bUpdate:E,blake2bFinal:p},O}var R,z;function ke(){if(z)return R;z=1;const e=ne();function t(p,l){return p[l]^p[l+1]<<8^p[l+2]<<16^p[l+3]<<24}function c(p,l,o,r,d,i){s[p]=s[p]+s[l]+d,s[r]=g(s[r]^s[p],16),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],12),s[p]=s[p]+s[l]+i,s[r]=g(s[r]^s[p],8),s[o]=s[o]+s[r],s[l]=g(s[l]^s[o],7)}function g(p,l){return p>>>l^p<<32-l}const u=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),f=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),s=new Uint32Array(16),n=new Uint32Array(16);function a(p,l){let o=0;for(o=0;o<8;o++)s[o]=p.h[o],s[o+8]=u[o];for(s[12]^=p.t,s[13]^=p.t/4294967296,l&&(s[14]=~s[14]),o=0;o<16;o++)n[o]=t(p.b,4*o);for(o=0;o<10;o++)c(0,4,8,12,n[f[o*16+0]],n[f[o*16+1]]),c(1,5,9,13,n[f[o*16+2]],n[f[o*16+3]]),c(2,6,10,14,n[f[o*16+4]],n[f[o*16+5]]),c(3,7,11,15,n[f[o*16+6]],n[f[o*16+7]]),c(0,5,10,15,n[f[o*16+8]],n[f[o*16+9]]),c(1,6,11,12,n[f[o*16+10]],n[f[o*16+11]]),c(2,7,8,13,n[f[o*16+12]],n[f[o*16+13]]),c(3,4,9,14,n[f[o*16+14]],n[f[o*16+15]]);for(o=0;o<8;o++)p.h[o]^=s[o]^s[o+8]}function y(p,l){if(!(p>0&&p<=32))throw new Error("Incorrect output length, should be in [1, 32]");const o=l?l.length:0;if(l&&!(o>0&&o<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(u),b:new Uint8Array(64),c:0,t:0,outlen:p};return r.h[0]^=16842752^o<<8^p,o>0&&(m(r,l),r.c=64),r}function m(p,l){for(let o=0;o>2]>>8*(o&3)&255;return l}function k(p,l,o){o=o||32,p=e.normalizeInput(p);const r=y(o,l);return m(r,p),w(r)}function E(p,l,o){const r=k(p,l,o);return e.toHex(r)}return R={blake2s:k,blake2sHex:E,blake2sInit:y,blake2sUpdate:m,blake2sFinal:w},R}var _,$;function Ee(){if($)return _;$=1;const e=Ie(),t=ke();return _={blake2b:e.blake2b,blake2bHex:e.blake2bHex,blake2bInit:e.blake2bInit,blake2bUpdate:e.blake2bUpdate,blake2bFinal:e.blake2bFinal,blake2s:t.blake2s,blake2sHex:t.blake2sHex,blake2sInit:t.blake2sInit,blake2sUpdate:t.blake2sUpdate,blake2sFinal:t.blake2sFinal},_}var re=Ee();const oe=te({bits:24,rounds:23,rightRotations:8,leftRotations:3});function W(e){const t=re.blake2bHex(e,null,12);return[parseInt(t.slice(0,6),16),parseInt(t.slice(6,12),16),parseInt(t.slice(12,18),16),parseInt(t.slice(18,24),16)]}function Se(e,t){const c=globalThis.crypto.getRandomValues(new Uint32Array(1))[0]&16777215,g=Array.from(e,(u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t);return(u.codePointAt(0)^n)>>>0});return[c,...g]}function Ce(e,t){if(!e||e.length===0)return"";const c=e[0];return e.slice(1).map((u,f)=>{const s=c*16777216+(f&16777215),n=oe.encrypt(s,t),a=(u^n)>>>0;try{return String.fromCodePoint(a)}catch{return""}}).join("")}const ie=te();function Y(e){const t=re.blake2bHex(e,null,8);return[parseInt(t.slice(0,4),16),parseInt(t.slice(4,8),16),parseInt(t.slice(8,12),16),parseInt(t.slice(12,16),16)]}function Be(e,t){return Array.from(e,c=>ie.encrypt(c.codePointAt(0),t))}function Te(e,t){return e.map(c=>{try{return String.fromCodePoint(ie.decrypt(c,t))}catch{return""}}).join("")}const j="‍​­",B={3:"‍​­᠎‍",6:"‍​­‌‍",7:"‍​­‌‌"},ce={1:"SPECK48_96CTR",2:"SPECK32_64ECB (insecure)"},Ue=Object.fromEntries(Object.entries(ce).map(([e,t])=>[t,+e]));function De(e,t){let c=B[e];const g=Ue[t];if(g){const u=Array.from(g.toString(e).padStart(3,"0"),f=>I[e][f]).join("");c+=I[e].unifier+I[e][0]+u}return c}function Fe(e){let t=e.indexOf(j),c;for(;t!==-1&&(c=Object.keys(B).find(f=>e.startsWith(B[f],t)),!c);)t=e.indexOf(j,t+j.length);if(!c)return null;const g=e.slice(t+B[c].length),u=I[c].unifier+I[c][0];if(g.startsWith(u)){const s=Array.from(g.slice(u.length,u.length+3)).map(m=>Object.keys(I[c]).find(w=>I[c][w]===m)).join(""),n=ce[parseInt(s,c)];if(!n)return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length};const a=g.slice(u.length+3),y=B[c].length+u.length+3;return{base:c,cipher:n,payload:a,sigIdx:t,sigLen:y}}return{base:c,cipher:"PLAIN",payload:g,sigIdx:t,sigLen:B[c].length}}const T=document.getElementById("textarea"),N=document.getElementById("encoder"),L=document.getElementById("cipher"),H=document.getElementById("sign"),D=document.getElementById("sigDetect"),U=document.getElementById("notice"),Pe=["encodeButton","decodeButton"].map(e=>document.getElementById(e)),V=[...Pe,N,L,H];document.getElementById("encodeButton").addEventListener("click",se);document.getElementById("decodeButton").addEventListener("click",se);H.addEventListener("click",e=>e.target.classList.toggle("on"));let Z,x=!1;async function se(e){if(x)return;if(clearTimeout(Z),D.className="",T.value===""){T.value="The text box is empty.";return}const t=e.target.id==="encodeButton"?"NO":"YES";let c=Re(),g=N.value.split("-")[1],u=T.value;if(t==="YES"){const n=Fe(u);if(n){if(n.base!==g||n.cipher&&n.cipher!==c){const a=n.cipher&&n.cipher!=="PLAIN"?` (${n.cipher})`:"";D.textContent=`ZWUS-${n.base}${a} signature detected`,D.className="show",Z=setTimeout(()=>D.className="",2e3)}g=n.base,N.value="ZWUS-"+g,n.cipher&&(c=n.cipher,L.value=c),u=u.slice(0,n.sigIdx)+n.payload}}const f=c!=="PLAIN",s=f&&prompt("enter password.");if(!(f&&!s)){x=!0,V.forEach(n=>n.disabled=!0),U.textContent="Processing…";try{let n=await _e[t][c](u,g,s);if(t==="NO"&&H.classList.contains("on")&&(n=De(g,c)+n),T.value=n,t==="NO"){U.textContent="Copying…";const a=await Oe(n);a&&n.length<=65536&&(T.value=`Copied to your clipboard. - A copy has been placed between these brackets [`+n+"]"),U.textContent=a?`Copied ${n.length.toLocaleString()} characters.`:"Copy failed. The encoded text is in the box; select and copy it manually."}else U.textContent=`Decoded ${n.length.toLocaleString()} characters.`}catch(n){console.error(n),U.textContent=`Could not ${t==="NO"?"encode":"decode"}: ${n.message}`}finally{x=!1,V.forEach(n=>n.disabled=!1)}}}async function Oe(e){var t;if((t=navigator.clipboard)!=null&&t.writeText){let c;try{return await Promise.race([navigator.clipboard.writeText(e),new Promise((g,u)=>c=setTimeout(()=>u(new Error("Copy timed out")),5e3))]),!0}catch(g){console.warn("Clipboard copy failed",g)}finally{clearTimeout(c)}}if(e.length>65536)return!1;T.select();try{return document.execCommand("copy")}catch(c){return console.warn("Clipboard copy failed",c),!1}}function Re(){return L.value}const _e={NO:{PLAIN:(e,t)=>be(e,t),SPECK48_96CTR:(e,t,c)=>M(Se(e,W(c)),t),"SPECK32_64ECB (insecure)":(e,t,c)=>M(Be(e,Y(c)),t)},YES:{PLAIN:(e,t)=>ye(e,t),SPECK48_96CTR:async(e,t,c)=>Ce(await v(e,t),W(c)),"SPECK32_64ECB (insecure)":async(e,t,c)=>Te(await v(e,t),Y(c))}}; diff --git a/dist/web/index.html b/dist/web/index.html index 35b4778..d7abffb 100644 --- a/dist/web/index.html +++ b/dist/web/index.html @@ -3,11 +3,11 @@ - + - +

inØsight 3.3.0source

diff --git a/docs/zwus.md b/docs/zwus.md index d161e4f..9a724f6 100644 --- a/docs/zwus.md +++ b/docs/zwus.md @@ -15,6 +15,30 @@ Choosing the right ZWUS base depends on platform compatibility. If you enable **Sign** when encoding, an invisible signature is attached to the secret message. When decoding—either in the extension popup or via the on-screen overlay—inØsight automatically identifies the base and cipher. +### Signature format + +New signatures contain exactly **11 zero-width characters**: + +`standard header (5) + unifier (1) + zero digit (1) + mode ID (4)` + +The five-character standard headers are unchanged. The unifier and digits use the selected standard's alphabet. Mode IDs are encoded in that standard's base and padded to exactly four digits: + +| Mode ID | Mode | +| :--- | :--- | +| `0000` | PLAIN | +| `0001` | SPECK48_96CTR | +| `0002` | SPECK32_64ECB (insecure) | + +Detection requires an exact match to one of the nine registered signatures (three standards × three modes). Unknown IDs and partial headers are not modern signatures. Characters after a matched signature belong to the payload; they never extend the signature. PLAIN uses the same header format as the ciphers but does not encrypt the payload. + +### Legacy signatures + +For compatibility, inØsight still reads the old five-character PLAIN headers and ten-character encrypted headers for ZWUS-3, ZWUS-6, and ZWUS-7. New encoding always writes the 11-character format. Complete modern signatures take priority within an uninterrupted zero-width run. Legacy messages separated from modern messages by visible text remain independently detectable. + +Legacy recognition is isolated in `LEGACY_SIGNATURES` and `parseLegacySig` in `sig.js`, with explicitly labeled legacy tests. To retire it, remove that registry, reader, legacy tests, and the `legacyPlain` condition in `findSig`, then make `parseSig` use only `parseModernSig`. Future standards must not be added to the legacy registry. + +Incomplete or unknown extended headers do not fall back to legacy PLAIN. Exact legacy encrypted headers remain recognized, with everything after their tenth character treated as payload. + --- ## Unicode Alphabet by Standard diff --git a/index.html b/index.html index ffb6273..4d7ec7a 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ -

inØsight 3.2.0source

+

inØsight 3.3.0source

diff --git a/package-lock.json b/package-lock.json index 05e871e..8296187 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "inzerosight", - "version": "3.2.0", + "version": "3.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "inzerosight", - "version": "3.2.0", + "version": "3.3.0", "dependencies": { "blakejs": "1.2.1", "generic-speck": "1.1.1", diff --git a/package.json b/package.json index e947cb4..18abafd 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "inzerosight", - "version": "3.2.0", + "version": "3.3.0", "private": true, "type": "module", "scripts": { + "test": "bun test sig.test.js content.test.js", "dev": "vite --mode chrome", "build:web": "vite build --mode web", "build:firefox": "vite build --mode firefox", diff --git a/sig.js b/sig.js index d99e890..5d25589 100644 --- a/sig.js +++ b/sig.js @@ -9,6 +9,7 @@ export const SIG = { }; export const CIPHERS = { + 0: 'PLAIN', 1: 'SPECK48_96CTR', 2: 'SPECK32_64ECB (insecure)' }; @@ -17,36 +18,59 @@ export const CIPHER_TO_ID = Object.fromEntries( Object.entries(CIPHERS).map(([k, v]) => [v, +k]) ); +const SIGNATURES = Object.entries(SIG).flatMap(([base, prefix]) => + Object.entries(CIPHERS).map(([id, cipher]) => { + const digits = (+id).toString(base).padStart(4, '0'); + if (digits.length !== 4) throw new RangeError(`Cipher ID ${id} exceeds ZWUS-${base}'s signature capacity`); + const sig = prefix + zwus[base].unifier + zwus[base][0] + + Array.from(digits, d => zwus[base][d]).join(''); + if (sig.length !== 11) throw new RangeError('Signatures must contain exactly 11 characters'); + return { base, cipher, sig, legacy: false }; + }) +); + export function makeSig(base, cipher) { - let s = SIG[base]; - const id = CIPHER_TO_ID[cipher]; - if (id) { - const zwDigits = Array.from(id.toString(base).padStart(3, '0'), d => zwus[base][d]).join(''); - s += zwus[base].unifier + zwus[base][0] + zwDigits; - } - return s; + const entry = SIGNATURES.find(s => s.base === String(base) && s.cipher === cipher); + if (!entry) throw new RangeError(`Unsupported signature: ZWUS-${base}, ${cipher}`); + return entry.sig; } -export function parseSig(text) { - let sigIdx = text.indexOf(SIG_PREFIX), base; +function findSig(text, signatures) { + let sigIdx = text.indexOf(SIG_PREFIX); while (sigIdx !== -1) { - base = Object.keys(SIG).find(b => text.startsWith(SIG[b], sigIdx)); - if (base) break; - sigIdx = text.indexOf(SIG_PREFIX, sigIdx + SIG_PREFIX.length); + const entry = signatures.find(s => text.startsWith(s.sig, sigIdx) && + (!s.legacyPlain || text[sigIdx + s.sig.length] !== zwus[s.base].unifier)); + if (entry) { + const { base, cipher, sig, legacy } = entry; + return { base, cipher, payload: text.slice(sigIdx + sig.length), sigIdx, sigLen: sig.length, legacy }; + } + sigIdx = text.indexOf(SIG_PREFIX, sigIdx + 1); } - if (!base) return null; - const after = text.slice(sigIdx + SIG[base].length); - const barrier = zwus[base].unifier + zwus[base][0]; - if (after.startsWith(barrier)) { - const zwDigits = Array.from(after.slice(barrier.length, barrier.length + 3)); - const digits = zwDigits.map(z => Object.keys(zwus[base]).find(k => zwus[base][k] === z)).join(''); - const cipher = CIPHERS[parseInt(digits, base)]; - if (!cipher) return { base, cipher: 'PLAIN', payload: after, sigIdx, sigLen: SIG[base].length }; - const payload = after.slice(barrier.length + 3); - const sigLen = SIG[base].length + barrier.length + 3; - return { base, cipher, payload, sigIdx, sigLen }; - } - return { base, cipher: 'PLAIN', payload: after, sigIdx, sigLen: SIG[base].length }; + return null; +} + +// Current format: match only complete, registered 11-character signatures. +export const parseModernSig = text => findSig(text, SIGNATURES); + +// Legacy compatibility: remove this registry, reader, and parseSig fallback together. +// Keep the supported bases and cipher IDs frozen; future standards use only the current format. +const LEGACY_SIGNATURES = [3, 6, 7].flatMap(base => [ + ...[1, 2].map(id => ({ + base: String(base), cipher: CIPHERS[id], legacy: true, + sig: SIG[base] + zwus[base].unifier + zwus[base][0].repeat(3) + zwus[base][id] + })), + { base: String(base), cipher: 'PLAIN', sig: SIG[base], legacy: true, legacyPlain: true } +]); + +// Legacy plaintext never starts with a unifier; do not downgrade incomplete/unknown extensions. +export const parseLegacySig = text => findSig(text, LEGACY_SIGNATURES); +export function parseSig(text) { + const modern = parseModernSig(text), legacy = parseLegacySig(text); + if (!modern) return legacy; + // Legacy messages separated by visible text still need their own overlay. + if (legacy && legacy.sigIdx < modern.sigIdx && + getPayloadEnd(text, legacy.base, legacy.sigIdx + legacy.sigLen) < modern.sigIdx) return legacy; + return modern; } export function getPayloadEnd(text, base, startOffset) { diff --git a/sig.test.js b/sig.test.js new file mode 100644 index 0000000..125d88d --- /dev/null +++ b/sig.test.js @@ -0,0 +1,133 @@ +import assert from 'node:assert/strict'; +import { test } from 'node:test'; +import zwus from 'zwus'; +import * as chunked from './chunked.js'; +import * as ctr from './speck48_96ctr.js'; +import * as ecb from './speck32_64ecb.js'; +import { makeSig, parseSig, parseModernSig, parseLegacySig, getPayloadEnd } from './sig.js'; + +// Frozen wire-format fixtures, independent of the signature registry. +const HEADERS = { + 3: '\u200D\u200B\u00AD\u180E\u200D', + 6: '\u200D\u200B\u00AD\u200C\u200D', + 7: '\u200D\u200B\u00AD\u200C\u200C' +}; +const MODES = ['PLAIN', 'SPECK48_96CTR', 'SPECK32_64ECB (insecure)']; +const MESSAGE = 'tt\0 Hello, 世界 🌍\n'; +const key = 'signature regression'; + +for (const base of [3, 6, 7]) { + const z = zwus[base], header = HEADERS[base]; + const extended = digits => header + z.unifier + z[0] + + Array.from(digits, d => z[d]).join(''); + + test(`ZWUS-${base}: exact 11-character headers and round trips for every mode`, () => { + for (const [id, cipher] of MODES.entries()) { + const expected = extended('000' + id); + assert.equal(makeSig(base, cipher), expected); + assert.equal(makeSig(String(base), cipher).length, 11); + const engine = [null, ctr, ecb][id]; + const payload = engine ? chunked.encodeNumberArray(engine.encrypt(MESSAGE, engine.getKey(key)), base) : + chunked.encodeString(MESSAGE, base); + const parsed = parseSig('visible ' + expected + payload + ' suffix'); + assert.deepEqual(parsed, { + base: String(base), cipher, payload: payload + ' suffix', sigIdx: 8, sigLen: 11, legacy: false + }); + const start = parsed.sigIdx + parsed.sigLen; + const source = 'visible ' + expected + payload + ' suffix'; + const end = getPayloadEnd(source, base, start); + assert.equal(source.slice(start, end), payload); + const decoded = engine ? engine.decrypt(chunked.decodeToNumberArray(parsed.payload, base), engine.getKey(key)) : + chunked.decodeToString(parsed.payload, base); + assert.equal(decoded, MESSAGE); + } + }); + + test(`ZWUS-${base}: modern reader rejects every unregistered four-digit ID`, () => { + for (let id = 3; id < base ** 4; id++) + assert.equal(parseModernSig(extended(id.toString(base).padStart(4, '0'))), null, `ID ${id}`); + }); + + test(`ZWUS-${base}: modern reader requires every character to match`, () => { + const sig = extended('0000'); + for (let end = 0; end < sig.length; end++) + assert.equal(parseModernSig(sig.slice(0, end)), null); + for (let i = 0; i < sig.length; i++) + assert.equal(parseModernSig(sig.slice(0, i) + 'x' + sig.slice(i + 1)), null); + assert.equal(parseModernSig(extended('10000')), null); + assert.equal(parseSig(extended('0000') + z[2]).sigLen, 11); + assert.equal(parseSig(extended('0000') + z[2]).payload, z[2]); + }); + + test(`ZWUS-${base}: malformed extensions do not fall back to legacy PLAIN`, () => { + for (const tail of [z.unifier, z.unifier + z[0], z.unifier + z[0].repeat(4), + z.unifier + z[0] + 'xxx', z.unifier + z[0] + z[2].repeat(4)]) + assert.equal(parseSig(header + tail), null); + }); + + test(`ZWUS-${base}: legacy five-character PLAIN stays readable`, () => { + const payload = zwus.encodeString(MESSAGE, base); + const parsed = parseSig(header + payload); + assert.deepEqual(parsed, { + base: String(base), cipher: 'PLAIN', payload, sigIdx: 0, sigLen: 5, legacy: true + }); + assert.equal(zwus.decodeToString(parsed.payload, base), MESSAGE); + assert.equal(parseModernSig(header + payload), null); + }); + + test(`ZWUS-${base}: legacy ten-character encrypted signatures stay readable`, () => { + for (const [id, engine] of [[1, ctr], [2, ecb]]) { + const sig = extended('00' + id); + const payload = zwus.encodeNumberArray(engine.encrypt(MESSAGE, engine.getKey(key)), base); + const parsed = parseSig(sig + payload); + assert.equal(parsed.cipher, MODES[id]); + assert.equal(parsed.sigLen, 10); + assert.equal(parsed.legacy, true); + assert.equal(parsed.payload, payload); + assert.equal(engine.decrypt(zwus.decodeToNumberArray(parsed.payload, base), engine.getKey(key)), MESSAGE); + // A legacy header's next digit is payload, even if all 11 characters resemble a future ID. + assert.equal(parseLegacySig(sig + z[0]).payload, z[0]); + } + }); + + test(`ZWUS-${base}: complete modern signatures take priority and preserve offsets`, () => { + const sig = extended('0000'), payload = zwus.encodeString('hello', base); + const prefix = header + z.unifier + 'broken '; + const parsed = parseSig(prefix + sig + payload); + assert.equal(parsed.sigIdx, prefix.length); + assert.equal(parsed.legacy, false); + assert.equal(parsed.payload, payload); + }); + + test(`ZWUS-${base}: legacy and modern messages separated by visible text remain discoverable`, () => { + const payload = zwus.encodeString('hello', base); + const legacy = header + payload, modern = extended('0000') + payload; + const text = legacy + ' and ' + modern; + const first = parseSig(text); + assert.equal(first.legacy, true); + assert.equal(first.sigIdx, 0); + const end = getPayloadEnd(text, base, first.sigLen); + assert.equal(end, legacy.length); + assert.equal(parseSig(text.slice(end)).legacy, false); + }); + + test(`ZWUS-${base}: empty and chunked payloads preserve their contents`, () => { + const sig = makeSig(base, 'PLAIN'); + assert.equal(parseSig(sig).payload, ''); + const text = 't'.repeat(65535) + '🌍\0'; + assert.equal(chunked.decodeToString(parseSig(sig + chunked.encodeString(text, base)).payload, base), text); + }); +} + +test('unknown standards and modes cannot generate signatures', () => { + assert.throws(() => makeSig(8, 'PLAIN'), RangeError); + assert.throws(() => makeSig(7, 'unknown'), RangeError); + assert.throws(() => makeSig(7), RangeError); +}); + +test('legacy cross-standard collision does not match a modern signature', () => { + const text = zwus.encodeString('ŵt', 7); + assert.equal(parseModernSig(text), null); + assert.equal(parseLegacySig(text).base, '6'); + assert.equal(parseSig(text + makeSig(7, 'PLAIN')).legacy, false); +}); diff --git a/vite.config.js b/vite.config.js index 51f417b..73fc40f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -12,7 +12,7 @@ export default defineConfig(async ({ mode }) => { manifest: () => { const base = { name: "in\u00D8sight", - version: "3.2.0", + version: "3.3.0", author: "planetrenox@pm.me", homepage_url: "https://github.com/inzerosight/inzerosight", description: "Communicate undetected in plain sight.",