xref: /openbmc/linux/include/crypto/authenc.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2e236d4a8SHerbert Xu /*
3e236d4a8SHerbert Xu  * Authenc: Simple AEAD wrapper for IPsec
4e236d4a8SHerbert Xu  *
5e236d4a8SHerbert Xu  * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.au>
6e236d4a8SHerbert Xu  */
7e236d4a8SHerbert Xu #ifndef _CRYPTO_AUTHENC_H
8e236d4a8SHerbert Xu #define _CRYPTO_AUTHENC_H
9e236d4a8SHerbert Xu 
10e236d4a8SHerbert Xu #include <linux/types.h>
11e236d4a8SHerbert Xu 
12e236d4a8SHerbert Xu enum {
13e236d4a8SHerbert Xu 	CRYPTO_AUTHENC_KEYA_UNSPEC,
14e236d4a8SHerbert Xu 	CRYPTO_AUTHENC_KEYA_PARAM,
15e236d4a8SHerbert Xu };
16e236d4a8SHerbert Xu 
17e236d4a8SHerbert Xu struct crypto_authenc_key_param {
18e236d4a8SHerbert Xu 	__be32 enckeylen;
19e236d4a8SHerbert Xu };
20e236d4a8SHerbert Xu 
21bc6e2bdbSMathias Krause struct crypto_authenc_keys {
22bc6e2bdbSMathias Krause 	const u8 *authkey;
23bc6e2bdbSMathias Krause 	const u8 *enckey;
24e236d4a8SHerbert Xu 
25bc6e2bdbSMathias Krause 	unsigned int authkeylen;
26bc6e2bdbSMathias Krause 	unsigned int enckeylen;
27bc6e2bdbSMathias Krause };
28bc6e2bdbSMathias Krause 
29bc6e2bdbSMathias Krause int crypto_authenc_extractkeys(struct crypto_authenc_keys *keys, const u8 *key,
30bc6e2bdbSMathias Krause 			       unsigned int keylen);
31bc6e2bdbSMathias Krause 
32bc6e2bdbSMathias Krause #endif	/* _CRYPTO_AUTHENC_H */
33