xref: /freebsd/contrib/wpa/src/eap_common/eap_ikev2_common.h (revision 416ba5c74546f32a993436a99516d35008e9f384)
139beb93cSSam Leffler /*
239beb93cSSam Leffler  * EAP-IKEv2 definitions
339beb93cSSam Leffler  * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
439beb93cSSam Leffler  *
5*f05cddf9SRui Paulo  * This software may be distributed under the terms of the BSD license.
6*f05cddf9SRui Paulo  * See README for more details.
739beb93cSSam Leffler  */
839beb93cSSam Leffler 
939beb93cSSam Leffler #ifndef EAP_IKEV2_COMMON_H
1039beb93cSSam Leffler #define EAP_IKEV2_COMMON_H
1139beb93cSSam Leffler 
1239beb93cSSam Leffler #define IKEV2_FLAGS_LENGTH_INCLUDED 0x80
1339beb93cSSam Leffler #define IKEV2_FLAGS_MORE_FRAGMENTS 0x40
1439beb93cSSam Leffler #define IKEV2_FLAGS_ICV_INCLUDED 0x20
1539beb93cSSam Leffler 
1639beb93cSSam Leffler #define IKEV2_FRAGMENT_SIZE 1400
1739beb93cSSam Leffler 
1839beb93cSSam Leffler struct ikev2_keys;
1939beb93cSSam Leffler 
2039beb93cSSam Leffler int eap_ikev2_derive_keymat(int prf, struct ikev2_keys *keys,
2139beb93cSSam Leffler 			    const u8 *i_nonce, size_t i_nonce_len,
2239beb93cSSam Leffler 			    const u8 *r_nonce, size_t r_nonce_len,
2339beb93cSSam Leffler 			    u8 *keymat);
2439beb93cSSam Leffler struct wpabuf * eap_ikev2_build_frag_ack(u8 id, u8 code);
2539beb93cSSam Leffler int eap_ikev2_validate_icv(int integ_alg, struct ikev2_keys *keys,
2639beb93cSSam Leffler 			   int initiator, const struct wpabuf *msg,
2739beb93cSSam Leffler 			   const u8 *pos, const u8 *end);
2839beb93cSSam Leffler 
2939beb93cSSam Leffler #endif /* EAP_IKEV2_COMMON_H */
30