commit fd0bc00ecdd659696372384992feb4db399c517e
parent 3441bf0d8798ecbf4af7e0d21afdc5d10579c52b
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 20 Dec 2025 15:35:30 -0330
lib: remove 'ct' prefix
Diffstat:
5 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/lib/Data/Choice.hs b/lib/Data/Choice.hs
@@ -46,14 +46,14 @@ module Data.Choice (
, eq#
-- * Constant-time Selection
- , ct_select_word#
- , ct_select_wide#
- , ct_select_wider#
+ , select_word#
+ , select_wide#
+ , select_wider#
-- * Constant-time Equality
- , ct_eq_word#
- , ct_eq_wide#
- , ct_eq_wider#
+ , eq_word#
+ , eq_wide#
+ , eq_wider#
) where
import qualified Data.Bits as B
@@ -280,63 +280,63 @@ eq# c0 c1 = not# (ne# c0 c1)
-- constant-time selection ----------------------------------------------------
-ct_select_word# :: Word# -> Word# -> Choice -> Word#
-ct_select_word# a b (Choice c) = Exts.xor# a (Exts.and# c (Exts.xor# a b))
-{-# INLINE ct_select_word# #-}
+select_word# :: Word# -> Word# -> Choice -> Word#
+select_word# a b (Choice c) = Exts.xor# a (Exts.and# c (Exts.xor# a b))
+{-# INLINE select_word# #-}
-ct_select_wide#
+select_wide#
:: (# Word#, Word# #)
-> (# Word#, Word# #)
-> Choice
-> (# Word#, Word# #)
-ct_select_wide# a b (Choice w) =
+select_wide# a b (Choice w) =
let !mask = or_w# (hi# w) (lo# w)
in xor_w# a (and_w# mask (xor_w# a b))
-{-# INLINE ct_select_wide# #-}
+{-# INLINE select_wide# #-}
-ct_select_wider#
+select_wider#
:: (# Word#, Word#, Word#, Word# #)
-> (# Word#, Word#, Word#, Word# #)
-> Choice
-> (# Word#, Word#, Word#, Word# #)
-ct_select_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) (Choice w) =
+select_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) (Choice w) =
let !w0 = Exts.xor# a0 (Exts.and# w (Exts.xor# a0 b0))
!w1 = Exts.xor# a1 (Exts.and# w (Exts.xor# a1 b1))
!w2 = Exts.xor# a2 (Exts.and# w (Exts.xor# a2 b2))
!w3 = Exts.xor# a3 (Exts.and# w (Exts.xor# a3 b3))
in (# w0, w1, w2, w3 #)
-{-# INLINE ct_select_wider# #-}
+{-# INLINE select_wider# #-}
-- constant-time equality -----------------------------------------------------
-ct_eq_word# :: Word# -> Word# -> Choice
-ct_eq_word# a b =
+eq_word# :: Word# -> Word# -> Choice
+eq_word# a b =
let !s = case B.finiteBitSize (0 :: Word) of I# m -> m Exts.-# 1#
!x = Exts.xor# a b
!y = Exts.uncheckedShiftRL# (Exts.or# x (wrapping_neg# x)) s
in Choice (Exts.xor# y 1##)
-{-# INLINE ct_eq_word# #-}
+{-# INLINE eq_word# #-}
-ct_eq_wide#
+eq_wide#
:: (# Word#, Word# #)
-> (# Word#, Word# #)
-> Choice
-ct_eq_wide# (# a0, a1 #) (# b0, b1 #) =
+eq_wide# (# a0, a1 #) (# b0, b1 #) =
let !s = case B.finiteBitSize (0 :: Word) of I# m -> m Exts.-# 1#
!x = Exts.or# (Exts.xor# a0 b0) (Exts.xor# a1 b1)
!y = Exts.uncheckedShiftRL# (Exts.or# x (wrapping_neg# x)) s
in Choice (Exts.xor# y 1##)
-{-# INLINE ct_eq_wide# #-}
+{-# INLINE eq_wide# #-}
-ct_eq_wider#
+eq_wider#
:: (# Word#, Word#, Word#, Word# #)
-> (# Word#, Word#, Word#, Word# #)
-> Choice
-ct_eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) =
+eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) =
let !s = case B.finiteBitSize (0 :: Word) of I# m -> m Exts.-# 1#
!x = Exts.or# (Exts.or# (Exts.xor# a0 b0) (Exts.xor# a1 b1))
(Exts.or# (Exts.xor# a2 b2) (Exts.xor# a3 b3))
!y = Exts.uncheckedShiftRL# (Exts.or# x (wrapping_neg# x)) s
in Choice (Exts.xor# y 1##)
-{-# INLINE ct_eq_wider# #-}
+{-# INLINE eq_wider# #-}
diff --git a/lib/Data/Word/Limb.hs b/lib/Data/Word/Limb.hs
@@ -83,7 +83,7 @@ eq#
:: Limb
-> Limb
-> C.Choice
-eq# (Limb a) (Limb b) = C.ct_eq_word# a b
+eq# (Limb a) (Limb b) = C.eq_word# a b
{-# INLINE eq# #-}
eq_vartime#
@@ -139,7 +139,7 @@ select#
-> Limb -- ^ b
-> C.Choice -- ^ c
-> Limb -- ^ result
-select# (Limb a) (Limb b) c = Limb (C.ct_select_word# a b c)
+select# (Limb a) (Limb b) c = Limb (C.select_word# a b c)
{-# INLINE select# #-}
-- | Return (# b, a #) if c is truthy, otherwise return (# a, b #).
@@ -149,8 +149,8 @@ cswap#
-> C.Choice -- ^ c
-> (# Limb, Limb #) -- ^ result
cswap# (Limb a) (Limb b) c =
- let !l = C.ct_select_word# a b c
- !r = C.ct_select_word# b a c
+ let !l = C.select_word# a b c
+ !r = C.select_word# b a c
in (# Limb l, Limb r #)
{-# INLINE cswap# #-}
diff --git a/lib/Data/Word/Wider.hs b/lib/Data/Word/Wider.hs
@@ -132,7 +132,7 @@ eq#
eq# a b =
let !(# Limb a0, Limb a1, Limb a2, Limb a3 #) = a
!(# Limb b0, Limb b1, Limb b2, Limb b3 #) = b
- in C.ct_eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
+ in C.eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
{-# INLINE eq# #-}
-- | Compare 'Wider' words for equality in variable time.
@@ -249,7 +249,7 @@ select# a b c =
let !(# Limb a0, Limb a1, Limb a2, Limb a3 #) = a
!(# Limb b0, Limb b1, Limb b2, Limb b3 #) = b
!(# w0, w1, w2, w3 #) =
- C.ct_select_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) c
+ C.select_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #) c
in (# Limb w0, Limb w1, Limb w2, Limb w3 #)
{-# INLINE select# #-}
diff --git a/lib/Numeric/Montgomery/Secp256k1/Curve.hs b/lib/Numeric/Montgomery/Secp256k1/Curve.hs
@@ -133,7 +133,7 @@ eq :: Montgomery -> Montgomery -> C.Choice
eq
(Montgomery (# Limb a0, Limb a1, Limb a2, Limb a3 #))
(Montgomery (# Limb b0, Limb b1, Limb b2, Limb b3 #))
- = C.ct_eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
+ = C.eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
{-# INLINE eq #-}
-- | Variable-time equality comparison.
diff --git a/lib/Numeric/Montgomery/Secp256k1/Scalar.hs b/lib/Numeric/Montgomery/Secp256k1/Scalar.hs
@@ -131,7 +131,7 @@ eq :: Montgomery -> Montgomery -> C.Choice
eq
(Montgomery (# Limb a0, Limb a1, Limb a2, Limb a3 #))
(Montgomery (# Limb b0, Limb b1, Limb b2, Limb b3 #))
- = C.ct_eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
+ = C.eq_wider# (# a0, a1, a2, a3 #) (# b0, b1, b2, b3 #)
{-# INLINE eq #-}
-- | Variable-time equality comparison.