AES_RETURN aes_xi(encrypt_key192)(const unsigned char *key, aes_encrypt_ctx cx[1]) { uint32_t ss[6]; cx->ks[0] = ss[0] = word_in(key, 0); cx->ks[1] = ss[1] = word_in(key, 1); cx->ks[2] = ss[2] = word_in(key, 2); cx->ks[3] = ss[3] = word_in(key, 3); cx->ks[4] = ss[4] = word_in(key, 4); cx->ks[5] = ss[5] = word_in(key, 5); #ifdef ENC_KS_UNROLL ke6(cx->ks, 0); ke6(cx->ks, 1); ke6(cx->ks, 2); ke6(cx->ks, 3); ke6(cx->ks, 4); ke6(cx->ks, 5); ke6(cx->ks, 6); #else { uint32_t i; for(i = 0; i < 7; ++i) ke6(cx->ks, i); } #endif kef6(cx->ks, 7); cx->inf.l = 0; cx->inf.b[0] = 12 * 16; #ifdef USE_VIA_ACE_IF_PRESENT if(VIA_ACE_AVAILABLE) cx->inf.b[1] = 0xff; #endif return EXIT_SUCCESS; }
static void aes_encrypt_key192(const unsigned char *key, uint32_t rk[]) { uint32_t ss[6]; rk[0] = ss[0] = word_in(key, 0); rk[1] = ss[1] = word_in(key, 1); rk[2] = ss[2] = word_in(key, 2); rk[3] = ss[3] = word_in(key, 3); rk[4] = ss[4] = word_in(key, 4); rk[5] = ss[5] = word_in(key, 5); #ifdef ENC_KS_UNROLL ke6(rk, 0); ke6(rk, 1); ke6(rk, 2); ke6(rk, 3); ke6(rk, 4); ke6(rk, 5); ke6(rk, 6); #else { uint32_t i; for (i = 0; i < 7; ++i) ke6(rk, i); } #endif /* ENC_KS_UNROLL */ kef6(rk, 7); }