Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
staging
vt6656
key.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3
* All rights reserved.
4
*
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.
9
*
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.
14
*
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.
18
*
19
*
20
* File: key.h
21
*
22
* Purpose: Implement functions for 802.11i Key management
23
*
24
* Author: Jerry Chen
25
*
26
* Date: May 29, 2003
27
*
28
*/
29
30
#ifndef __KEY_H__
31
#define __KEY_H__
32
33
#include "
ttype.h
"
34
#include "
tether.h
"
35
#include "
80211mgr.h
"
36
37
/*--------------------- Export Definitions -------------------------*/
38
#define MAX_GROUP_KEY 4
39
#define MAX_KEY_TABLE 11
40
#define MAX_KEY_LEN 32
41
#define AES_KEY_LEN 16
42
43
44
#define AUTHENTICATOR_KEY 0x10000000
45
#define USE_KEYRSC 0x20000000
46
#define PAIRWISE_KEY 0x40000000
47
#define TRANSMIT_KEY 0x80000000
48
49
#define GROUP_KEY 0x00000000
50
51
#define KEY_CTL_WEP 0x00
52
#define KEY_CTL_NONE 0x01
53
#define KEY_CTL_TKIP 0x02
54
#define KEY_CTL_CCMP 0x03
55
#define KEY_CTL_INVALID 0xFF
56
57
58
typedef
struct
tagSKeyItem
59
{
60
BOOL
bKeyValid
;
61
unsigned
long
uKeyLength
;
62
BYTE
abyKey
[
MAX_KEY_LEN
];
63
QWORD
KeyRSC
;
64
DWORD
dwTSC47_16
;
65
WORD
wTSC15_0
;
66
BYTE
byCipherSuite
;
67
BYTE
byReserved0
;
68
DWORD
dwKeyIndex
;
69
void
*
pvKeyTable
;
70
}
SKeyItem
, *
PSKeyItem
;
//64
71
72
typedef
struct
tagSKeyTable
73
{
74
BYTE
abyBSSID
[
ETH_ALEN
];
/* 6 */
75
BYTE
byReserved0
[2];
//8
76
SKeyItem
PairwiseKey
;
77
SKeyItem
GroupKey
[
MAX_GROUP_KEY
];
//64*5 = 320, 320+8=328
78
DWORD
dwGTKeyIndex
;
// GroupTransmitKey Index
79
BOOL
bInUse
;
80
WORD
wKeyCtl
;
81
BOOL
bSoftWEP
;
82
BYTE
byReserved1
[6];
83
}
SKeyTable
, *
PSKeyTable
;
//352
84
85
typedef
struct
tagSKeyManagement
86
{
87
SKeyTable
KeyTable
[
MAX_KEY_TABLE
];
88
}
SKeyManagement
, *
PSKeyManagement
;
89
90
/*--------------------- Export Types ------------------------------*/
91
92
/*--------------------- Export Macros ------------------------------*/
93
94
/*--------------------- Export Classes ----------------------------*/
95
96
/*--------------------- Export Variables --------------------------*/
97
98
/*--------------------- Export Functions --------------------------*/
99
100
void
KeyvInitTable
(
void
*pDeviceHandler, PSKeyManagement pTable);
101
102
BOOL
KeybGetKey
(PSKeyManagement pTable,
PBYTE
pbyBSSID,
DWORD
dwKeyIndex,
103
PSKeyItem *pKey);
104
105
BOOL
KeybSetKey
(
106
void
*pDeviceHandler,
107
PSKeyManagement pTable,
108
PBYTE
pbyBSSID,
109
DWORD
dwKeyIndex,
110
unsigned
long
uKeyLength,
111
PQWORD
pKeyRSC,
112
PBYTE
pbyKey,
113
BYTE
byKeyDecMode
114
);
115
116
BOOL
KeybRemoveKey
(
117
void
*pDeviceHandler,
118
PSKeyManagement pTable,
119
PBYTE
pbyBSSID,
120
DWORD
dwKeyIndex
121
);
122
123
BOOL
KeybRemoveAllKey
(
124
void
*pDeviceHandler,
125
PSKeyManagement pTable,
126
PBYTE
pbyBSSID
127
);
128
129
void
KeyvRemoveWEPKey
(
130
void
*pDeviceHandler,
131
PSKeyManagement pTable,
132
DWORD
dwKeyIndex
133
);
134
135
void
KeyvRemoveAllWEPKey
(
136
void
*pDeviceHandler,
137
PSKeyManagement pTable
138
);
139
140
BOOL
KeybGetTransmitKey
(PSKeyManagement pTable,
PBYTE
pbyBSSID,
DWORD
dwKeyType,
141
PSKeyItem *pKey);
142
143
BOOL
KeybCheckPairewiseKey
(PSKeyManagement pTable, PSKeyItem *pKey);
144
145
BOOL
KeybSetDefaultKey
(
146
void
*pDeviceHandler,
147
PSKeyManagement pTable,
148
DWORD
dwKeyIndex,
149
unsigned
long
uKeyLength,
150
PQWORD
pKeyRSC,
151
PBYTE
pbyKey,
152
BYTE
byKeyDecMode
153
);
154
155
BOOL
KeybSetAllGroupKey
(
156
void
*pDeviceHandler,
157
PSKeyManagement pTable,
158
DWORD
dwKeyIndex,
159
unsigned
long
uKeyLength,
160
PQWORD
pKeyRSC,
161
PBYTE
pbyKey,
162
BYTE
byKeyDecMode
163
);
164
165
#endif
/* __KEY_H__ */
Generated on Thu Jan 10 2013 14:32:26 for Linux Kernel by
1.8.2