Lines Matching +full:0 +full:x4060
106 static int nrefs = 0;
131 KASSERT(nrefs > 0, ("imbalanced attach/detach")); in tkip_detach()
145 return 0; in tkip_setkey()
147 ctx->rx_phase1_done = 0; in tkip_setkey()
161 ivp[0] = k->wk_keytsc >> 8; /* TSC1 */ in tkip_setiv()
162 ivp[1] = (ivp[0] | 0x20) & 0x7f; /* WEP seed */ in tkip_setiv()
163 ivp[2] = k->wk_keytsc >> 0; /* TSC0 */ in tkip_setiv()
199 return 0; in tkip_encap()
217 return 0; in tkip_encap()
229 return 0; in tkip_encap()
276 uint32_t iv32 = (b0 << 0) | (b1 << 8) | (b2 << 16) | (b3 << 24); in READ_6()
277 uint16_t iv16 = (b4 << 0) | (b5 << 8); in READ_6()
309 if ((ivp[IEEE80211_WEP_IVLEN] & IEEE80211_WEP_EXTIV) == 0) { in tkip_decap()
316 return 0; in tkip_decap()
325 return 0; in tkip_decap()
329 ctx->rx_rsc = READ_6(ivp[2], ivp[0], ivp[4], ivp[5], ivp[6], ivp[7]); in tkip_decap()
331 (k->wk_flags & IEEE80211_KEY_NOREPLAY) == 0) { in tkip_decap()
337 return 0; in tkip_decap()
355 return 0; in tkip_decap()
402 return 0; in tkip_demic()
429 return 0; in tkip_demic()
462 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
463 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
464 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
465 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
466 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
467 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
468 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
469 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
470 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
471 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
472 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
473 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
474 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
475 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
476 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
477 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
478 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
479 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
480 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
481 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
482 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
483 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
484 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
485 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
486 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
487 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
488 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
489 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
490 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
491 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
492 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
493 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
494 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
495 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
496 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
497 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
498 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
499 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
500 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
501 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
502 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
503 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
504 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
505 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
506 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
507 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
508 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
509 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
510 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
511 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
512 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
513 0x2d02ef8dL
523 return val & 0xff; in Lo8()
533 return val & 0xffff; in Lo16()
552 0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154,
553 0x6050, 0x0203, 0xCEA9, 0x567D, 0xE719, 0xB562, 0x4DE6, 0xEC9A,
554 0x8F45, 0x1F9D, 0x8940, 0xFA87, 0xEF15, 0xB2EB, 0x8EC9, 0xFB0B,
555 0x41EC, 0xB367, 0x5FFD, 0x45EA, 0x23BF, 0x53F7, 0xE496, 0x9B5B,
556 0x75C2, 0xE11C, 0x3DAE, 0x4C6A, 0x6C5A, 0x7E41, 0xF502, 0x834F,
557 0x685C, 0x51F4, 0xD134, 0xF908, 0xE293, 0xAB73, 0x6253, 0x2A3F,
558 0x080C, 0x9552, 0x4665, 0x9D5E, 0x3028, 0x37A1, 0x0A0F, 0x2FB5,
559 0x0E09, 0x2436, 0x1B9B, 0xDF3D, 0xCD26, 0x4E69, 0x7FCD, 0xEA9F,
560 0x121B, 0x1D9E, 0x5874, 0x342E, 0x362D, 0xDCB2, 0xB4EE, 0x5BFB,
561 0xA4F6, 0x764D, 0xB761, 0x7DCE, 0x527B, 0xDD3E, 0x5E71, 0x1397,
562 0xA6F5, 0xB968, 0x0000, 0xC12C, 0x4060, 0xE31F, 0x79C8, 0xB6ED,
563 0xD4BE, 0x8D46, 0x67D9, 0x724B, 0x94DE, 0x98D4, 0xB0E8, 0x854A,
564 0xBB6B, 0xC52A, 0x4FE5, 0xED16, 0x86C5, 0x9AD7, 0x6655, 0x1194,
565 0x8ACF, 0xE910, 0x0406, 0xFE81, 0xA0F0, 0x7844, 0x25BA, 0x4BE3,
566 0xA2F3, 0x5DFE, 0x80C0, 0x058A, 0x3FAD, 0x21BC, 0x7048, 0xF104,
567 0x63DF, 0x77C1, 0xAF75, 0x4263, 0x2030, 0xE51A, 0xFD0E, 0xBF6D,
568 0x814C, 0x1814, 0x2635, 0xC32F, 0xBEE1, 0x35A2, 0x88CC, 0x2E39,
569 0x9357, 0x55F2, 0xFC82, 0x7A47, 0xC8AC, 0xBAE7, 0x322B, 0xE695,
570 0xC0A0, 0x1998, 0x9ED1, 0xA37F, 0x4466, 0x547E, 0x3BAB, 0x0B83,
571 0x8CCA, 0xC729, 0x6BD3, 0x283C, 0xA779, 0xBCE2, 0x161D, 0xAD76,
572 0xDB3B, 0x6456, 0x744E, 0x141E, 0x92DB, 0x0C0A, 0x486C, 0xB8E4,
573 0x9F5D, 0xBD6E, 0x43EF, 0xC4A6, 0x39A8, 0x31A4, 0xD337, 0xF28B,
574 0xD532, 0x8B43, 0x6E59, 0xDAB7, 0x018C, 0xB164, 0x9CD2, 0x49E0,
575 0xD8B4, 0xACFA, 0xF307, 0xCF25, 0xCAAF, 0xF48E, 0x47E9, 0x1018,
576 0x6FD5, 0xF088, 0x4A6F, 0x5C72, 0x3824, 0x57F1, 0x73C7, 0x9751,
577 0xCB23, 0xA17C, 0xE89C, 0x3E21, 0x96DD, 0x61DC, 0x0D86, 0x0F85,
578 0xE090, 0x7C42, 0x71C4, 0xCCAA, 0x90D8, 0x0605, 0xF701, 0x1C12,
579 0xC2A3, 0x6A5F, 0xAEF9, 0x69D0, 0x1791, 0x9958, 0x3A27, 0x27B9,
580 0xD938, 0xEB13, 0x2BB3, 0x2233, 0xD2BB, 0xA970, 0x0789, 0x33A7,
581 0x2DB6, 0x3C22, 0x1592, 0xC920, 0x8749, 0xAAFF, 0x5078, 0xA57A,
582 0x038F, 0x59F8, 0x0980, 0x1A17, 0x65DA, 0xD731, 0x84C6, 0xD0B8,
583 0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A,
598 /* Initialize the 80-bit TTAK from TSC (IV32) and TA[0..5] */ in tkip_mixing_phase1()
599 TTAK[0] = Lo16(IV32); in tkip_mixing_phase1()
601 TTAK[2] = Mk16(TA[1], TA[0]); in tkip_mixing_phase1()
605 for (i = 0; i < PHASE1_LOOP_COUNT; i++) { in tkip_mixing_phase1()
607 TTAK[0] += _S_(TTAK[4] ^ Mk16(TK[1 + j], TK[0 + j])); in tkip_mixing_phase1()
608 TTAK[1] += _S_(TTAK[0] ^ Mk16(TK[5 + j], TK[4 + j])); in tkip_mixing_phase1()
611 TTAK[4] += _S_(TTAK[3] ^ Mk16(TK[1 + j], TK[0 + j])) + i; in tkip_mixing_phase1()
627 PPK[0] = TTAK[0]; in tkip_mixing_phase2()
635 PPK[0] += _S_(PPK[5] ^ Mk16_le((const u16 *) &TK[0])); in tkip_mixing_phase2()
636 PPK[1] += _S_(PPK[0] ^ Mk16_le((const u16 *) &TK[2])); in tkip_mixing_phase2()
642 PPK[0] += RotR1(PPK[5] ^ Mk16_le((const u16 *) &TK[12])); in tkip_mixing_phase2()
643 PPK[1] += RotR1(PPK[0] ^ Mk16_le((const u16 *) &TK[14])); in tkip_mixing_phase2()
650 * WEPSeed[0..2] is transmitted as WEP IV */ in tkip_mixing_phase2()
651 WEPSeed[0] = Hi8(IV16); in tkip_mixing_phase2()
652 WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F; in tkip_mixing_phase2()
654 WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((const u16 *) &TK[0])) >> 1); in tkip_mixing_phase2()
659 for (i = 0; i < 6; i++) in tkip_mixing_phase2()
674 #define S_SWAP(a,b) do { u8 t = S[a]; S[a] = S[b]; S[b] = t; } while(0) in wep_encrypt()
677 for (i = 0; i < 256; i++) in wep_encrypt()
679 j = 0; in wep_encrypt()
680 for (i = 0; i < 256; i++) { in wep_encrypt()
681 j = (j + S[i] + key[i & 0x0f]) & 0xff; in wep_encrypt()
686 crc = ~0; in wep_encrypt()
687 i = j = 0; in wep_encrypt()
695 for (k = 0; k < buflen; k++) { in wep_encrypt()
696 crc = crc32_table[(crc ^ *pos) & 0xff] ^ (crc >> 8); in wep_encrypt()
697 i = (i + 1) & 0xff; in wep_encrypt()
698 j = (j + S[i]) & 0xff; in wep_encrypt()
700 *pos++ ^= S[(S[i] + S[j]) & 0xff]; in wep_encrypt()
704 KASSERT(data_len == 0, in wep_encrypt()
714 icv[0] = crc; in wep_encrypt()
718 for (k = 0; k < IEEE80211_WEP_CRCLEN; k++) { in wep_encrypt()
719 i = (i + 1) & 0xff; in wep_encrypt()
720 j = (j + S[i]) & 0xff; in wep_encrypt()
722 icv[k] ^= S[(S[i] + S[j]) & 0xff]; in wep_encrypt()
735 for (i = 0; i < 256; i++) in wep_decrypt()
737 j = 0; in wep_decrypt()
738 for (i = 0; i < 256; i++) { in wep_decrypt()
739 j = (j + S[i] + key[i & 0x0f]) & 0xff; in wep_decrypt()
744 crc = ~0; in wep_decrypt()
745 i = j = 0; in wep_decrypt()
752 for (k = 0; k < buflen; k++) { in wep_decrypt()
753 i = (i + 1) & 0xff; in wep_decrypt()
754 j = (j + S[i]) & 0xff; in wep_decrypt()
756 *pos ^= S[(S[i] + S[j]) & 0xff]; in wep_decrypt()
757 crc = crc32_table[(crc ^ *pos) & 0xff] ^ (crc >> 8); in wep_decrypt()
762 KASSERT(data_len == 0, in wep_decrypt()
773 icv[0] = crc; in wep_decrypt()
777 for (k = 0; k < 4; k++) { in wep_decrypt()
778 i = (i + 1) & 0xff; in wep_decrypt()
779 j = (j + S[i]) & 0xff; in wep_decrypt()
781 if ((icv[k] ^ S[(S[i] + S[j]) & 0xff]) != *pos++) { in wep_decrypt()
787 return 0; in wep_decrypt()
802 return ((val & 0x00ff00ff) << 8) | ((val & 0xff00ff00) >> 8); in xswap()
815 } while (0)
824 return get_le32_split(p[0], p[1], p[2], p[3]); in get_le32()
829 p[0] = v; in put_le32()
867 hdr[12] = qwh->i_qos[0] & IEEE80211_QOS_TID; in michael_mic_hdr()
869 hdr[12] = 0; in michael_mic_hdr()
870 hdr[13] = hdr[14] = hdr[15] = 0; /* reserved */ in michael_mic_hdr()
888 /* Michael MIC pseudo header: DA, SA, 3 x 0, Priority */ in michael_mic()
920 if (data_len == 0 || in michael_mic()
921 (data_len < sizeof(uint32_t) && space != 0)) in michael_mic()
925 KASSERT(0, ("out of data, data_len %zu\n", data_len)); in michael_mic()
928 if (space != 0) { in michael_mic()
940 l ^= get_le32_split(data[0], data_next[0], in michael_mic()
946 l ^= get_le32_split(data[0], data[1], in michael_mic()
947 data_next[0], data_next[1]); in michael_mic()
952 l ^= get_le32_split(data[0], data[1], in michael_mic()
953 data[2], data_next[0]); in michael_mic()
976 /* Last block and padding (0x5a, 4..7 x 0) */ in michael_mic()
978 case 0: in michael_mic()
979 l ^= get_le32_split(0x5a, 0, 0, 0); in michael_mic()
982 l ^= get_le32_split(data[0], 0x5a, 0, 0); in michael_mic()
985 l ^= get_le32_split(data[0], data[1], 0x5a, 0); in michael_mic()
988 l ^= get_le32_split(data[0], data[1], data[2], 0x5a); in michael_mic()
992 /* l ^= 0; */ in michael_mic()
1009 if ((u16)(key->wk_keytsc) == 0 || key->wk_keytsc == 1) { in tkip_encrypt()
1057 ctx->rx_phase1_done = 0; in tkip_decrypt()
1062 return 0; in tkip_decrypt()