xref: /linux/drivers/net/ovpn/crypto_aead.h (revision 876f5ebd58a9ac42f48a7ead3d5b274a314e0ace)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*  OpenVPN data channel offload
3  *
4  *  Copyright (C) 2020-2025 OpenVPN, Inc.
5  *
6  *  Author:	James Yonan <james@openvpn.net>
7  *		Antonio Quartulli <antonio@openvpn.net>
8  */
9 
10 #ifndef _NET_OVPN_OVPNAEAD_H_
11 #define _NET_OVPN_OVPNAEAD_H_
12 
13 #include "crypto.h"
14 
15 #include <asm/types.h>
16 #include <linux/skbuff.h>
17 
18 int ovpn_aead_encrypt(struct ovpn_peer *peer, struct ovpn_crypto_key_slot *ks,
19 		      struct sk_buff *skb);
20 int ovpn_aead_decrypt(struct ovpn_peer *peer, struct ovpn_crypto_key_slot *ks,
21 		      struct sk_buff *skb);
22 
23 struct ovpn_crypto_key_slot *
24 ovpn_aead_crypto_key_slot_new(const struct ovpn_key_config *kc);
25 void ovpn_aead_crypto_key_slot_destroy(struct ovpn_crypto_key_slot *ks);
26 
27 enum ovpn_cipher_alg ovpn_aead_crypto_alg(struct ovpn_crypto_key_slot *ks);
28 
29 #endif /* _NET_OVPN_OVPNAEAD_H_ */
30