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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xauth.c

?? This a good VPN source
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
	    /* loglog(LOG_DEBUG,"ModeCfg ACK: %x",resp); */	}    }    /* we are done with this exchange, clear things so that we can start phase 2 properly */    st->st_msgid = 0;    if(resp) {	st->hidden_variables.st_modecfg_vars_set = TRUE;    }    DBG(DBG_CONTROL, DBG_log("modecfg_inR1(STF_OK)"));    return STF_OK;}/** XAUTH client code - response to challenge.  May open filehandle to console * in order to prompt user for password * * @param st State * @param xauth_resp XAUTH Reponse * @param rbody Reply Body * @param ap_id * @return stf_status */stf_status xauth_client_resp(struct state *st			     ,unsigned int xauth_resp			     ,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;    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 = 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, tentatively */    st->st_msgid2 = st->st_msgid;    st->st_msgid = 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 = 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;}/* * Local Variables: * c-basic-offset:4 * c-style: pluto * End: */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品一区二区三区中文字幕| 精品国产99国产精品| 欧美一区二区三区视频免费| 国产亚洲欧美中文| 日本欧美久久久久免费播放网| 成人91在线观看| 精品欧美乱码久久久久久| 亚洲一区二区三区四区不卡| 成人少妇影院yyyy| 久久久亚洲精品一区二区三区| 午夜a成v人精品| 在线观看www91| 综合色天天鬼久久鬼色| 国产高清亚洲一区| 日韩精品一区二区三区视频在线观看 | 美国十次综合导航| 99精品视频在线免费观看| 欧美不卡激情三级在线观看| 香蕉成人伊视频在线观看| 一本到高清视频免费精品| 国产精品进线69影院| 国产精品自拍在线| 2017欧美狠狠色| 亚洲第一综合色| 色婷婷久久99综合精品jk白丝| 国产欧美一区二区三区在线看蜜臀 | 91精品久久久久久久99蜜桃| 亚洲精品日产精品乱码不卡| jizz一区二区| 中文字幕一区二区三区视频| 国产传媒欧美日韩成人| 久久麻豆一区二区| 国产福利一区二区三区视频| 久久久久久久久久久久久久久99 | 日韩一区二区三区av| 丝袜a∨在线一区二区三区不卡| 欧美天堂一区二区三区| 亚洲丶国产丶欧美一区二区三区| 欧美日韩黄色一区二区| 午夜日韩在线观看| 欧美zozozo| 国产夫妻精品视频| 国产精品每日更新在线播放网址| 福利一区二区在线| 亚洲色图制服丝袜| 欧美日韩国产成人在线91| 偷拍日韩校园综合在线| 精品国产乱码久久久久久蜜臀 | 久久精品人人做人人综合| 成人一级片在线观看| 亚洲人亚洲人成电影网站色| 欧美性xxxxx极品少妇| 日韩电影在线观看网站| 久久久久久**毛片大全| 欧美精品色一区二区三区| 五月天欧美精品| 26uuu成人网一区二区三区| 成人午夜碰碰视频| 午夜激情久久久| 国产肉丝袜一区二区| 一本色道久久综合亚洲91| 免费三级欧美电影| 国产精品理论片| 欧美一级电影网站| 成人免费毛片嘿嘿连载视频| 亚洲国产一区在线观看| 2欧美一区二区三区在线观看视频| 99re66热这里只有精品3直播 | 日韩三级精品电影久久久 | 亚洲欧洲韩国日本视频| 欧美日韩一级片网站| 国产精品香蕉一区二区三区| 亚洲尤物视频在线| 337p粉嫩大胆噜噜噜噜噜91av| 一本一道久久a久久精品综合蜜臀| 蜜臀av性久久久久蜜臀aⅴ| 亚洲天堂久久久久久久| 精品久久久久一区| 欧美三级电影网| 大白屁股一区二区视频| 亚洲成av人片一区二区梦乃| 国产精品美女久久久久久| 日韩一本二本av| 精品视频资源站| 99视频超级精品| 国内外精品视频| 男男gaygay亚洲| 亚洲一区电影777| 美腿丝袜一区二区三区| 亚洲手机成人高清视频| 久久久精品日韩欧美| 日韩欧美一级二级| 欧美精品1区2区3区| 91视频xxxx| 97久久人人超碰| 成人小视频在线| 风流少妇一区二区| 国产一区二区三区综合| 日韩电影在线看| 三级亚洲高清视频| 午夜欧美大尺度福利影院在线看| 亚洲三级在线免费| 国产精品久久久久久久第一福利| 亚洲精品在线一区二区| 日韩一区二区三区高清免费看看| 欧美人与禽zozo性伦| 欧美主播一区二区三区| 91久久精品一区二区三区| 91香蕉视频mp4| 99久久精品久久久久久清纯| 国产suv精品一区二区6| 国产乱码精品一区二区三区忘忧草 | 国产馆精品极品| 国产在线国偷精品免费看| 韩国一区二区三区| 国产精品综合视频| 国产91精品免费| 99久久精品一区| 色噜噜狠狠色综合欧洲selulu| 粉嫩aⅴ一区二区三区四区| 国产精品18久久久| 成人久久视频在线观看| 成人av在线一区二区三区| 成人高清在线视频| 色综合久久久网| 欧美亚洲禁片免费| 制服丝袜在线91| 久久综合网色—综合色88| 亚洲国产精品激情在线观看| 亚洲天堂免费在线观看视频| 亚洲综合激情网| 美女诱惑一区二区| 国产在线播放一区二区三区| 成人动漫在线一区| 91久久一区二区| 日韩一二三区视频| 国产情人综合久久777777| 亚洲美女屁股眼交3| 天天操天天综合网| 国产精品自拍在线| 日本精品视频一区二区| 欧美一区日本一区韩国一区| 精品成人在线观看| 亚洲人成在线观看一区二区| 五月天一区二区| 国产a精品视频| 欧美日韩一级大片网址| 精品国产电影一区二区| 最新日韩在线视频| 亚洲h在线观看| 国产精品一二二区| 色综合中文字幕国产 | 国产一区二区伦理| 97精品视频在线观看自产线路二| 欧美日韩亚州综合| 国产天堂亚洲国产碰碰| 亚洲一级不卡视频| 国产一区二区三区av电影 | aaa欧美大片| 亚洲精品在线一区二区| 亚洲成av人影院在线观看网| 成人免费黄色在线| 欧美一区二区免费| 亚洲精品免费看| 国产精品99久久久久久有的能看| 欧美日韩夫妻久久| ●精品国产综合乱码久久久久| 五月激情丁香一区二区三区| av网站一区二区三区| 精品日韩av一区二区| 偷偷要91色婷婷| 欧美亚洲国产bt| 成人免费一区二区三区在线观看| 蜜桃传媒麻豆第一区在线观看| 欧美亚洲国产一卡| 亚洲欧美国产77777| 高清成人免费视频| 久久久久久久久伊人| 男女男精品网站| 欧美视频一区在线| 亚洲精品中文在线观看| 成人性生交大片免费看中文| 亚洲精品一区二区精华| 日韩vs国产vs欧美| 欧美日韩国产大片| 午夜av区久久| 欧美日本在线播放| 午夜精品123| 欧美日韩国产高清一区二区三区 | 成人av在线一区二区三区| 久久久久99精品一区| 久久国产免费看| 日韩欧美精品在线视频| 免费看欧美美女黄的网站| 欧美精品乱码久久久久久| 亚洲综合清纯丝袜自拍| 在线区一区二视频| 亚洲午夜成aⅴ人片| 91国在线观看| 午夜精品一区二区三区三上悠亚|