Module memcmp

Module memcmp 

Available on (crate features rustls or boring or acme) and crate feature boring only.
Expand description

Utilities to safely compare cryptographic values.

Extra care must be taken when comparing values in cryptographic code. If done incorrectly, it can lead to a timing attack. By analyzing the time taken to execute parts of a cryptographic algorithm, and attacker can attempt to compromise the cryptosystem.

The utilities in this module are designed to be resistant to this type of attack.

§Examples

To perform a constant-time comparison of two arrays of the same length but different values:

use rama_boring::memcmp::eq;

// We want to compare `a` to `b` and `c`, without giving
// away through timing analysis that `c` is more similar to `a`
// than `b`.
let a = [0, 0, 0];
let b = [1, 1, 1];
let c = [0, 0, 1];

// These statements will execute in the same amount of time.
assert!(!eq(&a, &b));
assert!(!eq(&a, &c));

Functions§

eq
Returns true iff a and b contain the same bytes.