0x59, 0xa6, 0x74, 0xd2, 0xe6, 0xf4, 0xb4, 0xc0,
0xd1, 0x66, 0xaf, 0xc2, 0x39, 0x4b, 0x63, 0xb6,
}
- tau [64]int = [64]int{
- 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38,
- 0x01, 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39,
- 0x02, 0x0a, 0x12, 0x1a, 0x22, 0x2a, 0x32, 0x3a,
- 0x03, 0x0b, 0x13, 0x1b, 0x23, 0x2b, 0x33, 0x3b,
- 0x04, 0x0c, 0x14, 0x1c, 0x24, 0x2c, 0x34, 0x3c,
- 0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d,
- 0x06, 0x0e, 0x16, 0x1e, 0x26, 0x2e, 0x36, 0x3e,
- 0x07, 0x0f, 0x17, 0x1f, 0x27, 0x2f, 0x37, 0x3f,
- }
c [12][BlockSize]byte = [12][BlockSize]byte{
{
0x07, 0x45, 0xa6, 0xf2, 0x59, 0x65, 0x80, 0xdd,
}
func (h *Hash) ps(data []byte) []byte {
- for i := 0; i < BlockSize; i++ {
- h.psBuf[tau[i]] = pi[int(data[i])]
- }
+ // Original clear code is:
+ // tau [64]int = [64]int{
+ // 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38,
+ // 0x01, 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39,
+ // 0x02, 0x0a, 0x12, 0x1a, 0x22, 0x2a, 0x32, 0x3a,
+ // 0x03, 0x0b, 0x13, 0x1b, 0x23, 0x2b, 0x33, 0x3b,
+ // 0x04, 0x0c, 0x14, 0x1c, 0x24, 0x2c, 0x34, 0x3c,
+ // 0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d,
+ // 0x06, 0x0e, 0x16, 0x1e, 0x26, 0x2e, 0x36, 0x3e,
+ // 0x07, 0x0f, 0x17, 0x1f, 0x27, 0x2f, 0x37, 0x3f,
+ // }
+ // for i := 0; i < BlockSize; i++ {
+ // h.psBuf[tau[i]] = pi[int(data[i])]
+ // }
+ // Below is sorted opened loop:
+ h.psBuf[0x00] = pi[int(data[0])]
+ h.psBuf[0x01] = pi[int(data[8])]
+ h.psBuf[0x02] = pi[int(data[16])]
+ h.psBuf[0x03] = pi[int(data[24])]
+ h.psBuf[0x04] = pi[int(data[32])]
+ h.psBuf[0x05] = pi[int(data[40])]
+ h.psBuf[0x06] = pi[int(data[48])]
+ h.psBuf[0x07] = pi[int(data[56])]
+ h.psBuf[0x08] = pi[int(data[1])]
+ h.psBuf[0x09] = pi[int(data[9])]
+ h.psBuf[0x0a] = pi[int(data[17])]
+ h.psBuf[0x0b] = pi[int(data[25])]
+ h.psBuf[0x0c] = pi[int(data[33])]
+ h.psBuf[0x0d] = pi[int(data[41])]
+ h.psBuf[0x0e] = pi[int(data[49])]
+ h.psBuf[0x0f] = pi[int(data[57])]
+ h.psBuf[0x10] = pi[int(data[2])]
+ h.psBuf[0x11] = pi[int(data[10])]
+ h.psBuf[0x12] = pi[int(data[18])]
+ h.psBuf[0x13] = pi[int(data[26])]
+ h.psBuf[0x14] = pi[int(data[34])]
+ h.psBuf[0x15] = pi[int(data[42])]
+ h.psBuf[0x16] = pi[int(data[50])]
+ h.psBuf[0x17] = pi[int(data[58])]
+ h.psBuf[0x18] = pi[int(data[3])]
+ h.psBuf[0x19] = pi[int(data[11])]
+ h.psBuf[0x1a] = pi[int(data[19])]
+ h.psBuf[0x1b] = pi[int(data[27])]
+ h.psBuf[0x1c] = pi[int(data[35])]
+ h.psBuf[0x1d] = pi[int(data[43])]
+ h.psBuf[0x1e] = pi[int(data[51])]
+ h.psBuf[0x1f] = pi[int(data[59])]
+ h.psBuf[0x20] = pi[int(data[4])]
+ h.psBuf[0x21] = pi[int(data[12])]
+ h.psBuf[0x22] = pi[int(data[20])]
+ h.psBuf[0x23] = pi[int(data[28])]
+ h.psBuf[0x24] = pi[int(data[36])]
+ h.psBuf[0x25] = pi[int(data[44])]
+ h.psBuf[0x26] = pi[int(data[52])]
+ h.psBuf[0x27] = pi[int(data[60])]
+ h.psBuf[0x28] = pi[int(data[5])]
+ h.psBuf[0x29] = pi[int(data[13])]
+ h.psBuf[0x2a] = pi[int(data[21])]
+ h.psBuf[0x2b] = pi[int(data[29])]
+ h.psBuf[0x2c] = pi[int(data[37])]
+ h.psBuf[0x2d] = pi[int(data[45])]
+ h.psBuf[0x2e] = pi[int(data[53])]
+ h.psBuf[0x2f] = pi[int(data[61])]
+ h.psBuf[0x30] = pi[int(data[6])]
+ h.psBuf[0x31] = pi[int(data[14])]
+ h.psBuf[0x32] = pi[int(data[22])]
+ h.psBuf[0x33] = pi[int(data[30])]
+ h.psBuf[0x34] = pi[int(data[38])]
+ h.psBuf[0x35] = pi[int(data[46])]
+ h.psBuf[0x36] = pi[int(data[54])]
+ h.psBuf[0x37] = pi[int(data[62])]
+ h.psBuf[0x38] = pi[int(data[7])]
+ h.psBuf[0x39] = pi[int(data[15])]
+ h.psBuf[0x3a] = pi[int(data[23])]
+ h.psBuf[0x3b] = pi[int(data[31])]
+ h.psBuf[0x3c] = pi[int(data[39])]
+ h.psBuf[0x3d] = pi[int(data[47])]
+ h.psBuf[0x3e] = pi[int(data[55])]
+ h.psBuf[0x3f] = pi[int(data[63])]
return h.psBuf
}