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 03:37:35 -0400 |
commit | 4133da73067af0417c623eb4ad5e85081ccbf4b4 (patch) | |
tree | 86ca2fa1fd06c84662778f34b8de6d01e3c9ede4 /net/mac80211/aead_api.h | |
parent | 8c03145a2e2d98d44dba4bf16ab34636eb60b834 (diff) |
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 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License version 2 as | ||
4 | * published by the Free Software Foundation. | ||
5 | */ | ||
6 | |||
7 | #ifndef _AEAD_API_H | ||
8 | #define _AEAD_API_H | ||
9 | |||
10 | #include <crypto/aead.h> | ||
11 | #include <linux/crypto.h> | ||
12 | |||
13 | struct crypto_aead * | ||
14 | aead_key_setup_encrypt(const char *alg, const u8 key[], | ||
15 | size_t key_len, size_t mic_len); | ||
16 | |||
17 | int aead_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, | ||
18 | size_t aad_len, u8 *data, | ||
19 | size_t data_len, u8 *mic); | ||
20 | |||
21 | int aead_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, | ||
22 | size_t aad_len, u8 *data, | ||
23 | size_t data_len, u8 *mic); | ||
24 | |||
25 | void aead_key_free(struct crypto_aead *tfm); | ||
26 | |||
27 | #endif /* _AEAD_API_H */ | ||