WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
wapi.h 文件参考
#include "wpa_supplicant_i.h"
#include "utils/eloop.h"
wapi.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  wai_sm_hdl
 
struct  wapi_bksa
 
struct  wapi_usk
 
struct  wapi_usksa
 
struct  wapi_msksa
 
struct  wapi_cipher_suite
 
struct  wapi_asue_struct
 

宏定义

#define ETH_TYPE_WAI   0x88B4
 
#define WAI_VERSION   1
 
#define WAI_TYPE   1
 
#define WAI_FLAG_BK_UPDATE   BIT(0)
 
#define WAI_FLAG_PRE_AUTH   BIT(1)
 
#define WAI_FLAG_CERT_REQ   BIT(2)
 
#define WAI_FLAG_OPT_FIELD   BIT(3)
 
#define WAI_FLAG_USK_UPDATE   BIT(4)
 
#define WAI_FLAG_STAKEY_NEG   BIT(5)
 
#define WAI_FLAG_STAKEY_DEL   BIT(6)
 
#define WAI_FLAG_RESERVED   BIT(7)
 
#define MAX_KEYDATA_SIZE   256
 
#define WAI_AUTH_ID_SIZE   32
 
#define WAI_FLAG_SIZE   1
 
#define WAI_CHALLENGE_SIZE   32
 
#define WAI_KEY_LENGTH_SIZE   1
 
#define WAI_BKID_SIZE   16
 
#define WAI_BK_SIZE   16
 
#define WAI_ADDID_SIZE   12
 
#define WAI_USKID_SIZE   1
 
#define WAI_MSKID_SIZE   1
 
#define WAI_USK_PN_IV_SIZE   16
 
#define WAI_MSK_ANNO_IV_SIZE   16
 
#define WAI_DATA_SERIAL_NUMBER   16
 
#define WAI_MIC_SIZE   20
 
#define WAI_UEK_UCK_SIZE   32
 
#define WAI_MAK_SIZE   16
 
#define WAI_KEK_SIZE   16
 
#define WAI_MSK_SIZE   32
 
#define WAI_NMK_SIZE   16
 
#define WAI_MAX_TX_COUNT   3
 
#define WAI_USKSA_CNT   2
 
#define WAI_PRE_PSK_SIZE   128 /* HEX key type will be 64 * 2 */
 
#define WAPI_IE_ID   0x44
 
#define WAPI_IE_ID_SIZE   1
 
#define WAPI_IE_LENGTH_SIZE   1
 
#define WAPI_IE_VERSION_SIZE   2
 
#define WAPI_IE_OUI_SIZE   3
 
#define WAPI_IE_AKM_CNT_LEN   2
 
#define WAPI_IE_AKM_SUIT_LEN   1
 
#define WAPI_IE_AKM_SUIT_PSK   0x00147202
 
#define WAPI_IE_CIPHER_CNT_LEN   2
 
#define WAPI_IE_CIPHER_SUIT_LEN   1
 
#define WAPI_IE_MIN_SIZE   16
 
#define WAPI_IE_MAX_SIZE   255
 
#define WAI_USK_DERIVATION_SIZE   96
 
#define WAI_AUTH_TIMEOUT   10 /* unit: s */
 
#define WAPI_SUCCESS   0
 
#define WAPI_FAILED   (-1)
 
#define ETH_ALEN   6
 

类型定义

typedef enum _wai_frame_enum wai_frame_enum
 
typedef int(* wai_dispose_func) (struct wpa_supplicant *wpa, const unsigned char *payload, unsigned int payload_len)
 
typedef struct wai_sm_hdl wai_sm_hdl_stru
 
typedef struct wapi_bksa wapi_bksa_stru
 
typedef struct wapi_usk wapi_usk_stru
 
typedef struct wapi_usksa wapi_usksa_stru
 
typedef struct wapi_msksa wapi_msksa_stru
 
typedef struct wapi_cipher_suite wapi_cipher_suite_stru
 
typedef enum _auth_type_enum auth_type_enum
 
typedef enum _cipher_type_enum cipher_type_enum
 

枚举

enum  keyslot_engine {
  KEYSLOT_ENGINE_AES = 0 , KEYSLOT_ENGINE_SM4 , KEYSLOT_ENGINE_HMAC_SHA1 , KEYSLOT_ENGINE_HMAC_SHA256 ,
  KEYSLOT_ENGINE_HMAC_SHA384 , KEYSLOT_ENGINE_HMAC_SHA512 , KEYSLOT_ENGINE_HMAC_SM3 , KEYSLOT_ENGINE_AES_ABRK1_REE
}
 
enum  wai_operation_t { WAI_OPERATION_NONE = -1 , WAI_DECRYPT = 0 , WAI_ENCRYPT }
 
enum  wai_state_enum {
  WAISM_INIT = 0 , WAISM_ALREADY_ASSOC , WAISM_USKNEG_RES , WAISM_USKNEG_CONFIRM ,
  WAISM_FINSHED
}
 
enum  _wai_frame_enum {
  WAI_PREAUTH_START = 1 , WAI_STAKEY_REQUEST = 2 , WAI_AUTH_ACTIVE = 3 , WAI_ACCESS_AUTH_REQUEST = 4 ,
  WAI_ACCESS_AUTH_RESPONSE = 5 , WAI_CERT_AUTH_REQUEST = 6 , WAI_CERT_AUTH_RESPONSE = 7 , WAI_USK_NEGOTIATION_REQUEST = 8 ,
  WAI_USK_NEGOTIATION_RESPONSE = 9 , WAI_USK_NEGOTIATION_CONFIRM = 10 , WAI_MSK_ANNOUNCEMENT = 11 , WAI_MSK_ANNOUNCEMENT_RESPONSE = 12 ,
  WAI_SUBTYPE_MAX = 13
}
 
enum  _auth_type_enum { AUTH_TYPE_NONE_WAPI = 0 , AUTH_TYPE_WAPI_CERT , AUTH_TYPE_WAPI_PSK }
 
enum  _cipher_type_enum { CIPHER_TYPE_NONE = 0 , CIPHER_TYPE_SM4_OFB , CIPHER_TYPE_MAX }
 
enum  conn_status_enum { CONN_ASSOC = 0 , CONN_DISASSOC }
 

函数

void wapi_iface_init (struct wapi_asue_struct *wapi)
 
void wapi_iface_deinit (struct wapi_asue_struct *wapi)
 
int wapi_init_ie (struct wpa_supplicant *wpa)
 
int wapi_parse_ie (const unsigned char *wapi_ie, unsigned int ie_len, struct wpa_ie_data *ie_data)
 
int wapi_generate_addid (struct wapi_asue_struct *wapi, struct wpa_bss *bss)
 
int wapi_event_process (struct wapi_asue_struct *wapi, conn_status_enum action, const unsigned char *assoc_ie, size_t assoc_ie_len)
 

宏定义说明

◆ ETH_ALEN

#define ETH_ALEN   6

◆ ETH_TYPE_WAI

#define ETH_TYPE_WAI   0x88B4

◆ MAX_KEYDATA_SIZE

#define MAX_KEYDATA_SIZE   256

◆ WAI_ADDID_SIZE

#define WAI_ADDID_SIZE   12

◆ WAI_AUTH_ID_SIZE

#define WAI_AUTH_ID_SIZE   32

◆ WAI_AUTH_TIMEOUT

#define WAI_AUTH_TIMEOUT   10 /* unit: s */

◆ WAI_BK_SIZE

#define WAI_BK_SIZE   16

◆ WAI_BKID_SIZE

#define WAI_BKID_SIZE   16

◆ WAI_CHALLENGE_SIZE

#define WAI_CHALLENGE_SIZE   32

◆ WAI_DATA_SERIAL_NUMBER

#define WAI_DATA_SERIAL_NUMBER   16

◆ WAI_FLAG_BK_UPDATE

#define WAI_FLAG_BK_UPDATE   BIT(0)

◆ WAI_FLAG_CERT_REQ

#define WAI_FLAG_CERT_REQ   BIT(2)

◆ WAI_FLAG_OPT_FIELD

#define WAI_FLAG_OPT_FIELD   BIT(3)

◆ WAI_FLAG_PRE_AUTH

#define WAI_FLAG_PRE_AUTH   BIT(1)

◆ WAI_FLAG_RESERVED

#define WAI_FLAG_RESERVED   BIT(7)

◆ WAI_FLAG_SIZE

#define WAI_FLAG_SIZE   1

◆ WAI_FLAG_STAKEY_DEL

#define WAI_FLAG_STAKEY_DEL   BIT(6)

◆ WAI_FLAG_STAKEY_NEG

#define WAI_FLAG_STAKEY_NEG   BIT(5)

◆ WAI_FLAG_USK_UPDATE

#define WAI_FLAG_USK_UPDATE   BIT(4)

◆ WAI_KEK_SIZE

#define WAI_KEK_SIZE   16

◆ WAI_KEY_LENGTH_SIZE

#define WAI_KEY_LENGTH_SIZE   1

◆ WAI_MAK_SIZE

#define WAI_MAK_SIZE   16

◆ WAI_MAX_TX_COUNT

#define WAI_MAX_TX_COUNT   3

◆ WAI_MIC_SIZE

#define WAI_MIC_SIZE   20

◆ WAI_MSK_ANNO_IV_SIZE

#define WAI_MSK_ANNO_IV_SIZE   16

◆ WAI_MSK_SIZE

#define WAI_MSK_SIZE   32

◆ WAI_MSKID_SIZE

#define WAI_MSKID_SIZE   1

◆ WAI_NMK_SIZE

#define WAI_NMK_SIZE   16

◆ WAI_PRE_PSK_SIZE

#define WAI_PRE_PSK_SIZE   128 /* HEX key type will be 64 * 2 */

◆ WAI_TYPE

#define WAI_TYPE   1

◆ WAI_UEK_UCK_SIZE

#define WAI_UEK_UCK_SIZE   32

◆ WAI_USK_DERIVATION_SIZE

#define WAI_USK_DERIVATION_SIZE   96

◆ WAI_USK_PN_IV_SIZE

#define WAI_USK_PN_IV_SIZE   16

◆ WAI_USKID_SIZE

#define WAI_USKID_SIZE   1

◆ WAI_USKSA_CNT

#define WAI_USKSA_CNT   2

◆ WAI_VERSION

#define WAI_VERSION   1

◆ WAPI_FAILED

#define WAPI_FAILED   (-1)

◆ WAPI_IE_AKM_CNT_LEN

#define WAPI_IE_AKM_CNT_LEN   2

◆ WAPI_IE_AKM_SUIT_LEN

#define WAPI_IE_AKM_SUIT_LEN   1

◆ WAPI_IE_AKM_SUIT_PSK

#define WAPI_IE_AKM_SUIT_PSK   0x00147202

◆ WAPI_IE_CIPHER_CNT_LEN

#define WAPI_IE_CIPHER_CNT_LEN   2

◆ WAPI_IE_CIPHER_SUIT_LEN

#define WAPI_IE_CIPHER_SUIT_LEN   1

◆ WAPI_IE_ID

#define WAPI_IE_ID   0x44

◆ WAPI_IE_ID_SIZE

#define WAPI_IE_ID_SIZE   1

◆ WAPI_IE_LENGTH_SIZE

#define WAPI_IE_LENGTH_SIZE   1

◆ WAPI_IE_MAX_SIZE

#define WAPI_IE_MAX_SIZE   255

◆ WAPI_IE_MIN_SIZE

#define WAPI_IE_MIN_SIZE   16

◆ WAPI_IE_OUI_SIZE

#define WAPI_IE_OUI_SIZE   3

◆ WAPI_IE_VERSION_SIZE

#define WAPI_IE_VERSION_SIZE   2

◆ WAPI_SUCCESS

#define WAPI_SUCCESS   0

类型定义说明

◆ auth_type_enum

◆ cipher_type_enum

◆ wai_dispose_func

typedef int(* wai_dispose_func) (struct wpa_supplicant *wpa, const unsigned char *payload, unsigned int payload_len)

◆ wai_frame_enum

◆ wai_sm_hdl_stru

typedef struct wai_sm_hdl wai_sm_hdl_stru

◆ wapi_bksa_stru

typedef struct wapi_bksa wapi_bksa_stru

◆ wapi_cipher_suite_stru

◆ wapi_msksa_stru

typedef struct wapi_msksa wapi_msksa_stru

◆ wapi_usk_stru

typedef struct wapi_usk wapi_usk_stru

◆ wapi_usksa_stru

typedef struct wapi_usksa wapi_usksa_stru

枚举类型说明

◆ _auth_type_enum

枚举值
AUTH_TYPE_NONE_WAPI 
AUTH_TYPE_WAPI_CERT 
AUTH_TYPE_WAPI_PSK 

◆ _cipher_type_enum

枚举值
CIPHER_TYPE_NONE 
CIPHER_TYPE_SM4_OFB 
CIPHER_TYPE_MAX 

◆ _wai_frame_enum

枚举值
WAI_PREAUTH_START 
WAI_STAKEY_REQUEST 
WAI_AUTH_ACTIVE 
WAI_ACCESS_AUTH_REQUEST 
WAI_ACCESS_AUTH_RESPONSE 
WAI_CERT_AUTH_REQUEST 
WAI_CERT_AUTH_RESPONSE 
WAI_USK_NEGOTIATION_REQUEST 
WAI_USK_NEGOTIATION_RESPONSE 
WAI_USK_NEGOTIATION_CONFIRM 
WAI_MSK_ANNOUNCEMENT 
WAI_MSK_ANNOUNCEMENT_RESPONSE 
WAI_SUBTYPE_MAX 

◆ conn_status_enum

枚举值
CONN_ASSOC 
CONN_DISASSOC 

◆ keyslot_engine

枚举值
KEYSLOT_ENGINE_AES 
KEYSLOT_ENGINE_SM4 
KEYSLOT_ENGINE_HMAC_SHA1 
KEYSLOT_ENGINE_HMAC_SHA256 
KEYSLOT_ENGINE_HMAC_SHA384 
KEYSLOT_ENGINE_HMAC_SHA512 
KEYSLOT_ENGINE_HMAC_SM3 
KEYSLOT_ENGINE_AES_ABRK1_REE 

◆ wai_operation_t

Type of operation.

枚举值
WAI_OPERATION_NONE 
WAI_DECRYPT 
WAI_ENCRYPT 

◆ wai_state_enum

枚举值
WAISM_INIT 
WAISM_ALREADY_ASSOC 
WAISM_USKNEG_RES 
WAISM_USKNEG_CONFIRM 
WAISM_FINSHED 

函数说明

◆ wapi_event_process()

int wapi_event_process ( struct wapi_asue_struct wapi,
conn_status_enum  action,
const unsigned char *  assoc_ie,
size_t  assoc_ie_len 
)

◆ wapi_generate_addid()

int wapi_generate_addid ( struct wapi_asue_struct wapi,
struct wpa_bss *  bss 
)

◆ wapi_iface_deinit()

void wapi_iface_deinit ( struct wapi_asue_struct wapi)

◆ wapi_iface_init()

void wapi_iface_init ( struct wapi_asue_struct wapi)

◆ wapi_init_ie()

int wapi_init_ie ( struct wpa_supplicant *  wpa)

◆ wapi_parse_ie()

int wapi_parse_ie ( const unsigned char *  wapi_ie,
unsigned int  ie_len,
struct wpa_ie_data *  ie_data 
)