]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
atheros: Add support for new GCMP/CCMP/CMAC/GMAC cipher suites
authorAshok Kumar Ponnaiah <aponnaia@qti.qualcomm.com>
Mon, 9 Jun 2014 16:19:30 +0000 (19:19 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 9 Jun 2014 16:21:48 +0000 (19:21 +0300)
Extend the set of supported cipher suites to include CCMP-256, GCMP,
GCMP-256, CMAC-256, GMAC, and GMAC-256 when ATH_GCM_SUPPORT=y is set in
the build configuration.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/drivers/driver_atheros.c
src/drivers/drivers.mak

index c146cdc54f7604e9e74d787d5d7ccd67e39b7e93..b569a0a7da9ed7717d526c16a2a9692f4358d842 100644 (file)
@@ -260,6 +260,17 @@ atheros_configure_wpa(struct atheros_driver_data *drv,
        case WPA_CIPHER_CCMP:
                v = IEEE80211_CIPHER_AES_CCM;
                break;
+#ifdef ATH_GCM_SUPPORT
+       case WPA_CIPHER_CCMP_256:
+               v = IEEE80211_CIPHER_AES_CCM_256;
+               break;
+       case WPA_CIPHER_GCMP:
+               v = IEEE80211_CIPHER_AES_GCM;
+               break;
+       case WPA_CIPHER_GCMP_256:
+               v = IEEE80211_CIPHER_AES_GCM_256;
+               break;
+#endif /* ATH_GCM_SUPPORT */
        case WPA_CIPHER_TKIP:
                v = IEEE80211_CIPHER_TKIP;
                break;
@@ -294,6 +305,14 @@ atheros_configure_wpa(struct atheros_driver_data *drv,
        v = 0;
        if (params->wpa_pairwise & WPA_CIPHER_CCMP)
                v |= 1<<IEEE80211_CIPHER_AES_CCM;
+#ifdef ATH_GCM_SUPPORT
+       if (params->wpa_pairwise & WPA_CIPHER_CCMP_256)
+               v |= 1<<IEEE80211_CIPHER_AES_CCM_256;
+       if (params->wpa_pairwise & WPA_CIPHER_GCMP)
+               v |= 1<<IEEE80211_CIPHER_AES_GCM;
+       if (params->wpa_pairwise & WPA_CIPHER_GCMP_256)
+               v |= 1<<IEEE80211_CIPHER_AES_GCM_256;
+#endif /* ATH_GCM_SUPPORT */
        if (params->wpa_pairwise & WPA_CIPHER_TKIP)
                v |= 1<<IEEE80211_CIPHER_TKIP;
        if (params->wpa_pairwise & WPA_CIPHER_NONE)
@@ -471,10 +490,32 @@ atheros_set_key(const char *ifname, void *priv, enum wpa_alg alg,
        case WPA_ALG_CCMP:
                cipher = IEEE80211_CIPHER_AES_CCM;
                break;
+#ifdef ATH_GCM_SUPPORT
+       case WPA_ALG_CCMP_256:
+               cipher = IEEE80211_CIPHER_AES_CCM_256;
+               break;
+       case WPA_ALG_GCMP:
+               cipher = IEEE80211_CIPHER_AES_GCM;
+               break;
+       case WPA_ALG_GCMP_256:
+               cipher = IEEE80211_CIPHER_AES_GCM_256;
+               break;
+#endif /* ATH_GCM_SUPPORT */
 #ifdef CONFIG_IEEE80211W
        case WPA_ALG_IGTK:
                cipher = IEEE80211_CIPHER_AES_CMAC;
                break;
+#ifdef ATH_GCM_SUPPORT
+       case WPA_ALG_BIP_CMAC_256:
+               cipher = IEEE80211_CIPHER_AES_CMAC_256;
+               break;
+       case WPA_ALG_BIP_GMAC_128:
+               cipher = IEEE80211_CIPHER_AES_GMAC;
+               break;
+       case WPA_ALG_BIP_GMAC_256:
+               cipher = IEEE80211_CIPHER_AES_GMAC_256;
+               break;
+#endif /* ATH_GCM_SUPPORT */
 #endif /* CONFIG_IEEE80211W */
        default:
                printf("%s: unknown/unsupported algorithm %d\n",
index 7e175f40459fb7ba9e76f95b190b121835966205..40aaba59159790b21a1a7cf6da6869dfd8a374f5 100644 (file)
@@ -105,6 +105,9 @@ DRV_AP_OBJS += ../src/drivers/driver_atheros.o
 CONFIG_L2_PACKET=linux
 NEED_NETLINK=y
 NEED_LINUX_IOCTL=y
+ifdef ATH_GCM_SUPPORT
+CFLAGS += -DATH_GCM_SUPPORT
+endif
 endif
 
 ##### PURE CLIENT DRIVERS