]>
git.codecow.com Git - nano25519.git/log
Chris Duncan [Thu, 27 Aug 2026 03:10:51 +0000 (20:10 -0700)]
Update documentation for clarity.
Chris Duncan [Thu, 27 Aug 2026 02:00:17 +0000 (19:00 -0700)]
Rename API parameter to further distinguish it verify_blocks from strict verify.
Chris Duncan [Thu, 27 Aug 2026 01:55:29 +0000 (18:55 -0700)]
Extract public key validation in verify to enable bulk ops.
Chris Duncan [Thu, 27 Aug 2026 01:22:27 +0000 (18:22 -0700)]
Refactor signing to derive the public key from the private key input and compare to the public key input.
Chris Duncan [Wed, 26 Aug 2026 08:40:19 +0000 (01:40 -0700)]
Update agent file.
Chris Duncan [Wed, 26 Aug 2026 08:35:00 +0000 (01:35 -0700)]
Fix buffer clearing.
Chris Duncan [Wed, 26 Aug 2026 08:32:11 +0000 (01:32 -0700)]
Drop initial memory back down since it should fit again.
Chris Duncan [Wed, 26 Aug 2026 08:31:58 +0000 (01:31 -0700)]
Use constant for output buffer size.
Chris Duncan [Wed, 26 Aug 2026 08:15:33 +0000 (01:15 -0700)]
Fix buffer lengths and loop iterators.
Chris Duncan [Wed, 26 Aug 2026 07:52:54 +0000 (00:52 -0700)]
Start building out bulk Nano block verification, inserting all hash/signature pairs into the message buffer and parsing them within WASM.
Chris Duncan [Wed, 26 Aug 2026 05:54:28 +0000 (22:54 -0700)]
Add agent file.
Chris Duncan [Wed, 26 Aug 2026 01:35:16 +0000 (18:35 -0700)]
Remove unnecessary package property.
Chris Duncan [Wed, 26 Aug 2026 01:31:39 +0000 (18:31 -0700)]
Fix reversed parameters.
Chris Duncan [Tue, 25 Aug 2026 21:44:58 +0000 (14:44 -0700)]
Clean up speed test page.
Chris Duncan [Tue, 25 Aug 2026 19:09:07 +0000 (12:09 -0700)]
Break up benchmarks for each primitive.
Chris Duncan [Tue, 25 Aug 2026 18:55:25 +0000 (11:55 -0700)]
Fix a couple more parameter names.
Chris Duncan [Tue, 25 Aug 2026 18:53:17 +0000 (11:53 -0700)]
Update parameters for primitive wrappers to better reflect data.
Chris Duncan [Tue, 25 Aug 2026 18:49:03 +0000 (11:49 -0700)]
Update nano25519 sign test to properly pass private and public keys separately.
Chris Duncan [Tue, 25 Aug 2026 18:41:13 +0000 (11:41 -0700)]
Update verify documentation and separate function variables.
Chris Duncan [Tue, 25 Aug 2026 18:40:36 +0000 (11:40 -0700)]
Fix error message comparison tests.
Chris Duncan [Tue, 25 Aug 2026 17:26:46 +0000 (10:26 -0700)]
Fix documented variable names.
Chris Duncan [Tue, 25 Aug 2026 14:34:56 +0000 (07:34 -0700)]
Bump initial memory to accomodate new signature input buffer.
Chris Duncan [Tue, 25 Aug 2026 14:20:54 +0000 (07:20 -0700)]
Update import example.
Chris Duncan [Tue, 25 Aug 2026 14:03:16 +0000 (07:03 -0700)]
Remove additional documentation of deprecated async module.
Chris Duncan [Tue, 25 Aug 2026 13:13:51 +0000 (06:13 -0700)]
Deprecate additional async references.
Chris Duncan [Tue, 25 Aug 2026 13:01:34 +0000 (06:01 -0700)]
Update node tests to deprecate secret key format.
Chris Duncan [Tue, 25 Aug 2026 12:50:13 +0000 (05:50 -0700)]
Remove async test calls and concatenated secret key vectors.
Chris Duncan [Tue, 25 Aug 2026 00:38:02 +0000 (17:38 -0700)]
Deprecate async module and focus on organizing buffers for batch prep.
Chris Duncan [Mon, 24 Aug 2026 22:26:47 +0000 (15:26 -0700)]
Hoist buffer pointers to only reach into wasm once per buffer instead of every call site. Export buffer sizes for consistency when clearing.
Chris Duncan [Mon, 24 Aug 2026 22:25:17 +0000 (15:25 -0700)]
Fix documentation.
Chris Duncan [Sat, 22 Aug 2026 07:47:14 +0000 (00:47 -0700)]
Merge branch 'next/out-buf'
- derive() and sign() can now optionally take a preallocated output buffer.
- Fixed verify() returning unsigned result instead of signed (-1 vs 255)
- Vastly reduced WASM module size by flattening base point arrays into a plain static memory data segment.
- Added lots more defensive buffer clearing.
- Fixed `equal()`, `negative()`, and `sodium_is_zero()` which silently broke due to AssemblyScript masking shift operands based on bit width.
- Extracted `crypto_derive`, `crypto_sign`, and `crypto_verify` from the WASM index entry point.
- Split async module into separate files for host code and worker code, and inject the worker code string using an esbuild process.
- Updated async error handling to reject all pending tasks when the worker resets.
- Move tests to separate subdirectory, add output buffer and offset coverage, and test a live cemented block from a small-order account that is rejected by strict verification (Nano needs
ed25519 -donna implementation here especially).
Chris Duncan [Sat, 22 Aug 2026 06:41:12 +0000 (23:41 -0700)]
Reduce initial memory now that scratch message buffers are gone.
Chris Duncan [Sat, 22 Aug 2026 06:40:19 +0000 (23:40 -0700)]
Update doc comments.
Chris Duncan [Sat, 22 Aug 2026 06:31:10 +0000 (23:31 -0700)]
Use constant for message length within wasm and clear it with the other buffers.
Chris Duncan [Sat, 22 Aug 2026 06:28:17 +0000 (23:28 -0700)]
Revert to retrieving message buffer directly in wasm since it is fully synchronous, has no re-entry points from host JS, and is never written but only read by Blake2b.
Chris Duncan [Sat, 22 Aug 2026 06:18:29 +0000 (23:18 -0700)]
Clear buffers on message length error.
Chris Duncan [Sat, 22 Aug 2026 06:16:41 +0000 (23:16 -0700)]
Reuse constant for message size to avoid bugs.
Chris Duncan [Sat, 22 Aug 2026 06:15:16 +0000 (23:15 -0700)]
Fix input buffer size references.
Chris Duncan [Fri, 21 Aug 2026 22:06:06 +0000 (15:06 -0700)]
Simplify base point pointer increment.
Chris Duncan [Fri, 21 Aug 2026 22:04:44 +0000 (15:04 -0700)]
Move base pointer out of move function entirely.
Chris Duncan [Fri, 21 Aug 2026 21:59:44 +0000 (14:59 -0700)]
Unroll hot path again.
Chris Duncan [Fri, 21 Aug 2026 21:50:54 +0000 (14:50 -0700)]
Reformat for const usage.
Chris Duncan [Fri, 21 Aug 2026 21:38:41 +0000 (14:38 -0700)]
Overload conditional move of FieldElements for cleaner memory access.
Chris Duncan [Fri, 21 Aug 2026 21:32:46 +0000 (14:32 -0700)]
Rename scratchpad to be more relevant.
Chris Duncan [Fri, 21 Aug 2026 21:27:04 +0000 (14:27 -0700)]
Eliminate redundant memory copy calls.
Chris Duncan [Fri, 21 Aug 2026 21:20:44 +0000 (14:20 -0700)]
Sort imports.
Chris Duncan [Fri, 21 Aug 2026 20:46:44 +0000 (13:46 -0700)]
Eliminate memcpy in loop.
Chris Duncan [Fri, 21 Aug 2026 20:32:29 +0000 (13:32 -0700)]
Copy field elements by passing pointers instead of objects.
Chris Duncan [Fri, 21 Aug 2026 20:25:47 +0000 (13:25 -0700)]
Reduce down to one scratch object for base point arithmetic.
Chris Duncan [Fri, 21 Aug 2026 20:17:51 +0000 (13:17 -0700)]
Reuse one ge for base point arithmetic.
Chris Duncan [Fri, 21 Aug 2026 20:14:43 +0000 (13:14 -0700)]
Eliminate intermediate base copy.
Chris Duncan [Fri, 21 Aug 2026 20:12:01 +0000 (13:12 -0700)]
Reduce initial module memory with base point changes.
Chris Duncan [Fri, 21 Aug 2026 20:07:30 +0000 (13:07 -0700)]
Reduce base point size further by allocating it directly instead of including StaticArray headers.
Chris Duncan [Fri, 21 Aug 2026 19:29:01 +0000 (12:29 -0700)]
Eliminate base buffer pointer computation entirely and use loop counter to avoid multiplication.
Chris Duncan [Fri, 21 Aug 2026 19:24:56 +0000 (12:24 -0700)]
Remove pointer arithmetic from base point entirely and put it in ge function.
Chris Duncan [Fri, 21 Aug 2026 19:18:46 +0000 (12:18 -0700)]
Fix base copy destination buffer size, and cast to i8 only when necessary.
Chris Duncan [Fri, 21 Aug 2026 19:06:35 +0000 (12:06 -0700)]
Return pointer into base buffer instead of constructing new objects, and use pointer to copy memory one ge_precomp at a time.
Chris Duncan [Fri, 21 Aug 2026 18:27:19 +0000 (11:27 -0700)]
Loop over cmov to simplify for upcoming base accessor pattern change.
Chris Duncan [Fri, 21 Aug 2026 17:42:59 +0000 (10:42 -0700)]
Naming convention.
Chris Duncan [Fri, 21 Aug 2026 17:32:29 +0000 (10:32 -0700)]
Merge single-use function into caller.
Chris Duncan [Fri, 21 Aug 2026 17:20:41 +0000 (10:20 -0700)]
Flatten base point completely and retrieve values with offsets alone.
Chris Duncan [Fri, 21 Aug 2026 15:08:41 +0000 (08:08 -0700)]
Combine base point elements into single buffer per ge_precomp.
Chris Duncan [Fri, 21 Aug 2026 14:59:38 +0000 (07:59 -0700)]
Further flatten base point by constructing ge_precomp elements on the fly.
Chris Duncan [Fri, 21 Aug 2026 14:42:15 +0000 (07:42 -0700)]
Move base2 out of base to avoid modifying it at this time since it is relatively small.
Chris Duncan [Fri, 21 Aug 2026 14:19:24 +0000 (07:19 -0700)]
Decouple precomputed group element from base point return value.
Chris Duncan [Fri, 21 Aug 2026 14:17:34 +0000 (07:17 -0700)]
Flatten base point nested arrays into one StaticArray.
Chris Duncan [Fri, 21 Aug 2026 13:14:39 +0000 (06:14 -0700)]
Start migrating to flatter base point by decoupling access from data.
Chris Duncan [Thu, 20 Aug 2026 22:22:31 +0000 (15:22 -0700)]
Pad base point to align with FieldElement as documented.
Chris Duncan [Thu, 20 Aug 2026 22:18:19 +0000 (15:18 -0700)]
Flatten base point to allocate StaticArrays directly so the FieldElement constructor Array leak can be fixed.
Chris Duncan [Thu, 20 Aug 2026 06:52:59 +0000 (23:52 -0700)]
Use real math symbols in comments for legibility.
Chris Duncan [Thu, 20 Aug 2026 04:20:49 +0000 (21:20 -0700)]
Declare I/O buffers as StaticArray for memory safety. Set memory with live value instead of ignored export.
Chris Duncan [Thu, 20 Aug 2026 00:12:52 +0000 (17:12 -0700)]
Remove other unused WASM export.
Chris Duncan [Thu, 20 Aug 2026 00:11:55 +0000 (17:11 -0700)]
Remove unused WASM export.
Chris Duncan [Thu, 20 Aug 2026 00:10:51 +0000 (17:10 -0700)]
Formatting.
Chris Duncan [Thu, 20 Aug 2026 00:08:38 +0000 (17:08 -0700)]
Promote primitives to top-level module functions.
Chris Duncan [Thu, 20 Aug 2026 00:04:42 +0000 (17:04 -0700)]
Split async host and worker into separate files and export worker as string with esbuid.
Chris Duncan [Wed, 19 Aug 2026 23:40:04 +0000 (16:40 -0700)]
Adjust variable names now that primitives are module-scoped. Copy parameters locally in derive to free buffer. Fill output buffer in verify for consistency between calls.
Chris Duncan [Wed, 19 Aug 2026 23:24:38 +0000 (16:24 -0700)]
Extract crypto functions from API definition file.
Chris Duncan [Wed, 19 Aug 2026 23:16:58 +0000 (16:16 -0700)]
Remove unused array and update documentation.
Chris Duncan [Tue, 18 Aug 2026 06:43:44 +0000 (23:43 -0700)]
Refactor primitives to align with RFC 8032.
Chris Duncan [Mon, 17 Aug 2026 20:39:48 +0000 (13:39 -0700)]
Start updating Blake usage
Chris Duncan [Mon, 17 Aug 2026 20:35:32 +0000 (13:35 -0700)]
Hash from arrays which are passed as pointers not objects.
Chris Duncan [Mon, 17 Aug 2026 15:55:07 +0000 (08:55 -0700)]
Specify buffer sizes for clarity in implementation.
Chris Duncan [Mon, 17 Aug 2026 15:46:03 +0000 (08:46 -0700)]
Change WASM buffer view to Uint8Array since we don't need endianness features of DataView. Reduce input buffer size to maximum needed and minimum required for verify() signature and public key.
Chris Duncan [Sun, 16 Aug 2026 10:32:44 +0000 (03:32 -0700)]
Test offset buffers with exact matches against untouched ranges.
Chris Duncan [Sun, 16 Aug 2026 10:08:30 +0000 (03:08 -0700)]
Fix offset buffer tests to correctly target offsets including 0.
Chris Duncan [Sun, 16 Aug 2026 09:44:07 +0000 (02:44 -0700)]
Adjust buffer offset tests and remove unused function.
Chris Duncan [Sun, 16 Aug 2026 09:22:04 +0000 (02:22 -0700)]
Return straightforward 0 or -1 from verify instead of handling buffer output.
Chris Duncan [Sun, 16 Aug 2026 08:56:20 +0000 (01:56 -0700)]
Fix transfer of full buffer instead of just array view.
Chris Duncan [Sun, 16 Aug 2026 08:41:22 +0000 (01:41 -0700)]
Document expected output.
Chris Duncan [Sun, 16 Aug 2026 07:09:49 +0000 (00:09 -0700)]
Expand to signed int to return -1 as libsodium instead of 255.
Chris Duncan [Sun, 16 Aug 2026 07:09:11 +0000 (00:09 -0700)]
Fix truncation in bit shift.
Chris Duncan [Sun, 16 Aug 2026 06:53:08 +0000 (23:53 -0700)]
Transfer data to worker if passed as buffer instead of just byte array.
Chris Duncan [Sun, 16 Aug 2026 05:54:12 +0000 (22:54 -0700)]
Fix similar issue with asc bit shift operand masking when checking canonicity.
Chris Duncan [Sun, 16 Aug 2026 05:48:43 +0000 (22:48 -0700)]
Fix constant time zero check that was incorrect due to AssemblyScript shift operand masking.
Chris Duncan [Sun, 16 Aug 2026 05:47:59 +0000 (22:47 -0700)]
Log more helpful info on wasm error.
Chris Duncan [Sat, 15 Aug 2026 22:09:05 +0000 (15:09 -0700)]
Fix test label.
Chris Duncan [Sat, 15 Aug 2026 21:41:04 +0000 (14:41 -0700)]
Fix wording on problem vector.
Chris Duncan [Sat, 15 Aug 2026 20:56:36 +0000 (13:56 -0700)]
Reduce form on division by shift.
Chris Duncan [Sat, 15 Aug 2026 20:53:03 +0000 (13:53 -0700)]
Deprecate global pointless in WASM.