sha512module.c

マクロを分割および関数化に変更

#ifdef PLAN9
void RND(SHA_INT64 *a,SHA_INT64 *b,SHA_INT64 *c,SHA_INT64 *d,SHA_INT64 *e,SHA_INT64 *f,SHA_INT64 *g,SHA_INT64 *h,
		int i,SHA_INT64 ki, SHA_INT64 W[80])
{
	SHA_INT64 t0,t1;

	t0 = *h + Sigma1(*e) + Ch(*e, *f, *g) + ki + W[i];
	t1 = Sigma0(*a);
	t1 += Maj((*a), (*b), (*c));
	*d += t0;
	*h  = t0 + t1;
}
#endif
...
    for (i = 16; i < 80; ++i) {
		W[i] = Gamma1(W[i - 2]);
		W[i] += W[i - 7];
		W[i] += Gamma0(W[i - 15]);
		W[i] += W[i - 16];
    }