]> git.codecow.com Git - nano25519.git/commitdiff
Use primordials to create and set bytes.
authorChris Duncan <chris@codecow.com>
Sat, 26 Sep 2026 16:18:53 +0000 (09:18 -0700)
committerChris Duncan <chris@codecow.com>
Sat, 26 Sep 2026 16:18:53 +0000 (09:18 -0700)
src/lib/verify.ts

index b31f61e350af61495d2d668c5ba5953b444158df..a0b9aed9509eb62b043d395be9b7f5739a32fa90 100644 (file)
@@ -1,7 +1,7 @@
 //! SPDX-FileCopyrightText: 2026 Chris Duncan <chris@codecow.com>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { byteLength, isArray, normalize } from './primordials'
+import { allocate, byteLength, copy, isArray, normalize } from './primordials'
 import { Mutex, clearMemory, constants, getOutput, setInput, verify as wasm_verify, verify_blocks as wasm_verify_blocks, } from './wasm'
 
 const { BLOCKHASH_BYTELENGTH, KEY_BYTELENGTH, MAX_MESSAGE_BYTELENGTH, MAX_VERIFY_BLOCKS, SIGNATURE_BYTELENGTH, } = constants
@@ -37,7 +37,7 @@ export function verify_blocks (pub: unknown, data: unknown): boolean[] {
        try {
                const publicKey = normalize('public key', KEY_BYTELENGTH, KEY_BYTELENGTH, pub)
                setInput('pub', publicKey)
-               const message = new Uint8Array(count * (SIGNATURE_BYTELENGTH + BLOCKHASH_BYTELENGTH))
+               const message = allocate(count * (SIGNATURE_BYTELENGTH + BLOCKHASH_BYTELENGTH))
                for (let b = 0; b < count; b++) {
                        const block = blocks[b]
                        if (block == null || typeof block !== 'object') {
@@ -52,8 +52,8 @@ export function verify_blocks (pub: unknown, data: unknown): boolean[] {
                        const signature = normalize('signature', SIGNATURE_BYTELENGTH, SIGNATURE_BYTELENGTH, block.signature)
                        const hash = normalize('hash', BLOCKHASH_BYTELENGTH, BLOCKHASH_BYTELENGTH, block.hash)
                        const offset = b * (SIGNATURE_BYTELENGTH + BLOCKHASH_BYTELENGTH)
-                       message.set(signature, offset)
-                       message.set(hash, offset + SIGNATURE_BYTELENGTH)
+                       copy(message, signature, offset)
+                       copy(message, hash, offset + SIGNATURE_BYTELENGTH)
                }
                setInput('msg', message)
                wasm_verify_blocks(count)