Chris Duncan [Mon, 23 Mar 2026 05:29:56 +0000 (22:29 -0700)]
Fix extra type emissions and exports.
Update integration and input guidance in README.
Emit declarations to types directory. Use esbuild to copy specific type definitions. Move implementation file and delete duplicated exports. Expand on test vector authorship. Include unlicense for tweetnacl origins.
Chris Duncan [Sun, 22 Mar 2026 09:48:47 +0000 (02:48 -0700)]
Polish for first release.
Rename project for accuracy. Separate async/sync modules. Add tons of tests. Zero out memory when no longer needed. Reduce global static variables by using WASM linear memory directly.
Chris Duncan [Fri, 20 Mar 2026 22:11:04 +0000 (15:11 -0700)]
Enable variable-length messages up to 32 KiB.
Add dedicated buffer for sign/verify message data and refactor references to use length variables. Convert terminology from "block hash" to "message" to reflect new capabilities and document how Nano block hashes should be handled. Deprecate crypto_hash and instead use blake2b directly for streaming hash updates. Update test webpage and NodeJS test to use full set of test vectors from the Python ed25519-blake2b library. Update workers to transfer bytes instead of copying them, and always specify worker commands with the 'action' property.
Chris Duncan [Wed, 18 Mar 2026 21:39:16 +0000 (14:39 -0700)]
Add NodeJS support and update tests.
Fix node worker construction, message handling, and parent port import.
Expand esbuild config functionality and build options.
Move test vectors to separate file, rename .env vector import, and add tests.
Chris Duncan [Tue, 17 Mar 2026 20:47:27 +0000 (13:47 -0700)]
Refactor API.
Refactor host code to compile synchronously, return both sync and async functions, merge trace logging function into wasm env, refactor worker listening process, add type checks to worker message parsing, and emit type definitions.
Update testing page to add NanoNaCl to global context in test page to enable testing ad hoc commands, add tests for sync functions using byte arrays, add pause when starting each test run to allow DOM to repaint status text, and always run self-check.
Rename main assembly file.
Improve documentation and reorganize functions.
Update dependencies.
Chris Duncan [Sat, 7 Mar 2026 07:37:59 +0000 (23:37 -0800)]
Refactor from tweetnacl 16x16 radix limbs to libsodium 10x25.5-bit radix limb implementation to gain massive speed boost with precomputed base point table.
Chris Duncan [Wed, 4 Mar 2026 22:40:44 +0000 (14:40 -0800)]
Final preradix-25 refactor.
Reorder verify parameters to align with libsodium. Refactor point classes. Add field element functions, group element functions, and scalar functions to support radix 25 migration. Replace tweetnacl modL function with libsodium scalar functions. Clean up variable names and documentation comments.
Chris Duncan [Tue, 3 Mar 2026 07:53:32 +0000 (23:53 -0800)]
Set up for migration to 10x25 radix implementation.
Split Blake2b hashing, field element arithmetic, and group element functions into separate files and import to main. Add precomputed base point products and other constants from libsodium. Rename public key derivation internal function for consistency.
Chris Duncan [Fri, 27 Feb 2026 08:03:35 +0000 (00:03 -0800)]
Pointers, vectors, and doubling.
Use pointers for field element constants and simplify scalarbase copy setup. Implement point doubling function. Vectorize selection logic and use built-in for swapping bits. Tweak error handling, maybe fix liftString at some point. Use immediate offsets instead of pointer arithmetic where possible. Pass pointers directly to scalarmult, add, and cswap.
Chris Duncan [Wed, 25 Feb 2026 22:31:34 +0000 (14:31 -0800)]
Overhaul module to use static buffers to prevent memory leaks, 32-bit limbs to accelerate multiplication with SIMD vectors, copy I/O directly to and from buffers, simplify entry point functions in host code, and fix calculation bugs.