padBlock method
Pads a single block
Implementation
void padBlock(int blockSize, Iterable<int> block, ByteData output) {
if (output.lengthInBytes != blockSize) {
throw Exception('Invalid buffer size');
}
if (block.length > blockSize - 11) {
throw Exception('block too long');
}
output.setUint8(0, 0);
output.setUint8(1, 2);
int i = 2;
final psLen = blockSize - block.length - 3;
for (int j = 0; j < psLen; j++) {
int r = rand.nextInt(256);
while (r == 0) {
r = rand.nextInt(256);
}
output.setUint8(i++, r);
}
output.setUint8(i++, 0);
for (int byte in block) {
output.setUint8(i++, byte);
}
}