tlslite.utils.constanttime module¶
Various constant time functions for processing sensitive data
- tlslite.utils.constanttime.ct_check_cbc_mac_and_pad(data, mac, seqnumBytes, contentType, version)¶
Check CBC cipher HMAC and padding. Close to constant time.
- Parameters:
data (bytearray) – data with HMAC value to test and padding
mac (hashlib mac) – empty HMAC, initialised with a key
seqnumBytes (bytearray) – TLS sequence number, used as input to HMAC
contentType (int) – a single byte, used as input to HMAC
version (tuple of int) – a tuple of two ints, used as input to HMAC and to guide checking of padding
- Return type:
boolean
- Returns:
True if MAC and pad is ok, False otherwise
- tlslite.utils.constanttime.ct_eq_u32(val_a, val_b)¶
Return 1 if val_a == val_b, 0 otherwise. Constant time.
- Parameters:
val_a (int) – an unsigned integer representable as a 32 bit value
val_b (int) – an unsigned integer representable as a 32 bit value
- Return type:
int
- tlslite.utils.constanttime.ct_gt_u32(val_a, val_b)¶
Return 1 if val_a > val_b, 0 otherwise. Constant time.
- Parameters:
val_a (int) – an unsigned integer representable as a 32 bit value
val_b (int) – an unsigned integer representable as a 32 bit value
- Return type:
int
- tlslite.utils.constanttime.ct_isnonzero_u32(val)¶
Returns 1 if val is != 0, 0 otherwise. Constant time.
- Parameters:
val (int) – an unsigned integer representable as a 32 bit value
- Return type:
int
- tlslite.utils.constanttime.ct_le_u32(val_a, val_b)¶
Return 1 if val_a <= val_b, 0 otherwise. Constant time.
- Parameters:
val_a (int) – an unsigned integer representable as a 32 bit value
val_b (int) – an unsigned integer representable as a 32 bit value
- Return type:
int
- tlslite.utils.constanttime.ct_lsb_prop_u8(val)¶
Propagate LSB to all 8 bits of the returned byte. Constant time.
- tlslite.utils.constanttime.ct_lt_u32(val_a, val_b)¶
Returns 1 if val_a < val_b, 0 otherwise. Constant time.
- Parameters:
val_a (int) – an unsigned integer representable as a 32 bit value
val_b (int) – an unsigned integer representable as a 32 bit value
- Return type:
int
- tlslite.utils.constanttime.ct_neq_u32(val_a, val_b)¶
Return 1 if val_a != val_b, 0 otherwise. Constant time.
- Parameters:
val_a (int) – an unsigned integer representable as a 32 bit value
val_b (int) – an unsigned integer representable as a 32 bit value
- Return type:
int