1214501Srpaulo/*
2214501Srpaulo * hostapd / WPS integration
3252726Srpaulo * Copyright (c) 2008-2012, Jouni Malinen <j@w1.fi>
4214501Srpaulo *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7214501Srpaulo */
8214501Srpaulo
9214501Srpaulo#ifndef WPS_HOSTAPD_H
10214501Srpaulo#define WPS_HOSTAPD_H
11214501Srpaulo
12214501Srpaulo#ifdef CONFIG_WPS
13214501Srpaulo
14214501Srpauloint hostapd_init_wps(struct hostapd_data *hapd,
15214501Srpaulo		     struct hostapd_bss_config *conf);
16252726Srpauloint hostapd_init_wps_complete(struct hostapd_data *hapd);
17214501Srpaulovoid hostapd_deinit_wps(struct hostapd_data *hapd);
18214501Srpaulovoid hostapd_update_wps(struct hostapd_data *hapd);
19252726Srpauloint hostapd_wps_add_pin(struct hostapd_data *hapd, const u8 *addr,
20252726Srpaulo			const char *uuid, const char *pin, int timeout);
21252726Srpauloint hostapd_wps_button_pushed(struct hostapd_data *hapd,
22252726Srpaulo			      const u8 *p2p_dev_addr);
23252726Srpauloint hostapd_wps_cancel(struct hostapd_data *hapd);
24214501Srpauloint hostapd_wps_get_mib_sta(struct hostapd_data *hapd, const u8 *addr,
25214501Srpaulo			    char *buf, size_t buflen);
26214501Srpaulovoid hostapd_wps_ap_pin_disable(struct hostapd_data *hapd);
27214501Srpauloconst char * hostapd_wps_ap_pin_random(struct hostapd_data *hapd, int timeout);
28214501Srpauloconst char * hostapd_wps_ap_pin_get(struct hostapd_data *hapd);
29214501Srpauloint hostapd_wps_ap_pin_set(struct hostapd_data *hapd, const char *pin,
30214501Srpaulo			   int timeout);
31252726Srpaulovoid hostapd_wps_update_ie(struct hostapd_data *hapd);
32252726Srpauloint hostapd_wps_config_ap(struct hostapd_data *hapd, const char *ssid,
33252726Srpaulo			  const char *auth, const char *encr, const char *key);
34252726Srpauloint hostapd_wps_nfc_tag_read(struct hostapd_data *hapd,
35252726Srpaulo			     const struct wpabuf *data);
36252726Srpaulostruct wpabuf * hostapd_wps_nfc_config_token(struct hostapd_data *hapd,
37252726Srpaulo					     int ndef);
38252726Srpaulostruct wpabuf * hostapd_wps_nfc_token_gen(struct hostapd_data *hapd, int ndef);
39252726Srpauloint hostapd_wps_nfc_token_enable(struct hostapd_data *hapd);
40252726Srpaulovoid hostapd_wps_nfc_token_disable(struct hostapd_data *hapd);
41214501Srpaulo
42214501Srpaulo#else /* CONFIG_WPS */
43214501Srpaulo
44214501Srpaulostatic inline int hostapd_init_wps(struct hostapd_data *hapd,
45214501Srpaulo				   struct hostapd_bss_config *conf)
46214501Srpaulo{
47214501Srpaulo	return 0;
48214501Srpaulo}
49214501Srpaulo
50214501Srpaulostatic inline void hostapd_deinit_wps(struct hostapd_data *hapd)
51214501Srpaulo{
52214501Srpaulo}
53214501Srpaulo
54252726Srpaulostatic inline int hostapd_init_wps_complete(struct hostapd_data *hapd)
55252726Srpaulo{
56252726Srpaulo    return 0;
57252726Srpaulo}
58252726Srpaulo
59214501Srpaulostatic inline void hostapd_update_wps(struct hostapd_data *hapd)
60214501Srpaulo{
61214501Srpaulo}
62214501Srpaulo
63214501Srpaulostatic inline int hostapd_wps_get_mib_sta(struct hostapd_data *hapd,
64214501Srpaulo					  const u8 *addr,
65214501Srpaulo					  char *buf, size_t buflen)
66214501Srpaulo{
67214501Srpaulo	return 0;
68214501Srpaulo}
69214501Srpaulo
70252726Srpaulostatic inline int hostapd_wps_button_pushed(struct hostapd_data *hapd,
71252726Srpaulo					    const u8 *p2p_dev_addr)
72214501Srpaulo{
73214501Srpaulo	return 0;
74214501Srpaulo}
75214501Srpaulo
76252726Srpaulostatic inline int hostapd_wps_cancel(struct hostapd_data *hapd)
77252726Srpaulo{
78252726Srpaulo	return 0;
79252726Srpaulo}
80252726Srpaulo
81214501Srpaulo#endif /* CONFIG_WPS */
82214501Srpaulo
83214501Srpaulo#endif /* WPS_HOSTAPD_H */
84