bytesIncrementBigEndian function
Interprets the bytes a big endian integer and increments them by int.
This can be useful for incrementing a nonce.
Example
import 'package:cryptography/helpers.dart';
void main() {
final bytes = [0,2,255];
bytesIncrementBigEndian(bytes, 5);
// bytes become [0,3,4]
}
Implementation
void bytesIncrementBigEndian(Uint8List bytes, int n) {
if (n < 0) {
throw ArgumentError.value(n, 'n');
}
for (var i = bytes.length - 1; n != 0 && i >= 0; i--) {
final tmp = bytes[i] + n;
bytes[i] = 0xFF & tmp;
// Carry
n = tmp ~/ 0x100;
}
}