From a9b6007768d5806c35bca3d5c8c5956f6c0fdc67 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sat, 15 Aug 2026 22:48:43 -0700 Subject: [PATCH] Fix constant time zero check that was incorrect due to AssemblyScript shift operand masking. --- src/assembly/utils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/assembly/utils.ts b/src/assembly/utils.ts index dee20aa..13c5357 100644 --- a/src/assembly/utils.ts +++ b/src/assembly/utils.ts @@ -37,9 +37,10 @@ export function negative (b: i8): u8 { //@ts-expect-error @inline export function sodium_is_zero (n: StaticArray, nlen: i32): u8 { - let d: u8 = 0 + let d: i32 = 0 for (let i: i32 = 0; i < nlen; i++) { d |= n[i] } - return 1 & ((d - 1) >> 8) + d &= 255 + return u8(((d - 1) >> 8) & 1) } -- 2.52.0