2 * Copyright 2003-2004, Instant802 Networks, Inc.
3 * Copyright 2006, Devicescape Software, Inc.
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.
15 #define CCM_AAD_LEN 32
17 static inline struct crypto_aead
*
18 ieee80211_aes_key_setup_encrypt(const u8 key
[], size_t key_len
, size_t mic_len
)
20 return aead_key_setup_encrypt("ccm(aes)", key
, key_len
, mic_len
);
24 ieee80211_aes_ccm_encrypt(struct crypto_aead
*tfm
,
25 u8
*b_0
, u8
*aad
, u8
*data
,
26 size_t data_len
, u8
*mic
)
28 return aead_encrypt(tfm
, b_0
, aad
+ 2,
29 be16_to_cpup((__be16
*)aad
),
34 ieee80211_aes_ccm_decrypt(struct crypto_aead
*tfm
,
35 u8
*b_0
, u8
*aad
, u8
*data
,
36 size_t data_len
, u8
*mic
)
38 return aead_decrypt(tfm
, b_0
, aad
+ 2,
39 be16_to_cpup((__be16
*)aad
),
43 static inline void ieee80211_aes_key_free(struct crypto_aead
*tfm
)
45 return aead_key_free(tfm
);
48 #endif /* AES_CCM_H */