|
| #define | TABLE_ALIGN 32 |
| |
| #define | WPOLY 0x011b |
| |
| #define | N_COLS 4 |
| |
| #define | AES_BLOCK_SIZE 16 |
| |
| #define | RC_LENGTH (5 * (AES_BLOCK_SIZE / 4 - 2)) |
| |
| #define | LOCAL_ALIGN |
| |
| #define | rf1(r, c) (r) |
| |
| #define | word_in(x, c) (*((uint32_t*)(x)+(c))) |
| |
| #define | word_out(x, c, v) (*((uint32_t*)(x)+(c)) = (v)) |
| |
| #define | s(x, c) x[c] |
| |
| #define | si(y, x, c) (s(y,c) = word_in(x, c)) |
| |
| #define | so(y, x, c) word_out(y, c, s(x,c)) |
| |
| #define | state_in(y, x) si(y,x,0); si(y,x,1); si(y,x,2); si(y,x,3) |
| |
| #define | state_out(y, x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3) |
| |
| #define | round(rm, y, x, k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3) |
| |
| #define | to_byte(x) ((x) & 0xff) |
| |
| #define | bval(x, n) to_byte(SWAP32LE(x) >> (8 * (n))) |
| |
| #define | fwd_var(x, r, c) |
| |
| #define | fwd_rnd(y, x, k, c) (s(y,c) = (k)[c] ^ SWAP32LE(four_tables(x,t_use(f,n),fwd_var,rf1,c))) |
| |
| #define | sb_data(w) |
| |
| #define | rc_data(w) |
| |
| #define | bytes2word(b0, b1, b2, b3) |
| |
| #define | h0(x) (x) |
| |
| #define | w0(p) bytes2word(p, 0, 0, 0) |
| |
| #define | w1(p) bytes2word(0, p, 0, 0) |
| |
| #define | w2(p) bytes2word(0, 0, p, 0) |
| |
| #define | w3(p) bytes2word(0, 0, 0, p) |
| |
| #define | u0(p) bytes2word(f2(p), p, p, f3(p)) |
| |
| #define | u1(p) bytes2word(f3(p), f2(p), p, p) |
| |
| #define | u2(p) bytes2word(p, f3(p), f2(p), p) |
| |
| #define | u3(p) bytes2word(p, p, f3(p), f2(p)) |
| |
| #define | v0(p) bytes2word(fe(p), f9(p), fd(p), fb(p)) |
| |
| #define | v1(p) bytes2word(fb(p), fe(p), f9(p), fd(p)) |
| |
| #define | v2(p) bytes2word(fd(p), fb(p), fe(p), f9(p)) |
| |
| #define | v3(p) bytes2word(f9(p), fd(p), fb(p), fe(p)) |
| |
| #define | f2(x) ((x<<1) ^ (((x>>7) & 1) * WPOLY)) |
| |
| #define | f4(x) ((x<<2) ^ (((x>>6) & 1) * WPOLY) ^ (((x>>6) & 2) * WPOLY)) |
| |
| #define | f8(x) ((x<<3) ^ (((x>>5) & 1) * WPOLY) ^ (((x>>5) & 2) * WPOLY) ^ (((x>>5) & 4) * WPOLY)) |
| |
| #define | f3(x) (f2(x) ^ x) |
| |
| #define | f9(x) (f8(x) ^ x) |
| |
| #define | fb(x) (f8(x) ^ f2(x) ^ x) |
| |
| #define | fd(x) (f8(x) ^ f4(x) ^ x) |
| |
| #define | fe(x) (f8(x) ^ f4(x) ^ f2(x)) |
| |
| #define | t_dec(m, n) t_##m##n |
| |
| #define | t_set(m, n) t_##m##n |
| |
| #define | t_use(m, n) t_##m##n |
| |
| #define | d_4(t, n, b, e, f, g, h) LOCAL_ALIGN const t n[4][256] = { b(e), b(f), b(g), b(h) } |
| |
| #define | four_tables(x, tab, vf, rf, c) |
| |
| #define | STATIC |
| |
| #define | INLINE |
| |