]> zoso.dev Git - libnemo.git/commitdiff
Begin refactoring NaCl implementation to a web worker format.
authorChris Duncan <chris@zoso.dev>
Thu, 28 Nov 2024 10:21:21 +0000 (02:21 -0800)
committerChris Duncan <chris@zoso.dev>
Thu, 28 Nov 2024 10:21:21 +0000 (02:21 -0800)
src/lib/workers/nano-nacl.ts

index 41b850ebea5d79cc9a5ff14912f4cfb0d22318f2..8e2b9b4be7e605fd2bb5ce57980fdf2a47edaedb 100644 (file)
@@ -17,6 +17,16 @@ import { Blake2b } from '../blake2b.js'
 // See for details: https://docs.nano.org/integration-guides/the-basics/\r
 // Original source commit: https://github.com/dchest/tweetnacl-js/blob/71df1d6a1d78236ca3e9f6c788786e21f5a651a6/nacl-fast.js\r
 \r
+async function fn () {\r
+       /**\r
+       * Listens for messages from a calling function.\r
+       */\r
+       addEventListener('message', (message) => {\r
+               const { privateKey, index } = message.data ?? message\r
+               keyPair.fromSeed(seed).then(publicKey => postMessage({ publicKey, privateKey, index }))\r
+       })\r
+\r
+\r
 var gf = function(init?: any) {\r
        var i, r = new Float64Array(16);\r
        if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\r
@@ -880,5 +890,7 @@ const setPRNG = function(fn) {
                }\r
        }\r
 })();\r
+}\r
 \r
-export const nacl = { sign, open, detached, verify, keyPair, publicKeyLength, secretKeyLength, seedLength, signatureLength }
\ No newline at end of file
+export const nacl = { sign, open, detached, verify, keyPair, publicKeyLength, secretKeyLength, seedLength, signatureLength }\r
+export default `(${fn.toString()})()`\r