mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Add parentheses to macros when args are used in computations. Without
them, the executation behavior could be unexpected.
This commit is contained in:
@ -57,11 +57,11 @@ static void gen_tabs(void);
|
||||
|
||||
/* Invert byte order in a 32 bit variable */
|
||||
|
||||
#define bswap(x) ((rotl(x, 8) & 0x00ff00ff) | (rotr(x, 8) & 0xff00ff00))
|
||||
#define bswap(x) ((rotl((x), 8) & 0x00ff00ff) | (rotr((x), 8) & 0xff00ff00))
|
||||
|
||||
/* Extract byte from a 32 bit quantity (little endian notation) */
|
||||
|
||||
#define byte(x,n) ((u1byte)((x) >> (8 * n)))
|
||||
#define byte(x,n) ((u1byte)((x) >> (8 * (n))))
|
||||
|
||||
#if BYTE_ORDER != LITTLE_ENDIAN
|
||||
#define BYTE_SWAP
|
||||
@ -100,19 +100,19 @@ static u4byte il_tab[4][256];
|
||||
static u4byte tab_gen = 0;
|
||||
#endif /* !PRE_CALC_TABLES */
|
||||
|
||||
#define ff_mult(a,b) (a && b ? pow_tab[(log_tab[a] + log_tab[b]) % 255] : 0)
|
||||
#define ff_mult(a,b) ((a) && (b) ? pow_tab[(log_tab[a] + log_tab[b]) % 255] : 0)
|
||||
|
||||
#define f_rn(bo, bi, n, k) \
|
||||
bo[n] = ft_tab[0][byte(bi[n],0)] ^ \
|
||||
ft_tab[1][byte(bi[(n + 1) & 3],1)] ^ \
|
||||
ft_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
|
||||
ft_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n)
|
||||
#define f_rn(bo, bi, n, k) \
|
||||
(bo)[n] = ft_tab[0][byte((bi)[n],0)] ^ \
|
||||
ft_tab[1][byte((bi)[((n) + 1) & 3],1)] ^ \
|
||||
ft_tab[2][byte((bi)[((n) + 2) & 3],2)] ^ \
|
||||
ft_tab[3][byte((bi)[((n) + 3) & 3],3)] ^ *((k) + (n))
|
||||
|
||||
#define i_rn(bo, bi, n, k) \
|
||||
bo[n] = it_tab[0][byte(bi[n],0)] ^ \
|
||||
it_tab[1][byte(bi[(n + 3) & 3],1)] ^ \
|
||||
it_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
|
||||
it_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n)
|
||||
(bo)[n] = it_tab[0][byte((bi)[n],0)] ^ \
|
||||
it_tab[1][byte((bi)[((n) + 3) & 3],1)] ^ \
|
||||
it_tab[2][byte((bi)[((n) + 2) & 3],2)] ^ \
|
||||
it_tab[3][byte((bi)[((n) + 1) & 3],3)] ^ *((k) + (n))
|
||||
|
||||
#ifdef LARGE_TABLES
|
||||
|
||||
@ -122,17 +122,17 @@ static u4byte tab_gen = 0;
|
||||
fl_tab[2][byte(x, 2)] ^ \
|
||||
fl_tab[3][byte(x, 3)] )
|
||||
|
||||
#define f_rl(bo, bi, n, k) \
|
||||
bo[n] = fl_tab[0][byte(bi[n],0)] ^ \
|
||||
fl_tab[1][byte(bi[(n + 1) & 3],1)] ^ \
|
||||
fl_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
|
||||
fl_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n)
|
||||
#define f_rl(bo, bi, n, k) \
|
||||
(bo)[n] = fl_tab[0][byte((bi)[n],0)] ^ \
|
||||
fl_tab[1][byte((bi)[((n) + 1) & 3],1)] ^ \
|
||||
fl_tab[2][byte((bi)[((n) + 2) & 3],2)] ^ \
|
||||
fl_tab[3][byte((bi)[((n) + 3) & 3],3)] ^ *((k) + (n))
|
||||
|
||||
#define i_rl(bo, bi, n, k) \
|
||||
bo[n] = il_tab[0][byte(bi[n],0)] ^ \
|
||||
il_tab[1][byte(bi[(n + 3) & 3],1)] ^ \
|
||||
il_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
|
||||
il_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n)
|
||||
#define i_rl(bo, bi, n, k) \
|
||||
(bo)[n] = il_tab[0][byte((bi)[n],0)] ^ \
|
||||
il_tab[1][byte((bi)[((n) + 3) & 3],1)] ^ \
|
||||
il_tab[2][byte((bi)[((n) + 2) & 3],2)] ^ \
|
||||
il_tab[3][byte((bi)[((n) + 1) & 3],3)] ^ *((k) + (n))
|
||||
|
||||
#else
|
||||
|
||||
@ -142,17 +142,17 @@ static u4byte tab_gen = 0;
|
||||
((u4byte)sbx_tab[byte(x, 2)] << 16) ^ \
|
||||
((u4byte)sbx_tab[byte(x, 3)] << 24)
|
||||
|
||||
#define f_rl(bo, bi, n, k) \
|
||||
bo[n] = (u4byte)sbx_tab[byte(bi[n],0)] ^ \
|
||||
rotl(((u4byte)sbx_tab[byte(bi[(n + 1) & 3],1)]), 8) ^ \
|
||||
rotl(((u4byte)sbx_tab[byte(bi[(n + 2) & 3],2)]), 16) ^ \
|
||||
rotl(((u4byte)sbx_tab[byte(bi[(n + 3) & 3],3)]), 24) ^ *(k + n)
|
||||
#define f_rl(bo, bi, n, k) \
|
||||
(bo)[n] = (u4byte)sbx_tab[byte((bi)[n],0)] ^ \
|
||||
rotl(((u4byte)sbx_tab[byte((bi)[((n) + 1) & 3],1)]), 8) ^ \
|
||||
rotl(((u4byte)sbx_tab[byte((bi)[((n) + 2) & 3],2)]), 16) ^ \
|
||||
rotl(((u4byte)sbx_tab[byte((bi)[((n) + 3) & 3],3)]), 24) ^ *((k) + (n))
|
||||
|
||||
#define i_rl(bo, bi, n, k) \
|
||||
bo[n] = (u4byte)isb_tab[byte(bi[n],0)] ^ \
|
||||
rotl(((u4byte)isb_tab[byte(bi[(n + 3) & 3],1)]), 8) ^ \
|
||||
rotl(((u4byte)isb_tab[byte(bi[(n + 2) & 3],2)]), 16) ^ \
|
||||
rotl(((u4byte)isb_tab[byte(bi[(n + 1) & 3],3)]), 24) ^ *(k + n)
|
||||
#define i_rl(bo, bi, n, k) \
|
||||
(bo)[n] = (u4byte)isb_tab[byte((bi)[n],0)] ^ \
|
||||
rotl(((u4byte)isb_tab[byte((bi)[((n) + 3) & 3],1)]), 8) ^ \
|
||||
rotl(((u4byte)isb_tab[byte((bi)[((n) + 2) & 3],2)]), 16) ^ \
|
||||
rotl(((u4byte)isb_tab[byte((bi)[((n) + 1) & 3],3)]), 24) ^ *((k) + (n))
|
||||
#endif
|
||||
|
||||
static void
|
||||
@ -282,25 +282,25 @@ do { t = ls_box(rotr(t, 8)) ^ rco_tab[i]; \
|
||||
|
||||
#define loop6(i) \
|
||||
do { t = ls_box(rotr(t, 8)) ^ rco_tab[i]; \
|
||||
t ^= e_key[6 * i]; e_key[6 * i + 6] = t; \
|
||||
t ^= e_key[6 * i + 1]; e_key[6 * i + 7] = t; \
|
||||
t ^= e_key[6 * i + 2]; e_key[6 * i + 8] = t; \
|
||||
t ^= e_key[6 * i + 3]; e_key[6 * i + 9] = t; \
|
||||
t ^= e_key[6 * i + 4]; e_key[6 * i + 10] = t; \
|
||||
t ^= e_key[6 * i + 5]; e_key[6 * i + 11] = t; \
|
||||
t ^= e_key[6 * (i)]; e_key[6 * (i) + 6] = t; \
|
||||
t ^= e_key[6 * (i) + 1]; e_key[6 * (i) + 7] = t; \
|
||||
t ^= e_key[6 * (i) + 2]; e_key[6 * (i) + 8] = t; \
|
||||
t ^= e_key[6 * (i) + 3]; e_key[6 * (i) + 9] = t; \
|
||||
t ^= e_key[6 * (i) + 4]; e_key[6 * (i) + 10] = t; \
|
||||
t ^= e_key[6 * (i) + 5]; e_key[6 * (i) + 11] = t; \
|
||||
} while (0)
|
||||
|
||||
#define loop8(i) \
|
||||
do { t = ls_box(rotr(t, 8)) ^ rco_tab[i]; \
|
||||
t ^= e_key[8 * i]; e_key[8 * i + 8] = t; \
|
||||
t ^= e_key[8 * i + 1]; e_key[8 * i + 9] = t; \
|
||||
t ^= e_key[8 * i + 2]; e_key[8 * i + 10] = t; \
|
||||
t ^= e_key[8 * i + 3]; e_key[8 * i + 11] = t; \
|
||||
t = e_key[8 * i + 4] ^ ls_box(t); \
|
||||
e_key[8 * i + 12] = t; \
|
||||
t ^= e_key[8 * i + 5]; e_key[8 * i + 13] = t; \
|
||||
t ^= e_key[8 * i + 6]; e_key[8 * i + 14] = t; \
|
||||
t ^= e_key[8 * i + 7]; e_key[8 * i + 15] = t; \
|
||||
t ^= e_key[8 * (i)]; e_key[8 * (i) + 8] = t; \
|
||||
t ^= e_key[8 * (i) + 1]; e_key[8 * (i) + 9] = t; \
|
||||
t ^= e_key[8 * (i) + 2]; e_key[8 * (i) + 10] = t; \
|
||||
t ^= e_key[8 * (i) + 3]; e_key[8 * (i) + 11] = t; \
|
||||
t = e_key[8 * (i) + 4] ^ ls_box(t); \
|
||||
e_key[8 * (i) + 12] = t; \
|
||||
t ^= e_key[8 * (i) + 5]; e_key[8 * (i) + 13] = t; \
|
||||
t ^= e_key[8 * (i) + 6]; e_key[8 * (i) + 14] = t; \
|
||||
t ^= e_key[8 * (i) + 7]; e_key[8 * (i) + 15] = t; \
|
||||
} while (0)
|
||||
|
||||
rijndael_ctx *
|
||||
|
Reference in New Issue
Block a user