blob: fa749a78b162670fdb34302b6b61c7495fdfdfba [file] [log] [blame]
/** @file keyMgmtstaType.h
*
* @brief This file defines data types structrue for key managment.
*
* Copyright (C) 2014, Marvell International Ltd.
*
* This software file (the "File") is distributed by Marvell International
* Ltd. under the terms of the GNU General Public License Version 2, June 1991
* (the "License"). You may use, redistribute and/or modify this File in
* accordance with the terms and conditions of the License, a copy of which
* is available by writing to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
* this warranty disclaimer.
*/
/******************************************************
Change log:
03/07/2014: Initial version
******************************************************/
#ifndef _KEYMGMTSTATYPES_H_
#define _KEYMGMTSTATYPES_H_
#define WPA_AES_KEY_LEN 16
#define WPA_TKIP_KEY_LEN 32
#define WPA_WEP104_KEY_LEN 13
#define WPA_WEP40_KEY_LEN 5
#define KEY_TYPE_WEP 0
#define KEY_TYPE_TKIP 1
#define KEY_TYPE_AES 2
#define KEY_TYPE_WAPI 3
#define KEY_TYPE_AES_CMAC 4
/* This struct definition is used in ROM and should be kept intact */
typedef struct {
UINT8 wep40:1;
UINT8 wep104:1;
UINT8 tkip:1;
UINT8 ccmp:1;
UINT8 rsvd:4;
} Cipher_t;
/* This struct definition is used in ROM and should be kept intact */
typedef MLAN_PACK_START struct {
UINT16 noRsn:1;
UINT16 wepStatic:1;
UINT16 wepDynamic:1;
UINT16 wpa:1;
UINT16 wpaNone:1;
UINT16 wpa2:1;
UINT16 cckm:1;
UINT16 wapi:1;
UINT16 rsvd:8;
} MLAN_PACK_END SecurityMode_t;
typedef MLAN_PACK_START enum {
AKM_NONE = 0,
AKM_1X = 1,
AKM_PSK = 2,
AKM_FT_1X = 3,
AKM_FT_PSK = 4,
AKM_SHA256_1X = 5,
AKM_SHA256_PSK = 6,
AKM_TDLS = 7,
AKM_CCKM = 99, /* Make CCKM a unique AKM enumeration */
AKM_WPA_MAX = 2, /* Only AKM types 1 and 2 are expected for WPA */
AKM_RSN_MAX = 6, /* AKM types 1 to 6 are valid for RSN */
AKM_SUITE_MAX = 5 /* Used to size max parsing of AKMs from a BCN */
} MLAN_PACK_END AkmType_e;
typedef AkmType_e AkmTypePacked_e;
typedef struct {
UINT8 akmOui[3];
AkmTypePacked_e akmType;
} AkmSuite_t;
typedef struct {
SecurityMode_t wpaType;
Cipher_t mcstCipher;
Cipher_t ucstCipher;
} SecurityParams_t;
typedef enum {
host_PSK_SUPP_MIC_FAIL_TIMEOUT = 0x0001,
host_PSK_SUPP_FOURWAY_HANDSHAKE_FAIL = 0x0002
} host_psk_suppMsg_e;
typedef struct {
UINT8 keyId[2];
UINT8 IPN[6];
UINT8 IGtk[32];
} IGtkKde_t;
#endif