/* SPDX-License-Identifier: Apache-2.0 * Copyright(c) 2025 Cisco Systems, Inc. */ #include #include 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, }, }, };