init method

void init()

Implementation

void init() {
  if (_chainValue == null) {
    _chainValue = Register64List(8);
    _chainValue![0]
      ..set(_blake2bIV[0])
      ..xor(Register64(digestSize | (_keyLength << 8) | 0x1010000));
    _chainValue![1].set(_blake2bIV[1]);
    _chainValue![2].set(_blake2bIV[2]);

    _chainValue![3].set(_blake2bIV[3]);

    _chainValue![4].set(_blake2bIV[4]);
    _chainValue![5].set(_blake2bIV[5]);
    if (_salt != null) {
      _chainValue![4].xor(Register64()..unpack(_salt, 0, Endian.little));
      _chainValue![5].xor(Register64()..unpack(_salt, 8, Endian.little));
    }

    _chainValue![6].set(_blake2bIV[6]);
    _chainValue![7].set(_blake2bIV[7]);
    if (_personalization != null) {
      _chainValue![6]
          .xor(Register64()..unpack(_personalization, 0, Endian.little));
      _chainValue![7]
          .xor(Register64()..unpack(_personalization, 8, Endian.little));
    }
  }
}