[−][src]Trait subtle::ConstantTimeEq
An Eq-like trait that produces a Choice instead of a bool.
Example
use subtle::ConstantTimeEq; let x: u8 = 5; let y: u8 = 13; assert_eq!(x.ct_eq(&y).unwrap_u8(), 0); assert_eq!(x.ct_eq(&x).unwrap_u8(), 1);
Required methods
fn ct_eq(&self, other: &Self) -> Choice[−]
Determine if two items are equal.
The ct_eq function should execute in constant time.
Returns
Choice(1u8)ifself == other;Choice(0u8)ifself != other.
Implementations on Foreign Types
impl<T: ConstantTimeEq> ConstantTimeEq for [T][src][−]
fn ct_eq(&self, _rhs: &[T]) -> Choice[src][−]
Check whether two slices of ConstantTimeEq types are equal.
Note
This function short-circuits if the lengths of the input slices are different. Otherwise, it should execute in time independent of the slice contents.
Since arrays coerce to slices, this function works with fixed-size arrays:
let a: [u8; 8] = [0,1,2,3,4,5,6,7]; let b: [u8; 8] = [0,1,2,3,0,1,2,3]; let a_eq_a = a.ct_eq(&a); let a_eq_b = a.ct_eq(&b); assert_eq!(a_eq_a.unwrap_u8(), 1); assert_eq!(a_eq_b.unwrap_u8(), 0);
impl ConstantTimeEq for u8[src][−]
impl ConstantTimeEq for i8[src][−]
impl ConstantTimeEq for u16[src][−]
impl ConstantTimeEq for i16[src][−]
impl ConstantTimeEq for u32[src][−]
impl ConstantTimeEq for i32[src][−]
impl ConstantTimeEq for u64[src][−]
impl ConstantTimeEq for i64[src][−]
impl ConstantTimeEq for usize[src][−]
impl ConstantTimeEq for isize[src][−]
Implementors
impl<T: ConstantTimeEq> ConstantTimeEq for CtOption<T>[src][+]
impl<N> ConstantTimeEq for MacResult<N> where
N: ArrayLength<u8>,
impl<N> ConstantTimeEq for MacResult<N> where
N: ArrayLength<u8>, impl ConstantTimeEq for Scalar
impl ConstantTimeEq for Scalarimpl ConstantTimeEq for MontgomeryPoint
impl ConstantTimeEq for MontgomeryPointimpl ConstantTimeEq for CompressedEdwardsY
impl ConstantTimeEq for CompressedEdwardsYimpl ConstantTimeEq for EdwardsPoint
impl ConstantTimeEq for EdwardsPointimpl ConstantTimeEq for CompressedRistretto
impl ConstantTimeEq for CompressedRistrettoimpl ConstantTimeEq for RistrettoPoint
impl ConstantTimeEq for RistrettoPointimpl ConstantTimeEq for MiniSecretKey
impl ConstantTimeEq for MiniSecretKeyimpl ConstantTimeEq for SecretKey
impl ConstantTimeEq for SecretKey