1*39beb93cSSam Leffler /* 2*39beb93cSSam Leffler * EAP-IKEv2 definitions 3*39beb93cSSam Leffler * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 4*39beb93cSSam Leffler * 5*39beb93cSSam Leffler * This program is free software; you can redistribute it and/or modify 6*39beb93cSSam Leffler * it under the terms of the GNU General Public License version 2 as 7*39beb93cSSam Leffler * published by the Free Software Foundation. 8*39beb93cSSam Leffler * 9*39beb93cSSam Leffler * Alternatively, this software may be distributed under the terms of BSD 10*39beb93cSSam Leffler * license. 11*39beb93cSSam Leffler * 12*39beb93cSSam Leffler * See README and COPYING for more details. 13*39beb93cSSam Leffler */ 14*39beb93cSSam Leffler 15*39beb93cSSam Leffler #ifndef EAP_IKEV2_COMMON_H 16*39beb93cSSam Leffler #define EAP_IKEV2_COMMON_H 17*39beb93cSSam Leffler 18*39beb93cSSam Leffler #ifdef CCNS_PL 19*39beb93cSSam Leffler /* incorrect bit order */ 20*39beb93cSSam Leffler #define IKEV2_FLAGS_LENGTH_INCLUDED 0x01 21*39beb93cSSam Leffler #define IKEV2_FLAGS_MORE_FRAGMENTS 0x02 22*39beb93cSSam Leffler #define IKEV2_FLAGS_ICV_INCLUDED 0x04 23*39beb93cSSam Leffler #else /* CCNS_PL */ 24*39beb93cSSam Leffler #define IKEV2_FLAGS_LENGTH_INCLUDED 0x80 25*39beb93cSSam Leffler #define IKEV2_FLAGS_MORE_FRAGMENTS 0x40 26*39beb93cSSam Leffler #define IKEV2_FLAGS_ICV_INCLUDED 0x20 27*39beb93cSSam Leffler #endif /* CCNS_PL */ 28*39beb93cSSam Leffler 29*39beb93cSSam Leffler #define IKEV2_FRAGMENT_SIZE 1400 30*39beb93cSSam Leffler 31*39beb93cSSam Leffler struct ikev2_keys; 32*39beb93cSSam Leffler 33*39beb93cSSam Leffler int eap_ikev2_derive_keymat(int prf, struct ikev2_keys *keys, 34*39beb93cSSam Leffler const u8 *i_nonce, size_t i_nonce_len, 35*39beb93cSSam Leffler const u8 *r_nonce, size_t r_nonce_len, 36*39beb93cSSam Leffler u8 *keymat); 37*39beb93cSSam Leffler struct wpabuf * eap_ikev2_build_frag_ack(u8 id, u8 code); 38*39beb93cSSam Leffler int eap_ikev2_validate_icv(int integ_alg, struct ikev2_keys *keys, 39*39beb93cSSam Leffler int initiator, const struct wpabuf *msg, 40*39beb93cSSam Leffler const u8 *pos, const u8 *end); 41*39beb93cSSam Leffler 42*39beb93cSSam Leffler #endif /* EAP_IKEV2_COMMON_H */ 43