|
IBR-DTNSuite 0.6
|


Go to the source code of this file.
Defines | |
| #define | TABLES_8K |
| #define | GF_BYTE_LEN 16 |
| #define | tab64k(x) ((gf_t64k)x) |
| #define | xor_64k(i, a, t, r) xor_block_aligned(r, tab64k(t)[i][a[i]]) |
| #define | gf_mul_64k(a, t, r) |
| #define | tab8k(x) ((gf_t8k)x) |
| #define | xor_8k(i, a, t, r) |
| #define | gf_mul_8k(a, t, r) |
| #define | tab4k(x) ((gf_t4k)x) |
| #define | xor_4k(i, a, t, r) mul_x8(r); xor_block_aligned(r, tab4k(t)[a[i]]) |
| #define | gf_mul_4k(a, t, r) |
| #define | tab256(t) ((gf_t256)t) |
| #define | xor_256(i, a, t, r) |
| #define | gf_mul_256(a, t, r) |
Typedefs | |
| typedef uint_32t(* | gf_t64k )[256][GF_BYTE_LEN >> 2] |
| typedef uint_32t(* | gf_t8k )[16][GF_BYTE_LEN >> 2] |
| typedef uint_32t(* | gf_t4k )[GF_BYTE_LEN >> 2] |
| typedef uint_32t(* | gf_t256 )[GF_BYTE_LEN >> 2] |
Functions | |
| void | gf_mul (void *a, const void *b) |
| void | init_64k_table (unsigned char g[], void *t) |
| void | init_8k_table (unsigned char g[], void *t) |
| void | init_4k_table (unsigned char g[], void *t) |
| void | init_256_table (unsigned char g[], void *t) |
Variables | |
| const unsigned short | gf_tab [256] |
| #define GF_BYTE_LEN 16 |
Definition at line 104 of file gf128mul.h.
Referenced by gcm_auth_data(), gcm_auth_header(), gcm_compute_tag(), and gcm_init_message().
| #define gf_mul_256 | ( | a, | |
| t, | |||
| r | |||
| ) |
do { int i = 15; \ move_block_aligned(r,tab256(t)[a[15] & 15]); mul_x4(r); \ xor_block_aligned(r, tab256(t)[a[15] >> 4]); \ while(i--) \ { xor_256(i, a, t, r); \ } \ move_block_aligned(a, r); \ } while(0)
Definition at line 935 of file gf128mul.h.
| #define gf_mul_4k | ( | a, | |
| t, | |||
| r | |||
| ) |
do { int i = 15; \ move_block_aligned(r,tab4k(t)[a[15]]); \ while(i--) \ { xor_4k(i, a, t, r); \ } \ move_block_aligned(a, r); \ } while(0)
Definition at line 846 of file gf128mul.h.
| #define gf_mul_64k | ( | a, | |
| t, | |||
| r | |||
| ) |
do { \ move_block_aligned(r, tab64k(t)[0][a[0]]); \ xor_64k( 1, a, t, r); \ xor_64k( 2, a, t, r); xor_64k( 3, a, t, r); \ xor_64k( 4, a, t, r); xor_64k( 5, a, t, r); \ xor_64k( 6, a, t, r); xor_64k( 7, a, t, r); \ xor_64k( 8, a, t, r); xor_64k( 9, a, t, r); \ xor_64k(10, a, t, r); xor_64k(11, a, t, r); \ xor_64k(12, a, t, r); xor_64k(13, a, t, r); \ xor_64k(14, a, t, r); xor_64k(15, a, t, r); \ move_block_aligned(a, r); \ } while(0)
Definition at line 672 of file gf128mul.h.
| #define gf_mul_8k | ( | a, | |
| t, | |||
| r | |||
| ) |
do { int i; \ memcpy(r, tab8k(t)[0][a[0] & 15], GF_BYTE_LEN); \ xor_block_aligned(r, tab8k(t)[1][a[0] >> 4]); \ for(i = 1; i < GF_BYTE_LEN; ++i) \ { xor_8k(i, a, t, r); \ } \ memcpy(a, r, GF_BYTE_LEN); \ } while(0)
Definition at line 765 of file gf128mul.h.
| #define tab256 | ( | t | ) | ((gf_t256)t) |
Definition at line 879 of file gf128mul.h.
| #define tab4k | ( | x | ) | ((gf_t4k)x) |
Definition at line 798 of file gf128mul.h.
| #define tab64k | ( | x | ) | ((gf_t64k)x) |
Definition at line 636 of file gf128mul.h.
| #define tab8k | ( | x | ) | ((gf_t8k)x) |
Definition at line 712 of file gf128mul.h.
| #define TABLES_8K |
Definition at line 52 of file gf128mul.h.
| #define xor_256 | ( | i, | |
| a, | |||
| t, | |||
| r | |||
| ) |
mul_x4(r); xor_block_aligned(r, tab256(t)[a[i] & 15]); \ mul_x4(r); xor_block_aligned(r, tab256(t)[a[i] >> 4])
Definition at line 880 of file gf128mul.h.
| #define xor_4k | ( | i, | |
| a, | |||
| t, | |||
| r | |||
| ) | mul_x8(r); xor_block_aligned(r, tab4k(t)[a[i]]) |
Definition at line 799 of file gf128mul.h.
| #define xor_64k | ( | i, | |
| a, | |||
| t, | |||
| r | |||
| ) | xor_block_aligned(r, tab64k(t)[i][a[i]]) |
Definition at line 637 of file gf128mul.h.
| #define xor_8k | ( | i, | |
| a, | |||
| t, | |||
| r | |||
| ) |
xor_block_aligned(r, tab8k(t)[i + i][a[i] & 15]); \ xor_block_aligned(r, tab8k(t)[i + i + 1][a[i] >> 4])
Definition at line 713 of file gf128mul.h.
| typedef uint_32t(* gf_t256)[GF_BYTE_LEN >> 2] |
Definition at line 878 of file gf128mul.h.
| typedef uint_32t(* gf_t4k)[GF_BYTE_LEN >> 2] |
Definition at line 797 of file gf128mul.h.
| typedef uint_32t(* gf_t64k)[256][GF_BYTE_LEN >> 2] |
Definition at line 635 of file gf128mul.h.
| typedef uint_32t(* gf_t8k)[16][GF_BYTE_LEN >> 2] |
Definition at line 711 of file gf128mul.h.
| void gf_mul | ( | void * | a, |
| const void * | b | ||
| ) |
Referenced by gcm_compute_tag().
| void init_256_table | ( | unsigned char | g[], |
| void * | t | ||
| ) |
Referenced by gcm_init_and_key().
| void init_4k_table | ( | unsigned char | g[], |
| void * | t | ||
| ) |
Referenced by gcm_init_and_key().
| void init_64k_table | ( | unsigned char | g[], |
| void * | t | ||
| ) |
Referenced by gcm_init_and_key().
| void init_8k_table | ( | unsigned char | g[], |
| void * | t | ||
| ) |
Referenced by gcm_init_and_key().
| const unsigned short gf_tab[256] |