Hello,

I'm trying to calculate FCS for 802.11 frame, I have the data, I know the data is corrupted because of WireShark is telling me. Also WireShark gives me the correct FCS value.So I wanted to calculate FCS by myself but I can't. I hope somebody can give me guide.

Here's the code:

Code:
int main()
{
	unsigned char data[] = {0x00,0x00,0x14,0x00,0xee,0x18,0x00,0x00,0x10,0x02,0x85,
							0x09,0xa0,0x00,0xa1,0x9c,0x0b,0x00,0x00,0x05,0x80,0x00,
							0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x15,0x70,
							0x16,0x15,0x9c,0x00,0x15,0x70,0x16,0x15,0x9c,0xa0,0x6b,
							0x9c,0xc1,0x96,0xe1,0x58,0x00,0x00,0x00,0x64,0x00,0x11,
							0x20,0x00,0x0a,0x43,0x41,0x4d,0x50,0x55,0x53,0x2d,0x41,
							0x49,0x52,0x01,0x08,0x82,0x84,0x8b,0x0c,0x12,0x96,0x18,
							0x24,0x03,0x01,0x06,0x05,0x04,0x05,0x0a,0x00,0x00,0x07,
							0x06,0x43,0xb9,0x72,0x01,0x0b,0x1e,0x2a,0x01,0x04,0x30,
							0x14,0x01,0x00,0x00,0x0f,0xac,0x02,0x01,0x00,0x00,0x0f,
							0xac,0x02,0x01,0x00,0x00,0x0f,0xac,0x01,0x01,0x00,0x32,
							0x04,0x30,0x48,0x60,0x6c,0xad,0x0f,0x00,0xa0,0xf8,0x00,
							0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x65,0x28,0x4c,
							0xdd,0x18,0x00,0x50,0xf2,0x01,0x01,0x00,0x00,0x50,0x41,
							0x03,0x67,0x03,0x00,0x50,0xf2,0x02,0x01,0x00,0x00,0x50,
							0xf2,0x01,0x00,0x00,0xdd,0x10,0x00,0xa0,0xf8,0x01,0x00,
							0x01,0x0c,0x00,0x00,0x00,0x00,0xa0,0xf8,0x65,0xa9,0x0b,
							0xab,0x93,0x8e,0x88};


	unsigned int len = 191;

	unsigned int crc = 0;

	//calculate crc of the first byte until 191-4byes.
	//because the last 4 bytes are reserved for FCS

	//it should give us 0xee03cb23
	printf("%02x\n", crc);


	return 0;

}
I tried all CRC32, FCS32 and haven't been able to get this "0xee03cb23". This value comes from WireShark so I'm pretty sure about the CRC value.

Can somebody tell me what's the step to calculate the CRC for 802.11 frame?


Thanks
Memphis