1. 18 Dec, 2013 1 commit
  2. 16 May, 2013 1 commit
  3. 15 Feb, 2013 1 commit
  4. 22 Jun, 2012 1 commit
  5. 05 Jun, 2012 1 commit
  6. 31 Oct, 2011 1 commit
  7. 15 Jul, 2011 1 commit
  8. 08 Jul, 2011 2 commits
    • Johannes Berg's avatar
      mac80211: allow driver to generate P1K for IV32 · 42d98795
      Johannes Berg authored
      
      
      In order to support pre-populating the P1K cache in
      iwlwifi hardware for WoWLAN, we need to calculate
      the P1K for the current IV32. Allow drivers to get
      the P1K for any given IV32 instead of for a given
      packet, but keep the packet-based version around as
      an inline.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      42d98795
    • Johannes Berg's avatar
      mac80211: fix TKIP races, make API easier to use · 523b02ea
      Johannes Berg authored
      
      
      Our current TKIP code races against itself on TX
      since we can process multiple packets at the same
      time on different ACs, but they all share the TX
      context for TKIP. This can lead to bad IVs etc.
      
      Also, the crypto offload helper code just obtains
      the P1K/P2K from the cache, and can update it as
      well, but there's no guarantee that packets are
      really processed in order.
      
      To fix these issues, first introduce a spinlock
      that will protect the IV16/IV32 values in the TX
      context. This first step makes sure that we don't
      assign the same IV multiple times or get confused
      in other ways.
      
      Secondly, change the way the P1K cache works. I
      add a field "p1k_iv32" that stores the value of
      the IV32 when the P1K was last recomputed, and
      if different from the last time, then a new P1K
      is recomputed. This can cause the P1K computation
      to flip back and forth if packets are processed
      out of order. All this also happens under the new
      spinlock.
      
      Finally, because there are argument differences,
      split up the ieee80211_get_tkip_key() API into
      ieee80211_get_tkip_p1k() and ieee80211_get_tkip_p2k()
      and give them the correct arguments.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      523b02ea
  9. 04 Apr, 2011 1 commit
  10. 08 Jul, 2010 1 commit
    • John W. Linville's avatar
      mac80211: remove wep dependency · 3473187d
      John W. Linville authored
      
      
      The current mac80211 code assumes that WEP is always available.  If WEP
      fails to initialize, ieee80211_register_hw will always fail.
      
      In some cases (e.g. FIPS certification), the cryptography used by WEP is
      unavailable.  However, in such cases there is no good reason why CCMP
      encryption (or even no link level encryption) cannot be used.  So, this
      patch removes mac80211's assumption that WEP (and TKIP) will always be
      available for use.
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3473187d
  11. 22 Jan, 2010 1 commit
  12. 19 Jan, 2010 1 commit
    • Johannes Berg's avatar
      mac80211: move control.hw_key assignment · 813d7669
      Johannes Berg authored
      
      
      When mac80211 asks a driver to encrypt a frame, it
      must assign the control.hw_key pointer for it to
      know which key to use etc. Currently, mac80211 does
      this whenever it would software-encrypt a frame.
      
      Change the logic of this code to assign the hw_key
      pointer when selecting the key, and later check it
      when deciding whether to encrypt the frame or let
      it be encrypted by the hardware. This allows us to
      later simply skip the encryption function since it
      no longer modifies the TX control.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      813d7669
  13. 22 Dec, 2009 1 commit
  14. 18 Nov, 2009 1 commit
  15. 06 May, 2009 1 commit
  16. 27 Oct, 2008 1 commit
  17. 15 Sep, 2008 1 commit
  18. 27 Jun, 2008 2 commits
  19. 14 Jun, 2008 3 commits
  20. 21 May, 2008 4 commits
  21. 14 May, 2008 1 commit
  22. 30 Apr, 2008 1 commit
  23. 08 Apr, 2008 1 commit
  24. 25 Mar, 2008 2 commits
  25. 10 Oct, 2007 3 commits
  26. 05 May, 2007 1 commit