Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_crypto.h
| Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | |||||
| #define IEEE80211_KEY_SWDEMIC 0x00000080 /* host-based demic */ | #define IEEE80211_KEY_SWDEMIC 0x00000080 /* host-based demic */ | ||||
| #define IEEE80211_KEY_DEVKEY 0x00000100 /* device key request completed */ | #define IEEE80211_KEY_DEVKEY 0x00000100 /* device key request completed */ | ||||
| #define IEEE80211_KEY_CIPHER0 0x00001000 /* cipher-specific action 0 */ | #define IEEE80211_KEY_CIPHER0 0x00001000 /* cipher-specific action 0 */ | ||||
| #define IEEE80211_KEY_CIPHER1 0x00002000 /* cipher-specific action 1 */ | #define IEEE80211_KEY_CIPHER1 0x00002000 /* cipher-specific action 1 */ | ||||
| #define IEEE80211_KEY_NOIV 0x00004000 /* don't insert IV/MIC for !mgmt */ | #define IEEE80211_KEY_NOIV 0x00004000 /* don't insert IV/MIC for !mgmt */ | ||||
| #define IEEE80211_KEY_NOIVMGT 0x00008000 /* don't insert IV/MIC for mgmt */ | #define IEEE80211_KEY_NOIVMGT 0x00008000 /* don't insert IV/MIC for mgmt */ | ||||
| #define IEEE80211_KEY_NOMIC 0x00010000 /* don't insert MIC for !mgmt */ | #define IEEE80211_KEY_NOMIC 0x00010000 /* don't insert MIC for !mgmt */ | ||||
| #define IEEE80211_KEY_NOMICMGT 0x00020000 /* don't insert MIC for mgmt */ | #define IEEE80211_KEY_NOMICMGT 0x00020000 /* don't insert MIC for mgmt */ | ||||
| #define IEEE80211_KEY_IGTK 0x00040000 /* key is used for IGTK */ | |||||
| ieee80211_keyix wk_keyix; /* h/w key index */ | ieee80211_keyix wk_keyix; /* h/w key index */ | ||||
| ieee80211_keyix wk_rxkeyix; /* optional h/w rx key index */ | ieee80211_keyix wk_rxkeyix; /* optional h/w rx key index */ | ||||
| uint8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE]; | uint8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE]; | ||||
| #define wk_txmic wk_key+IEEE80211_KEYBUF_SIZE+0 /* XXX can't () right */ | #define wk_txmic wk_key+IEEE80211_KEYBUF_SIZE+0 /* XXX can't () right */ | ||||
| #define wk_rxmic wk_key+IEEE80211_KEYBUF_SIZE+8 /* XXX can't () right */ | #define wk_rxmic wk_key+IEEE80211_KEYBUF_SIZE+8 /* XXX can't () right */ | ||||
| /* key receive sequence counter */ | /* key receive sequence counter */ | ||||
| uint64_t wk_keyrsc[IEEE80211_TID_SIZE]; | uint64_t wk_keyrsc[IEEE80211_TID_SIZE]; | ||||
| uint64_t wk_keytsc; /* key transmit sequence counter */ | uint64_t wk_keytsc; /* key transmit sequence counter */ | ||||
| const struct ieee80211_cipher *wk_cipher; | const struct ieee80211_cipher *wk_cipher; | ||||
| void *wk_private; /* private cipher state */ | void *wk_private; /* private cipher state */ | ||||
| uint8_t wk_macaddr[IEEE80211_ADDR_LEN]; | uint8_t wk_macaddr[IEEE80211_ADDR_LEN]; | ||||
| }; | }; | ||||
| #define IEEE80211_KEY_COMMON /* common flags passed in by apps */\ | #define IEEE80211_KEY_COMMON /* common flags passed in by apps */\ | ||||
| (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV | IEEE80211_KEY_GROUP | \ | (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV | IEEE80211_KEY_GROUP | \ | ||||
| IEEE80211_KEY_NOREPLAY) | IEEE80211_KEY_NOREPLAY | IEEE80211_KEY_IGTK) | ||||
| #define IEEE80211_KEY_SWCRYPT \ | #define IEEE80211_KEY_SWCRYPT \ | ||||
| (IEEE80211_KEY_SWENCRYPT | IEEE80211_KEY_SWDECRYPT) | (IEEE80211_KEY_SWENCRYPT | IEEE80211_KEY_SWDECRYPT) | ||||
| #define IEEE80211_KEY_SWMIC (IEEE80211_KEY_SWENMIC | IEEE80211_KEY_SWDEMIC) | #define IEEE80211_KEY_SWMIC (IEEE80211_KEY_SWENMIC | IEEE80211_KEY_SWDEMIC) | ||||
| #define IEEE80211_KEY_DEVICE /* flags owned by device driver */\ | #define IEEE80211_KEY_DEVICE /* flags owned by device driver */\ | ||||
| (IEEE80211_KEY_DEVKEY|IEEE80211_KEY_CIPHER0|IEEE80211_KEY_CIPHER1| \ | (IEEE80211_KEY_DEVKEY|IEEE80211_KEY_CIPHER0|IEEE80211_KEY_CIPHER1| \ | ||||
| IEEE80211_KEY_SWCRYPT|IEEE80211_KEY_SWMIC|IEEE80211_KEY_NOIV | \ | IEEE80211_KEY_SWCRYPT|IEEE80211_KEY_SWMIC|IEEE80211_KEY_NOIV | \ | ||||
| ▲ Show 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | |||||
| #define IEEE80211_KEY_UNDEFINED(k) \ | #define IEEE80211_KEY_UNDEFINED(k) \ | ||||
| ((k)->wk_cipher == &ieee80211_cipher_none) | ((k)->wk_cipher == &ieee80211_cipher_none) | ||||
| void ieee80211_crypto_register(const struct ieee80211_cipher *); | void ieee80211_crypto_register(const struct ieee80211_cipher *); | ||||
| void ieee80211_crypto_unregister(const struct ieee80211_cipher *); | void ieee80211_crypto_unregister(const struct ieee80211_cipher *); | ||||
| int ieee80211_crypto_available(u_int cipher); | int ieee80211_crypto_available(u_int cipher); | ||||
| int ieee80211_crypto_get_key_wepidx(const struct ieee80211vap *, | int ieee80211_crypto_get_key_wepidx(const struct ieee80211vap *, | ||||
| const struct ieee80211_key *k); | |||||
| int ieee80211_crypto_get_key_igtk_idx(const struct ieee80211vap *, | |||||
| const struct ieee80211_key *k); | const struct ieee80211_key *k); | ||||
| uint8_t ieee80211_crypto_get_keyid(struct ieee80211vap *vap, | uint8_t ieee80211_crypto_get_keyid(struct ieee80211vap *vap, | ||||
| struct ieee80211_key *k); | struct ieee80211_key *k); | ||||
| struct ieee80211_key *ieee80211_crypto_get_txkey(struct ieee80211_node *, | struct ieee80211_key *ieee80211_crypto_get_txkey(struct ieee80211_node *, | ||||
| struct mbuf *); | struct mbuf *); | ||||
| struct ieee80211_key *ieee80211_crypto_encap(struct ieee80211_node *, | struct ieee80211_key *ieee80211_crypto_encap(struct ieee80211_node *, | ||||
| struct mbuf *); | struct mbuf *); | ||||
| int ieee80211_crypto_decap(struct ieee80211_node *, | int ieee80211_crypto_decap(struct ieee80211_node *, | ||||
| ▲ Show 20 Lines • Show All 41 Lines • Show Last 20 Lines | |||||