pub fn memcmp(x: &[u8], y: &[u8]) -> bool
Expand description
A constant-time comparison function. Returns true
if x
and y
are equal.
Use this when comparing secret data in order to prevent side-channel attacks.
Examples
use etebase::utils::memcmp;
fn validate_password(input: &[u8]) -> Result<(), ()> {
let password = b"hunter2";
if memcmp(input, password) {
Ok(())
} else {
Err(())
}
}
assert_eq!(Err(()), validate_password(b"letmein"));
assert_eq!(Err(()), validate_password(b""));
assert_eq!(Ok(()), validate_password(b"hunter2"));