diff options
author | Xiang Gao <qasdfgtyuiop@gmail.com> | 2017-10-10 22:31:49 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2017-10-11 09:37:35 +0200 |
commit | 4133da73067af0417c623eb4ad5e85081ccbf4b4 (patch) | |
tree | 86ca2fa1fd06c84662778f34b8de6d01e3c9ede4 /net/mac80211/aead_api.h | |
parent | 8c03145a2e2d98d44dba4bf16ab34636eb60b834 (diff) | |
download | linux-4133da73067af0417c623eb4ad5e85081ccbf4b4.tar.bz2 |
mac80211: aead api to reduce redundancy
Currently, the aes_ccm.c and aes_gcm.c are almost line by line copy of
each other. This patch reduce code redundancy by moving the code in these
two files to crypto/aead_api.c to make it a higher level aead api. The
file aes_ccm.c and aes_gcm.c are removed and all the functions there are
now implemented in their headers using the newly added aead api.
Signed-off-by: Xiang Gao <qasdfgtyuiop@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/aead_api.h')
-rw-r--r-- | net/mac80211/aead_api.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/net/mac80211/aead_api.h b/net/mac80211/aead_api.h new file mode 100644 index 000000000000..5e39ea843bbf --- /dev/null +++ b/net/mac80211/aead_api.h @@ -0,0 +1,27 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _AEAD_API_H +#define _AEAD_API_H + +#include <crypto/aead.h> +#include <linux/crypto.h> + +struct crypto_aead * +aead_key_setup_encrypt(const char *alg, const u8 key[], + size_t key_len, size_t mic_len); + +int aead_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, + size_t aad_len, u8 *data, + size_t data_len, u8 *mic); + +int aead_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, + size_t aad_len, u8 *data, + size_t data_len, u8 *mic); + +void aead_key_free(struct crypto_aead *tfm); + +#endif /* _AEAD_API_H */ |