Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / wpa_supplicant / ibss_rsn.h
index 11e63ad..67fae2d 100644 (file)
@@ -2,14 +2,8 @@
  * wpa_supplicant - IBSS RSN
  * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
  */
 
 #ifndef IBSS_RSN_H
 
 struct ibss_rsn;
 
+/* not authenticated */
+#define IBSS_RSN_AUTH_NOT_AUTHENTICATED        0x00
+/* remote peer sent an EAPOL message */
+#define IBSS_RSN_AUTH_EAPOL_BY_PEER    0x01
+/* we sent an AUTH message with seq 1 */
+#define IBSS_RSN_AUTH_BY_US            0x02
+/* we sent an EAPOL message */
+#define IBSS_RSN_AUTH_EAPOL_BY_US      0x04
+/* PTK derived as supplicant */
+#define IBSS_RSN_SET_PTK_SUPP          0x08
+/* PTK derived as authenticator */
+#define IBSS_RSN_SET_PTK_AUTH          0x10
+/* PTK completion reported */
+#define IBSS_RSN_REPORTED_PTK          0x20
+
 struct ibss_rsn_peer {
        struct ibss_rsn_peer *next;
        struct ibss_rsn *ibss_rsn;
@@ -29,6 +38,9 @@ struct ibss_rsn_peer {
        size_t supp_ie_len;
 
        struct wpa_state_machine *auth;
+       int authentication_status;
+
+       struct os_reltime own_auth_tx;
 };
 
 struct ibss_rsn {
@@ -42,8 +54,11 @@ struct ibss_rsn {
 struct ibss_rsn * ibss_rsn_init(struct wpa_supplicant *wpa_s);
 void ibss_rsn_deinit(struct ibss_rsn *ibss_rsn);
 int ibss_rsn_start(struct ibss_rsn *ibss_rsn, const u8 *addr);
+void ibss_rsn_stop(struct ibss_rsn *ibss_rsn, const u8 *peermac);
 int ibss_rsn_rx_eapol(struct ibss_rsn *ibss_rsn, const u8 *src_addr,
                      const u8 *buf, size_t len);
 void ibss_rsn_set_psk(struct ibss_rsn *ibss_rsn, const u8 *psk);
+void ibss_rsn_handle_auth(struct ibss_rsn *ibss_rsn, const u8 *auth_frame,
+                         size_t len);
 
 #endif /* IBSS_RSN_H */