Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / src / eap_common / eap_ikev2_common.h
1 /*
2  * EAP-IKEv2 definitions
3  * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8
9 #ifndef EAP_IKEV2_COMMON_H
10 #define EAP_IKEV2_COMMON_H
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 #define IKEV2_FLAGS_LENGTH_INCLUDED 0x80
17 #define IKEV2_FLAGS_MORE_FRAGMENTS 0x40
18 #define IKEV2_FLAGS_ICV_INCLUDED 0x20
19
20 #define IKEV2_FRAGMENT_SIZE 1400
21
22 struct ikev2_keys;
23
24 int eap_ikev2_derive_keymat(int prf, struct ikev2_keys *keys,
25                             const u8 *i_nonce, size_t i_nonce_len,
26                             const u8 *r_nonce, size_t r_nonce_len,
27                             u8 *keymat);
28 struct wpabuf * eap_ikev2_build_frag_ack(u8 id, u8 code);
29 int eap_ikev2_validate_icv(int integ_alg, struct ikev2_keys *keys,
30                            int initiator, const struct wpabuf *msg,
31                            const u8 *pos, const u8 *end);
32
33 #ifdef __cplusplus
34 }
35 #endif
36
37 #endif /* EAP_IKEV2_COMMON_H */