/* see sph_panama.h */ void sph_panama_close(void *cc, void *dst) { sph_panama_context *sc; unsigned current; int i; sc = (sph_panama_context *)cc; current = sc->data_ptr; sc->data[current ++] = 0x01; memset(sc->data + current, 0, (sizeof sc->data) - current); panama_push(sc, sc->data, 1); panama_pull(sc, 32); for (i = 0; i < 8; i ++) sph_enc32le((unsigned char *)dst + 4 * i, sc->state[i + 9]); sph_panama_init(sc); }
static int crypt_all(int *pcount, struct db_salt *salt) { int count = *pcount; int index = 0; #ifdef _OPENMP #pragma omp parallel for for (index = 0; index < count; index++) #endif { sph_panama_context ctx; sph_panama_init(&ctx); sph_panama(&ctx, saved_key[index], strlen(saved_key[index])); sph_panama_close(&ctx, (unsigned char*)crypt_out[index]); } return count; }