1189251Ssam/*
2189251Ssam * EAP-IKEv2 definitions
3189251Ssam * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
4189251Ssam *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7189251Ssam */
8189251Ssam
9189251Ssam#ifndef EAP_IKEV2_COMMON_H
10189251Ssam#define EAP_IKEV2_COMMON_H
11189251Ssam
12189251Ssam#ifdef CCNS_PL
13189251Ssam/* incorrect bit order */
14189251Ssam#define IKEV2_FLAGS_LENGTH_INCLUDED 0x01
15189251Ssam#define IKEV2_FLAGS_MORE_FRAGMENTS 0x02
16189251Ssam#define IKEV2_FLAGS_ICV_INCLUDED 0x04
17189251Ssam#else /* CCNS_PL */
18189251Ssam#define IKEV2_FLAGS_LENGTH_INCLUDED 0x80
19189251Ssam#define IKEV2_FLAGS_MORE_FRAGMENTS 0x40
20189251Ssam#define IKEV2_FLAGS_ICV_INCLUDED 0x20
21189251Ssam#endif /* CCNS_PL */
22189251Ssam
23189251Ssam#define IKEV2_FRAGMENT_SIZE 1400
24189251Ssam
25189251Ssamstruct ikev2_keys;
26189251Ssam
27189251Ssamint eap_ikev2_derive_keymat(int prf, struct ikev2_keys *keys,
28189251Ssam			    const u8 *i_nonce, size_t i_nonce_len,
29189251Ssam			    const u8 *r_nonce, size_t r_nonce_len,
30189251Ssam			    u8 *keymat);
31189251Ssamstruct wpabuf * eap_ikev2_build_frag_ack(u8 id, u8 code);
32189251Ssamint eap_ikev2_validate_icv(int integ_alg, struct ikev2_keys *keys,
33189251Ssam			   int initiator, const struct wpabuf *msg,
34189251Ssam			   const u8 *pos, const u8 *end);
35189251Ssam
36189251Ssam#endif /* EAP_IKEV2_COMMON_H */
37