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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xauth.c

?? ipsec vpn
?? C
?? 第 1 頁 / 共 4 頁
字號:
			     ,pb_stream *rbody			     ,u_int16_t ap_id){    unsigned char *r_hash_start,*r_hashval;    char xauth_username[64], xauth_password[64];    struct connection *c = st->st_connection;        /* START_HASH_PAYLOAD(rbody, ISAKMP_NEXT_ATTR); */    {      pb_stream hash_pbs;       int np = ISAKMP_NEXT_ATTR;      if (!out_generic(np, &isakmp_hash_desc, rbody, &hash_pbs)) 	return STF_INTERNAL_ERROR;       r_hashval = hash_pbs.cur;	/* remember where to plant value */       if (!out_zero(st->st_oakley.hasher->hash_digest_len, &hash_pbs, "HASH")) 	return STF_INTERNAL_ERROR;       close_output_pbs(&hash_pbs);       r_hash_start = (rbody)->cur;	/* hash from after HASH payload */     }    /* ATTR out */    {	struct  isakmp_mode_attr attrh;	struct isakmp_attribute attr;	pb_stream strattr,attrval;	int attr_type;	int dns_idx, wins_idx;	bool dont_advance;	attrh.isama_np = ISAKMP_NEXT_NONE;	attrh.isama_type = ISAKMP_CFG_REPLY;	attrh.isama_identifier = ap_id;	if(!out_struct(&attrh, &isakmp_attr_desc, rbody, &strattr))	    return STF_INTERNAL_ERROR;		dns_idx = 0;	wins_idx = 0;	attr_type = XAUTH_TYPE;	while(xauth_resp != 0)	{	    dont_advance = FALSE;	    if(xauth_resp & 1)	    {		/* ISAKMP attr out */		switch(attr_type)		{		case XAUTH_TYPE:		    attr.isaat_af_type = attr_type | ISAKMP_ATTR_AF_TV;		    attr.isaat_lv = XAUTH_TYPE_GENERIC;		    out_struct(&attr, &isakmp_xauth_attribute_desc, &strattr, NULL);		    break;		    		case XAUTH_USER_NAME:		    attr.isaat_af_type = attr_type | ISAKMP_ATTR_AF_TLV;		    out_struct(&attr, &isakmp_xauth_attribute_desc, &strattr, &attrval);		    if(st->st_whack_sock == -1)		    {			loglog(RC_LOG_SERIOUS, "XAUTH username requested, but no file descriptor available for prompt");			return STF_FAIL;		    }		    		    if(!whack_prompt_for(st->st_whack_sock					 , c->name, "Username", TRUE					 , xauth_username					 , sizeof(xauth_username)))		    {			loglog(RC_LOG_SERIOUS, "XAUTH username prompt failed.");			return STF_FAIL;		    }		    /* trip any trailing white space */		    {		      char *u = xauth_username;		      strsep(&u, " \n\t");		    }		    out_raw(xauth_username, strlen(xauth_username)			    ,&attrval, "XAUTH username");		    close_output_pbs(&attrval);		    break;		    		case XAUTH_USER_PASSWORD:		    attr.isaat_af_type = attr_type | ISAKMP_ATTR_AF_TLV;		    out_struct(&attr, &isakmp_xauth_attribute_desc, &strattr, &attrval);		    if(st->st_whack_sock == -1)		    {			loglog(RC_LOG_SERIOUS, "XAUTH password requested, but no file descriptor available for prompt");			return STF_FAIL;		    }		    		    if(!whack_prompt_for(st->st_whack_sock					 , c->name, "Password", FALSE					 , xauth_password					 , sizeof(xauth_password)))		    {			loglog(RC_LOG_SERIOUS, "XAUTH password prompt failed.");			return STF_FAIL;		    }		    /* trip any trailing white space */		    {		      char *u = xauth_password;		      strsep(&u, " \n\t");		    }		    out_raw(xauth_password, strlen(xauth_password)			    ,&attrval, "XAUTH password");		    close_output_pbs(&attrval);		    break;		    		default:		    openswan_log("trying to send XAUTH reply, sending %s instead."			 , enum_show(&modecfg_attr_names, attr_type));		    break;		}	    }	    	    if (!dont_advance) {		attr_type++;		xauth_resp >>= 1;	    }	}		/* do not PAD here, */	close_output_pbs(&strattr);    }    openswan_log("XAUTH: Answering XAUTH challenge with user='%s'"		 , xauth_username);    xauth_mode_cfg_hash(r_hashval, r_hash_start, rbody->cur, st);        close_message(rbody);    encrypt_message(rbody, st);    return STF_OK;}/**  * STATE_XAUTH_I0 *  HDR*, HASH, ATTR(REQ=IP) --> HDR*, HASH, ATTR(REPLY=IP) * * This state occurs in initiator. * * In the initating client, it occurs in XAUTH, when the responding server * demands a password, and we have to supply it. * * @param md Message Digest * @return stf_status */stf_statusxauth_inI0(struct msg_digest *md){    struct state *const st = md->st;    struct payload_digest *p;    pb_stream *attrs;    char msgbuf[81];    int len;    unsigned type;    char *dat;    int status = 0;    unsigned val;    stf_status stat;    bool gotrequest = FALSE;    bool gotset = FALSE;    bool got_status = FALSE;    if(st->hidden_variables.st_xauth_client_done) {	return modecfg_inI2(md);    }    DBG(DBG_CONTROLMORE, DBG_log("arrived in xauth_inI0"));    st->st_msgid_phase15 = md->hdr.isa_msgid;    CHECK_QUICK_HASH(md, xauth_mode_cfg_hash(hash_val					     ,hash_pbs->roof					     , md->message_pbs.roof, st)		     , "MODECFG-HASH", "XAUTH I0");    stat = STF_FAIL;    /* process the MODECFG payloads therein */    for(p = md->chain[ISAKMP_NEXT_ATTR]; p != NULL; p = p->next)    {        struct isakmp_attribute attr;        pb_stream strattr;	unsigned int xauth_resp = LEMPTY;#define XAUTHLELEM(x) (LELEM(x - XAUTH_TYPE))	attrs = &p->pbs;	switch(p->payload.attribute.isama_type)	{	default:	    openswan_log("Expecting ISAKMP_CFG_REQUEST, got %s instead (ignored)."			 , enum_name(&attr_msg_type_names				     , p->payload.attribute.isama_type));	case ISAKMP_CFG_SET:	    gotset = TRUE;	    break;	case ISAKMP_CFG_REQUEST:	    gotrequest = TRUE;	    break;	}	while(attrs->cur < attrs->roof)	{	    memset(&attr, 0, sizeof(attr));	    	    if (!in_struct(&attr, &isakmp_xauth_attribute_desc			   , attrs, &strattr))	    {		/* Skip unknown */		int len;		if (attr.isaat_af_type & 0x8000)		    len = 4;		else		    len = attr.isaat_lv;				if(len < 4)		{		    openswan_log("Attribute was too short: %d", len);		    return STF_FAIL;		}				attrs->cur += len;		continue;	    }	    	    if (attr.isaat_af_type & 0x8000)	    {		len = 4;		val = attr.isaat_lv;		dat = NULL;	    } else {		len = attr.isaat_lv;		val = ntohs(*(u_int16_t *)strattr.cur);		dat = strattr.cur;	    }	    	    switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )	    {	    case XAUTH_STATUS:		got_status = TRUE;		status = attr.isaat_lv;		break;			    case XAUTH_MESSAGE:		if(len > 80) len=80;		memcpy(msgbuf, dat, len);		msgbuf[len]='\0';		loglog(RC_LOG_SERIOUS, "XAUTH: Bad Message: %s", msgbuf);		break;			    case XAUTH_TYPE:		type = val;		if(type != XAUTH_TYPE_GENERIC)		{		    openswan_log("XAUTH: Unsupported type: %d", type);		    return STF_IGNORE;		}		xauth_resp |= XAUTHLELEM(attr.isaat_af_type);		break;	    case XAUTH_USER_NAME:	    case XAUTH_USER_PASSWORD:		xauth_resp |= XAUTHLELEM(attr.isaat_af_type);		break;			    case INTERNAL_IP4_ADDRESS:	    case INTERNAL_IP4_NETMASK:	    case INTERNAL_IP4_DNS:	    case INTERNAL_IP4_SUBNET:	    case INTERNAL_IP4_NBNS:		xauth_resp |= LELEM(attr.isaat_af_type);		break;	    default:		openswan_log("XAUTH: Unsupported attribute: %s"		     , enum_show(&modecfg_attr_names, (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK)));		break;	    }	}	if(gotset && got_status)	{	    /* ACK whatever it was that we got */	    stat = xauth_client_ackstatus(st, &md->rbody					  ,md->chain[ISAKMP_NEXT_ATTR]->payload.attribute.isama_identifier);	    /* must have gotten a status */	    if(status && stat == STF_OK)	    {		st->hidden_variables.st_xauth_client_done = TRUE;		openswan_log("XAUTH: Successfully Authenticated");		st->st_oakley.xauth = 0;		return STF_OK;	    }	    else	    {		return STF_FATAL;	    }	}	    	if(gotrequest)	{	    if(xauth_resp & (XAUTHLELEM(XAUTH_USER_NAME)|XAUTHLELEM(XAUTH_USER_PASSWORD))) {		DBG(DBG_CONTROL, DBG_log("XAUTH: Username/password request received"));	    }	    	    /* sanitize what we were asked to reply to */	    if(st->st_connection->spd.this.xauth_client	       && (xauth_resp &( XAUTHLELEM(XAUTH_USER_NAME)				 | XAUTHLELEM(XAUTH_USER_PASSWORD)))==0)	    {		openswan_log("XAUTH: No username/password request was received.");		return STF_IGNORE;	    }	    /* now, opposite */	    if(!st->st_connection->spd.this.xauth_client	       && (xauth_resp & (XAUTHLELEM(XAUTH_USER_NAME)				 |XAUTHLELEM(XAUTH_USER_PASSWORD)))!=0)	    {		openswan_log("XAUTH: Username/password request was received, but XAUTH client mode not enabled.");		return STF_IGNORE;	    }	    	    stat = xauth_client_resp(st, xauth_resp				     , &md->rbody				     ,md->chain[ISAKMP_NEXT_ATTR]->payload.attribute.isama_identifier);	}	if(stat != STF_OK) {	    /* notification payload - not exactly the right choice, but okay */	    md->note = CERTIFICATE_UNAVAILABLE;	    return stat;	}    }    /* reset the message ID */    st->st_msgid_phase15b = st->st_msgid_phase15;    st->st_msgid_phase15 = 0;    DBG(DBG_CONTROLMORE, DBG_log("xauth_inI0(STF_OK)"));    return STF_OK;}/** XAUTH client code - Acknowledge status  * * @param st State * @param rbody Response Body * @param ap_id * @return stf_status */stf_status xauth_client_ackstatus(struct state *st				  ,pb_stream *rbody				  ,u_int16_t ap_id){    unsigned char *r_hash_start,*r_hashval;        /* START_HASH_PAYLOAD(rbody, ISAKMP_NEXT_ATTR); */    {      pb_stream hash_pbs;       int np = ISAKMP_NEXT_ATTR;      if (!out_generic(np, &isakmp_hash_desc, rbody, &hash_pbs)) 	return STF_INTERNAL_ERROR;       r_hashval = hash_pbs.cur;	/* remember where to plant value */       if (!out_zero(st->st_oakley.hasher->hash_digest_len, &hash_pbs, "HASH")) 	return STF_INTERNAL_ERROR;       close_output_pbs(&hash_pbs);       r_hash_start = (rbody)->cur;	/* hash from after HASH payload */     }    /* ATTR out */    {	struct  isakmp_mode_attr attrh;	struct isakmp_attribute attr;	pb_stream strattr,attrval;	int attr_type;	int dns_idx, wins_idx;	attrh.isama_np = ISAKMP_NEXT_NONE;	attrh.isama_type = ISAKMP_CFG_ACK;	attrh.isama_identifier = ap_id;	if(!out_struct(&attrh, &isakmp_attr_desc, rbody, &strattr))	    return STF_INTERNAL_ERROR;		dns_idx = 0;	wins_idx = 0;	attr_type = XAUTH_TYPE;	/* ISAKMP attr out */	attr.isaat_af_type = XAUTH_STATUS | ISAKMP_ATTR_AF_TV;	attr.isaat_lv = 1;	out_struct(&attr, &isakmp_xauth_attribute_desc, &strattr, &attrval);	close_output_pbs(&attrval);	close_message(&strattr);    }    xauth_mode_cfg_hash(r_hashval,r_hash_start,rbody->cur,st);        close_message(rbody);    encrypt_message(rbody, st);    return STF_OK;}/** STATE_XAUTH_I1 *  HDR*, HASH, ATTR(SET=IP) --> HDR*, HASH, ATTR(ACK,OK) *	     * @param md Message Digest * @return stf_status */stf_statusxauth_inI1(struct msg_digest *md){    struct state *const st = md->st;    pb_stream *attrs = &md->chain[ISAKMP_NEXT_ATTR]->pbs;    bool got_status, status;    stf_status stat;    struct payload_digest *p;    unsigned int xauth_resp = LEMPTY;    if(st->hidden_variables.st_xauth_client_done) {	return modecfg_inI2(md);    }    DBG(DBG_CONTROLMORE, DBG_log("xauth_inI1"));    st->st_msgid_phase15 = md->hdr.isa_msgid;    CHECK_QUICK_HASH(md		     , xauth_mode_cfg_hash(hash_val					   ,hash_pbs->roof					   , md->message_pbs.roof, st)		     , "MODECFG-HASH", "XAUTH I1");    got_status = FALSE;    status = FALSE;    for(p = md->chain[ISAKMP_NEXT_ATTR]; p != NULL; p = p->next)    {        struct isakmp_attribute attr;        pb_stream strattr;		attrs = &p->pbs;		switch(p->payload.attribute.isama_type)	{	default:	    openswan_log("Expecting MODE_CFG_SET, got %x instead."			 , p->payload.attribute.isama_type);	    return STF_IGNORE;	    	case ISAKMP_CFG_SET:	    /* CHECK that SET has been received. */	    while(attrs->cur < attrs->roof)	    {		memset(&attr, 0, sizeof(attr));				if (!in_struct(&attr, &isakmp_xauth_attribute_desc			       , attrs, &strattr))		{		    /* Skip unknown */		    int len;		    if (attr.isaat_af_type & 0x8000)			len = 4;		    else			len = attr.isaat_lv;		    		    if(len < 4)		    {			openswan_log("Attribute was too short: %d", len);			return STF_FAIL;		    }		    		    attrs->cur += len;		}				switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )		{		case XAUTH_STATUS:		    xauth_resp |= XAUTHLELEM(attr.isaat_af_type);		    got_status = TRUE;		    status = attr.isaat_lv;		    break;		    		default:		    openswan_log("while waiting for XAUTH_STATUS, got %s instead."			 , enum_show(&modecfg_attr_names, (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK)));		    break;		}	    }	    break;	}    }    /* first check if we might be done! */    if(!got_status || status==FALSE)    {	/* oops, something seriously wrong */	openswan_log("did not get status attribute in xauth_inI1, looking for new challenge.");	st->st_state = STATE_XAUTH_I0;	return xauth_inI0(md);    }    /* ACK whatever it was that we got */    stat = xauth_client_ackstatus(st, &md->rbody				  ,md->chain[ISAKMP_NEXT_ATTR]->payload.attribute.isama_identifier);    /* must have gotten a status */    if(status && stat == STF_OK)    {	st->hidden_variables.st_xauth_client_done = TRUE;	openswan_log("successfully logged in");	st->st_oakley.xauth = 0;	return STF_OK;    }    /* what? */    return stat;}/* * $Id: xauth.c,v 1.41.4.3 2005/07/26 02:11:23 ken Exp $ * * $Log: xauth.c,v $ * Revision 1.41.4.3  2005/07/26 02:11:23  ken * Pullin from HEAD: * Split Aggressive mode into ikev1_aggr.c * Fix NAT-T that we broke in dr7 * Move dpd/pgp vendor id's to vendor.[ch] * * Revision 1.41.4.2  2005/07/25 19:26:34  ken * Pullin fixes for NAT-T from HEAD * Includes IMPAIR_JACOB_TWO_TWO impairment from HEAD * change from c->interface to st->st_interface for sending packets * * Revision 1.43  2005/07/22 14:05:51  mcr * 	fixes for -Werror warnings. * * Revision 1.42  2005/07/22 14:00:19  mcr * 	fixes for -Werror warnings. * * Revision 1.41  2005/02/16 17:27:41  mcr * 	moved recording of xauth username to after the username * 	has actually been authenticated. * 	Do not record username on client -- I don't think that this * 	makes any sense. If it is important, it should be recorded * 	(and expressed in do_command()) in a different way. * * Revision 1.40  2005/02/14 05:58:46  ken * Add support for saving the XAUTH username, and then passing it to _updown as PLUTO_XAUTH_USERNAME environment variable * * Revision 1.39  2005/01/26 07:01:55  mcr * 	use phase1.5 msgid instead of msgid. * * * Local Variables: * c-basic-offset:4 * c-style: pluto * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清三级视频| 国产午夜精品一区二区| 国产高清视频一区| 亚洲h动漫在线| 国产精品私人影院| 欧美精品久久久久久久多人混战 | 色94色欧美sute亚洲线路一久| 欧美aaaaa成人免费观看视频| 亚洲色图20p| www国产精品av| 欧美一二三区在线| 91久久精品一区二区| 成人动漫视频在线| 国产成人啪免费观看软件| 日本最新不卡在线| 性做久久久久久免费观看| 亚洲人成精品久久久久| 久久精品日产第一区二区三区高清版| 欧美在线不卡一区| 色久综合一二码| 99精品欧美一区二区三区综合在线| 九九**精品视频免费播放| 日本伊人色综合网| 香蕉加勒比综合久久| 一区二区三区精品久久久| 日韩一区在线看| 国产精品久久久久久久久免费桃花 | 亚洲三级在线免费| 中文字幕不卡三区| 国产日本一区二区| 久久久久久麻豆| 欧美精品一区二区高清在线观看 | 欧美三级韩国三级日本三斤| 99精品视频在线观看免费| 99热99精品| 波多野结衣中文字幕一区| 国产成人日日夜夜| 成人ar影院免费观看视频| 成人免费毛片嘿嘿连载视频| 国产一区二区三区观看| 国产在线精品免费av| 国产伦理精品不卡| 国产盗摄一区二区| 成人激情午夜影院| 99精品国产视频| 91年精品国产| 在线国产电影不卡| 欧美日韩高清在线播放| 欧美巨大另类极品videosbest | 91麻豆精品国产自产在线 | 4438成人网| 欧美不卡视频一区| 久久久亚洲国产美女国产盗摄 | 欧美成人国产一区二区| 精品国产三级a在线观看| 久久蜜桃一区二区| 中文字幕av一区二区三区高| 亚洲天堂久久久久久久| 一区二区三区四区激情| 午夜不卡在线视频| 久久成人久久鬼色| 成人激情av网| 欧美午夜精品久久久久久孕妇 | 亚洲美女电影在线| 婷婷一区二区三区| 国产综合久久久久影院| 成人性生交大片免费看中文| 色综合天天性综合| 欧美精品电影在线播放| 精品成人一区二区| 国产欧美一区二区精品仙草咪| 亚洲色图在线视频| 日产国产欧美视频一区精品 | 欧美日韩另类一区| 欧美精品一区二区三区很污很色的| 亚洲欧洲日产国码二区| 婷婷久久综合九色综合绿巨人| 精品一区二区久久| 色综合天天视频在线观看| 日韩美女视频一区二区在线观看| 欧美激情综合网| 日本欧美在线看| av亚洲精华国产精华| 91精品国产麻豆国产自产在线| 国产亚洲va综合人人澡精品| 亚洲一区在线观看网站| 国产精品一品二品| 色拍拍在线精品视频8848| 欧美r级电影在线观看| 亚洲欧美日韩一区二区三区在线观看 | 一区在线播放视频| 看片网站欧美日韩| 色综合久久66| 久久精品人人做人人爽人人| 亚洲aaa精品| 99re热这里只有精品免费视频 | 伊人性伊人情综合网| 狠狠色丁香久久婷婷综合_中 | av电影天堂一区二区在线观看| 欧美一区二区三区婷婷月色| 中文字幕在线一区二区三区| 久久精品理论片| 欧美三区在线视频| 亚洲欧洲一区二区三区| 国产综合久久久久久鬼色 | 国产精品第五页| 精品午夜一区二区三区在线观看| 欧美在线播放高清精品| 中文字幕在线不卡视频| 国产精一区二区三区| 666欧美在线视频| 亚洲永久免费av| 99久久综合国产精品| 久久精品一区二区| 精品亚洲porn| 日韩欧美的一区二区| 亚洲国产精品精华液网站| 99在线精品观看| 国产欧美日韩中文久久| 激情久久五月天| 欧美不卡一区二区三区| 精品一区二区三区在线观看| 538在线一区二区精品国产| 亚洲一级在线观看| 欧美吞精做爰啪啪高潮| 亚洲激情一二三区| 欧美综合亚洲图片综合区| 亚洲摸摸操操av| 97久久人人超碰| 亚洲三级在线观看| 色老综合老女人久久久| 亚洲欧美另类在线| 色婷婷精品久久二区二区蜜臀av| 国产精品乱码一区二三区小蝌蚪| 懂色av一区二区三区蜜臀| 国产日韩成人精品| 成人性生交大片免费看中文网站| 国产精品毛片久久久久久久| av高清不卡在线| 亚洲免费av在线| 欧美日韩一级二级| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产欧美日韩| 精品综合久久久久久8888| 久久久久久久久久美女| 成人午夜伦理影院| 亚洲欧美福利一区二区| 在线日韩国产精品| 亚洲.国产.中文慕字在线| 日韩欧美亚洲一区二区| 精久久久久久久久久久| 国产喷白浆一区二区三区| 成人自拍视频在线| 亚洲精品免费视频| 欧美二区三区91| 精品一区二区三区影院在线午夜| 欧美国产97人人爽人人喊| 91麻豆.com| 香蕉影视欧美成人| 久久日韩精品一区二区五区| 丁香一区二区三区| 亚洲综合男人的天堂| 88在线观看91蜜桃国自产| 极品美女销魂一区二区三区| 国产日韩欧美高清| 欧美日韩中文字幕一区| 久久黄色级2电影| 国产精品理论片在线观看| 色天使色偷偷av一区二区| 蜜臀久久久久久久| 国产精品理论片在线观看| 欧美区一区二区三区| 国产在线一区二区综合免费视频| 日韩一区有码在线| 日韩欧美视频一区| 97精品国产露脸对白| 日韩av一区二区在线影视| 国产精品欧美一区喷水| 欧美夫妻性生活| 国产91综合一区在线观看| 亚洲国产美女搞黄色| 久久在线观看免费| 在线精品视频免费播放| 国产91精品在线观看| 五月婷婷久久丁香| 国产精品久久三| 欧美一三区三区四区免费在线看| 国产v日产∨综合v精品视频| 五月婷婷激情综合| 国产精品的网站| 久久婷婷国产综合精品青草| 欧美性猛交一区二区三区精品| 国产精品一二三四| 日本欧美韩国一区三区| 最新久久zyz资源站| 欧美精品一区二区三区久久久| 欧美日韩一区小说| 99久久精品情趣| 国产精品一卡二| 精品一区二区三区蜜桃|