~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/net/mac80211/key.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /net/mac80211/key.h (Version linux-6.11.5) and /net/mac80211/key.h (Version linux-5.10.223)


** Warning: Cannot open xref database.

  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 
  2 /*                                                
  3  * Copyright 2002-2004, Instant802 Networks, I    
  4  * Copyright 2005, Devicescape Software, Inc.     
  5  * Copyright (C) 2019, 2022-2023 Intel Corpora    
  6  */                                               
  7                                                   
  8 #ifndef IEEE80211_KEY_H                           
  9 #define IEEE80211_KEY_H                           
 10                                                   
 11 #include <linux/types.h>                          
 12 #include <linux/list.h>                           
 13 #include <linux/crypto.h>                         
 14 #include <linux/rcupdate.h>                       
 15 #include <crypto/arc4.h>                          
 16 #include <net/mac80211.h>                         
 17                                                   
 18 #define NUM_DEFAULT_KEYS 4                        
 19 #define NUM_DEFAULT_MGMT_KEYS 2                   
 20 #define NUM_DEFAULT_BEACON_KEYS 2                 
 21 #define INVALID_PTK_KEYIDX 2 /* Keyidx always     
 22                                                   
 23 struct ieee80211_local;                           
 24 struct ieee80211_sub_if_data;                     
 25 struct ieee80211_link_data;                       
 26 struct sta_info;                                  
 27                                                   
 28 /**                                               
 29  * enum ieee80211_internal_key_flags - interna    
 30  *                                                
 31  * @KEY_FLAG_UPLOADED_TO_HARDWARE: Indicates t    
 32  *      in the hardware for TX crypto hardware    
 33  * @KEY_FLAG_TAINTED: Key is tainted and packe    
 34  */                                               
 35 enum ieee80211_internal_key_flags {               
 36         KEY_FLAG_UPLOADED_TO_HARDWARE   = BIT(    
 37         KEY_FLAG_TAINTED                = BIT(    
 38 };                                                
 39                                                   
 40 enum ieee80211_internal_tkip_state {              
 41         TKIP_STATE_NOT_INIT,                      
 42         TKIP_STATE_PHASE1_DONE,                   
 43         TKIP_STATE_PHASE1_HW_UPLOADED,            
 44 };                                                
 45                                                   
 46 struct tkip_ctx {                                 
 47         u16 p1k[5];     /* p1k cache */           
 48         u32 p1k_iv32;   /* iv32 for which p1k     
 49         enum ieee80211_internal_tkip_state sta    
 50 };                                                
 51                                                   
 52 struct tkip_ctx_rx {                              
 53         struct tkip_ctx ctx;                      
 54         u32 iv32;       /* current iv32 */        
 55         u16 iv16;       /* current iv16 */        
 56 };                                                
 57                                                   
 58 struct ieee80211_key {                            
 59         struct ieee80211_local *local;            
 60         struct ieee80211_sub_if_data *sdata;      
 61         struct sta_info *sta;                     
 62                                                   
 63         /* for sdata list */                      
 64         struct list_head list;                    
 65                                                   
 66         /* protected by key mutex */              
 67         unsigned int flags;                       
 68                                                   
 69         union {                                   
 70                 struct {                          
 71                         /* protects tx context    
 72                         spinlock_t txlock;        
 73                                                   
 74                         /* last used TSC */       
 75                         struct tkip_ctx tx;       
 76                                                   
 77                         /* last received RSC *    
 78                         struct tkip_ctx_rx rx[    
 79                                                   
 80                         /* number of mic failu    
 81                         u32 mic_failures;         
 82                 } tkip;                           
 83                 struct {                          
 84                         /*                        
 85                          * Last received packe    
 86                          * IEEE80211_NUM_TIDS     
 87                          * frames and the last    
 88                          * Management frames.     
 89                          */                       
 90                         u8 rx_pn[IEEE80211_NUM    
 91                         struct crypto_aead *tf    
 92                         u32 replays; /* dot11R    
 93                 } ccmp;                           
 94                 struct {                          
 95                         u8 rx_pn[IEEE80211_CMA    
 96                         struct crypto_shash *t    
 97                         u32 replays; /* dot11R    
 98                         u32 icverrors; /* dot1    
 99                 } aes_cmac;                       
100                 struct {                          
101                         u8 rx_pn[IEEE80211_GMA    
102                         struct crypto_aead *tf    
103                         u32 replays; /* dot11R    
104                         u32 icverrors; /* dot1    
105                 } aes_gmac;                       
106                 struct {                          
107                         /* Last received packe    
108                          * IEEE80211_NUM_TIDS     
109                          * frames and the last    
110                          * Management frames.     
111                          */                       
112                         u8 rx_pn[IEEE80211_NUM    
113                         struct crypto_aead *tf    
114                         u32 replays; /* dot11R    
115                 } gcmp;                           
116                 struct {                          
117                         /* generic cipher sche    
118                         u8 rx_pn[IEEE80211_NUM    
119                 } gen;                            
120         } u;                                      
121                                                   
122 #ifdef CONFIG_MAC80211_DEBUGFS                    
123         struct {                                  
124                 struct dentry *stalink;           
125                 struct dentry *dir;               
126                 int cnt;                          
127         } debugfs;                                
128 #endif                                            
129                                                   
130         unsigned int color;                       
131                                                   
132         /*                                        
133          * key config, must be last because it    
134          * material as variable length member     
135          */                                       
136         struct ieee80211_key_conf conf;           
137 };                                                
138                                                   
139 struct ieee80211_key *                            
140 ieee80211_key_alloc(u32 cipher, int idx, size_    
141                     const u8 *key_data,           
142                     size_t seq_len, const u8 *    
143 /*                                                
144  * Insert a key into data structures (sdata, s    
145  * to make it used, free old key. On failure,     
146  */                                               
147 int ieee80211_key_link(struct ieee80211_key *k    
148                        struct ieee80211_link_d    
149                        struct sta_info *sta);     
150 int ieee80211_set_tx_key(struct ieee80211_key     
151 void ieee80211_key_free(struct ieee80211_key *    
152 void ieee80211_key_free_unused(struct ieee8021    
153 void ieee80211_set_default_key(struct ieee8021    
154                                bool uni, bool     
155 void ieee80211_set_default_mgmt_key(struct iee    
156                                     int idx);     
157 void ieee80211_set_default_beacon_key(struct i    
158                                       int idx)    
159 void ieee80211_remove_link_keys(struct ieee802    
160                                 struct list_he    
161 void ieee80211_free_key_list(struct ieee80211_    
162                              struct list_head     
163 void ieee80211_free_keys(struct ieee80211_sub_    
164                          bool force_synchroniz    
165 void ieee80211_free_sta_keys(struct ieee80211_    
166                              struct sta_info *    
167 void ieee80211_reenable_keys(struct ieee80211_    
168 int ieee80211_key_switch_links(struct ieee8021    
169                                unsigned long d    
170                                unsigned long a    
171 void ieee80211_delayed_tailroom_dec(struct wip    
172                                     struct wip    
173                                                   
174 #endif /* IEEE80211_KEY_H */                      
175                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php