da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Use is subject to license terms.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright (c) 2001 Atsushi Onoe
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * All rights reserved.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Redistribution and use in source and binary forms, with or without
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * modification, are permitted provided that the following conditions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * are met:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * 1. Redistributions of source code must retain the above copyright
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * notice, this list of conditions and the following disclaimer.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * 2. Redistributions in binary form must reproduce the above copyright
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * notice, this list of conditions and the following disclaimer in the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * documentation and/or other materials provided with the distribution.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * 3. The name of the author may not be used to endorse or promote products
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * derived from this software without specific prior written permission.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Alternatively, this software may be distributed under the terms of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * GNU General Public License ("GPL") version 2 as published by the Free
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Software Foundation.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * IEEE 802.11i TKIP crypto support.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Part of this module is derived from similar code in the Host
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * AP driver. The code is used with the consent of the author and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * it's license is included below.
#include "net80211_impl.h"
mblk_t *, int);
mblk_t *, int);
return (NULL);
return (ctx);
mic);
static uint16_t
static uint8_t
static uint8_t
static uint16_t
static uint16_t
static uint16_t
static uint16_t
return (LE_16(*v));
static uint16_t
for (i = 0; i < PHASE1_LOOP_COUNT; i++) {
#ifdef _BIG_ENDIAN
static uint32_t
static uint32_t
static uint32_t
r ^= xswap(l); \
static uint32_t
static uint32_t
p[0] = (uint8_t)v;
case IEEE80211_FC1_DIR_NODS:
case IEEE80211_FC1_DIR_TODS:
case IEEE80211_FC1_DIR_FROMDS:
case IEEE80211_FC1_DIR_DSTODS:
uint32_t l, r;
michael_block(l, r);
michael_block(l, r);
michael_block(l, r);
michael_block(l, r);
for (i = 0; i < blocks; i++) {
michael_block(l, r);
switch (last) {
michael_block(l, r);
michael_block(l, r);
icv);