All pastes #408573 Raw Edit

Untitled

public text v1 · immutable
#408573 ·published 2007-03-24 22:52 UTC
rendered paste body
/* A..D = IBox Input			   */
/* E..H = IBox Output			   */
/* A..H may be read multiple times */
/* A..D may not be written		   */
/* E..H will be written once       */
#define IBox7(A,B,C,D, E,F,G,H)		\
{									\
	register vector unsigned int	\
		T01, T02, T03, T04,			\
		T06, T07, T08, T09,			\
		T11, T12, T14, T15,			\
		T16;						\
									\
	T01 = vec_and( A  , B   );		\
	T02 = vec_or ( A  , B   );		\
	T03 = vec_or ( C  , T01 );		\
	T04 = vec_and( D  , T02 );		\
	H   = vec_xor( T03, T04 );		\
	T06 = vec_nor( D  , D   );		\
	T07 = vec_xor( B  , T04 );		\
	T08 = vec_xor( H  , T06 );		\
	T09 = vec_or ( T07, T08 );		\
	F   = vec_xor( A  , T09 );		\
	T11 = vec_xor( C  , T07 );		\
	T12 = vec_or ( D  , F   );		\
	E   = vec_xor( T11, T12 );		\
	T14 = vec_and( A  , H   );		\
	T15 = vec_xor( T03, F   );		\
	T16 = vec_xor( E  , T14 );		\
	G   = vec_xor( T15, T16 );		\
}
	
#define ib7(a,b,c,d,e,f,g,h)	\
    t1 = a & b;     \
    t2 = a | b;     \
    t3 = c | t1;    \
    t4 = d & t2;    \
    h = t3 ^ t4;    \
    t6 = ~d;        \
    t7 = b ^ t4;    \
    t8 = h ^ t6;    \
    t9 = t7 | t8;   \
    f = a ^ t9;     \
    t11 = c ^ t7;   \
    t12 = d | f;    \
    e = t11 ^ t12;  \
    t14 = a & h;    \
    t15 = t3 ^ f;   \
    t16 = e ^ t14;  \
    g = t15 ^ t16