Add support for CCMP-256 and GCMP-256 ciphers

Signed-off-by: Joerg Werner <schreibubi@gmail.com>
This commit is contained in:
Joerg Werner 2022-08-19 11:06:22 +02:00 committed by Hauke Mehrtens
parent 705d3b5cc3
commit 0dad3e6660
6 changed files with 43 additions and 18 deletions

View file

@ -36,16 +36,18 @@
#define IWINFO_BAND_6 (1 << 2)
#define IWINFO_BAND_60 (1 << 3)
#define IWINFO_CIPHER_NONE (1 << 0)
#define IWINFO_CIPHER_WEP40 (1 << 1)
#define IWINFO_CIPHER_TKIP (1 << 2)
#define IWINFO_CIPHER_WRAP (1 << 3)
#define IWINFO_CIPHER_CCMP (1 << 4)
#define IWINFO_CIPHER_WEP104 (1 << 5)
#define IWINFO_CIPHER_AESOCB (1 << 6)
#define IWINFO_CIPHER_CKIP (1 << 7)
#define IWINFO_CIPHER_GCMP (1 << 8)
#define IWINFO_CIPHER_COUNT 9
#define IWINFO_CIPHER_NONE (1 << 0)
#define IWINFO_CIPHER_WEP40 (1 << 1)
#define IWINFO_CIPHER_TKIP (1 << 2)
#define IWINFO_CIPHER_WRAP (1 << 3)
#define IWINFO_CIPHER_CCMP (1 << 4)
#define IWINFO_CIPHER_WEP104 (1 << 5)
#define IWINFO_CIPHER_AESOCB (1 << 6)
#define IWINFO_CIPHER_CKIP (1 << 7)
#define IWINFO_CIPHER_GCMP (1 << 8)
#define IWINFO_CIPHER_CCMP256 (1 << 9)
#define IWINFO_CIPHER_GCMP256 (1 << 10)
#define IWINFO_CIPHER_COUNT 11
#define IWINFO_KMGMT_NONE (1 << 0)
#define IWINFO_KMGMT_8021x (1 << 1)

View file

@ -158,9 +158,15 @@ static char * format_enc_ciphers(int ciphers)
if (ciphers & IWINFO_CIPHER_CCMP)
pos += sprintf(pos, "CCMP, ");
if (ciphers & IWINFO_CIPHER_CCMP256)
pos += sprintf(pos, "CCMP-256, ");
if (ciphers & IWINFO_CIPHER_GCMP)
pos += sprintf(pos, "GCMP, ");
if (ciphers & IWINFO_CIPHER_GCMP256)
pos += sprintf(pos, "GCMP-256, ");
if (ciphers & IWINFO_CIPHER_WRAP)
pos += sprintf(pos, "WRAP, ");

View file

@ -31,6 +31,9 @@ const char *IWINFO_CIPHER_NAMES[] = {
"WEP104",
"AES-OCB",
"CKIP",
"GCMP",
"CCMP-256",
"GCMP-256",
};
const char *IWINFO_KMGMT_NAMES[] = {

View file

@ -61,9 +61,15 @@ static char * iwinfo_crypto_print_ciphers(int ciphers)
if (ciphers & IWINFO_CIPHER_CCMP)
pos += sprintf(pos, "CCMP, ");
if (ciphers & IWINFO_CIPHER_CCMP256)
pos += sprintf(pos, "CCMP-256, ");
if (ciphers & IWINFO_CIPHER_GCMP)
pos += sprintf(pos, "GCMP, ");
if (ciphers & IWINFO_CIPHER_GCMP256)
pos += sprintf(pos, "GCMP-256, ");
if (ciphers & IWINFO_CIPHER_WRAP)
pos += sprintf(pos, "WRAP, ");

View file

@ -1708,12 +1708,14 @@ static struct {
const char *match;
int cipher;
} wpa_cipher_strings[] = {
{ "WEP-104", IWINFO_CIPHER_WEP104 },
{ "WEP-40", IWINFO_CIPHER_WEP40 },
{ "NONE", IWINFO_CIPHER_NONE },
{ "TKIP", IWINFO_CIPHER_TKIP },
{ "CCMP", IWINFO_CIPHER_CCMP },
{ "GCMP", IWINFO_CIPHER_GCMP }
{ "WEP-104", IWINFO_CIPHER_WEP104 },
{ "WEP-40", IWINFO_CIPHER_WEP40 },
{ "NONE", IWINFO_CIPHER_NONE },
{ "TKIP", IWINFO_CIPHER_TKIP },
{ "CCMP-256",IWINFO_CIPHER_CCMP256 },
{ "CCMP", IWINFO_CIPHER_CCMP },
{ "GCMP-256",IWINFO_CIPHER_GCMP256 },
{ "GCMP", IWINFO_CIPHER_GCMP }
};
static void parse_wpa_ciphers(const char *str, uint16_t *ciphers)

View file

@ -316,10 +316,16 @@ static void iwinfo_parse_rsn_cipher(uint8_t idx, uint16_t *ciphers)
*ciphers |= IWINFO_CIPHER_GCMP;
break;
case 9:
*ciphers |= IWINFO_CIPHER_GCMP256;
break;
case 10:
*ciphers |= IWINFO_CIPHER_CCMP256;
break;
case 6: /* AES-128-CMAC */
case 7: /* No group addressed */
case 9: /* GCMP-256 */
case 10: /* CCMP-256 */
case 11: /* BIP-GMAC-128 */
case 12: /* BIP-GMAC-256 */
case 13: /* BIP-CMAC-256 */