crypto: improve key handling
[vpp.git] / src / vnet / ipsec / ipsec.c
index 73c5cf4..c530a44 100644 (file)
@@ -264,43 +264,51 @@ ipsec_init (vlib_main_t * vm)
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_DES_CBC;
   a->enc_op_id = VNET_CRYPTO_OP_DES_CBC_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_DES_CBC_DEC;
+  a->alg = VNET_CRYPTO_ALG_DES_CBC;
   a->iv_size = a->block_size = 8;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_3DES_CBC;
   a->enc_op_id = VNET_CRYPTO_OP_3DES_CBC_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_3DES_CBC_DEC;
+  a->alg = VNET_CRYPTO_ALG_3DES_CBC;
   a->iv_size = a->block_size = 8;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_128;
   a->enc_op_id = VNET_CRYPTO_OP_AES_128_CBC_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_128_CBC_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_128_CBC;
   a->iv_size = a->block_size = 16;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_192;
   a->enc_op_id = VNET_CRYPTO_OP_AES_192_CBC_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_192_CBC_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_192_CBC;
   a->iv_size = a->block_size = 16;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_CBC_256;
   a->enc_op_id = VNET_CRYPTO_OP_AES_256_CBC_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_256_CBC_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_256_CBC;
   a->iv_size = a->block_size = 16;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_128;
   a->enc_op_id = VNET_CRYPTO_OP_AES_128_GCM_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_128_GCM_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_128_GCM;
   a->iv_size = a->block_size = 8;
   a->icv_size = 16;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_192;
   a->enc_op_id = VNET_CRYPTO_OP_AES_192_GCM_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_192_GCM_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_192_GCM;
   a->iv_size = a->block_size = 8;
   a->icv_size = 16;
 
   a = im->crypto_algs + IPSEC_CRYPTO_ALG_AES_GCM_256;
   a->enc_op_id = VNET_CRYPTO_OP_AES_256_GCM_ENC;
   a->dec_op_id = VNET_CRYPTO_OP_AES_256_GCM_DEC;
+  a->alg = VNET_CRYPTO_ALG_AES_256_GCM;
   a->iv_size = a->block_size = 8;
   a->icv_size = 16;
 
@@ -309,22 +317,27 @@ ipsec_init (vlib_main_t * vm)
 
   i = &im->integ_algs[IPSEC_INTEG_ALG_SHA1_96];
   i->op_id = VNET_CRYPTO_OP_SHA1_HMAC;
+  i->alg = VNET_CRYPTO_ALG_HMAC_SHA1;
   i->icv_size = 12;
 
   i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_256_96];
   i->op_id = VNET_CRYPTO_OP_SHA1_HMAC;
+  i->alg = VNET_CRYPTO_ALG_HMAC_SHA256;
   i->icv_size = 12;
 
   i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_256_128];
   i->op_id = VNET_CRYPTO_OP_SHA256_HMAC;
+  i->alg = VNET_CRYPTO_ALG_HMAC_SHA256;
   i->icv_size = 16;
 
   i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_384_192];
   i->op_id = VNET_CRYPTO_OP_SHA384_HMAC;
+  i->alg = VNET_CRYPTO_ALG_HMAC_SHA512;
   i->icv_size = 24;
 
   i = &im->integ_algs[IPSEC_INTEG_ALG_SHA_512_256];
   i->op_id = VNET_CRYPTO_OP_SHA512_HMAC;
+  i->alg = VNET_CRYPTO_ALG_HMAC_SHA512;
   i->icv_size = 32;
 
   vec_validate_aligned (im->ptd, vlib_num_workers (), CLIB_CACHE_LINE_BYTES);