BlowfishECB constructor
BlowfishECB(
- Uint8List key
Creates an instance of the codec initialized with the given key
.
Implementation
BlowfishECB(Uint8List key) {
final keyLength = key.length;
if (keyLength > 56) {
throw FormatException('Max key length is 448 bits (56 bytes)', key);
}
var j = 0;
for (var i = 0; i < _p.length; ++i) {
var data = 0;
for (var k = 0; k < 4; ++k) {
data = ((data << 8) & 0xffffffff) | key[j];
++j;
if (j >= keyLength) j = 0;
}
_p[i] ^= data;
}
final data = Uint8List(8);
for (var i = 0; i < _p.length; i += 2) {
BlowfishECBEncoder.encryptBlock(data, 0, _p, _s);
_p[i] = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3];
_p[i + 1] = (data[4] << 24) + (data[5] << 16) + (data[6] << 8) + data[7];
}
for (var i = 0; i < 4; ++i) {
for (var j = 0; j < 256; j += 2) {
BlowfishECBEncoder.encryptBlock(data, 0, _p, _s);
_s[i][j] = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3];
_s[i][j + 1] =
(data[4] << 24) + (data[5] << 16) + (data[6] << 8) + data[7];
}
}
}