Search Linux Wireless

mac80211 hardware encryption

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm investigating hardware encryption support for the rt2x00 drivers,
Support for rt61pci and rt73usb should be the easiest to do so currently I'm
only focussing on that, and decide later if rt2500pci and rt2500usb should
also be implemented.

What I am currently facing is the following problem:
For each TX frame the device needs 2 fields in the descriptor namely the
IV and the EIV. From what I can gather from mac80211 those 2 fields are
created by mac80211 with the following code in wpa.c:

ieee80211_tkip_add_iv(pos, key,
		      (u8) (key->u.tkip.iv16 >> 8),
		      (u8) (((key->u.tkip.iv16 >> 8) | 0x20) &
			    0x7f),
		      (u8) key->u.tkip.iv16);

And the following function in tkip.c:

u8 * ieee80211_tkip_add_iv(u8 *pos, struct ieee80211_key *key,
			   u8 iv0, u8 iv1, u8 iv2)
{
	*pos++ = iv0;
	*pos++ = iv1;
	*pos++ = iv2;
	*pos++ = (key->conf.keyidx << 6) | (1 << 5) /* Ext IV */;
	*pos++ = key->u.tkip.iv32 & 0xff;
	*pos++ = (key->u.tkip.iv32 >> 8) & 0xff;
	*pos++ = (key->u.tkip.iv32 >> 16) & 0xff;
	*pos++ = (key->u.tkip.iv32 >> 24) & 0xff;
	return pos;
}

If I understand correctly mac80211 is inserting the values just after
the ieee80211 header in the frame. Now there are 2 ways rt2x00 can
handle this.
	1) copy the frame to the DMA in 2 steps, skipping the inserted IV by mac80211
	    and copy the IV into the descriptor.
	2) Add flag to mac80211 to provide the IV and EIV seperately to the driver
	    so there won't be overhead by mac80211 to insert the IV after the ieee80211
	    header when the driver doesn't want it to.

Thanks,

Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux