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
]];