]> git.codecow.com Git - nano25519.git/commitdiff
Clear buffers on message length error.
authorChris Duncan <chris@zoso.dev>
Sat, 22 Aug 2026 06:18:29 +0000 (23:18 -0700)
committerChris Duncan <chris@zoso.dev>
Sat, 22 Aug 2026 06:18:29 +0000 (23:18 -0700)
src/assembly/index.ts

index 8d1c8d0d48494a2fd97584de50ab02d649980015..38f8250a637dba2b85de0779e35ebf74a1ef9ee7 100644 (file)
@@ -79,7 +79,11 @@ const sign_sig = new StaticArray<u8>(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<u8>(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)