snowv-web
Version:
A fast [SNOW-V](https://eprint.iacr.org/2018/1143.pdf) stream cipher implemented in SIMD-enabled WebAssembly, ready for modern browsers and JavaScript environments.
63 lines (62 loc) • 19.4 kB
JavaScript
const i = "data:application/wasm;base64,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";
let Q, w, E, D = !1;
async function U() {
if (!D)
try {
const C = await (await fetch(i)).arrayBuffer(), g = {
wasi_snapshot_preview1: {
proc_exit: (B) => {
console.log(`Process exited with code ${B}`);
},
fd_write: (B, S, H, N) => (console.log("fd_write called"), 0),
fd_close: () => 0,
fd_seek: () => 0,
fd_read: () => 0,
environ_sizes_get: () => 0,
environ_get: () => 0
}
};
console.log("Instantiating WebAssembly module...");
const { instance: I } = await WebAssembly.instantiate(C, {
wasi_snapshot_preview1: g.wasi_snapshot_preview1,
env: {}
});
console.log("WebAssembly module instantiated"), Q = I.exports, console.log("Available exports:", Object.keys(Q)), w = Q.memory, E = new Uint8Array(w.buffer), D = !0, console.log("WASM module initialized successfully");
} catch (A) {
throw console.error("Failed to initialize WASM module:", A), A;
}
}
async function o(A, C) {
D || await U();
try {
console.log("Setting up key and IV");
const g = Q.malloc(A.length), I = Q.malloc(C.length);
for (let B = 0; B < A.length; B++)
E[g + B] = A[B];
for (let B = 0; B < C.length; B++)
E[I + B] = C[B];
console.log("Initializing global cipher"), Q.init_global_cipher(g, I), Q.free(g), Q.free(I), console.log("Key and IV setup complete");
} catch (g) {
throw console.error("Error in setupKeyIV:", g), g;
}
}
async function R() {
D || await U();
try {
console.log("Generating keystream block");
const A = Q.keystream_to_bytes();
if (!A)
throw new Error("Failed to generate keystream - null pointer returned");
const C = 16, g = new Uint8Array(C);
for (let I = 0; I < C; I++)
g[I] = E[A + I];
return Q.free(A), console.log("Keystream block generated:", Array.from(g).map((I) => I.toString(16).padStart(2, "0")).join(" ")), g;
} catch (A) {
throw console.error("Error in generateKeystreamBlock:", A), A;
}
}
export {
R as generateKeystreamBlock,
U as init,
o as setupKeyIV
};