buildHeader static method
Builds the header bytes for the given values.
Implementation
static Uint8List buildHeader({
required int version,
required int keyId,
required String label,
required Uint8List iv,
}) {
final labelBytes = utf8.encode(label);
if (labelBytes.length > maxLabelLength) {
throw ArgumentError.value(
label,
'label',
'must encode to at most $maxLabelLength UTF-8 bytes',
);
}
final header =
Uint8List(fixedHeaderLength + labelBytes.length + ivLength);
header.setAll(0, magic);
header[4] = version;
header[5] = (keyId >> 8) & 0xFF;
header[6] = keyId & 0xFF;
header[7] = labelBytes.length;
header.setAll(fixedHeaderLength, labelBytes);
header.setAll(fixedHeaderLength + labelBytes.length, iv);
return header;
}