~ubuntu-branches/ubuntu/vivid/moonshot-gss-eap/vivid

« back to all changes in this revision

Viewing changes to libeap/src/eap_peer/ikev2.h

  • Committer: Package Import Robot
  • Author(s): Sam Hartman
  • Date: 2014-09-16 08:38:39 UTC
  • Revision ID: package-import@ubuntu.com-20140916083839-ipqco3thb1wcwvs0
Tags: upstream-0.9.2
ImportĀ upstreamĀ versionĀ 0.9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * IKEv2 responder (RFC 4306) for EAP-IKEV2
 
3
 * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License version 2 as
 
7
 * published by the Free Software Foundation.
 
8
 *
 
9
 * Alternatively, this software may be distributed under the terms of BSD
 
10
 * license.
 
11
 *
 
12
 * See README and COPYING for more details.
 
13
 */
 
14
 
 
15
#ifndef IKEV2_H
 
16
#define IKEV2_H
 
17
 
 
18
#include "eap_common/ikev2_common.h"
 
19
 
 
20
struct ikev2_proposal_data {
 
21
        u8 proposal_num;
 
22
        int integ;
 
23
        int prf;
 
24
        int encr;
 
25
        int dh;
 
26
};
 
27
 
 
28
 
 
29
struct ikev2_responder_data {
 
30
        enum { SA_INIT, SA_AUTH, CHILD_SA, NOTIFY, IKEV2_DONE, IKEV2_FAILED }
 
31
                state;
 
32
        u8 i_spi[IKEV2_SPI_LEN];
 
33
        u8 r_spi[IKEV2_SPI_LEN];
 
34
        u8 i_nonce[IKEV2_NONCE_MAX_LEN];
 
35
        size_t i_nonce_len;
 
36
        u8 r_nonce[IKEV2_NONCE_MAX_LEN];
 
37
        size_t r_nonce_len;
 
38
        struct wpabuf *i_dh_public;
 
39
        struct wpabuf *r_dh_private;
 
40
        struct ikev2_proposal_data proposal;
 
41
        const struct dh_group *dh;
 
42
        struct ikev2_keys keys;
 
43
        u8 *IDi;
 
44
        size_t IDi_len;
 
45
        u8 IDi_type;
 
46
        u8 *IDr;
 
47
        size_t IDr_len;
 
48
        struct wpabuf *r_sign_msg;
 
49
        struct wpabuf *i_sign_msg;
 
50
        u8 *shared_secret;
 
51
        size_t shared_secret_len;
 
52
        enum { PEER_AUTH_CERT, PEER_AUTH_SECRET } peer_auth;
 
53
        u8 *key_pad;
 
54
        size_t key_pad_len;
 
55
        u16 error_type;
 
56
        enum { LAST_MSG_SA_INIT, LAST_MSG_SA_AUTH } last_msg;
 
57
};
 
58
 
 
59
 
 
60
void ikev2_responder_deinit(struct ikev2_responder_data *data);
 
61
int ikev2_responder_process(struct ikev2_responder_data *data,
 
62
                            const struct wpabuf *buf);
 
63
struct wpabuf * ikev2_responder_build(struct ikev2_responder_data *data);
 
64
 
 
65
#endif /* IKEV2_H */