void *_data)
 {
        struct wowlan_key_gtk_type_iter *data = _data;
+       __le32 *cipher = NULL;
+
+       if (key->keyidx == 4 || key->keyidx == 5)
+               cipher = &data->kek_kck_cmd->igtk_cipher;
+       if (key->keyidx == 6 || key->keyidx == 7)
+               cipher = &data->kek_kck_cmd->bigtk_cipher;
 
        switch (key->cipher) {
        default:
                return;
        case WLAN_CIPHER_SUITE_BIP_GMAC_256:
        case WLAN_CIPHER_SUITE_BIP_GMAC_128:
-               data->kek_kck_cmd->igtk_cipher = cpu_to_le32(STA_KEY_FLG_GCMP);
+               if (cipher)
+                       *cipher = cpu_to_le32(STA_KEY_FLG_GCMP);
                return;
        case WLAN_CIPHER_SUITE_AES_CMAC:
-               data->kek_kck_cmd->igtk_cipher = cpu_to_le32(STA_KEY_FLG_CCM);
+       case WLAN_CIPHER_SUITE_BIP_CMAC_256:
+               if (cipher)
+                       *cipher = cpu_to_le32(STA_KEY_FLG_CCM);
                return;
        case WLAN_CIPHER_SUITE_CCMP:
                if (!sta)