From: Chris Duncan Date: Sat, 22 Aug 2026 06:18:29 +0000 (-0700) Subject: Clear buffers on message length error. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=ca7972adce2224bdff6d1e07629512705ae71c64;p=nano25519.git Clear buffers on message length error. --- 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)