blob: bdf965b58c276a8224123145da6aef4c8b21a474 [file] [log] [blame] [edit]
// See file LICENSE for more information.
import 'dart:typed_data';
///
/// Constant time XOR, use to replace if (condition) { xor(x,y);}
/// CT_xor, x <- x ^ y when b is true
/// asserts x length and y length are equal
///
void CT_xor(Uint8List x, Uint8List y, bool b) {
assert(x.length == y.length, 'x length and y length must be same');
var mask = b ? 0xFF : 0; // (-b) & 0xFF;
for (var i = 0; i < x.length; i++) {
x[i] = x[i] ^ (y[i] & mask);
}
}