aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ipsec/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/ipsec/main.c')
-rw-r--r--src/vnet/ipsec/main.c181
1 files changed, 181 insertions, 0 deletions
diff --git a/src/vnet/ipsec/main.c b/src/vnet/ipsec/main.c
new file mode 100644
index 00000000000..e17d1dc5cfe
--- /dev/null
+++ b/src/vnet/ipsec/main.c
@@ -0,0 +1,181 @@
+/* SPDX-License-Identifier: Apache-2.0
+ * Copyright(c) 2025 Cisco Systems, Inc.
+ */
+
+#include <vlib/vlib.h>
+#include <vnet/ipsec/ipsec.h>
+
+ipsec_main_t ipsec_main = {
+ .crypto_algs = {
+ [IPSEC_CRYPTO_ALG_NONE] = {
+ .enc_op_id = VNET_CRYPTO_OP_NONE,
+ .dec_op_id = VNET_CRYPTO_OP_NONE,
+ .alg = VNET_CRYPTO_ALG_NONE,
+ .iv_size = 0,
+ .block_align = 1,
+ },
+
+ [IPSEC_CRYPTO_ALG_DES_CBC] = {
+ .enc_op_id = VNET_CRYPTO_OP_DES_CBC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_DES_CBC_DEC,
+ .alg = VNET_CRYPTO_ALG_DES_CBC,
+ .iv_size = 8,
+ .block_align = 8,
+ },
+
+ [IPSEC_CRYPTO_ALG_3DES_CBC] = {
+ .enc_op_id = VNET_CRYPTO_OP_3DES_CBC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_3DES_CBC_DEC,
+ .alg = VNET_CRYPTO_ALG_3DES_CBC,
+ .iv_size = 8,
+ .block_align = 8,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CBC_128] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_128_CBC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_128_CBC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_128_CBC,
+ .iv_size = 16,
+ .block_align = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CBC_192] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_192_CBC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_192_CBC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_192_CBC,
+ .iv_size = 16,
+ .block_align = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CBC_256] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_256_CBC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_256_CBC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_256_CBC,
+ .iv_size = 16,
+ .block_align = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CTR_128] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_128_CTR_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_128_CTR_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_128_CTR,
+ .iv_size = 8,
+ .block_align = 1,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CTR_192] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_192_CTR_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_192_CTR_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_192_CTR,
+ .iv_size = 8,
+ .block_align = 1,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_CTR_256] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_256_CTR_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_256_CTR_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_256_CTR,
+ .iv_size = 8,
+ .block_align = 1,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_GCM_128] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_128_GCM_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_128_GCM_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_128_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_GCM_192] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_192_GCM_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_192_GCM_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_192_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_GCM_256] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_256_GCM_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_256_GCM_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_256_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_CHACHA20_POLY1305] = {
+ .enc_op_id = VNET_CRYPTO_OP_CHACHA20_POLY1305_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_CHACHA20_POLY1305_DEC,
+ .alg = VNET_CRYPTO_ALG_CHACHA20_POLY1305,
+ .iv_size = 8,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_NULL_GMAC_128] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_128_NULL_GMAC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_128_NULL_GMAC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_128_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_NULL_GMAC_192] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_192_NULL_GMAC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_192_NULL_GMAC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_192_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+
+ [IPSEC_CRYPTO_ALG_AES_NULL_GMAC_256] = {
+ .enc_op_id = VNET_CRYPTO_OP_AES_256_NULL_GMAC_ENC,
+ .dec_op_id = VNET_CRYPTO_OP_AES_256_NULL_GMAC_DEC,
+ .alg = VNET_CRYPTO_ALG_AES_256_GCM,
+ .iv_size = 8,
+ .block_align = 1,
+ .icv_size = 16,
+ },
+ },
+ .integ_algs = {
+ [IPSEC_INTEG_ALG_MD5_96] = {
+ .op_id = VNET_CRYPTO_OP_MD5_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_MD5,
+ .icv_size = 12,
+ },
+
+ [IPSEC_INTEG_ALG_SHA1_96] = {
+ .op_id = VNET_CRYPTO_OP_SHA1_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
+ .icv_size = 12,
+ },
+
+ [IPSEC_INTEG_ALG_SHA_256_96] = {
+ .op_id = VNET_CRYPTO_OP_SHA1_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_SHA256,
+ .icv_size = 12,
+ },
+
+ [IPSEC_INTEG_ALG_SHA_256_128] = {
+ .op_id = VNET_CRYPTO_OP_SHA256_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_SHA256,
+ .icv_size = 16,
+ },
+
+ [IPSEC_INTEG_ALG_SHA_384_192] = {
+ .op_id = VNET_CRYPTO_OP_SHA384_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_SHA384,
+ .icv_size = 24,
+ },
+
+ [IPSEC_INTEG_ALG_SHA_512_256] = {
+ .op_id = VNET_CRYPTO_OP_SHA512_HMAC,
+ .alg = VNET_CRYPTO_ALG_HMAC_SHA512,
+ .icv_size = 32,
+ },
+ },
+};