- kd = cm->key_data[idx] = clib_mem_alloc_aligned (sizeof (aesni_key_data_t),
- CLIB_CACHE_LINE_BYTES);
-
- /* ADD or MODIFY */
- switch (key->alg)
- {
- case VNET_CRYPTO_ALG_AES_128_CBC:
- aes_key_expand (kd->encrypt_key, key->data, AESNI_KEY_128);
- aes_key_expand (kd->decrypt_key, key->data, AESNI_KEY_128);
- aes_key_enc_to_dec (kd->decrypt_key, AESNI_KEY_128);
- break;
- case VNET_CRYPTO_ALG_AES_192_CBC:
- aes_key_expand (kd->encrypt_key, key->data, AESNI_KEY_192);
- aes_key_expand (kd->decrypt_key, key->data, AESNI_KEY_192);
- aes_key_enc_to_dec (kd->decrypt_key, AESNI_KEY_192);
- break;
- case VNET_CRYPTO_ALG_AES_256_CBC:
- aes_key_expand (kd->encrypt_key, key->data, AESNI_KEY_256);
- aes_key_expand (kd->decrypt_key, key->data, AESNI_KEY_256);
- aes_key_enc_to_dec (kd->decrypt_key, AESNI_KEY_256);
- break;
- default:
- break;
- }
- return;