⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ieee80211_key.h

📁 linux 内核源代码
💻 H
字号:
/* * Copyright 2002-2004, Instant802 Networks, Inc. * Copyright 2005, Devicescape Software, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#ifndef IEEE80211_KEY_H#define IEEE80211_KEY_H#include <linux/types.h>#include <linux/list.h>#include <linux/crypto.h>#include <net/mac80211.h>/* ALG_TKIP * struct ieee80211_key::key is encoded as a 256-bit (32 byte) data block: * Temporal Encryption Key (128 bits) * Temporal Authenticator Tx MIC Key (64 bits) * Temporal Authenticator Rx MIC Key (64 bits) */#define WEP_IV_LEN 4#define WEP_ICV_LEN 4#define ALG_TKIP_KEY_LEN 32/* Starting offsets for each key */#define ALG_TKIP_TEMP_ENCR_KEY 0#define ALG_TKIP_TEMP_AUTH_TX_MIC_KEY 16#define ALG_TKIP_TEMP_AUTH_RX_MIC_KEY 24#define TKIP_IV_LEN 8#define TKIP_ICV_LEN 4#define ALG_CCMP_KEY_LEN 16#define CCMP_HDR_LEN 8#define CCMP_MIC_LEN 8#define CCMP_TK_LEN 16#define CCMP_PN_LEN 6#define NUM_RX_DATA_QUEUES 17struct ieee80211_local;struct ieee80211_sub_if_data;struct sta_info;#define KEY_FLAG_UPLOADED_TO_HARDWARE	(1<<0)struct ieee80211_key {	struct ieee80211_local *local;	struct ieee80211_sub_if_data *sdata;	struct sta_info *sta;	struct list_head list;	unsigned int flags;	union {		struct {			/* last used TSC */			u32 iv32;			u16 iv16;			u16 p1k[5];			int tx_initialized;			/* last received RSC */			u32 iv32_rx[NUM_RX_DATA_QUEUES];			u16 iv16_rx[NUM_RX_DATA_QUEUES];			u16 p1k_rx[NUM_RX_DATA_QUEUES][5];			int rx_initialized[NUM_RX_DATA_QUEUES];		} tkip;		struct {			u8 tx_pn[6];			u8 rx_pn[NUM_RX_DATA_QUEUES][6];			struct crypto_cipher *tfm;			u32 replays; /* dot11RSNAStatsCCMPReplays */			/* scratch buffers for virt_to_page() (crypto API) */#ifndef AES_BLOCK_LEN#define AES_BLOCK_LEN 16#endif			u8 tx_crypto_buf[6 * AES_BLOCK_LEN];			u8 rx_crypto_buf[6 * AES_BLOCK_LEN];		} ccmp;	} u;	/* number of times this key has been used */	int tx_rx_count;#ifdef CONFIG_MAC80211_DEBUGFS	struct {		struct dentry *stalink;		struct dentry *dir;		struct dentry *keylen;		struct dentry *flags;		struct dentry *keyidx;		struct dentry *hw_key_idx;		struct dentry *tx_rx_count;		struct dentry *algorithm;		struct dentry *tx_spec;		struct dentry *rx_spec;		struct dentry *replays;		struct dentry *key;		struct dentry *ifindex;	} debugfs;#endif	/*	 * key config, must be last because it contains key	 * material as variable length member	 */	struct ieee80211_key_conf conf;};struct ieee80211_key *ieee80211_key_alloc(struct ieee80211_sub_if_data *sdata,					  struct sta_info *sta,					  enum ieee80211_key_alg alg,					  int idx,					  size_t key_len,					  const u8 *key_data);void ieee80211_key_free(struct ieee80211_key *key);void ieee80211_set_default_key(struct ieee80211_sub_if_data *sdata, int idx);void ieee80211_free_keys(struct ieee80211_sub_if_data *sdata);void ieee80211_enable_keys(struct ieee80211_sub_if_data *sdata);void ieee80211_disable_keys(struct ieee80211_sub_if_data *sdata);#endif /* IEEE80211_KEY_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -