Lines Matching +full:mic +full:- +full:int
1 /*-
62 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, /* TX MIC */
64 * NB: 11i test vector specifies a RX MIC key different
67 * the same key for doing the MIC in each direction.
69 * XXX need additional vectors to test alternate MIC keys
72 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, /* 11i RX MIC */
85 /* Plaintext MPDU with MIC */
95 /* MIC */ 0x68,0x81,0xa3,0xf3,0xd6,0x48,0xd0,0x3c
98 /* Encrypted MPDU with MIC and ICV */
122 int cipher;
123 int keyix;
146 int rx_phase1_done;
148 uint64_t rx_rsc; /* held until MIC verified */
154 int i; in dumpdata()
168 int i; in cmpfail()
179 static int
183 struct ieee80211_key *key = &vap->iv_nw_keys[t->keyix]; in runtest()
187 int hdrlen; in runtest()
189 printf("%s: ", t->name); in runtest()
195 key->wk_flags = IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV; in runtest()
196 key->wk_cipher = &ieee80211_cipher_none; in runtest()
197 if (!ieee80211_crypto_newkey(vap, t->cipher, in runtest()
203 memcpy(key->wk_key, t->key, t->key_len); in runtest()
204 key->wk_keylen = 128/NBBY; in runtest()
205 memset(key->wk_keyrsc, 0, sizeof(key->wk_keyrsc)); in runtest()
206 key->wk_keytsc = t->pn; in runtest()
215 cip = key->wk_cipher; in runtest()
217 m->m_data += cip->ic_header; in runtest()
218 len = t->plaintext_len - IEEE80211_WEP_MICLEN; in runtest()
219 memcpy(mtod(m, void *), t->plaintext, len); in runtest()
220 m->m_len = len; in runtest()
221 m->m_pkthdr.len = m->m_len; in runtest()
225 * Add MIC. in runtest()
234 if (m->m_pkthdr.len != t->plaintext_len) { in runtest()
236 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
237 t->plaintext, t->plaintext_len); in runtest()
240 if (memcmp(mtod(m, const void *), t->plaintext, t->plaintext_len)) { in runtest()
242 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
243 t->plaintext, t->plaintext_len); in runtest()
247 * Encrypt frame w/ MIC. in runtest()
249 if (!cip->ic_encap(key, m)) { in runtest()
256 ctx = key->wk_private; in runtest()
257 if (memcmp(ctx->tx_ttak, t->phase1, t->phase1_len)) { in runtest()
259 cmpfail(ctx->tx_ttak, sizeof(ctx->tx_ttak), in runtest()
260 t->phase1, t->phase1_len); in runtest()
262 } else if (memcmp(ctx->tx_rc4key, t->phase2, t->phase2_len)) { in runtest()
264 cmpfail(ctx->tx_rc4key, sizeof(ctx->tx_rc4key), in runtest()
265 t->phase2, t->phase2_len); in runtest()
267 } else if (m->m_pkthdr.len != t->encrypted_len) { in runtest()
269 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
270 t->encrypted, t->encrypted_len); in runtest()
272 } else if (memcmp(mtod(m, const void *), t->encrypted, m->m_pkthdr.len)) { in runtest()
274 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
275 t->encrypted, t->encrypted_len); in runtest()
276 dumpdata("Plaintext", t->plaintext, t->plaintext_len); in runtest()
283 if (!cip->ic_decap(key, m, hdrlen)) { in runtest()
288 if (memcmp(ctx->rx_ttak, t->phase1, t->phase1_len)) { in runtest()
290 cmpfail(ctx->rx_ttak, sizeof(ctx->rx_ttak), in runtest()
291 t->phase1, t->phase1_len); in runtest()
292 } else if (memcmp(ctx->rx_rc4key, t->phase2, t->phase2_len)) { in runtest()
294 cmpfail(ctx->rx_rc4key, sizeof(ctx->rx_rc4key), in runtest()
295 t->phase2, t->phase2_len); in runtest()
298 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
299 t->plaintext, t->plaintext_len); in runtest()
306 if (m->m_pkthdr.len != t->plaintext_len) { in runtest()
308 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
309 t->plaintext, t->plaintext_len); in runtest()
312 if (memcmp(mtod(m, const void *), t->plaintext, t->plaintext_len)) { in runtest()
314 cmpfail(mtod(m, const void *), m->m_pkthdr.len, in runtest()
315 t->plaintext, t->plaintext_len); in runtest()
319 * De-MIC decrypted frame. in runtest()
341 static int debug = 0;
342 static int tests = -1;
344 static int
350 int i, pass, total; in init_crypto_tkip_test()
378 return (pass == total ? 0 : -1); in init_crypto_tkip_test()
381 static int
382 test_tkip_modevent(module_t mod, int type, void *unused) in test_tkip_modevent()