WPS: Make testing operations configurable at runtime
[libeap.git] / src / wps / wps_defs.h
index bf6ccc5..868f8ad 100644 (file)
 #ifndef WPS_DEFS_H
 #define WPS_DEFS_H
 
+#ifdef CONFIG_WPS_TESTING
+
+extern int wps_version_number;
+extern int wps_testing_dummy_cred;
+#define WPS_VERSION wps_version_number
+
+#else /* CONFIG_WPS_TESTING */
+
+#ifdef CONFIG_WPS2
+#define WPS_VERSION 0x20
+#else /* CONFIG_WPS2 */
 #define WPS_VERSION 0x10
+#endif /* CONFIG_WPS2 */
+
+#endif /* CONFIG_WPS_TESTING */
 
 /* Diffie-Hellman 1536-bit MODP Group; RFC 3526, Group 5 */
 #define WPS_DH_GROUP 5
@@ -33,6 +47,9 @@
 #define WPS_MGMTAUTHKEY_LEN 32
 #define WPS_MGMTENCKEY_LEN 16
 #define WPS_MGMT_KEY_ID_LEN 16
+#define WPS_OOB_DEVICE_PASSWORD_ATTR_LEN 54
+#define WPS_OOB_DEVICE_PASSWORD_LEN 32
+#define WPS_OOB_PUBKEY_HASH_LEN 20
 
 /* Attribute Types */
 enum wps_attribute {
@@ -112,7 +129,7 @@ enum wps_attribute {
        ATTR_PERMITTED_CFG_METHODS = 0x1052,
        ATTR_SELECTED_REGISTRAR_CONFIG_METHODS = 0x1053,
        ATTR_PRIMARY_DEV_TYPE = 0x1054,
-       ATTR_SECONDARY_DEV_TYP_ELIST = 0x1055,
+       ATTR_SECONDARY_DEV_TYPE_LIST = 0x1055,
        ATTR_PORTABLE_DEV = 0x1056,
        ATTR_AP_SETUP_LOCKED = 0x1057,
        ATTR_APPLICATION_EXT = 0x1058,
@@ -121,7 +138,20 @@ enum wps_attribute {
        ATTR_KEY_PROVIDED_AUTO = 0x1061,
        ATTR_802_1X_ENABLED = 0x1062,
        ATTR_APPSESSIONKEY = 0x1063,
-       ATTR_WEPTRANSMITKEY = 0x1064
+       ATTR_WEPTRANSMITKEY = 0x1064,
+       ATTR_REQUESTED_DEV_TYPE = 0x106a,
+       ATTR_EXTENSIBILITY_TEST = 0x10fa /* _NOT_ defined in the spec */
+};
+
+#define WPS_VENDOR_ID_WFA 14122
+
+/* WFA Vendor Extension subelements */
+enum {
+       WFA_ELEM_VERSION2 = 0x00,
+       WFA_ELEM_AUTHORIZEDMACS = 0x01,
+       WFA_ELEM_NETWORK_KEY_SHAREABLE = 0x02,
+       WFA_ELEM_REQUEST_TO_ENROLL = 0x03,
+       WFA_ELEM_SETTINGS_DELAY_TIME = 0x04
 };
 
 /* Device Password ID */
@@ -208,6 +238,12 @@ enum wps_config_error {
 #define WPS_CONFIG_NFC_INTERFACE 0x0040
 #define WPS_CONFIG_PUSHBUTTON 0x0080
 #define WPS_CONFIG_KEYPAD 0x0100
+#ifdef CONFIG_WPS2
+#define WPS_CONFIG_VIRT_PUSHBUTTON 0x0280
+#define WPS_CONFIG_PHY_PUSHBUTTON 0x0480
+#define WPS_CONFIG_VIRT_DISPLAY 0x2008
+#define WPS_CONFIG_PHY_DISPLAY 0x4008
+#endif /* CONFIG_WPS2 */
 
 /* Connection Type Flags */
 #define WPS_CONN_ESS 0x01
@@ -229,13 +265,6 @@ enum wps_assoc_state {
 };
 
 
-/* Primary Device Type */
-struct wps_dev_type {
-       u8 categ_id[2];
-       u8 oui[4];
-       u8 sub_categ_id[2];
-};
-
 #define WPS_DEV_OUI_WFA 0x0050f204
 
 enum wps_dev_categ {
@@ -294,4 +323,6 @@ enum wps_response_type {
 /* Walk Time for push button configuration (in seconds) */
 #define WPS_PBC_WALK_TIME 120
 
+#define WPS_MAX_AUTHORIZED_MACS 5
+
 #endif /* WPS_DEFS_H */