Function etebase::utils::memcmp

source ·
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"));