]> git.codecow.com Git - nano25519.git/commitdiff
Use constant for output buffer size.
authorChris Duncan <chris@zoso.dev>
Wed, 26 Aug 2026 08:31:58 +0000 (01:31 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 26 Aug 2026 08:31:58 +0000 (01:31 -0700)
src/assembly/index.ts
src/lib/verify.ts

index ce0b2880afc277210412861ebac44b98a42ed9b6..89cfc553a77fe7bf889aad6da6f266d519e89405 100644 (file)
@@ -12,7 +12,7 @@ export const SIGNATURE_BYTELENGTH: i32 = 64
 export const MESSAGE_BUFFER_BYTELENGTH: i32 = BLOCKHASH_BYTELENGTH << 10
 export const PRV_BUFFER_BYTELENGTH: i32 = KEY_BYTELENGTH
 export const PUB_BUFFER_BYTELENGTH: i32 = KEY_BYTELENGTH
-export const OUTPUT_BUFFER_BYTELENGTH: i32 = 1 << 10
+export const OUTPUT_BUFFER_BYTELENGTH: i32 = 256
 export const SIGNATURE_BUFFER_BYTELENGTH: i32 = SIGNATURE_BYTELENGTH
 
 // Static I/O buffers
@@ -166,7 +166,7 @@ export function verify (mlen: i32): void {
 const verify_blocks_msg = new StaticArray<u8>(BLOCKHASH_BYTELENGTH)
 const verify_blocks_pub = new StaticArray<u8>(KEY_BYTELENGTH)
 const verify_blocks_sig = new StaticArray<u8>(SIGNATURE_BYTELENGTH)
-const verify_blocks_out = new StaticArray<u8>(256)
+const verify_blocks_out = new StaticArray<u8>(OUTPUT_BUFFER_BYTELENGTH)
 /**
  * Verify a 64-byte detached signature for a 32-byte Nano block hash against a
  * 32-byte public key. Input parameters are read as bytes from separate buffers.
@@ -181,11 +181,11 @@ const verify_blocks_out = new StaticArray<u8>(256)
  * @param {i32} count Number of signatures to verify, up to 256
  */
 export function verify_blocks (count: i32): void {
-       if (count < 0 || count > 256) {
+       if (count < 1 || OUTPUT_BUFFER_BYTELENGTH < count) {
                PRV_BUFFER.fill(0)
                PUB_BUFFER.fill(0)
                MESSAGE_BUFFER.fill(0)
-               throw new Error('invalid message length')
+               throw new Error('invalid block count')
        }
 
        // Clear local buffers
index fb51cf9dc95ae6346851ed4005de4b3c20c7478d..cc1984e468d9a1bf01d655a1b7ad9cb582b49cc4 100644 (file)
@@ -1,7 +1,7 @@
 //! SPDX-FileCopyrightText: 2026 Chris Duncan <chris@codecow.com>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { BLK_LEN, KEY_LEN, MSG_BUF_LEN, MSG_PTR, OUT_PTR, PUB_PTR, SIG_LEN, SIG_PTR, clear, exports, normalize } from './wasm'
+import { BLK_LEN, KEY_LEN, MSG_BUF_LEN, MSG_PTR, OUT_BUF_LEN, OUT_PTR, PUB_PTR, SIG_LEN, SIG_PTR, clear, exports, normalize } from './wasm'
 
 export function verify (sig: unknown, msg: unknown, pub: unknown): boolean {
        let buffer = new Uint8Array(exports.memory.buffer)
@@ -33,7 +33,7 @@ export function verify_blocks (pub: unknown, data: unknown): boolean[] {
        if (count < 1) {
                throw new RangeError('Must pass at least one block', { cause: data })
        }
-       if (256 < count) {
+       if (OUT_BUF_LEN < count) {
                throw new RangeError('Bulk Nano block verification must be no more than 256 blocks', { cause: data })
        }
        const verified = new Uint8Array(count)