xref: /freebsd/contrib/wpa/src/pae/ieee802_1x_key.h (revision 7648bc9fee8dec6cb3c4941e0165a930fbe8dcb0)
15b9c547cSRui Paulo /*
25b9c547cSRui Paulo  * IEEE 802.1X-2010 Key Hierarchy
35b9c547cSRui Paulo  * Copyright (c) 2013, Qualcomm Atheros, Inc.
45b9c547cSRui Paulo  *
55b9c547cSRui Paulo  * This software may be distributed under the terms of the BSD license.
65b9c547cSRui Paulo  * See README for more details.
75b9c547cSRui Paulo  */
85b9c547cSRui Paulo 
95b9c547cSRui Paulo #ifndef IEEE802_1X_KEY_H
105b9c547cSRui Paulo #define IEEE802_1X_KEY_H
115b9c547cSRui Paulo 
12*4bc52338SCy Schubert int ieee802_1x_cak_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
13*4bc52338SCy Schubert 			    const u8 *mac2, u8 *cak, size_t cak_bytes);
14*4bc52338SCy Schubert int ieee802_1x_ckn_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
155b9c547cSRui Paulo 			    const u8 *mac2, const u8 *sid,
165b9c547cSRui Paulo 			    size_t sid_bytes, u8 *ckn);
17*4bc52338SCy Schubert int ieee802_1x_kek_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
18*4bc52338SCy Schubert 			    size_t ckn_bytes, u8 *kek, size_t kek_bytes);
19*4bc52338SCy Schubert int ieee802_1x_ick_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
20*4bc52338SCy Schubert 			    size_t ckn_bytes, u8 *ick, size_t ick_bytes);
21*4bc52338SCy Schubert int ieee802_1x_icv_aes_cmac(const u8 *ick, size_t ick_bytes, const u8 *msg,
225b9c547cSRui Paulo 			    size_t msg_bytes, u8 *icv);
23*4bc52338SCy Schubert int ieee802_1x_sak_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ctx,
24*4bc52338SCy Schubert 			    size_t ctx_bytes, u8 *sak, size_t sak_bytes);
255b9c547cSRui Paulo 
265b9c547cSRui Paulo #endif /* IEEE802_1X_KEY_H */
27