📄 key.h
字号:
/* * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * All rights reserved. * * This software is copyrighted by and is the sole property of * VIA Networking Technologies, Inc. This software may only be used * in accordance with the corresponding license agreement. Any unauthorized * use, duplication, transmission, distribution, or disclosure of this * software is expressly forbidden. * * This software is provided by VIA Networking Technologies, Inc. "as is" * and any express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular purpose * are disclaimed. In no event shall VIA Networking Technologies, Inc. * be liable for any direct, indirect, incidental, special, exemplary, or * consequential damages. * * * File: key.h * * Purpose: Implement functions for 802.11i Key management * * Author: Jerry Chen * * Date: May 29, 2003 * */#ifndef __KEY_H__#define __KEY_H__#if !defined(__TTYPE_H__)#include "ttype.h"#endif#if !defined(__TETHER_H__)#include "tether.h"#endif#if !defined(__80211MGR_H__)#include "80211mgr.h"#endif/*--------------------- Export Definitions -------------------------*/#define MAX_GROUP_KEY 4#define MAX_KEY_TABLE 11#define MAX_KEY_LEN 32#define AES_KEY_LEN 16#define AUTHENTICATOR_KEY 0x10000000#define USE_KEYRSC 0x20000000#define PAIRWISE_KEY 0x40000000#define TRANSMIT_KEY 0x80000000#define GROUP_KEY 0x00000000#define KEY_CTL_WEP 0x00#define KEY_CTL_NONE 0x01#define KEY_CTL_TKIP 0x02#define KEY_CTL_CCMP 0x03#define KEY_CTL_INVALID 0xFFtypedef struct tagSKeyItem{ BOOL bKeyValid; ULONG uKeyLength; BYTE abyKey[MAX_KEY_LEN]; QWORD KeyRSC; DWORD dwTSC47_16; WORD wTSC15_0; BYTE byCipherSuite; BYTE byReserved0; DWORD dwKeyIndex; PVOID pvKeyTable;} SKeyItem, DEF* PSKeyItem; //64typedef struct tagSKeyTable{ BYTE abyBSSID[U_ETHER_ADDR_LEN]; //6 BYTE byReserved0[2]; //8 SKeyItem PairwiseKey; SKeyItem GroupKey[MAX_GROUP_KEY]; //64*5 = 320, 320+8=328 DWORD dwGTKeyIndex; // GroupTransmitKey Index BOOL bInUse; WORD wKeyCtl; BOOL bSoftWEP; BYTE byReserved1[6];} SKeyTable, DEF* PSKeyTable; //352typedef struct tagSKeyManagement{ SKeyTable KeyTable[MAX_KEY_TABLE];} SKeyManagement, DEF* PSKeyManagement;/*--------------------- Export Types ------------------------------*//*--------------------- Export Macros ------------------------------*//*--------------------- Export Classes ----------------------------*//*--------------------- Export Variables --------------------------*//*--------------------- Export Functions --------------------------*/#ifdef __cplusplusextern "C" { /* Assume C declarations for C++ */#endif /* __cplusplus */VOID KeyvInitTable(PVOID pDeviceHandler, PSKeyManagement pTable); BOOL KeybGetKey( IN PSKeyManagement pTable, IN PBYTE pbyBSSID, IN DWORD dwKeyIndex, OUT PSKeyItem *pKey ); BOOL KeybSetKey( PVOID pDeviceHandler, PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex, ULONG uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode );BOOL KeybRemoveKey( PVOID pDeviceHandler, PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex );BOOL KeybRemoveAllKey ( PVOID pDeviceHandler, PSKeyManagement pTable, PBYTE pbyBSSID );VOID KeyvRemoveWEPKey( PVOID pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex );VOID KeyvRemoveAllWEPKey( PVOID pDeviceHandler, PSKeyManagement pTable );BOOL KeybGetTransmitKey( IN PSKeyManagement pTable, IN PBYTE pbyBSSID, IN DWORD dwKeyType, OUT PSKeyItem *pKey );BOOL KeybCheckPairewiseKey( IN PSKeyManagement pTable, OUT PSKeyItem *pKey ); BOOL KeybSetDefaultKey ( PVOID pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, ULONG uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode ); BOOL KeybSetAllGroupKey ( PVOID pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, ULONG uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode ); #ifdef __cplusplus} /* End of extern "C" { */#endif /* __cplusplus */#endif // __KEY_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -