aesopt.h File Reference

#include <asterisk/aes.h>
#include "asterisk/endian.h"

Include dependency graph for aesopt.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define BRG_LITTLE_ENDIAN   1234
#define BRG_BIG_ENDIAN   4321
#define NO_TABLES   0
#define ONE_TABLE   1
#define FOUR_TABLES   4
#define NONE   0
#define PARTIAL   1
#define FULL   2
#define brot(x, n)   (((aes_32t)(x) << n) | ((aes_32t)(x) >> (32 - n)))
#define aes_sw32(x)   ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00))
#define ALGORITHM_BYTE_ORDER   PLATFORM_BYTE_ORDER
#define SAFE_IO
#define ENC_UNROLL   FULL
#define DEC_UNROLL   FULL
#define FF_TABLES
#define ARRAYS
#define s(x, c)   x[c]
#define FIXED_TABLES
#define ENC_ROUND   FOUR_TABLES
#define LAST_ENC_ROUND   FOUR_TABLES
#define DEC_ROUND   FOUR_TABLES
#define LAST_DEC_ROUND   FOUR_TABLES
#define KEY_SCHED   FOUR_TABLES
#define RC_LENGTH   (5 * (AES_BLOCK_SIZE / 4 - 2))
#define word_in(x, c)
#define word_out(x, c, v)
#define WPOLY   0x011b
#define BPOLY   0x1b
#define m1   0x80808080
#define m2   0x7f7f7f7f
#define gf_mulx(x)   ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY))
#define no_table(x, box, vf, rf, c)
#define one_table(x, op, tab, vf, rf, c)
#define four_tables(x, tab, vf, rf, c)
#define vf1(x, r, c)   (x)
#define rf1(r, c)   (r)
#define rf2(r, c)   ((8+r-c)&3)
#define dec_fmvars   aes_32t g2
#define fwd_mcol(x)   (g2 = gf_mulx(x), g2 ^ upr((x) ^ g2, 3) ^ upr((x), 2) ^ upr((x), 1))
#define dec_imvars   aes_32t g2, g4, g9
#define inv_mcol(x)
#define ls_box(x, c)   no_table(x,t_use(s,box),vf1,rf2,c)
#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_1(t, n, b, v)   extern const t n[256]
#define d_4(t, n, b, v)   extern const t n[4][256]

Functions

const aes_32t t_dec (r, c)[RC_LENGTH]


Define Documentation

#define aes_sw32 (  )     ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00))

Definition at line 251 of file aesopt.h.

#define ALGORITHM_BYTE_ORDER   PLATFORM_BYTE_ORDER

Definition at line 312 of file aesopt.h.

#define ARRAYS

Definition at line 385 of file aesopt.h.

#define BPOLY   0x1b

Definition at line 573 of file aesopt.h.

#define BRG_BIG_ENDIAN   4321

Definition at line 163 of file aesopt.h.

#define BRG_LITTLE_ENDIAN   1234

Definition at line 162 of file aesopt.h.

#define brot ( x,
 )     (((aes_32t)(x) << n) | ((aes_32t)(x) >> (32 - n)))

Definition at line 250 of file aesopt.h.

#define d_1 ( t,
n,
b,
 )     extern const t n[256]

Definition at line 950 of file aesopt.h.

#define d_4 ( t,
n,
b,
 )     extern const t n[4][256]

Definition at line 951 of file aesopt.h.

#define dec_fmvars   aes_32t g2

Definition at line 693 of file aesopt.h.

#define dec_imvars   aes_32t g2, g4, g9

Definition at line 702 of file aesopt.h.

#define DEC_ROUND   FOUR_TABLES

Definition at line 465 of file aesopt.h.

#define DEC_UNROLL   FULL

Definition at line 361 of file aesopt.h.

#define ENC_ROUND   FOUR_TABLES

Definition at line 449 of file aesopt.h.

#define ENC_UNROLL   FULL

Definition at line 353 of file aesopt.h.

#define FF_TABLES

Definition at line 374 of file aesopt.h.

#define FIXED_TABLES

Definition at line 412 of file aesopt.h.

#define four_tables ( x,
tab,
vf,
rf,
 ) 

Value:

(  tab[0][bval(vf(x,0,c),rf(0,c))] \
  ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
  ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
  ^ tab[3][bval(vf(x,3,c),rf(3,c))])

Definition at line 675 of file aesopt.h.

#define FOUR_TABLES   4

Definition at line 240 of file aesopt.h.

#define FULL   2

Definition at line 243 of file aesopt.h.

#define fwd_mcol (  )     (g2 = gf_mulx(x), g2 ^ upr((x) ^ g2, 3) ^ upr((x), 2) ^ upr((x), 1))

Definition at line 694 of file aesopt.h.

#define gf_mulx (  )     ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY))

Definition at line 579 of file aesopt.h.

#define inv_mcol (  ) 

Value:

(g2 = gf_mulx(x), g4 = gf_mulx(g2), g9 = (x) ^ gf_mulx(g4), g4 ^= g9, \
                        (x) ^ g2 ^ g4 ^ upr(g2 ^ g9, 3) ^ upr(g4, 2) ^ upr(g9, 1))

Definition at line 703 of file aesopt.h.

#define KEY_SCHED   FOUR_TABLES

Definition at line 485 of file aesopt.h.

#define LAST_DEC_ROUND   FOUR_TABLES

Definition at line 473 of file aesopt.h.

#define LAST_ENC_ROUND   FOUR_TABLES

Definition at line 457 of file aesopt.h.

#define ls_box ( x,
 )     no_table(x,t_use(s,box),vf1,rf2,c)

Definition at line 716 of file aesopt.h.

#define m1   0x80808080

Definition at line 577 of file aesopt.h.

#define m2   0x7f7f7f7f

Definition at line 578 of file aesopt.h.

#define no_table ( x,
box,
vf,
rf,
 ) 

Value:

bytes2word( \
    box[bval(vf(x,0,c),rf(0,c))], \
    box[bval(vf(x,1,c),rf(1,c))], \
    box[bval(vf(x,2,c),rf(2,c))], \
    box[bval(vf(x,3,c),rf(3,c))])

Definition at line 663 of file aesopt.h.

#define NO_TABLES   0

Definition at line 238 of file aesopt.h.

#define NONE   0

Definition at line 241 of file aesopt.h.

#define one_table ( x,
op,
tab,
vf,
rf,
 ) 

Value:

(     tab[bval(vf(x,0,c),rf(0,c))] \
  ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \
  ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \
  ^ op(tab[bval(vf(x,3,c),rf(3,c))],3))

Definition at line 669 of file aesopt.h.

#define ONE_TABLE   1

Definition at line 239 of file aesopt.h.

#define PARTIAL   1

Definition at line 242 of file aesopt.h.

#define RC_LENGTH   (5 * (AES_BLOCK_SIZE / 4 - 2))

Definition at line 494 of file aesopt.h.

#define rf1 ( r,
 )     (r)

Definition at line 682 of file aesopt.h.

#define rf2 ( r,
 )     ((8+r-c)&3)

Definition at line 683 of file aesopt.h.

#define s ( x,
 )     x[c]

Definition at line 400 of file aesopt.h.

#define SAFE_IO

Definition at line 338 of file aesopt.h.

#define t_dec ( m,
 )     t_##m##n

Definition at line 765 of file aesopt.h.

#define t_set ( m,
 )     t_##m##n

Definition at line 766 of file aesopt.h.

#define t_use ( m,
 )     t_##m##n

Definition at line 767 of file aesopt.h.

#define vf1 ( x,
r,
 )     (x)

Definition at line 681 of file aesopt.h.

#define word_in ( x,
 ) 

Value:

bytes2word(((aes_08t*)(x)+4*c)[0], ((aes_08t*)(x)+4*c)[1], \
                                   ((aes_08t*)(x)+4*c)[2], ((aes_08t*)(x)+4*c)[3])

Definition at line 553 of file aesopt.h.

#define word_out ( x,
c,
 ) 

Value:

{ ((aes_08t*)(x)+4*c)[0] = bval(v,0); ((aes_08t*)(x)+4*c)[1] = bval(v,1); \
                          ((aes_08t*)(x)+4*c)[2] = bval(v,2); ((aes_08t*)(x)+4*c)[3] = bval(v,3); }

Definition at line 555 of file aesopt.h.

#define WPOLY   0x011b

Definition at line 572 of file aesopt.h.


Function Documentation

const aes_32t t_dec ( ,
 
)


Generated on Wed Oct 28 17:00:48 2009 for Asterisk by  doxygen 1.5.6