1 /* XXX: this needs testing */
11 for (i = 0;i < 32;++i) s->seed[i] = k[i];
12 for (i = 0;i < 8;++i) s->sum[i] = 0;
13 for (i = 0;i < 12;++i) s->in[i] = 0;
17 static uint32 littleendian[8] = {
18 50462976, 117835012, 185207048, 252579084,
19 319951120, 387323156, 454695192, 522067228
21 #define end ((unsigned char *) &littleendian)
23 #define data ((unsigned char *) s->in)
24 #define outdata ((unsigned char *) s->out)
26 void surfpcs_add(s,x,n)
33 data[end[s->todo++]] = *x++;
40 surf(s->out,s->in,s->seed);
42 s->sum[i] += s->out[i];
53 while (s->todo) surfpcs_add(s,"",1);
54 for (i = 0;i < 8;++i) s->in[i] = s->sum[i];
55 for (;i < 12;++i) s->in[i] = 0;
56 surf(s->out,s->in,s->seed);
57 for (i = 0;i < 32;++i) h[i] = outdata[end[i]];