1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright 2003-2004, Instant802 Networks, Inc.
4 * Copyright 2006, Devicescape Software, Inc.
12 #define CCM_AAD_LEN 32
14 static inline struct crypto_aead
*
15 ieee80211_aes_key_setup_encrypt(const u8 key
[], size_t key_len
, size_t mic_len
)
17 return aead_key_setup_encrypt("ccm(aes)", key
, key_len
, mic_len
);
21 ieee80211_aes_ccm_encrypt(struct crypto_aead
*tfm
,
22 u8
*b_0
, u8
*aad
, u8
*data
,
23 size_t data_len
, u8
*mic
)
25 return aead_encrypt(tfm
, b_0
, aad
+ 2,
26 be16_to_cpup((__be16
*)aad
),
31 ieee80211_aes_ccm_decrypt(struct crypto_aead
*tfm
,
32 u8
*b_0
, u8
*aad
, u8
*data
,
33 size_t data_len
, u8
*mic
)
35 return aead_decrypt(tfm
, b_0
, aad
+ 2,
36 be16_to_cpup((__be16
*)aad
),
40 static inline void ieee80211_aes_key_free(struct crypto_aead
*tfm
)
42 return aead_key_free(tfm
);
45 #endif /* AES_CCM_H */