debugfs: Modified default dir of debugfs for debugging UHCI.
[linux/fpc-iii.git] / drivers / staging / vt6655 / key.h
blob9c7d335ea08822f4be4a8624c0e81dbf431da052
1 /*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 * File: key.h
22 * Purpose: Implement functions for 802.11i Key management
24 * Author: Jerry Chen
26 * Date: May 29, 2003
31 #ifndef __KEY_H__
32 #define __KEY_H__
34 #if !defined(__TTYPE_H__)
35 #include "ttype.h"
36 #endif
38 #if !defined(__TETHER_H__)
39 #include "tether.h"
40 #endif
42 #if !defined(__80211MGR_H__)
43 #include "80211mgr.h"
44 #endif
46 /*--------------------- Export Definitions -------------------------*/
47 #define MAX_GROUP_KEY 4
48 #define MAX_KEY_TABLE 11
49 #define MAX_KEY_LEN 32
50 #define AES_KEY_LEN 16
53 #define AUTHENTICATOR_KEY 0x10000000
54 #define USE_KEYRSC 0x20000000
55 #define PAIRWISE_KEY 0x40000000
56 #define TRANSMIT_KEY 0x80000000
58 #define GROUP_KEY 0x00000000
60 #define KEY_CTL_WEP 0x00
61 #define KEY_CTL_NONE 0x01
62 #define KEY_CTL_TKIP 0x02
63 #define KEY_CTL_CCMP 0x03
64 #define KEY_CTL_INVALID 0xFF
67 typedef struct tagSKeyItem
69 BOOL bKeyValid;
70 ULONG uKeyLength;
71 BYTE abyKey[MAX_KEY_LEN];
72 QWORD KeyRSC;
73 DWORD dwTSC47_16;
74 WORD wTSC15_0;
75 BYTE byCipherSuite;
76 BYTE byReserved0;
77 DWORD dwKeyIndex;
78 PVOID pvKeyTable;
79 } SKeyItem, DEF* PSKeyItem; //64
81 typedef struct tagSKeyTable
83 BYTE abyBSSID[U_ETHER_ADDR_LEN]; //6
84 BYTE byReserved0[2]; //8
85 SKeyItem PairwiseKey;
86 SKeyItem GroupKey[MAX_GROUP_KEY]; //64*5 = 320, 320+8=328
87 DWORD dwGTKeyIndex; // GroupTransmitKey Index
88 BOOL bInUse;
89 //2006-1116-01,<Modify> by NomadZhao
90 //WORD wKeyCtl;
91 //BOOL bSoftWEP;
92 BOOL bSoftWEP;
93 WORD wKeyCtl; // for address of wKeyCtl at align 4
95 BYTE byReserved1[6];
96 } SKeyTable, DEF* PSKeyTable; //348
98 typedef struct tagSKeyManagement
100 SKeyTable KeyTable[MAX_KEY_TABLE];
101 } SKeyManagement, DEF* PSKeyManagement;
103 /*--------------------- Export Types ------------------------------*/
105 /*--------------------- Export Macros ------------------------------*/
107 /*--------------------- Export Classes ----------------------------*/
109 /*--------------------- Export Variables --------------------------*/
111 /*--------------------- Export Functions --------------------------*/
112 #ifdef __cplusplus
113 extern "C" { /* Assume C declarations for C++ */
114 #endif /* __cplusplus */
116 VOID KeyvInitTable(PSKeyManagement pTable, DWORD_PTR dwIoBase);
118 BOOL KeybGetKey(
119 IN PSKeyManagement pTable,
120 IN PBYTE pbyBSSID,
121 IN DWORD dwKeyIndex,
122 OUT PSKeyItem *pKey
125 BOOL KeybSetKey(
126 PSKeyManagement pTable,
127 PBYTE pbyBSSID,
128 DWORD dwKeyIndex,
129 ULONG uKeyLength,
130 PQWORD pKeyRSC,
131 PBYTE pbyKey,
132 BYTE byKeyDecMode,
133 DWORD_PTR dwIoBase,
134 BYTE byLocalID
137 BOOL KeybSetDefaultKey(
138 PSKeyManagement pTable,
139 DWORD dwKeyIndex,
140 ULONG uKeyLength,
141 PQWORD pKeyRSC,
142 PBYTE pbyKey,
143 BYTE byKeyDecMode,
144 DWORD_PTR dwIoBase,
145 BYTE byLocalID
148 BOOL KeybRemoveKey(
149 PSKeyManagement pTable,
150 PBYTE pbyBSSID,
151 DWORD dwKeyIndex,
152 DWORD_PTR dwIoBase
155 BOOL KeybGetTransmitKey(
156 IN PSKeyManagement pTable,
157 IN PBYTE pbyBSSID,
158 IN DWORD dwKeyType,
159 OUT PSKeyItem *pKey
162 BOOL KeybCheckPairewiseKey(
163 IN PSKeyManagement pTable,
164 OUT PSKeyItem *pKey
167 BOOL KeybRemoveAllKey(
168 PSKeyManagement pTable,
169 PBYTE pbyBSSID,
170 DWORD_PTR dwIoBase
173 VOID KeyvRemoveWEPKey(
174 PSKeyManagement pTable,
175 DWORD dwKeyIndex,
176 DWORD_PTR dwIoBase
179 VOID KeyvRemoveAllWEPKey(
180 PSKeyManagement pTable,
181 DWORD_PTR dwIoBase
184 BOOL KeybSetAllGroupKey (
185 PSKeyManagement pTable,
186 DWORD dwKeyIndex,
187 ULONG uKeyLength,
188 PQWORD pKeyRSC,
189 PBYTE pbyKey,
190 BYTE byKeyDecMode,
191 DWORD_PTR dwIoBase,
192 BYTE byLocalID
195 #ifdef __cplusplus
196 } /* End of extern "C" { */
198 #endif /* __cplusplus */
201 #endif // __KEY_H__