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

Attachment: pgp3YPhdswmRf.pgp
Description: PGP signature

Reply via email to