original files of m241

This commit is contained in:
neelimap
2026-07-30 11:19:44 +05:30
parent 170c2b3f3a
commit afc7070c1f
12254 changed files with 7655111 additions and 0 deletions
@@ -0,0 +1,390 @@
/* ipwps_common.h - IPWPS Common header file */
/*
* Copyright (c) 2009 Wind River Systems, Inc.
*
* The right to copy, distribute, modify, or otherwise make use
* of this software may be licensed only pursuant to the terms
* of an applicable Wind River license agreement.
*
*/
/*
modification history
--------------------
01b,05mar09,mry Add priliminary enrollee support
01a,02Feb09,mry Created
*/
#ifndef IPWPS_COMMON_H
#define IPWPS_COMMON_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/* This is a common header file that may be included by internal WPS modules
* as well as external modules and applications using ipwps.
* It defines common ipwps structures and types.
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <ipcom_type.h>
#include <ipcom_cstyle.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
#define IPWPS_UUID_SIZE 16
#define IPWPS_MAX_WSC_ID_LEN 128
#define IPWPS_MAX_EAP_ID_LEN 64
#define IPWPS_MAX_IFNAME 16
#define IPWPS_DEVICE_INFO_SIZE 32
#define IPWPS_DEVICE_INFO_STRLEN (IPWPS_DEVICE_INFO_SIZE+1)
#define IPWPS_DEVICE_INFO_MANUFACTURER_SIZE 64
#define IPWPS_DEVICE_INFO_MANUFACTURER_STRLEN (IPWPS_DEVICE_INFO_MANUFACTURER_SIZE+1)
#define IPWPS_CREDENTIALS_CONFIG_METHOD_STRLEN 32
/* Max size of a reassembled WPS Protocol message (too generous?)*/
#define IPWPS_PROTO_MSG_DATALEN_MAX 1024
/* WPS "CONFIGURATION ERROR" VALUES */
#define IPWPS_CONFIG_ERROR_NOERR 0
#define IPWPS_CONFIG_ERROR_OOBIF_READERR 1
#define IPWPS_CONFIG_ERROR_DECRYPT_CRCFAIL 2
#define IPWPS_CONFIG_ERROR_2_4CHAN_NOT_SUPP 3
#define IPWPS_CONFIG_ERROR_5_0CHAN_NOT_SUPP 4
#define IPWPS_CONFIG_ERROR_SIGNAL_TOOWEAK 5
#define IPWPS_CONFIG_ERROR_NET_AUTHFAIL 6
#define IPWPS_CONFIG_ERROR_NET_ASSOCFAIL 7
#define IPWPS_CONFIG_ERROR_NO_DHCPRESP 8
#define IPWPS_CONFIG_ERROR_FAIL_DHCPCONFIG 9
#define IPWPS_CONFIG_ERROR_IPADDR_CONFLICT 10
#define IPWPS_CONFIG_ERROR_REGCONN_FAIL 11
#define IPWPS_CONFIG_ERROR_MULTI_PBCSESSION 12
#define IPWPS_CONFIG_ERROR_ROGUE_ACTIVITY 13
#define IPWPS_CONFIG_ERROR_DEVICE_BUSY 14
#define IPWPS_CONFIG_ERROR_SETUP_LOCKED 15
#define IPWPS_CONFIG_ERROR_MSG_TIMEOUT 16
#define IPWPS_CONFIG_ERROR_REGSESSION_TIMEOUT 17
#define IPWPS_CONFIG_ERROR_DEVPWD_AUTHFAIL 18
/* WPS "ASSOCIATION STATE" VALUES */
#define IPWPS_ASSOC_STATE_NOT_ASSOCIATED 0
#define IPWPS_ASSOC_STATE_CONN_SUCCESS 1
#define IPWPS_ASSOC_STATE_CONFIG_FAIL 2
#define IPWPS_ASSOC_STATE_ASSOC_FAIL 3
#define IPWPS_ASSOC_STATE_IP_FAIL 4
/* WPS "AUTHENTICATION TYPE FLAGS" VALUES */
#define IPWPS_AUTH_TYPE_OPEN 0x0001
#define IPWPS_AUTH_TYPE_WPAPSK 0x0002
#define IPWPS_AUTH_TYPE_SHARED 0x0004
#define IPWPS_AUTH_TYPE_WPA 0x0008
#define IPWPS_AUTH_TYPE_WPA2 0x0010
#define IPWPS_AUTH_TYPE_WPA2PSK 0x0020
/* WPS "ENCRYPTION TYPE FLAGS" VALUES */
#define IPWPS_ENCRYPT_TYPE_NONE 0x0001
#define IPWPS_ENCRYPT_TYPE_WEP 0x0002
#define IPWPS_ENCRYPT_TYPE_TKIP 0x0004
#define IPWPS_ENCRYPT_TYPE_AES 0x0008
/* WPS "CONFIG METHODS" VALUES */
#define IPWPS_CONFIG_METHOD_USBA 0x0001
#define IPWPS_CONFIG_METHOD_ETHERNET 0x0002
#define IPWPS_CONFIG_METHOD_LABEL 0x0004
#define IPWPS_CONFIG_METHOD_DISPLAY 0x0008
#define IPWPS_CONFIG_METHOD_EXTNFCTOK 0x0010
#define IPWPS_CONFIG_METHOD_INTNFCTOK 0x0020
#define IPWPS_CONFIG_METHOD_NFCIF 0x0040
#define IPWPS_CONFIG_METHOD_PUSHBUTTON 0x0080
#define IPWPS_CONFIG_METHOD_KEYPAD 0x0100
/* WPS "CONNECTION TYPE FLAGS" VALUES */
#define IPWPS_CONNECTION_TYPE_ESS 0x01
#define IPWPS_CONNECTION_TYPE_IBSS 0x02
/* WPS "RF BANDS" VALUES */
#define IPWPS_RFBAND_2_4GHZ 0x01
#define IPWPS_RFBAND_5_0GHZ 0x02
/* WPS "DRIVER CURRENT MODE */
#define IPWPS_DRV_MODE_AP 0x01
#define IPWPS_DRV_MODE_INFRA 0x02
#define IPWPS_DRV_MODE_ADHOC 0x04
#define IPWPS_PROTO_VERSION_DECODE_MAJOR(ver) (((ver) & 0xf0) >> 4)
#define IPWPS_PROTO_VERSION_DECODE_MINOR(ver) ((ver & 0x0f))
/* Maximum # of credentials supported */
#define IPWPS_NUM_CEDENTIALS_MAX 4
#define IPWPS_SSID_MAXLEN 32 /* excluding null terminating character */
#define IPWPS_PROTO_NETWORK_KEY_MAXLEN 64
#define IPWPS_PROTO_PASSWORD_MAXLEN 64
#define IPWPS_PASSPHRASE_MINLEN 8
#define IPWPS_KEYINDEX_MIN 1
#define IPWPS_KEYINDEX_MAX 255
#define IPWPS_KEYINDEX_DEFAULT 1
#define IPWPS_NETINDEX_MIN 1
#define IPWPS_NETINDEX_MAX 255
#define IPWPS_NETINDEX_DEFAULT 1
#define IPWPS_PIN_MAXLEN 8
#define IPWPS_DEVICE_PASSWORD_MAXLEN 32
#define IPWPS_PINMODE_MAXLEN 32 /* String describing the PIN mode (includes NULL terminating character) */
/* IPWPS PIN MODE SYSVAR VALUES (MAKE SURE LENGTH WITH NULL TERMINATING CHARACTER IS <= IPWPS_PINMODE_MAXLEN) */
#define IPWPS_PINMODE_AUTO "auto"
#define IPWPS_PINMODE_HARDCODE "hardcoded"
#define IPWPS_PINMODE_INTERACT_USER "interactive_user"
#define IPWPS_PINMODE_INTERACT_REGS "interactive_regs"
/* IPWPS EAP Identities */
#define IPWPS_EAP_ID_ENROLEE "WFA-SimpleConfig-Enrollee-1-0"
/* IPWPS Credential Configuration methods (Make sure strlen of each is < IPWPS_CREDENTIALS_CONFIG_METHOD_STRLEN) */
#define IPWPS_CRED_CONFIG_METHOD_AUTO "auto"
#define IPWPS_CRED_CONFIG_METHOD_DEFAULT "default"
#define IPWPS_CRED_CONFIG_METHOD_INTERACT "interact"
/* IPWPS Credential Configuration values */
#define IPWPS_CRED_AUTH_OPEN "open"
#define IPWPS_CRED_AUTH_WPA "wpa"
#define IPWPS_CRED_AUTH_WPA2 "wpa2"
#define IPWPS_CRED_AUTH_ALL "all"
#define IPWPS_CRED_ENCR_TKIP "tkip"
#define IPWPS_CRED_ENCR_AES "aes"
#define IPWPS_CRED_ENCR_ALL "all"
/* WPS Timer Values */
#define IPWPS_WALK_TIME_SECONDS 120
#define IPWPS_MONITOR_TIME_SECONDS 120
#define IPWPS_PROTO_COMPLETE_SECONDS 120 /* Overall timeout for WPS Protocol exchange to complete */
#define IPWPS_DEVICE_PASSWORD_PENDING_SECONDS 30 /* Time to wait for user to enter a PIN to be entered */
/* Common macros */
#define IPWPS_BOOL_STRING(boolval) ((boolval) ? "TRUE" : "FALSE")
#define IPWPS_ENABLED_STRING(boolval) ((boolval) ? "Enabled" : "Disabled")
#define IPWPS_ENABLED_STRING_CAPS(boolval) ((boolval) ? "ENABLED" : "DISABLED")
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
typedef enum {
IPWPS_UUID_E,
IPWPS_UUID_R,
IPWPS_AP_UUID_E
} Ipwps_uuid_specifier;
/* WPS Session Status */
typedef enum {
IPWPS_SESSION_STATUS_IDLE = 0, /* Clear previous status */
IPWPS_SESSION_STATUS_IN_PROGRESS,
IPWPS_SESSION_STATUS_ERROR,
IPWPS_SESSION_STATUS_SESSION_OVERLAP,
IPWPS_SESSION_STATUS_SUCCESS,
IPWPS_ENROLLEE_JOIN_SUCCESS,
IPWPS_ENROLLEE_JOIN_FAIL
} Ipwps_session_status;
/* IPWPS PIN MODE VALUES */
typedef enum {
IPWPS_PINMODE_VAL_AUTO,
IPWPS_PINMODE_VAL_HARDCODE,
IPWPS_PINMODE_VAL_INTERACT_USER,
IPWPS_PINMODE_VAL_INTERACT_REGS
} ipwps_pin_mode;
/* WPS AP Status */
typedef enum {
IPWPS_AP_STATUS_IDLE = 0,
IPWPS_AP_STATUS_INIT,
IPWPS_AP_STATUS_RUNNING,
IPWPS_AP_STATUS_ERROR = -1
} Ipwps_ap_status;
/* WPS Registrar Status */
typedef enum {
IPWPS_REGISTRAR_STATUS_IDLE = 0,
IPWPS_REGISTRAR_STATUS_READY,
IPWPS_REGISTRAR_STATUS_SELECTED,
IPWPS_REGISTRAR_STATUS_ERROR = -1
} Ipwps_registrar_status;
/* WPS Enrollee Status */
typedef enum {
IPWPS_ENROLLEE_STATUS_IDLE = 0,
IPWPS_ENROLLEE_STATUS_STARTED,
IPWPS_ENROLLEE_STATUS_ERROR = -1
} Ipwps_enrollee_status;
/* WPS Enrollee AP Join Status */
typedef enum {
IPWPS_ENROLLEE_APJOIN_STATUS_NOT_ATTEMPTED = 0,
IPWPS_ENROLLEE_APJOIN_STATUS_SUCCESSFUL,
IPWPS_ENROLLEE_APJOIN_STATUS_FAILED = -1
} Ipwps_enrollee_apjoin_status;
/* WPS "DEVICE PASSWORD ID" */
typedef enum {
IPWPS_DEVPWDID_INVALID = 0,
IPWPS_DEVPWDID_DEFAULT_PIN,
IPWPS_DEVPWDID_USER_SPECIFIED,
IPWPS_DEVPWDID_MACHINE_SPECIFIED,
IPWPS_DEVPWDID_PUSHBUTTON,
IPWPS_DEVPWDID_REGISTRAR_SPECIFIED
} Ipwps_device_pwdid;
typedef enum {
IPWPS_PEER_UNKNOWN = 0,
IPWPS_PEER_ENROLLEE,
IPWPS_PEER_AP,
IPWPS_PEER_REGISTRAR
} Ipwps_peer_type;
/* IPWPS Credential Method */
typedef enum {
IPWPS_CERDENTIAL_METHOD_NOTSET = 0,
IPWPS_CERDENTIAL_METHOD_AUTO,
IPWPS_CERDENTIAL_METHOD_DEFAULT,
IPWPS_CERDENTIAL_METHOD_INTERACTIVE
} Ipwps_credential_method;
typedef struct {
Ip_bool valid;
Ipwps_peer_type type;
Ip_u8 rf_band;
char ssid[IPWPS_SSID_MAXLEN+1];
Ip_u8 bssid[6];
Ip_u8 mac_addr[6];
} Ipwps_peer_info;
typedef struct Ipwps_device_type_st {
Ip_u16 category_id;
Ip_u16 subcat_id;
Ip_u8 oui[4];
} Ipwps_device_type;
/* WPS Protocol data struct */
typedef struct Ipwps_proto_data_st {
Ip_u16 len;
Ip_u8 data[IPWPS_PROTO_MSG_DATALEN_MAX];
} Ipwps_proto_data;
typedef enum {
IPWPS_OPSTATUS_OK = 0,
IPWPS_OPSTATUS_PENDING,
IPWPS_OPSTATUS_FAIL = -1,
IPWPS_OPSTATUS_TIMEOUT = -2
} Ipwps_operation_status;
typedef enum {
IPWPS_PBC_EVENT_PUSHBUTTON
} Ipwps_pbc_event;
typedef enum {
IPWPS_PIN_EVENT_SETPIN,
IPWPS_PIN_EVENT_GETPIN,
IPWPS_PIN_EVENT_NEWPIN, /* Generate a new PIN if in auto PIN mode */
IPWPS_PIN_EVENT_SET_CM /* Set the current PIN Config Method */
} Ipwps_pin_event;
typedef enum {
IPWPS_ENROLLEE_EVENT_START,
IPWPS_ENROLLEE_EVENT_STOP
} Ipwps_enrollee_event;
typedef enum {
IPWPS_REGISTRAR_EVENT_START,
IPWPS_REGISTRAR_EVENT_STOP
} Ipwps_registrar_event;
typedef enum {
IPWPS_CREDENTIAL_EVENT_SETMETHOD,
IPWPS_CREDENTIAL_EVENT_ADDCRED,
IPWPS_CREDENTIAL_EVENT_DELCRED,
IPWPS_CREDENTIAL_EVENT_NEWCRED
} Ipwps_credential_event;
typedef union {
Ipwps_pbc_event pbc_event;
Ipwps_pin_event pin_event;
Ipwps_enrollee_event enrollee_event;
Ipwps_registrar_event registrar_event;
Ipwps_credential_event credential_event;
} Ipwps_event_type;
typedef struct Ipwps_event_data_st {
Ip_bool valid; /* Set to IP_TRUE if the event_data is valid (i.e. contains something) */
union {
Ip_u16 config_method;
struct {
Ip_u8 val[IPWPS_PIN_MAXLEN+1]; /* Null terminated string containing the pin */
Ipwps_device_pwdid dev_pwdid; /* Device Password Id for pin. One of:
* IPWPS_DEVPWDID_DEFAULT_PIN
* IPWPS_DEVPWDID_USER_SPECIFIED
* IPWPS_DEVPWDID_REGISTRAR_SPECIFIED
*/
} pin;
Ipwps_credential_method credential_method; /* Used by the IPWPS_CREDENTIAL_EVENT_SETMETHOD event */
Ip_u16 credential_setno; /* Set # for the credential specified by the
IPWPS_CREDENTIAL_EVENT_ADDCRED/IPWPS_CREDENTIAL_EVENT_DELCRED event */
} u;
} Ipwps_event_data;
typedef struct Ipwps_event_msg_st {
Ipwps_event_type event_type;
Ipwps_event_data event_data;
} Ipwps_event_msg;
typedef struct Ipwps_dev_pwd_container_st {
Ip_u8 pwd[IPWPS_DEVICE_PASSWORD_MAXLEN];
Ip_u16 len;
} Ipwps_dev_pwd_container;
/* WPS Capability Information */
typedef struct Ipwps_capability_info_st {
Ip_u8 conn_types; /* Bit-ORed values from WPS "CONNECTION TYPE FLAGS" VALUES in "ipwps_common.h" */
Ip_u16 auth_types; /* Bit-ORed values from WPS "AUTHENTICATION TYPE FLAGS" VALUES in "ipwps_common.h" */
Ip_u16 encr_types; /* Bit-ORed values from WPS "ENCRYPTION TYPE FLAGS" VALUES in "ipwps_common.h" */
Ip_u16 config_methods; /* Bit-ORed values from WPS "CONFIG METHODS" VALUES in "ipwps_common.h" */
} Ipwps_capability_info;
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/
#ifdef __cplusplus
}
#endif
#endif