makePassword method

Uint32List makePassword(
  1. List<int> password
)

Make the 72-byte long password using version-specific strategy.

Implementation

Uint32List makePassword(List<int> password) {
  int i, j;
  var long32 = Uint32List(18);
  var long = Uint8List.view(long32.buffer);
  var pass8 = Uint8List.fromList(password);
  for (i = 0; i < 72 && i < pass8.length; i++) {
    long[i] = pass8[i];
  }
  if (i < 72) {
    long[i++] = 0;
  }
  for (j = 0; i < 72; i++, j++) {
    long[i] = long[j];
  }
  for (i = 0; i < 18; ++i) {
    j = long32[i];
    j = ((j << 24) & 0xff000000) |
        ((j << 8) & 0x00ff0000) |
        ((j >>> 8) & 0x0000ff00) |
        ((j >>> 24) & 0x000000ff);
    long32[i] = j;
  }
  return long32;
}