1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * Copyright 2014-2015, Qualcomm Atheros, Inc. 2 * Copyright 2014-2015, Qualcomm Atheros, Inc. >> 3 * >> 4 * This program is free software; you can redistribute it and/or modify >> 5 * it under the terms of the GNU General Public License version 2 as >> 6 * published by the Free Software Foundation. 4 */ 7 */ 5 8 6 #ifndef AES_GCM_H 9 #ifndef AES_GCM_H 7 #define AES_GCM_H 10 #define AES_GCM_H 8 11 9 #include "aead_api.h" !! 12 #include <linux/crypto.h> 10 13 11 #define GCM_AAD_LEN 32 14 #define GCM_AAD_LEN 32 12 15 13 static inline int ieee80211_aes_gcm_encrypt(st !! 16 int ieee80211_aes_gcm_encrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad, 14 u8 !! 17 u8 *data, size_t data_len, u8 *mic); 15 si !! 18 int ieee80211_aes_gcm_decrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad, 16 { !! 19 u8 *data, size_t data_len, u8 *mic); 17 return aead_encrypt(tfm, j_0, aad + 2, !! 20 struct crypto_aead *ieee80211_aes_gcm_key_setup_encrypt(const u8 key[], 18 be16_to_cpup((__be !! 21 size_t key_len); 19 data, data_len, mi !! 22 void ieee80211_aes_gcm_key_free(struct crypto_aead *tfm); 20 } << 21 << 22 static inline int ieee80211_aes_gcm_decrypt(st << 23 u8 << 24 si << 25 { << 26 return aead_decrypt(tfm, j_0, aad + 2, << 27 be16_to_cpup((__be << 28 data, data_len, mi << 29 } << 30 << 31 static inline struct crypto_aead * << 32 ieee80211_aes_gcm_key_setup_encrypt(const u8 k << 33 { << 34 return aead_key_setup_encrypt("gcm(aes << 35 key_len, << 36 } << 37 << 38 static inline void ieee80211_aes_gcm_key_free( << 39 { << 40 return aead_key_free(tfm); << 41 } << 42 23 43 #endif /* AES_GCM_H */ 24 #endif /* AES_GCM_H */ 44 25
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.