59 #if defined( INC_ALL )
70 RC2_KEY *ks,
unsigned char *iv,
int encrypt)
72 register unsigned long tin0,tin1;
73 register unsigned long tout0,tout1,xor0,xor1;
82 for (l-=8; l>=0; l-=8)
91 tout0=tin[0];
l2c(tout0,out);
92 tout1=tin[1];
l2c(tout1,out);
96 c2ln(in,tin0,tin1,l+8);
102 tout0=tin[0];
l2c(tout0,out);
103 tout1=tin[1];
l2c(tout1,out);
113 for (l-=8; l>=0; l-=8)
115 c2l(in,tin0); tin[0]=tin0;
116 c2l(in,tin1); tin[1]=tin1;
127 c2l(in,tin0); tin[0]=tin0;
128 c2l(in,tin1); tin[1]=tin1;
132 l2cn(tout0,tout1,out,l+8);
139 tin0=tin1=tout0=tout1=xor0=xor1=0;
147 register RC2_INT x0,x1,x2,x3,t;
160 p0=p1= &(key->
data[0]);
163 t=(x0+(x1& ~x3)+(x2&x3)+ *(p0++))&0xffff;
165 t=(x1+(x2& ~x0)+(x3&x0)+ *(p0++))&0xffff;
167 t=(x2+(x3& ~x1)+(x0&x1)+ *(p0++))&0xffff;
169 t=(x3+(x0& ~x2)+(x1&x2)+ *(p0++))&0xffff;
184 d[0]=(
unsigned long)(x0&0xffff)|((
unsigned long)(x1&0xffff)<<16L);
185 d[1]=(
unsigned long)(x2&0xffff)|((
unsigned long)(x3&0xffff)<<16L);
192 register RC2_INT x0,x1,x2,x3,t;
205 p0= &(key->
data[63]);
209 t=((x3<<11)|(x3>>5))&0xffff;
210 x3=(t-(x0& ~x2)-(x1&x2)- *(p0--))&0xffff;
211 t=((x2<<13)|(x2>>3))&0xffff;
212 x2=(t-(x3& ~x1)-(x0&x1)- *(p0--))&0xffff;
213 t=((x1<<14)|(x1>>2))&0xffff;
214 x1=(t-(x2& ~x0)-(x3&x0)- *(p0--))&0xffff;
215 t=((x0<<15)|(x0>>1))&0xffff;
216 x0=(t-(x1& ~x3)-(x2&x3)- *(p0--))&0xffff;
223 x3=(x3-p1[x2&0x3f])&0xffff;
224 x2=(x2-p1[x1&0x3f])&0xffff;
225 x1=(x1-p1[x0&0x3f])&0xffff;
226 x0=(x0-p1[x3&0x3f])&0xffff;
230 d[0]=(
unsigned long)(x0&0xffff)|((
unsigned long)(x1&0xffff)<<16L);
231 d[1]=(
unsigned long)(x2&0xffff)|((
unsigned long)(x3&0xffff)<<16L);