From 753b96f31b0f34983bbc213516f1a05825d868a8 Mon Sep 17 00:00:00 2001 From: MathiasRaoul Date: Tue, 24 Mar 2020 09:45:55 +0000 Subject: quic: disable vnet_crypto and batching if no crypto engines are loaded Type: fix Change-Id: I95d3f8431b468cefc8777526dd3b988a299f0687 Signed-off-by: MathiasRaoul --- src/plugins/quic/quic_crypto.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'src/plugins/quic/quic_crypto.c') diff --git a/src/plugins/quic/quic_crypto.c b/src/plugins/quic/quic_crypto.c index dd7300388d4..d8fd4a916e6 100644 --- a/src/plugins/quic/quic_crypto.c +++ b/src/plugins/quic/quic_crypto.c @@ -623,17 +623,27 @@ quic_crypto_aead_setup_crypto (ptls_aead_context_t * _ctx, int is_enc, assert (0); } - ctx->super.do_decrypt = quic_crypto_aead_decrypt; + if (quic_main.vnet_crypto_enabled) + { + ctx->super.do_decrypt = quic_crypto_aead_decrypt; - ctx->super.do_encrypt_init = quic_crypto_aead_encrypt_init; - ctx->super.do_encrypt_update = quic_crypto_aead_encrypt_update; - ctx->super.do_encrypt_final = quic_crypto_aead_encrypt_final; - ctx->super.dispose_crypto = quic_crypto_aead_dispose_crypto; + ctx->super.do_encrypt_init = quic_crypto_aead_encrypt_init; + ctx->super.do_encrypt_update = quic_crypto_aead_encrypt_update; + ctx->super.do_encrypt_final = quic_crypto_aead_encrypt_final; + ctx->super.dispose_crypto = quic_crypto_aead_dispose_crypto; - clib_rwlock_writer_lock (&quic_main.crypto_keys_quic_rw_lock); - ctx->key_index = vnet_crypto_key_add (vm, algo, - (u8 *) key, _ctx->algo->key_size); - clib_rwlock_writer_unlock (&quic_main.crypto_keys_quic_rw_lock); + clib_rwlock_writer_lock (&quic_main.crypto_keys_quic_rw_lock); + ctx->key_index = vnet_crypto_key_add (vm, algo, + (u8 *) key, _ctx->algo->key_size); + clib_rwlock_writer_unlock (&quic_main.crypto_keys_quic_rw_lock); + } + else + { + if (!strcmp (ctx->super.algo->name, "AES128-GCM")) + ptls_openssl_aes128gcm.setup_crypto (_ctx, is_enc, key); + else if (!strcmp (ctx->super.algo->name, "AES256-GCM")) + ptls_openssl_aes256gcm.setup_crypto (_ctx, is_enc, key); + } return 0; } -- cgit 1.2.3-korg