hmacEqual function

bool hmacEqual(
  1. List<int> a,
  2. List<int> b
)

Compara dois HMACs em tempo constante para evitar ataques de timing.

Equivalente ao constantTimeCompare do ChaCha20, mas dedicado a MACs.

Implementation

bool hmacEqual(List<int> a, List<int> b) {
  if (a.length != b.length) return false;
  int diff = 0;
  for (int i = 0; i < a.length; i++) {
    diff |= a[i] ^ b[i];
  }
  return diff == 0;
}