xref: /freebsd/contrib/wpa/src/pae/ieee802_1x_key.h (revision 1d386b48a555f61cb7325543adbbb5c3f3407a66)
1 /*
2  * IEEE 802.1X-2010 Key Hierarchy
3  * Copyright (c) 2013, Qualcomm Atheros, Inc.
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #ifndef IEEE802_1X_KEY_H
10 #define IEEE802_1X_KEY_H
11 
12 int ieee802_1x_cak_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
13 			    const u8 *mac2, u8 *cak, size_t cak_bytes);
14 int ieee802_1x_ckn_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
15 			    const u8 *mac2, const u8 *sid,
16 			    size_t sid_bytes, u8 *ckn);
17 int ieee802_1x_kek_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
18 			    size_t ckn_bytes, u8 *kek, size_t kek_bytes);
19 int ieee802_1x_ick_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
20 			    size_t ckn_bytes, u8 *ick, size_t ick_bytes);
21 int ieee802_1x_icv_aes_cmac(const u8 *ick, size_t ick_bytes, const u8 *msg,
22 			    size_t msg_bytes, u8 *icv);
23 int ieee802_1x_sak_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ctx,
24 			    size_t ctx_bytes, u8 *sak, size_t sak_bytes);
25 
26 #endif /* IEEE802_1X_KEY_H */
27