From f9b9521bf07ffece22b24ac02ae4261e3d8b3c50 Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Sun, 17 Mar 2024 10:39:10 +0900 Subject: [PATCH] core/crypto/_fiat/field_curve25519: Use multiply to calculate the mask Largely for consistency with the generic code, either is valid with Odin semantics, but this is easier to comprehend. --- core/crypto/_fiat/field_curve25519/field51.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/crypto/_fiat/field_curve25519/field51.odin b/core/crypto/_fiat/field_curve25519/field51.odin index 0be94eb51..1a731b31b 100644 --- a/core/crypto/_fiat/field_curve25519/field51.odin +++ b/core/crypto/_fiat/field_curve25519/field51.odin @@ -599,7 +599,7 @@ fe_set :: proc "contextless" (out1, arg1: ^Tight_Field_Element) { @(optimization_mode="none") fe_cond_swap :: #force_no_inline proc "contextless" (out1, out2: ^Tight_Field_Element, arg1: int) { - mask := -u64(arg1) + mask := (u64(arg1) * 0xffffffffffffffff) x := (out1[0] ~ out2[0]) & mask x1, y1 := out1[0] ~ x, out2[0] ~ x x = (out1[1] ~ out2[1]) & mask