From: Chris Duncan Date: Sun, 16 Aug 2026 05:54:12 +0000 (-0700) Subject: Fix similar issue with asc bit shift operand masking when checking canonicity. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=d07fc5489756a4430c05ee2af62097b0bc5bb243;p=nano25519.git Fix similar issue with asc bit shift operand masking when checking canonicity. --- diff --git a/src/assembly/ge.ts b/src/assembly/ge.ts index c82639f..c9e4c58 100644 --- a/src/assembly/ge.ts +++ b/src/assembly/ge.ts @@ -169,13 +169,13 @@ export function ge_has_small_order (p: ge_p3): i32 { * true if `s < p` */ export function ge_is_canonical (s: StaticArray): u8 { - let c: u8 = (s[31] & 0x7f) ^ 0x7f + let c: i32 = (s[31] & 0x7f) ^ 0x7f for (let i = 30; i > 0; i--) { c |= s[i] ^ 0xff } c = (c - 1) >> 8 - const d: u8 = (0xec - s[0]) >> 8 - return 1 - (c & d & 1) + const d: i32 = (0xec - s[0]) >> 8 + return u8(1 - (c & d & 1)) } const ge_scalarmult_base_e: StaticArray = new StaticArray(64)