undefined4
RTMPParseEapolKeyData
(undefined4 param_1,char *param_2,uint param_3,byte param_4,char param_5,char param_6)
{
uint uVar1;
int iVar2;
undefined4 uVar3;
undefined *puVar4;
char *pcVar5;
uint uVar6;
undefined1 auStack_48 [32];
param_3 = param_3 & 0xff;
if ((byte)(param_5 - 2U) < 2) {
if (param_6 == '\0') {
return 1;
}
if (param_5 != '\x03') {
return 1;
}
if (2 < RTDebugLevel) {
printk("RTMPParseEapolKeyData ==> WPA2/WPA2PSK RSN IE matched in Msg 3, Length(%d) \n",0);
}
}
if (2 < RTDebugLevel) {
printk("RTMPParseEapolKeyData ==> KeyDataLength %d without RSN_IE \n",param_3);
}
if (param_6 == '\0') {
if (param_5 != '\x05') {
return 1;
}
memmove(auStack_48,param_2,param_3) //possible issue identified - semgrep
if (2 < RTDebugLevel) {
printk("GTK without KDE, DefaultKeyID=%d, KeyLen=%d \n",param_4,param_3);
}
}
else {
if ((param_5 != '\x03') && (param_5 != '\x05')) {
return 1;
}
param_4 = 0;
for (uVar6 = 0; (byte)param_2[1] + 2 + uVar6 <= param_3; uVar6 = uVar6 + uVar1 + 2 & 0xff) {
if (*param_2 == -0x23) {
iVar2 = memcmp(param_2 + 2,&OUI_WPA2,3);
if (iVar2 == 0) {
uVar1 = (uint)(byte)param_2[1];
if (param_2[5] == '\x01') {
uVar1 = uVar1 - 6 & 0xff;
param_4 = param_2[6] & 3;
if (uVar1 < 5) {
if (RTDebugLevel == 0) {
return 0;
}
printk("ERROR: GTK Key length is too short (%d) \n",uVar1);
return 0;
}
memmove(auStack_48,param_2 + 8,uVar1) //possible issue identified - semgrep
if (RTDebugLevel < 3) {
uVar1 = (uint)(byte)param_2[1];
}
else {
printk("GTK in KDE format ,DefaultKeyID=%d, KeyLen=%d \n",param_4,uVar1);
uVar1 = (uint)(byte)param_2[1];
}
}
}
else {
uVar1 = (uint)(byte)param_2[1];
}
}
else {
uVar1 = (uint)(byte)param_2[1];
}
param_2 = param_2 + uVar1 + 2;
}
}
uVar3 = 1;
if ((3 < param_4) && (uVar3 = 0, RTDebugLevel != 0)) {
if (param_6 == '\0') {
puVar4 = &_LC39;
}
else {
puVar4 = &_LC40;
}
if (param_5 == '\x01') {
pcVar5 = "Pairwise Message 1";
}
else if (param_5 == '\x02') {
pcVar5 = "Pairwise Message 2";
}
else if (param_5 == '\x03') {
pcVar5 = "Pairwise Message 3";
}
else if (param_5 == '\x04') {
pcVar5 = "Pairwise Message 4";
}
else if (param_5 == '\x05') {
pcVar5 = "Group Message 1";
}
else if (param_5 == '\x06') {
pcVar5 = "Group Message 2";
}
else {
pcVar5 = "Invalid Message";
}
printk("ERROR: GTK Key index(%d) is invalid in %s %s \n",param_4,puVar4,pcVar5);
uVar3 = 0;
}
return uVar3;
}