Poly1305 constructor

Poly1305(
  1. Uint8List key
)

Implementation

Poly1305(Uint8List key) {
  final t0 = key[0] | key[1] << 8,
      t1 = key[2] | key[3] << 8,
      t2 = key[4] | key[5] << 8,
      t3 = key[6] | key[7] << 8,
      t4 = key[8] | key[9] << 8,
      t5 = key[10] | key[11] << 8,
      t6 = key[12] | key[13] << 8,
      t7 = key[14] | key[15] << 8;

  _r[0] = t0 & 0x1fff;
  _r[1] = ((t0 >> 13) | (t1 << 3)) & 0x1fff;
  _r[2] = ((t1 >> 10) | (t2 << 6)) & 0x1f03;
  _r[3] = ((t2 >> 7) | (t3 << 9)) & 0x1fff;
  _r[4] = ((t3 >> 4) | (t4 << 12)) & 0x00ff;
  _r[5] = (t4 >> 1) & 0x1ffe;
  _r[6] = ((t4 >> 14) | (t5 << 2)) & 0x1fff;
  _r[7] = ((t5 >> 11) | (t6 << 5)) & 0x1f81;
  _r[8] = ((t6 >> 8) | (t7 << 8)) & 0x1fff;
  _r[9] = (t7 >> 5) & 0x007f;

  _pad[0] = key[16] | key[17] << 8;
  _pad[1] = key[18] | key[19] << 8;
  _pad[2] = key[20] | key[21] << 8;
  _pad[3] = key[22] | key[23] << 8;
  _pad[4] = key[24] | key[25] << 8;
  _pad[5] = key[26] | key[27] << 8;
  _pad[6] = key[28] | key[29] << 8;
  _pad[7] = key[30] | key[31] << 8;
}