SHS_LONG
static void SHSTransform (SHS_LONG *digest, const SHS_LONG *data);
void SHSTransform(SHS_LONG *digest, const SHS_LONG *data)
SHS_LONG A, B, C, D, E; /* Local vars */
SHS_LONG eData[ 16 ]; /* Expanded data */
SHS_LONG temp;
SHS_LONG x = (i < 16) ? eData[i] : expand(eData, i);
SHS_LONG tmp;
SHS_LONG *lp;
shsInfo->countLo = tmp + (((SHS_LONG) count) << 3 );
*lp |= (SHS_LONG) *buffer++ << ((--dataCount % 4) * 8);
*lp |= (SHS_LONG) buffer[2] << 8;
*lp |= (SHS_LONG) buffer[1] << 16;
*lp |= (SHS_LONG) buffer[0] << 24;
*lp |= ((SHS_LONG) buffer[3]);
*lp |= ((SHS_LONG) buffer[2]) << 8;
*lp |= ((SHS_LONG) buffer[1]) << 16;
*lp |= ((SHS_LONG) buffer[0]) << 24;
SHS_LONG *lp;
*lp++ |= (SHS_LONG) 0x80;
*lp++ |= (SHS_LONG) 0x80 << 8;
*lp++ |= (SHS_LONG) 0x80 << 16;
*lp++ = (SHS_LONG) 0x80 << 24;
SHS_LONG digest[ 5 ]; /* Message digest */
SHS_LONG countLo, countHi; /* 64-bit bit count */
SHS_LONG data[ 16 ]; /* SHS data buffer */
static SHS_LONG shsTestResults[][ 5 ] = {
static SHS_LONG shsTestResults[][ 5 ] = {
static void longReverse( SHS_LONG *buffer, int byteCount )
SHS_LONG value;
byteCount /= sizeof( SHS_LONG );