From e14aa471c2105998015b9a9e461f29d763becbe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20G=C3=BCnther?= Date: Tue, 29 Dec 2009 03:21:16 +0000 Subject: [PATCH] Adding crypto support for ccmp (aka WPA2) to the wlan stack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34800 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/libs/compat/freebsd_wlan/net80211/Jamfile | 8 +++++++- src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c | 2 ++ src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libs/compat/freebsd_wlan/net80211/Jamfile b/src/libs/compat/freebsd_wlan/net80211/Jamfile index 7ecabe7314..2586b13fff 100644 --- a/src/libs/compat/freebsd_wlan/net80211/Jamfile +++ b/src/libs/compat/freebsd_wlan/net80211/Jamfile @@ -16,6 +16,8 @@ SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] -Wno-unused -Wno-uninitialized ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) .. crypto rijndael ] ; + KernelStaticLibrary libfreebsd_wlan.a : ieee80211.c ieee80211_action.c @@ -23,6 +25,7 @@ KernelStaticLibrary libfreebsd_wlan.a : ieee80211_ageq.c ieee80211_amrr.c ieee80211_crypto.c + ieee80211_crypto_ccmp.c ieee80211_crypto_none.c ieee80211_crypto_tkip.c ieee80211_crypto_wep.c @@ -45,8 +48,11 @@ KernelStaticLibrary libfreebsd_wlan.a : ieee80211_sta.c ieee80211_wds.c + # Rijndael (aka AES) cryptographic support for crypto_ccmp + rijndael-alg-fst.c + rijndael-api.c + # NOT SUPPORTED YET ieee80211_acl.c - # NOT SUPPORTED YET ieee80211_crypto_ccmp.c # NOT SUPPORTED YET ieee80211_ddb.c # NOT SUPPORTED YET ieee80211_hwmp.c # NOT SUPPORTED YET ieee80211_mesh.c diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c index 572401255d..2ed4b886b2 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c @@ -142,6 +142,7 @@ ieee80211_crypto_attach(struct ieee80211com *ic) /* NB: we assume everything is pre-zero'd */ ciphers[IEEE80211_CIPHER_NONE] = &ieee80211_cipher_none; #if defined(__HAIKU__) + ieee80211_crypto_ccmp_load(); ieee80211_crypto_tkip_load(); ieee80211_crypto_wep_load(); #endif @@ -154,6 +155,7 @@ void ieee80211_crypto_detach(struct ieee80211com *ic) { #if defined(__HAIKU__) + ieee80211_crypto_ccmp_unload(); ieee80211_crypto_tkip_unload(); ieee80211_crypto_wep_unload(); #endif diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h index db07ee4b4d..5a429fa5b5 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h @@ -160,6 +160,8 @@ void ieee80211_crypto_delglobalkeys(struct ieee80211vap *); void ieee80211_crypto_reload_keys(struct ieee80211com *); #if defined (__HAIKU__) +void ieee80211_crypto_ccmp_load(void); +void ieee80211_crypto_ccmp_unload(void); void ieee80211_crypto_tkip_load(void); void ieee80211_crypto_tkip_unload(void); void ieee80211_crypto_wep_load(void);