From 9b83f3d2db45e0e1816fc5499c7ac40f94f80b5a Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 4 Apr 2019 14:28:14 -0700 Subject: [PATCH] common: put all PSK AKM's into macro The list of PSK/8021x AKM's in security_determine was getting long, and difficult to keep under 80 characters. This moves them all into two new macros, AKM_IS_PSK/AKM_IS_8021X. --- src/common.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/common.c b/src/common.c index 79bf6d54..e5fd17de 100644 --- a/src/common.c +++ b/src/common.c @@ -64,19 +64,33 @@ bool security_from_str(const char *str, enum security *security) return true; } +#define AKM_IS_PSK(akm) \ +( \ + akm & (IE_RSN_AKM_SUITE_PSK | \ + IE_RSN_AKM_SUITE_FT_USING_PSK | \ + IE_RSN_AKM_SUITE_FT_USING_PSK | \ + IE_RSN_AKM_SUITE_SAE_SHA256 | \ + IE_RSN_AKM_SUITE_FT_OVER_SAE_SHA256) \ +) + +#define AKM_IS_8021X(akm) \ +( \ + akm & (IE_RSN_AKM_SUITE_8021X | \ + IE_RSN_AKM_SUITE_8021X_SHA256 | \ + IE_RSN_AKM_SUITE_FT_OVER_8021X | \ + IE_RSN_AKM_SUITE_FILS_SHA256 | \ + IE_RSN_AKM_SUITE_FILS_SHA384 | \ + IE_RSN_AKM_SUITE_FT_OVER_FILS_SHA256 | \ + IE_RSN_AKM_SUITE_FT_OVER_FILS_SHA384) \ +) + enum security security_determine(uint16_t bss_capability, const struct ie_rsn_info *info) { - if (info && (info->akm_suites & IE_RSN_AKM_SUITE_PSK || - info->akm_suites & IE_RSN_AKM_SUITE_PSK_SHA256 || - info->akm_suites & IE_RSN_AKM_SUITE_FT_USING_PSK || - info->akm_suites & IE_RSN_AKM_SUITE_SAE_SHA256 || - info->akm_suites & IE_RSN_AKM_SUITE_FT_OVER_SAE_SHA256)) + if (info && AKM_IS_PSK(info->akm_suites)) return SECURITY_PSK; - if (info && (info->akm_suites & IE_RSN_AKM_SUITE_8021X || - info->akm_suites & IE_RSN_AKM_SUITE_8021X_SHA256 || - info->akm_suites & IE_RSN_AKM_SUITE_FT_OVER_8021X)) + if (info && AKM_IS_8021X(info->akm_suites)) return SECURITY_8021X; if (info && (info->akm_suites & IE_RSN_AKM_SUITE_OWE))