d += s3(e, a, b, c,w[ 56]); a = rotateLeft( a, 30); c += s3(d, e, a, b,w[ 57]); e = rotateLeft( e, 30); state58.save(a, b, c, d, e); b += s3(c, d, e, a,w[ 58]); d = rotateLeft( d, 30); a += s3(b, c, d, e,w[ 59]); c = rotateLeft( c, 30); b += s4(c, d, e, a,w[ 63]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 64]); c = rotateLeft( c, 30); state65.save(a, b, c, d, e); e += s4(a, b, c, d,w[ 65]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 66]); a = rotateLeft( a, 30); h.save(h.a + a, h.b + b, h.c + c, h.d + d, h.e + e);
d += s3(e, a, b, c,w[ 56]); a = rotateLeft( a, 30); c += s3(d, e, a, b,w[ 57]); e = rotateLeft( e, 30); state58.save(a, b, c, d, e); b += s3(c, d, e, a,w[ 58]); d = rotateLeft( d, 30); a += s3(b, c, d, e,w[ 59]); c = rotateLeft( c, 30); b += s4(c, d, e, a,w[ 63]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 64]); c = rotateLeft( c, 30); state65.save(a, b, c, d, e); e += s4(a, b, c, d,w[ 65]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 66]); a = rotateLeft( a, 30); h.save(h.a + a, h.b + b, h.c + c, h.d + d, h.e + e);
final void init() { // Magic initialization constants defined by FIPS180. save(0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0); }
final void init() { // Magic initialization constants defined by FIPS180. save(0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0); }