]>
git.codecow.com Git - nano25519.git/log
Chris Duncan [Thu, 27 Aug 2026 23:53:29 +0000 (16:53 -0700)]
Stage cofactorless strict verification for later when test vectors are available.
Chris Duncan [Thu, 27 Aug 2026 23:50:57 +0000 (16:50 -0700)]
Relax verify for donna.
Chris Duncan [Thu, 27 Aug 2026 17:06:12 +0000 (10:06 -0700)]
Fix shadowed loop counter.
Chris Duncan [Thu, 27 Aug 2026 17:02:06 +0000 (10:02 -0700)]
Fix max sign/verify message bytelength.
Chris Duncan [Thu, 27 Aug 2026 16:04:41 +0000 (09:04 -0700)]
Refactor I/O buffers to separate per primitive. Reduce bulk block verification size, see src/assembly/index.ts > verify_blocks for more info.
Chris Duncan [Thu, 27 Aug 2026 14:44:15 +0000 (07:44 -0700)]
Test bulk speed improvement with random inputs instead of repeated.
Chris Duncan [Thu, 27 Aug 2026 14:25:14 +0000 (07:25 -0700)]
Reverse hash and signature order to match libsodium convention for combined mode.
Chris Duncan [Thu, 27 Aug 2026 14:15:28 +0000 (07:15 -0700)]
Adjust names and sort order.
Chris Duncan [Thu, 27 Aug 2026 13:53:50 +0000 (06:53 -0700)]
Merge local buffers since execution is all synchronous.
Chris Duncan [Thu, 27 Aug 2026 13:47:47 +0000 (06:47 -0700)]
Clear output buffer and locals prior to execution.
Chris Duncan [Thu, 27 Aug 2026 07:21:31 +0000 (00:21 -0700)]
Delete unused local buffer.
Chris Duncan [Thu, 27 Aug 2026 07:05:15 +0000 (00:05 -0700)]
Compute output buffer size instead of defining.
Chris Duncan [Thu, 27 Aug 2026 07:01:08 +0000 (00:01 -0700)]
Fix exit code treated as Boolean.
Chris Duncan [Thu, 27 Aug 2026 06:53:44 +0000 (23:53 -0700)]
Fix missing cast.
Chris Duncan [Thu, 27 Aug 2026 06:52:10 +0000 (23:52 -0700)]
Fix object that is not a pointer.
Chris Duncan [Thu, 27 Aug 2026 06:48:54 +0000 (23:48 -0700)]
Write verification results directly to output buffer.
Chris Duncan [Thu, 27 Aug 2026 06:44:06 +0000 (23:44 -0700)]
Fix missing parenthesis.
Chris Duncan [Thu, 27 Aug 2026 06:42:27 +0000 (23:42 -0700)]
Skip bulk block verification entirely if public key is invalid.
Chris Duncan [Thu, 27 Aug 2026 04:56:13 +0000 (21:56 -0700)]
Max out message buffer by allowing 341 blocks instead of 256.
Chris Duncan [Thu, 27 Aug 2026 04:53:41 +0000 (21:53 -0700)]
Extract verification speed test so that blocks can be constructed prior to timing.
Chris Duncan [Thu, 27 Aug 2026 04:52:28 +0000 (21:52 -0700)]
Pass max blocks dynamically.
Chris Duncan [Thu, 27 Aug 2026 04:24:39 +0000 (21:24 -0700)]
Add option to check bulk verification on speed test page.
Chris Duncan [Thu, 27 Aug 2026 04:13:31 +0000 (21:13 -0700)]
Split up error messaging for bulk block verification and add unit tests.
Chris Duncan [Thu, 27 Aug 2026 03:54:28 +0000 (20:54 -0700)]
Fix prematurely cleared local buffer.
Chris Duncan [Thu, 27 Aug 2026 03:38:04 +0000 (20:38 -0700)]
Simplify array access.
Chris Duncan [Thu, 27 Aug 2026 03:24:57 +0000 (20:24 -0700)]
Pad fe constants to align with all other FieldElement instances of length 12.
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.