X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipsec%2Fipsec.c;h=4caae4840fb7a320df4f8d9ea78f3f2f9c4b0d36;hb=ece2ae0fa27a11d25fff6ea27263d5c5ba5c9dbc;hp=10b8bf65bd52b8df2238951ab87f49728b0da762;hpb=0224514c28bdee05ea11a89a721c810e5f99ede2;p=vpp.git diff --git a/src/vnet/ipsec/ipsec.c b/src/vnet/ipsec/ipsec.c index 10b8bf65bd5..4caae4840fb 100644 --- a/src/vnet/ipsec/ipsec.c +++ b/src/vnet/ipsec/ipsec.c @@ -30,15 +30,37 @@ ipsec_main_t ipsec_main; static clib_error_t * ipsec_check_ah_support (ipsec_sa_t * sa) { + ipsec_main_t *im = &ipsec_main; + if (sa->integ_alg == IPSEC_INTEG_ALG_NONE) return clib_error_return (0, "unsupported none integ-alg"); + + if (!vnet_crypto_is_set_handler (im->integ_algs[sa->integ_alg].alg)) + return clib_error_return (0, "No crypto engine support for %U", + format_ipsec_integ_alg, sa->integ_alg); + return 0; } static clib_error_t * ipsec_check_esp_support (ipsec_sa_t * sa) { - return 0; + ipsec_main_t *im = &ipsec_main; + + if (IPSEC_INTEG_ALG_NONE != sa->integ_alg) + { + if (!vnet_crypto_is_set_handler (im->integ_algs[sa->integ_alg].alg)) + return clib_error_return (0, "No crypto engine support for %U", + format_ipsec_integ_alg, sa->integ_alg); + } + if (IPSEC_CRYPTO_ALG_NONE != sa->crypto_alg) + { + if (!vnet_crypto_is_set_handler (im->crypto_algs[sa->crypto_alg].alg)) + return clib_error_return (0, "No crypto engine support for %U", + format_ipsec_crypto_alg, sa->crypto_alg); + } + + return (0); } clib_error_t * @@ -263,7 +285,7 @@ ipsec_init (vlib_main_t * vm) ASSERT (node); im->error_drop_node_index = node->index; - u32 idx = ipsec_register_ah_backend (vm, im, "default openssl backend", + u32 idx = ipsec_register_ah_backend (vm, im, "crypto engine backend", "ah4-encrypt", "ah4-decrypt", "ah6-encrypt", @@ -276,7 +298,7 @@ ipsec_init (vlib_main_t * vm) ASSERT (0 == rv); (void) (rv); // avoid warning - idx = ipsec_register_esp_backend (vm, im, "default openssl backend", + idx = ipsec_register_esp_backend (vm, im, "crypto engine backend", "esp4-encrypt", "esp4-encrypt-tun", "esp4-decrypt",