1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * Copyright 2003-2004, Instant802 Networks, I 2 * Copyright 2003-2004, Instant802 Networks, Inc. 4 * Copyright 2006, Devicescape Software, Inc. 3 * Copyright 2006, Devicescape Software, Inc. >> 4 * >> 5 * This program is free software; you can redistribute it and/or modify >> 6 * it under the terms of the GNU General Public License version 2 as >> 7 * published by the Free Software Foundation. 5 */ 8 */ 6 9 7 #ifndef AES_CCM_H 10 #ifndef AES_CCM_H 8 #define AES_CCM_H 11 #define AES_CCM_H 9 12 10 #include "aead_api.h" !! 13 #include <linux/crypto.h> 11 14 12 #define CCM_AAD_LEN 32 !! 15 #define AES_BLOCK_LEN 16 13 16 14 static inline struct crypto_aead * !! 17 struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[]); 15 ieee80211_aes_key_setup_encrypt(const u8 key[] !! 18 void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *scratch, 16 { !! 19 u8 *data, size_t data_len, 17 return aead_key_setup_encrypt("ccm(aes !! 20 u8 *cdata, u8 *mic); 18 } !! 21 int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *scratch, 19 !! 22 u8 *cdata, size_t data_len, 20 static inline int !! 23 u8 *mic, u8 *data); 21 ieee80211_aes_ccm_encrypt(struct crypto_aead * !! 24 void ieee80211_aes_key_free(struct crypto_cipher *tfm); 22 u8 *b_0, u8 *aad, u8 << 23 size_t data_len, u8 << 24 { << 25 return aead_encrypt(tfm, b_0, aad + 2, << 26 be16_to_cpup((__be << 27 data, data_len, mi << 28 } << 29 << 30 static inline int << 31 ieee80211_aes_ccm_decrypt(struct crypto_aead * << 32 u8 *b_0, u8 *aad, u8 << 33 size_t data_len, u8 << 34 { << 35 return aead_decrypt(tfm, b_0, aad + 2, << 36 be16_to_cpup((__be << 37 data, data_len, mi << 38 } << 39 << 40 static inline void ieee80211_aes_key_free(stru << 41 { << 42 return aead_key_free(tfm); << 43 } << 44 25 45 #endif /* AES_CCM_H */ 26 #endif /* AES_CCM_H */ 46 27
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.