示例#1
0
/* -------------------------------------------------------------------------- */
void aes_mixColumns(uint8_t *buf)
{
  register uint8_t i, a, b, c, d, e;
  for (i = 0; i < 16; i += 4)
  {
    a = buf[i];
    b = buf[i + 1];
    c = buf[i + 2];
    d = buf[i + 3];
    e = a ^ b ^ c ^ d;
    buf[i] ^= e ^ rj_xtime(a^b);
    buf[i+1] ^= e ^ rj_xtime(b^c);
    buf[i+2] ^= e ^ rj_xtime(c^d);
    buf[i+3] ^= e ^ rj_xtime(d^a);
  }
} /* aes_mixColumns */
示例#2
0
void Aes256::mix_columns(unsigned char* buffer)
{
    register unsigned char i, a, b, c, d, e;

    for (i = 0; i < 16; i += 4)
    {
        a = buffer[i];
        b = buffer[i + 1];
        c = buffer[i + 2];
        d = buffer[i + 3];

        e = a ^ b ^ c ^ d;

        buffer[i] ^= e ^ rj_xtime(a^b);
        buffer[i + 1] ^= e ^ rj_xtime(b^c);
        buffer[i + 2] ^= e ^ rj_xtime(c^d);
        buffer[i + 3] ^= e ^ rj_xtime(d^a);
    }
}
示例#3
0
/* -------------------------------------------------------------------------- */
void aes_mixColumns_inv(uint8_t *buf)
{
  register uint8_t i, a, b, c, d, e, x, y, z;
  for (i = 0; i < 16; i += 4)
  {
    a = buf[i];
    b = buf[i + 1];
    c = buf[i + 2];
    d = buf[i + 3];
    e = a ^ b ^ c ^ d;
    z = rj_xtime(e);
    x = e ^ rj_xtime(rj_xtime(z^a^c));
    y = e ^ rj_xtime(rj_xtime(z^b^d));
    buf[i] ^= x ^ rj_xtime(a^b);
    buf[i+1] ^= y ^ rj_xtime(b^c);
    buf[i+2] ^= x ^ rj_xtime(c^d);
    buf[i+3] ^= y ^ rj_xtime(d^a);
  }
} /* aes_mixColumns_inv */
示例#4
0
void Aes256::mix_columns_inv(unsigned char* buffer)
{
    register unsigned char i, a, b, c, d, e, x, y, z;

    for (i = 0; i < 16; i += 4)
    {
        a = buffer[i];
        b = buffer[i + 1];
        c = buffer[i + 2];
        d = buffer[i + 3];

        e = a ^ b ^ c ^ d;
        z = rj_xtime(e);
        x = e ^ rj_xtime(rj_xtime(z^a^c));  y = e ^ rj_xtime(rj_xtime(z^b^d));

        buffer[i] ^= x ^ rj_xtime(a^b);
        buffer[i + 1] ^= y ^ rj_xtime(b^c);
        buffer[i + 2] ^= x ^ rj_xtime(c^d);
        buffer[i + 3] ^= y ^ rj_xtime(d^a);
    }
}