Go to the documentation of this file.
62 #define idea_mul(r,a,b,ul) \
63 ul=(unsigned long)a*b; \
66 r=(ul&0xffff)-(ul>>16); \
73 #define idea_mul(r,a,b,ul,sl) \
74 if (a == 0) r=(0x10001-b)&0xffff; \
75 else if (b == 0) r=(0x10001-a)&0xffff; \
77 ul=(unsigned long)a*b; \
78 sl=(ul&0xffff)-(ul>>16); \
79 if (sl <= 0) sl+=0x10001; \
95 #define n2ln(c,l1,l2,n) { \
99 case 8: l2 =((unsigned long)(*(--(c)))) ; \
100 case 7: l2|=((unsigned long)(*(--(c))))<< 8; \
101 case 6: l2|=((unsigned long)(*(--(c))))<<16; \
102 case 5: l2|=((unsigned long)(*(--(c))))<<24; \
103 case 4: l1 =((unsigned long)(*(--(c)))) ; \
104 case 3: l1|=((unsigned long)(*(--(c))))<< 8; \
105 case 2: l1|=((unsigned long)(*(--(c))))<<16; \
106 case 1: l1|=((unsigned long)(*(--(c))))<<24; \
111 #define l2nn(l1,l2,c,n) { \
114 case 8: *(--(c))=(unsigned char)(((l2) )&0xff); \
115 case 7: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
116 case 6: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
117 case 5: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
118 case 4: *(--(c))=(unsigned char)(((l1) )&0xff); \
119 case 3: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
120 case 2: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
121 case 1: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
126 #define n2l(c,l) (l =((unsigned long)(*((c)++)))<<24L, \
127 l|=((unsigned long)(*((c)++)))<<16L, \
128 l|=((unsigned long)(*((c)++)))<< 8L, \
129 l|=((unsigned long)(*((c)++))))
132 #define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
133 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
134 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
135 *((c)++)=(unsigned char)(((l) )&0xff))
138 #define s2n(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
139 *((c)++)=(unsigned char)(((l)>> 8L)&0xff))
142 #define n2s(c,l) (l =((IDEA_INT)(*((c)++)))<< 8L, \
143 l|=((IDEA_INT)(*((c)++))) )
147 #define c2ln(c,l1,l2,n) { \
151 case 8: l2 =((unsigned long)(*(--(c))))<<24; \
152 case 7: l2|=((unsigned long)(*(--(c))))<<16; \
153 case 6: l2|=((unsigned long)(*(--(c))))<< 8; \
154 case 5: l2|=((unsigned long)(*(--(c)))); \
155 case 4: l1 =((unsigned long)(*(--(c))))<<24; \
156 case 3: l1|=((unsigned long)(*(--(c))))<<16; \
157 case 2: l1|=((unsigned long)(*(--(c))))<< 8; \
158 case 1: l1|=((unsigned long)(*(--(c)))); \
163 #define l2cn(l1,l2,c,n) { \
166 case 8: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
167 case 7: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
168 case 6: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
169 case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
170 case 4: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
171 case 3: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
172 case 2: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
173 case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
178 #define c2s(c,l) (l =((unsigned long)(*((c)++))) , \
179 l|=((unsigned long)(*((c)++)))<< 8L)
182 #define s2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
183 *((c)++)=(unsigned char)(((l)>> 8L)&0xff))
186 #define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
187 l|=((unsigned long)(*((c)++)))<< 8L, \
188 l|=((unsigned long)(*((c)++)))<<16L, \
189 l|=((unsigned long)(*((c)++)))<<24L)
192 #define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
193 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
194 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
195 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
198 #define E_IDEA(num) \
200 idea_mul(x1,x1,*p,ul); p++; \
204 idea_mul(x4,x4,*p,ul); p++; \
206 idea_mul(t0,t0,*p,ul); p++; \
207 t1=(t0+(x2^x4))&0xffff; \
208 idea_mul(t1,t1,*p,ul); p++; \