On Mon, Oct 23, 2006 at 02:40:28PM +0200, Jiri Benc wrote: > > int icv_len:8; /* Length of the ICV/MIC field in octets */ > > int iv_len:8; /* Length of the IV field in octets */ > > + u8 rc4key[16]; /* generated RC4 key for hw TKIP */ > > I don't like extending ieee80211_tx_control by 16 more bytes. The > driver is required to store a copy of each ieee80211_tx_control > (because it's copied to ieee80211_tx_status). I don't have a better > idea, though. Anybody?
If the key isn't passed directly in via the tx_control structure, there needs to be a way for the driver to be able to get the key for that packet. Many chipsets won't care, but many expect the encryption key to be passed in with each packet. (For WEP, TKIP, or AES-CCMP) Instead of expanding tx_control, adding an API call might suffice. with TKIP all you need to do the RC4 mixing is already in the packet (macaddr, EIV (keynum+PN), and payload. The stack just needs to be able to look up the PTK given the macaddr+keyidx, and the chipset driver can then derive whatever key it needs and stuff the hardware with it. Crypto is the main way where wireless chipsets make life difficult for a common stack.. - Solomon -- Solomon Peachy pizza at shaftnet dot org Melbourne, FL ^^ (mail/jabber/gtalk) ^^ Quidquid latine dictum sit, altum viditur. ICQ: 1318344
pgp3YPhdswmRf.pgp
Description: PGP signature