亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? eap_sim_common.c

?? WPA在Linux下實(shí)現(xiàn)的原代碼 WPA在Linux下實(shí)現(xiàn)的原代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
		case EAP_SIM_AT_ENCR_DATA:			wpa_printf(MSG_DEBUG, "EAP-SIM: AT_ENCR_DATA");			attr->encr_data = apos + 2;			attr->encr_data_len = alen - 2;			if (attr->encr_data_len % 16) {				wpa_printf(MSG_INFO, "EAP-SIM: Invalid "					   "AT_ENCR_DATA length %lu",					   (unsigned long)					   attr->encr_data_len);				return -1;			}			break;		case EAP_SIM_AT_NEXT_PSEUDONYM:			if (!encr) {				wpa_printf(MSG_ERROR, "EAP-SIM: Unencrypted "					   "AT_NEXT_PSEUDONYM");				return -1;			}			wpa_printf(MSG_DEBUG, "EAP-SIM: (encr) "				   "AT_NEXT_PSEUDONYM");			plen = apos[0] * 256 + apos[1];			if (plen > alen - 2) {				wpa_printf(MSG_INFO, "EAP-SIM: (encr) Invalid"					   " AT_NEXT_PSEUDONYM (actual"					   " len %lu, attr len %lu)",					   (unsigned long) plen,					   (unsigned long) alen);				return -1;			}			attr->next_pseudonym = pos + 4;			attr->next_pseudonym_len = plen;			break;		case EAP_SIM_AT_NEXT_REAUTH_ID:			if (!encr) {				wpa_printf(MSG_ERROR, "EAP-SIM: Unencrypted "					   "AT_NEXT_REAUTH_ID");				return -1;			}			wpa_printf(MSG_DEBUG, "EAP-SIM: (encr) "				   "AT_NEXT_REAUTH_ID");			plen = apos[0] * 256 + apos[1];			if (plen > alen - 2) {				wpa_printf(MSG_INFO, "EAP-SIM: (encr) Invalid"					   " AT_NEXT_REAUTH_ID (actual"					   " len %lu, attr len %lu)",					   (unsigned long) plen,					   (unsigned long) alen);				return -1;			}			attr->next_reauth_id = pos + 4;			attr->next_reauth_id_len = plen;			break;		default:			if (pos[0] < 128) {				wpa_printf(MSG_INFO, "EAP-SIM: Unrecognized "					   "non-skippable attribute %d",					   pos[0]);				return -1;			}			wpa_printf(MSG_DEBUG, "EAP-SIM: Unrecognized skippable"				   " attribute %d ignored", pos[0]);			break;		}		pos += pos[1] * 4;	}	wpa_printf(MSG_DEBUG, "EAP-SIM: Attributes parsed successfully "		   "(aka=%d encr=%d)", aka, encr);	return 0;}u8 * eap_sim_parse_encr(const u8 *k_encr, const u8 *encr_data,			size_t encr_data_len, const u8 *iv,			struct eap_sim_attrs *attr, int aka){	u8 *decrypted;	if (!iv) {		wpa_printf(MSG_INFO, "EAP-SIM: Encrypted data, but no IV");		return NULL;	}	decrypted = malloc(encr_data_len);	if (decrypted == NULL)		return NULL;	memcpy(decrypted, encr_data, encr_data_len);	aes_128_cbc_decrypt(k_encr, iv, decrypted, encr_data_len);	wpa_hexdump(MSG_MSGDUMP, "EAP-SIM: Decrypted AT_ENCR_DATA",		    decrypted, encr_data_len);	if (eap_sim_parse_attr(decrypted, decrypted + encr_data_len, attr,			       aka, 1)) {		wpa_printf(MSG_INFO, "EAP-SIM: (encr) Failed to parse "			   "decrypted AT_ENCR_DATA");		free(decrypted);		return NULL;	}	return decrypted;}#define EAP_SIM_INIT_LEN 128struct eap_sim_msg {	u8 *buf;	size_t buf_len, used;	size_t mac, iv, encr; /* index from buf */};struct eap_sim_msg * eap_sim_msg_init(int code, int id, int type, int subtype){	struct eap_sim_msg *msg;	struct eap_hdr *eap;	u8 *pos;	msg = malloc(sizeof(*msg));	if (msg == NULL)		return NULL;	memset(msg, 0, sizeof(*msg));	msg->buf = malloc(EAP_SIM_INIT_LEN);	if (msg->buf == NULL) {		free(msg);		return NULL;	}	memset(msg->buf, 0, EAP_SIM_INIT_LEN);	msg->buf_len = EAP_SIM_INIT_LEN;	eap = (struct eap_hdr *) msg->buf;	eap->code = code;	eap->identifier = id;	msg->used = sizeof(*eap);	pos = (u8 *) (eap + 1);	*pos++ = type;	*pos++ = subtype;	*pos++ = 0; /* Reserved */	*pos++ = 0; /* Reserved */	msg->used += 4;	return msg;}u8 * eap_sim_msg_finish(struct eap_sim_msg *msg, size_t *len, const u8 *k_aut,			const u8 *extra, size_t extra_len){	struct eap_hdr *eap;	u8 *buf;	if (msg == NULL)		return NULL;	eap = (struct eap_hdr *) msg->buf;	eap->length = host_to_be16(msg->used);	if (k_aut && msg->mac) {		eap_sim_add_mac(k_aut, msg->buf, msg->used,				msg->buf + msg->mac, extra, extra_len);	}	*len = msg->used;	buf = msg->buf;	free(msg);	return buf;}void eap_sim_msg_free(struct eap_sim_msg *msg){	if (msg) {		free(msg->buf);		free(msg);	}}static int eap_sim_msg_resize(struct eap_sim_msg *msg, size_t add_len){	if (msg->used + add_len > msg->buf_len) {		u8 *nbuf = realloc(msg->buf, msg->used + add_len);		if (nbuf == NULL)			return -1;		msg->buf = nbuf;		msg->buf_len = msg->used + add_len;	}	return 0;}u8 * eap_sim_msg_add_full(struct eap_sim_msg *msg, u8 attr,			  const u8 *data, size_t len){	int attr_len = 2 + len;	int pad_len;	u8 *start, *pos;	if (msg == NULL)		return NULL;	pad_len = (4 - attr_len % 4) % 4;	attr_len += pad_len;	if (eap_sim_msg_resize(msg, attr_len))		return NULL;	start = pos = msg->buf + msg->used;	*pos++ = attr;	*pos++ = attr_len / 4;	memcpy(pos, data, len);	if (pad_len) {		pos += len;		memset(pos, 0, pad_len);	}	msg->used += attr_len;	return start;}u8 * eap_sim_msg_add(struct eap_sim_msg *msg, u8 attr, u16 value,		     const u8 *data, size_t len){	int attr_len = 4 + len;	int pad_len;	u8 *start, *pos;	if (msg == NULL)		return NULL;	pad_len = (4 - attr_len % 4) % 4;	attr_len += pad_len;	if (eap_sim_msg_resize(msg, attr_len))		return NULL;	start = pos = msg->buf + msg->used;	*pos++ = attr;	*pos++ = attr_len / 4;	WPA_PUT_BE16(pos, value);	pos += 2;	if (data)		memcpy(pos, data, len);	if (pad_len) {		pos += len;		memset(pos, 0, pad_len);	}	msg->used += attr_len;	return start;}u8 * eap_sim_msg_add_mac(struct eap_sim_msg *msg, u8 attr){	u8 *pos = eap_sim_msg_add(msg, attr, 0, NULL, EAP_SIM_MAC_LEN);	if (pos)		msg->mac = (pos - msg->buf) + 4;	return pos;}int eap_sim_msg_add_encr_start(struct eap_sim_msg *msg, u8 attr_iv,			       u8 attr_encr){	u8 *pos = eap_sim_msg_add(msg, attr_iv, 0, NULL, EAP_SIM_IV_LEN);	if (pos == NULL)		return -1;	msg->iv = (pos - msg->buf) + 4;	if (hostapd_get_rand(msg->buf + msg->iv, EAP_SIM_IV_LEN)) {		msg->iv = 0;		return -1;	}	pos = eap_sim_msg_add(msg, attr_encr, 0, NULL, 0);	if (pos == NULL) {		msg->iv = 0;		return -1;	}	msg->encr = pos - msg->buf;	return 0;}int eap_sim_msg_add_encr_end(struct eap_sim_msg *msg, u8 *k_encr, int attr_pad){	size_t encr_len;	if (msg == NULL || k_encr == NULL || msg->iv == 0 || msg->encr == 0)		return -1;	encr_len = msg->used - msg->encr - 4;	if (encr_len % 16) {		u8 *pos;		int pad_len = 16 - (encr_len % 16);		if (pad_len < 4) {			wpa_printf(MSG_WARNING, "EAP-SIM: "				   "eap_sim_msg_add_encr_end - invalid pad_len"				   " %d", pad_len);			return -1;		}		wpa_printf(MSG_DEBUG, "   *AT_PADDING");		pos = eap_sim_msg_add(msg, attr_pad, 0, NULL, pad_len - 4);		if (pos == NULL)			return -1;		memset(pos + 4, 0, pad_len - 4);		encr_len += pad_len;	}	wpa_printf(MSG_DEBUG, "   (AT_ENCR_DATA data len %lu)",		   (unsigned long) encr_len);	msg->buf[msg->encr + 1] = encr_len / 4 + 1;	aes_128_cbc_encrypt(k_encr, msg->buf + msg->iv,			    msg->buf + msg->encr + 4, encr_len);	return 0;}void eap_sim_report_notification(void *msg_ctx, int notification, int aka){#ifndef CONFIG_NO_STDOUT_DEBUG	const char *type = aka ? "AKA" : "SIM";#endif /* CONFIG_NO_STDOUT_DEBUG */	switch (notification) {	case EAP_SIM_GENERAL_FAILURE_AFTER_AUTH:		wpa_printf(MSG_WARNING, "EAP-%s: General failure "			   "notification (after authentication)", type);		break;	case EAP_SIM_TEMPORARILY_DENIED:		wpa_printf(MSG_WARNING, "EAP-%s: Failure notification: "			   "User has been temporarily denied access to the "			   "requested service", type);		break;	case EAP_SIM_NOT_SUBSCRIBED:		wpa_printf(MSG_WARNING, "EAP-%s: Failure notification: "			   "User has not subscribed to the requested service",			   type);		break;	case EAP_SIM_GENERAL_FAILURE_BEFORE_AUTH:		wpa_printf(MSG_WARNING, "EAP-%s: General failure "			   "notification (before authentication)", type);		break;	case EAP_SIM_SUCCESS:		wpa_printf(MSG_INFO, "EAP-%s: Successful authentication "			   "notification", type);		break;	default:		if (notification >= 32768) {			wpa_printf(MSG_INFO, "EAP-%s: Unrecognized "				   "non-failure notification %d",				   type, notification);		} else {			wpa_printf(MSG_WARNING, "EAP-%s: Unrecognized "				   "failure notification %d",				   type, notification);		}	}}#ifdef TEST_MAIN_EAP_SIM_COMMONstatic int test_eap_sim_prf(void){	/* http://csrc.nist.gov/encryption/dss/Examples-1024bit.pdf */	u8 xkey[] = {		0xbd, 0x02, 0x9b, 0xbe, 0x7f, 0x51, 0x96, 0x0b,		0xcf, 0x9e, 0xdb, 0x2b, 0x61, 0xf0, 0x6f, 0x0f,		0xeb, 0x5a, 0x38, 0xb6	};	u8 w[] = {		0x20, 0x70, 0xb3, 0x22, 0x3d, 0xba, 0x37, 0x2f,		0xde, 0x1c, 0x0f, 0xfc, 0x7b, 0x2e, 0x3b, 0x49,		0x8b, 0x26, 0x06, 0x14, 0x3c, 0x6c, 0x18, 0xba,		0xcb, 0x0f, 0x6c, 0x55, 0xba, 0xbb, 0x13, 0x78,		0x8e, 0x20, 0xd7, 0x37, 0xa3, 0x27, 0x51, 0x16	};	u8 buf[40];	printf("Testing EAP-SIM PRF (FIPS 186-2 + change notice 1)\n");	eap_sim_prf(xkey, buf, sizeof(buf));	if (memcmp(w, buf, sizeof(w) != 0)) {		printf("eap_sim_prf failed\n");		return 1;	}	return 0;}int main(int argc, char *argv[]){	int errors = 0;	errors += test_eap_sim_prf();	return errors;}#endif /* TEST_MAIN_EAP_SIM_COMMON */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产免费观看久久| 精品一区二区三区久久久| 综合久久久久久| 欧美高清在线一区二区| 久久久久久99精品| 国产亚洲一区二区三区| 久久精品网站免费观看| 久久精品视频一区| 国产精品传媒入口麻豆| 亚洲精品中文在线观看| 中文字幕佐山爱一区二区免费| 《视频一区视频二区| 亚洲少妇屁股交4| 亚洲精品免费在线| 亚洲国产一区视频| 日韩国产欧美在线播放| 久久国产夜色精品鲁鲁99| 国产一区三区三区| 国产精品99久久久久久久女警 | 午夜日韩在线电影| 天堂成人国产精品一区| 美女精品一区二区| 国产激情一区二区三区四区| aaa欧美色吧激情视频| 欧美在线一二三| 欧美精品日韩精品| 亚洲图片欧美色图| 蜜桃av噜噜一区| 国产·精品毛片| 欧美伊人久久大香线蕉综合69 | 一区二区三区日韩精品| 视频一区中文字幕| 国产传媒日韩欧美成人| 色婷婷精品久久二区二区蜜臀av| 欧美色窝79yyyycom| 日韩午夜电影在线观看| 国产精品日日摸夜夜摸av| 亚洲精选一二三| 久久国产尿小便嘘嘘| av在线一区二区| 91麻豆精品国产91久久久更新时间| 日韩欧美的一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲一区在线观看免费| 国内外成人在线视频| 色国产综合视频| 久久这里只有精品首页| 亚洲一区二区影院| 国产美女精品一区二区三区| 欧美午夜理伦三级在线观看| 国产日韩欧美激情| 亚洲3atv精品一区二区三区| 国产精品一区二区三区网站| 在线视频中文字幕一区二区| 国产婷婷一区二区| 午夜精品福利在线| 成人免费福利片| 欧美一区二区三区在线电影| 亚洲少妇30p| 国产一区欧美二区| 欧美乱妇15p| 中文字幕在线不卡视频| 麻豆精品在线视频| 在线中文字幕一区二区| 欧美激情一区三区| 欧美96一区二区免费视频| 91香蕉国产在线观看软件| 久久久影院官网| 日韩va欧美va亚洲va久久| 91美女福利视频| 欧美经典一区二区三区| 视频一区在线播放| 在线精品视频一区二区三四| 国产精品色呦呦| 在线免费观看日韩欧美| 国产精品女主播av| 国产精品99久久久久久久vr| 91精品欧美福利在线观看| 一区二区三区色| 99re热这里只有精品视频| 久久九九久精品国产免费直播| 蜜臀va亚洲va欧美va天堂| 欧美午夜精品一区二区蜜桃| 亚洲婷婷综合色高清在线| 国产电影一区在线| 精品国产3级a| 久久精品国产亚洲5555| 日韩一级高清毛片| 日韩精品午夜视频| 欧美狂野另类xxxxoooo| 亚洲午夜成aⅴ人片| 色天使色偷偷av一区二区| 亚洲欧洲99久久| 99精品视频一区二区三区| 国产精品免费久久| 成人av网在线| 国产精品久久久久久福利一牛影视| 国产在线精品一区在线观看麻豆| 欧美成人一区二区三区| 裸体健美xxxx欧美裸体表演| 日韩色在线观看| 久久国产精品露脸对白| 欧美tickling挠脚心丨vk| 激情成人午夜视频| 2024国产精品| 国产精品一区二区黑丝| 日本一区二区免费在线观看视频 | 国产精品中文字幕一区二区三区| 亚洲va在线va天堂| 欧美日韩成人一区| 日韩电影一区二区三区| 欧美肥妇毛茸茸| 美女被吸乳得到大胸91| 精品奇米国产一区二区三区| 激情五月婷婷综合网| 国产欧美日韩视频在线观看| 成人永久aaa| 亚洲精品你懂的| 制服丝袜成人动漫| 蜜桃av噜噜一区| 国产日韩欧美精品电影三级在线| 成人动漫视频在线| 一区二区三区日本| 欧美一区二区三区日韩视频| 精品亚洲国产成人av制服丝袜 | 免费成人av资源网| 久久美女艺术照精彩视频福利播放| 国产不卡高清在线观看视频| 亚洲视频图片小说| 欧美喷潮久久久xxxxx| 久久99国产乱子伦精品免费| 欧美韩国日本不卡| 在线观看91精品国产入口| 偷拍与自拍一区| 久久这里只有精品首页| 99视频国产精品| 亚洲18女电影在线观看| 精品国产网站在线观看| 99精品视频免费在线观看| 日韩高清一区二区| 中文无字幕一区二区三区| 欧美日韩在线精品一区二区三区激情| 蜜臀久久99精品久久久画质超高清 | 欧美色精品天天在线观看视频| 免费高清成人在线| 蜜桃视频在线观看一区| 国产精品萝li| 51久久夜色精品国产麻豆| 福利一区福利二区| 五月婷婷综合网| 国产欧美日韩综合| 欧美三区免费完整视频在线观看| 国产老肥熟一区二区三区| 一区二区三区在线免费视频| 欧美精品一区二区三区四区 | 最好看的中文字幕久久| 日韩欧美精品三级| 一本大道久久精品懂色aⅴ| 蜜臀av一区二区在线观看| 亚洲人成人一区二区在线观看| 日韩欧美中文字幕一区| 92精品国产成人观看免费| 韩国av一区二区| 午夜精品一区二区三区三上悠亚| 国产欧美视频在线观看| 在线综合+亚洲+欧美中文字幕| 99久久婷婷国产综合精品电影 | 色综合中文字幕国产 | 制服.丝袜.亚洲.中文.综合| av不卡一区二区三区| 狂野欧美性猛交blacked| 亚洲久本草在线中文字幕| 久久久综合视频| 欧美一区二区在线免费播放| 91视频你懂的| 国产成人在线网站| 久久99久久99小草精品免视看| 亚洲精品国产无套在线观| 国产欧美日韩在线| 精品国产免费一区二区三区四区| 在线观看一区不卡| 成人深夜在线观看| 国模大尺度一区二区三区| 秋霞午夜鲁丝一区二区老狼| 亚洲男同性恋视频| 欧美国产乱子伦| 久久色中文字幕| 日韩欧美一区二区久久婷婷| 欧美日韩国产中文| 日本精品免费观看高清观看| 岛国av在线一区| 国产麻豆精品一区二区| 精品一区二区在线视频| 日韩中文字幕亚洲一区二区va在线 | 精品美女在线观看| 欧美精品三级日韩久久| 欧美日韩国产片| 亚洲精品欧美专区| 亚洲视频电影在线| 亚洲视频资源在线|