The UDP GSO output path introduced next requires a synchronous encrypt
transform. Record the transform type in the immutable key slot when it
is created, avoiding repeated inspection of the crypto algorithm flags
in the data path.

Signed-off-by: Ralf Lici <[email protected]>
---
No changes since v3 
https://lore.kernel.org/openvpn-devel/1533a769382fd369d6f3e839d870f42efd1b4809.1794223133.git.r...@mandelbit.com/

New in v3.

 drivers/net/ovpn/crypto.h      | 2 ++
 drivers/net/ovpn/crypto_aead.c | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/net/ovpn/crypto.h b/drivers/net/ovpn/crypto.h
index e3feb16d5498..8ce324e9b58f 100644
--- a/drivers/net/ovpn/crypto.h
+++ b/drivers/net/ovpn/crypto.h
@@ -39,6 +39,8 @@ struct ovpn_peer_key_reset {
 
 struct ovpn_crypto_key_slot {
        u8 key_id;
+       /* whether the encrypt transform is asynchronous */
+       bool async;
 
        struct crypto_aead *encrypt;
        struct crypto_aead *decrypt;
diff --git a/drivers/net/ovpn/crypto_aead.c b/drivers/net/ovpn/crypto_aead.c
index 30299581422d..5e5320338165 100644
--- a/drivers/net/ovpn/crypto_aead.c
+++ b/drivers/net/ovpn/crypto_aead.c
@@ -462,6 +462,7 @@ ovpn_aead_crypto_key_slot_new(const struct ovpn_key_config 
*kc)
                ks->encrypt = NULL;
                goto destroy_ks;
        }
+       ks->async = crypto_tfm_is_async(crypto_aead_tfm(ks->encrypt));
 
        ks->decrypt = ovpn_aead_init("decrypt", alg_name,
                                     kc->decrypt.cipher_key,
-- 
2.56.0



_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to