mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
ie: Add support for GCMP cipher suite
This commit is contained in:
parent
d643964fed
commit
150856c315
11
src/ie.c
11
src/ie.c
@ -430,6 +430,8 @@ uint32_t ie_rsn_cipher_suite_to_cipher(enum ie_rsn_cipher_suite suite)
|
|||||||
return CRYPTO_CIPHER_WEP104;
|
return CRYPTO_CIPHER_WEP104;
|
||||||
case IE_RSN_CIPHER_SUITE_BIP_CMAC:
|
case IE_RSN_CIPHER_SUITE_BIP_CMAC:
|
||||||
return CRYPTO_CIPHER_BIP_CMAC;
|
return CRYPTO_CIPHER_BIP_CMAC;
|
||||||
|
case IE_RSN_CIPHER_SUITE_GCMP:
|
||||||
|
return CRYPTO_CIPHER_GCMP;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -467,6 +469,9 @@ static bool ie_parse_cipher_suite(const uint8_t *data,
|
|||||||
case 7:
|
case 7:
|
||||||
*out = IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC;
|
*out = IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC;
|
||||||
return true;
|
return true;
|
||||||
|
case 8:
|
||||||
|
*out = IE_RSN_CIPHER_SUITE_GCMP;
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -580,6 +585,7 @@ static bool ie_parse_group_cipher(const uint8_t *data,
|
|||||||
case IE_RSN_CIPHER_SUITE_WEP104:
|
case IE_RSN_CIPHER_SUITE_WEP104:
|
||||||
case IE_RSN_CIPHER_SUITE_WEP40:
|
case IE_RSN_CIPHER_SUITE_WEP40:
|
||||||
case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC:
|
case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC:
|
||||||
|
case IE_RSN_CIPHER_SUITE_GCMP:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@ -604,6 +610,7 @@ static int ie_parse_pairwise_cipher(const uint8_t *data,
|
|||||||
case IE_RSN_CIPHER_SUITE_WEP104:
|
case IE_RSN_CIPHER_SUITE_WEP104:
|
||||||
case IE_RSN_CIPHER_SUITE_WEP40:
|
case IE_RSN_CIPHER_SUITE_WEP40:
|
||||||
case IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER:
|
case IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER:
|
||||||
|
case IE_RSN_CIPHER_SUITE_GCMP:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -ERANGE;
|
return -ERANGE;
|
||||||
@ -911,6 +918,9 @@ static bool ie_build_cipher_suite(uint8_t *data, const uint8_t *oui,
|
|||||||
case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC:
|
case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC:
|
||||||
selector = 7;
|
selector = 7;
|
||||||
goto done;
|
goto done;
|
||||||
|
case IE_RSN_CIPHER_SUITE_GCMP:
|
||||||
|
selector = 8;
|
||||||
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -999,6 +1009,7 @@ static int build_ciphers_common(const struct ie_rsn_info *info, uint8_t *to,
|
|||||||
IE_RSN_CIPHER_SUITE_WEP104,
|
IE_RSN_CIPHER_SUITE_WEP104,
|
||||||
IE_RSN_CIPHER_SUITE_WEP40,
|
IE_RSN_CIPHER_SUITE_WEP40,
|
||||||
IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER,
|
IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER,
|
||||||
|
IE_RSN_CIPHER_SUITE_GCMP,
|
||||||
};
|
};
|
||||||
unsigned int pos = 0;
|
unsigned int pos = 0;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
1
src/ie.h
1
src/ie.h
@ -331,6 +331,7 @@ enum ie_rsn_cipher_suite {
|
|||||||
IE_RSN_CIPHER_SUITE_WEP104 = 0x0010,
|
IE_RSN_CIPHER_SUITE_WEP104 = 0x0010,
|
||||||
IE_RSN_CIPHER_SUITE_BIP_CMAC = 0x0020,
|
IE_RSN_CIPHER_SUITE_BIP_CMAC = 0x0020,
|
||||||
IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC = 0x0040,
|
IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC = 0x0040,
|
||||||
|
IE_RSN_CIPHER_SUITE_GCMP = 0x0080,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ie_rsn_akm_suite {
|
enum ie_rsn_akm_suite {
|
||||||
|
Loading…
Reference in New Issue
Block a user