From ca7972adce2224bdff6d1e07629512705ae71c64 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 21 Aug 2026 23:18:29 -0700 Subject: [PATCH] Clear buffers on message length error. --- src/assembly/index.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/assembly/index.ts b/src/assembly/index.ts index 8d1c8d0..38f8250 100644 --- a/src/assembly/index.ts +++ b/src/assembly/index.ts @@ -79,7 +79,11 @@ const sign_sig = new StaticArray(SIGNATURE_BYTES) * @param {i32} mlen Byte length of message to be signed, up to 32768 */ export function sign (mlen: i32): void { - if (mlen < 0 || mlen > MESSAGE_BUFFER_BYTES) throw new Error() + if (mlen < 0 || mlen > MESSAGE_BUFFER_BYTES) { + INPUT_BUFFER.fill(0) + MESSAGE_BUFFER.fill(0) + throw new Error('invalid message length') + } // Clear local buffers sign_msg.fill(0) @@ -126,7 +130,11 @@ const verify_sig = new StaticArray(SIGNATURE_BYTES) * @returns {boolean} True if message was signed by public key's private key */ export function verify (mlen: i32): i32 { - if (mlen < 0 || mlen > MESSAGE_BUFFER_BYTES) throw new Error('invalid message length') + if (mlen < 0 || mlen > MESSAGE_BUFFER_BYTES) { + INPUT_BUFFER.fill(0) + MESSAGE_BUFFER.fill(0) + throw new Error('invalid message length') + } // Clear local buffers verify_msg.fill(0) -- 2.52.0