• Johannes Berg's avatar
    iwlagn: rewrite HW crypto · 5a3d9882
    Johannes Berg authored
    As I just discovered while doing WoWLAN, HW crypto
    is done wrong for GTKs: they should be programmed
    for the AP station ID (in the managed mode case)
    and the HW can actually deal with multiple group
    keys per station as well (which is useful in IBSS
    RSN but that I've chosen not to use this).
    To fix all this, modify the way keys are sent to
    the device and key offsets are allocated. After
    these changes, key offsets are stored into the
    hw_key_idx which we can then track for the key
    lifetime, not relying on our sta_cmd array. WEP
    default keys get special treatment, of course.
    Additionally, since I had the API for it, we can
    now pre-fill TKIP phase 1 keys for RX now that we
    can obtain the P1K from mac80211, a capability I
    had added for WoWLAN initially.
    Finally, some keys simply don't need to be added
    into the device's key cache -- a key that won't
    be used for RX is only needed in the TX header,
    so "pretend" to have accepted any key without
    adding it into the device -- no need to use up
    key space there for it.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>