21 # define MYALLOC(size) OPENSSL_malloc(size)
22 # define MYFREE(ptr) OPENSSL_free(ptr)
24 # define MYALLOC(size) malloc(size)
25 # define MYFREE(ptr) free(ptr)
30 static void swap_bytes (
byte *w,
byte *k)
40 static void circle_xor8 (
const byte *w,
byte *k)
53 unsigned short int acc;
54 acc=(data[0]^data[2]^data[4]^data[6]^data[24]^data[30])|
55 ((data[1]^data[3]^data[5]^data[7]^data[25]^data[31])<<8);
56 memmove(data,data+2,30);
62 static int add_blocks(
int n,
byte *left,
const byte *right)
69 sum=(int)left[i]+(
int)right[i]+carry;
80 for (i=0;i<
len;i++) result[i]=a[i]^b[i];
89 byte U[32],W[32],V[32],S[32],Key[32];
100 xor_blocks(W,U,V,32);
106 U[31]=~U[31]; U[29]=~U[29]; U[28]=~U[28]; U[24]=~U[24];
107 U[23]=~U[23]; U[20]=~U[20]; U[18]=~U[18]; U[17]=~U[17];
108 U[14]=~U[14]; U[12]=~U[12]; U[10]=~U[10]; U[ 8]=~U[ 8];
109 U[ 7]=~U[ 7]; U[ 5]=~U[ 5]; U[ 3]=~U[ 3]; U[ 1]=~U[ 1];
112 xor_blocks(W,U,V,32);
120 xor_blocks(W,U,V,32);
126 xor_blocks(S,S,M,32);
128 xor_blocks(S,S,H,32);
169 memset(&(ctx->
H),0,32);
170 memset(&(ctx->
S),0,32);
183 const byte *curptr=block;
184 const byte *barrier=block+(length-32);
188 unsigned int add_bytes = 32-ctx->
left;
189 if (add_bytes>length)
194 ctx->
left+=add_bytes;
199 curptr=block+add_bytes;
205 while (curptr<=barrier)
209 add_blocks(32,ctx->
S,curptr);
213 if (curptr!=block+length)
215 ctx->
left=block+length-curptr;
240 add_blocks(32,S,buf);
248 *(bptr++)=(
byte)(fin_len&0xFF);
253 memcpy(hashval,H,32);