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

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

?? sensorgm.nc

?? 無線傳感器密鑰管理算法
?? NC
字號:
/*									tab:4
 *
 *
 * Copyright (C) 2004 by North Carolina State University.  
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice, the following
 * two paragraphs and the author appear in all copies of this software.
 * 
 * IN NO EVENT SHALL THE NORTH CAROLINA STATE UNIVERSITY BE LIABLE TO ANY PARTY 
 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING 
 * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE NORTH
 * CAROLINA STATE UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * THE NORTH CAROLINA STATE UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE NORTH CAROLINA STATE UNIVERSITY HAS NO OBLIGATION 
 * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
 *
 * Authors: Donggang Liu
 * Date:    4/25/04
 */

includes AM;
includes PolyOne;

module SensorGM { 
  provides {
	 interface Sensor;
  }
  uses {
  	 interface Channel;
  	 interface ComputeKey;
  	 interface Primitive;
  }
}

implementation {  

	uint16_t ID;       //node ID
	uint16_t ctr=0;	   //initial counter
	Secret_Cefts *secret; //secret coefficient of this sensor
	uint8_t *comp_list;//compromised list, one bit per node 64 bytes for 256 raw and 256 column enough!!!

	uint8_t sendflag=0;
 	uint8_t Msg[17];
	uint8_t rnd[8];
	
	command void Sensor.init(uint16_t sID, uint8_t *sec, uint16_t *cl)
	{
	 	ID=sID;
	 	secret=(Secret_Cefts *)sec;
	 	comp_list=(uint8_t*)cl;
	 	call Primitive.PRG(rnd);//generate a random number
	}
 
	command uint8_t Sensor.establish_key(uint16_t dID)
	{
		uint8_t key[8];
		uint16_t tmp_id;
	 	if((ID&0xff)==(dID&0xff)) {
			dbg(DBG_USR1,"node %d have common subr with node %d.\n",ID,dID);
	    		call ComputeKey.compute((uint8_t *)&(secret->subr),dID>>8,key);
			signal Sensor.keyEstablished(dID,key);
			return 0;
	 	} else if((ID>>8)==(dID>>8)) {
			dbg(DBG_USR1,"node %d have common subc with node %d.\n",ID,dID);
	    		call ComputeKey.compute((uint8_t *)&(secret->subc),dID&0xff,key);
			signal Sensor.keyEstablished(dID,key);
			return 0;
		} else if(sendflag<2) {
			dbg(DBG_USR1,"node %d try to setup a key with node %d.\n",ID,dID);
	 		Msg[0] = 1; 

	 		if (!(comp_list[32+(dID>>11)]&(0x1<<((dID>>8)&0x7)))) {
	 			tmp_id=(ID&0xff)+(dID&0xff00);
		    		call ComputeKey.compute((uint8_t *)&(secret->subr),dID>>8,key);
		    		dbg(DBG_USR1,"intermediate node 2: %d.\n",tmp_id);
	 		} else if(!(comp_list[(dID&0xff)>>3]&(0x1<<(dID&0x7)))) {
	 			tmp_id=(ID&0xff00)+(dID&0xff);
	 			call ComputeKey.compute((uint8_t *)&(secret->subc),dID&0xff,key);
	 			dbg(DBG_USR1,"intermediate node 1: %d. (%d,%d)\n",tmp_id,ID,dID);
	 		} else return 1;
			ctr++;
	 		memcpy(Msg+1,(uint8_t *)&tmp_id,2);
 			memcpy(Msg+3,(uint8_t *)&ID,2);
	 		memcpy(Msg+5,(uint8_t *)&dID,2);
	 		memcpy(Msg+7,(uint8_t *)&ctr,2);
			call Primitive.PRF(rnd,ctr,Msg+9); //generate K_c
			dbg(DBG_USR1,"random generated key %X%X%X%X%X%X%X%X.\n",Msg[9],Msg[10],Msg[11],Msg[12],Msg[13],Msg[14],Msg[15],Msg[16]);
			call Primitive.encrypt(key,Msg+9,Msg+9);
			dbg(DBG_USR1,"node %d send request to node %d.\n",ID,tmp_id);
			if(!sendflag) {
				call Channel.send(TOS_BCAST_ADDR,Msg);	
				sendflag=1;
				return 0;
			} else sendflag=2;
		} 
		return 2;
 	}
 
	event result_t Channel.sendDone(uint8_t *msgP,result_t success){
		sendflag--;
		dbg(DBG_USR1,"node %d Send Success ! \n",ID);
		if(sendflag) {
			if(Msg[0]==1) {
				call Channel.send(TOS_BCAST_ADDR,Msg);	
			} else if(Msg[0]==2) {
				call Channel.send(TOS_BCAST_ADDR,Msg);	
			} else sendflag=0;
		}
		return SUCCESS;
	}

	event uint8_t* Channel.receive(uint8_t *msg){
		uint8_t key[8];

		uint16_t tmp_id;
		uint16_t src_id;
		uint16_t dst_id;
		uint16_t ctr_tp;
		
		memcpy((uint8_t *)&tmp_id,msg+1,2);
		memcpy((uint8_t *)&src_id,msg+3,2);
		memcpy((uint8_t *)&dst_id,msg+5,2);

		if(msg[0]==1&&sendflag<2) {
			if(ID!=tmp_id) return msg;
			dbg(DBG_USR1,"node %d received message from %d to setup key with %d\n",tmp_id,src_id,dst_id);
			Msg[0]=2;	//path discovery
			memcpy(Msg+1,msg+1,16);

			if((tmp_id&0xff)==(src_id&0xff) && (tmp_id>>8)==(dst_id>>8)) {
		   		call ComputeKey.compute((uint8_t *)&secret->subr,src_id>>8,key);
				call Primitive.decrypt(key,Msg+9,Msg+9);
				dbg(DBG_USR1,"random generated key %X%X%X%X%X%X%X%X.\n",Msg[9],Msg[10],Msg[11],Msg[12],Msg[13],Msg[14],Msg[15],Msg[16]);
		   		call ComputeKey.compute((uint8_t *)&secret->subc,dst_id&0xff,key);
		    		call Primitive.encrypt(key,Msg+9,Msg+9);
		    		dbg(DBG_USR1,"find right path at 1 \n");
			} else if ((tmp_id&0xff)==(dst_id&0xff) && (tmp_id>>8)==(src_id>>8)) {
		   		call ComputeKey.compute((uint8_t *)&secret->subc,src_id&0xff,key);
				call Primitive.decrypt(key,Msg+9,Msg+9);
		   		call ComputeKey.compute((uint8_t *)&secret->subr,dst_id>>8,key);
		    		call Primitive.encrypt(key,Msg+9,Msg+9);
		    		dbg(DBG_USR1,"find right path at 2 \n");
			} else return msg;
			if(!sendflag) {
				dbg(DBG_USR1,"node %d send %d message to help him establish key with %d \n",tmp_id,dst_id,src_id);
				call Channel.send(TOS_BCAST_ADDR,Msg);	
				sendflag=1;
			} else {
				sendflag=2;
			}
		} else if(msg[0]==2) {
			if(dst_id!=ID) return msg;
			memcpy(Msg+1,msg+1,16);
			if((ID&0xff)==(tmp_id&0xff)) {
		   		call ComputeKey.compute((uint8_t *)&secret->subr,tmp_id&0xff,key);
				call Primitive.decrypt(key,Msg+9,Msg+9);
			} else if((ID>>8)==(tmp_id>>8)) {
		   		call ComputeKey.compute((uint8_t *)&secret->subc,tmp_id>>8,key);
		   		dbg(DBG_USR1,"cypher txt %X%X%X%X%X%X%X%X.\n",Msg[9],Msg[10],Msg[11],Msg[12],Msg[13],Msg[14],Msg[15],Msg[16]);
				call Primitive.decrypt(key,Msg+9,Msg+9);
				dbg(DBG_USR1,"random generated key %X%X%X%X%X%X%X%X.\n",Msg[9],Msg[10],Msg[11],Msg[12],Msg[13],Msg[14],Msg[15],Msg[16]);
			} else return msg;
			dbg(DBG_USR1,"key between %d and %d through %d decrypted\n",src_id,dst_id,tmp_id);
			memcpy((uint8_t *)&ctr_tp,msg+7,2);
			signal Sensor.keyEstablished(src_id,key);
		}
    		return msg;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合av在线| 五月天一区二区| 韩国精品主播一区二区在线观看 | 色婷婷激情综合| 国产成人精品综合在线观看| 亚洲欧洲一区二区三区| www.日韩av| 亚洲一区二区三区视频在线播放| 欧美三级电影网| 美腿丝袜亚洲三区| 欧美激情综合五月色丁香小说| 99久久久无码国产精品| 首页综合国产亚洲丝袜| 久久精品一级爱片| 欧美三级欧美一级| 欧美卡1卡2卡| www.色精品| 91福利资源站| 国产精品一二三四| 五月婷婷欧美视频| 免费人成在线不卡| 亚洲猫色日本管| 精品国产一区二区三区不卡| 国产 日韩 欧美大片| 天天色天天操综合| 免费av成人在线| 国产盗摄一区二区三区| 色呦呦网站一区| 日韩色视频在线观看| 在线免费观看日本一区| 成人av一区二区三区| 韩国av一区二区三区四区| 国产大片一区二区| 在线看不卡av| 欧美成人激情免费网| 色呦呦网站一区| 91精品欧美福利在线观看| 91成人免费网站| 久久婷婷国产综合国色天香| 91精品国产色综合久久| 91.成人天堂一区| 欧美激情综合五月色丁香| 国产在线麻豆精品观看| 色噜噜狠狠色综合欧洲selulu| 欧美喷潮久久久xxxxx| 色综合久久久久综合| 欧美精品久久久久久久多人混战| 精品国产髙清在线看国产毛片 | av成人老司机| 欧美一区二区三区精品| 亚洲乱码国产乱码精品精98午夜| 日韩一区二区精品| 五月天中文字幕一区二区| 国产精品456露脸| 91精品蜜臀在线一区尤物| 日韩一区在线看| 国产又黄又大久久| 成人久久18免费网站麻豆 | 成人va在线观看| 91精品国产一区二区三区蜜臀| 亚洲色图一区二区| 亚洲电影中文字幕在线观看| 日韩在线一区二区三区| 97se亚洲国产综合自在线观| 久久久久高清精品| 亚洲色图19p| 成人一级片在线观看| 精品乱人伦小说| 日韩成人dvd| 国产99久久精品| 精品国产91久久久久久久妲己| 亚洲第一成年网| 另类调教123区| 成人app下载| 中文在线资源观看网站视频免费不卡 | 捆绑调教一区二区三区| 欧美日韩国产天堂| 三级影片在线观看欧美日韩一区二区| 在线亚洲人成电影网站色www| 亚洲日穴在线视频| 色综合咪咪久久| 亚洲综合色噜噜狠狠| 色噜噜狠狠色综合中国| 亚洲猫色日本管| 欧美日韩一区二区欧美激情| 亚洲在线免费播放| 欧美精选一区二区| 美女久久久精品| 国产偷v国产偷v亚洲高清| 国产成人午夜视频| 日韩理论片网站| 欧美视频一区二| 国产免费成人在线视频| 日韩精品国产欧美| 精品久久久三级丝袜| 丰满亚洲少妇av| 亚洲国产日韩a在线播放性色| 欧美视频一区二区三区| 七七婷婷婷婷精品国产| 国产欧美久久久精品影院| 91在线免费看| 视频一区二区欧美| 国产午夜一区二区三区| 色综合久久六月婷婷中文字幕| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩国产成人在线91| 国内国产精品久久| 亚洲男女毛片无遮挡| 日韩一区二区三区在线视频| 丰满放荡岳乱妇91ww| 亚洲一区电影777| 久久久无码精品亚洲日韩按摩| www.亚洲色图| 久久国产精品一区二区| 中文字幕在线不卡视频| 宅男在线国产精品| 成年人网站91| 捆绑调教一区二区三区| 一区二区高清视频在线观看| 99国产精品一区| 狠狠色综合色综合网络| 一区二区三区资源| 国产欧美一区二区精品忘忧草| 欧美亚洲综合色| 风间由美一区二区三区在线观看| 亚洲va国产天堂va久久en| 国产精品不卡一区二区三区| jizz一区二区| 国产一区二三区| 日韩av不卡在线观看| 亚洲欧美另类小说视频| 久久久久久毛片| 91精品国产综合久久精品麻豆| 一本一本久久a久久精品综合麻豆| 琪琪久久久久日韩精品| 亚洲成人综合网站| 一区二区在线观看视频| 国产视频亚洲色图| 精品国产乱码久久久久久免费 | 蜜臀精品一区二区三区在线观看 | 亚洲成人av中文| 亚洲欧洲精品天堂一级 | 91小视频免费看| 夜夜精品浪潮av一区二区三区| 欧美激情综合网| 国产日本一区二区| 久久亚洲免费视频| 26uuu国产电影一区二区| 日韩一卡二卡三卡四卡| 欧美人与性动xxxx| 欧美高清hd18日本| 欧美美女bb生活片| 欧美日韩国产一级| 欧美久久久久久久久中文字幕| 欧美三级视频在线观看| 欧美日韩久久一区二区| 欧美日韩免费电影| 欧美久久高跟鞋激| 91麻豆精品国产91久久久久久| 6080国产精品一区二区| 欧美精品一级二级三级| 91超碰这里只有精品国产| 538prom精品视频线放| 欧美日韩精品一区二区三区蜜桃| 欧美色图一区二区三区| 欧美日韩在线播放一区| 91精品国产免费久久综合| 日韩一区二区精品葵司在线 | 国产一区二区免费视频| 老色鬼精品视频在线观看播放| 高清久久久久久| 色老头久久综合| 制服丝袜亚洲播放| 久久久精品tv| 中文字幕一区二区三区在线观看| 自拍偷拍欧美激情| 午夜精品福利视频网站| 看电视剧不卡顿的网站| 成人国产精品免费观看动漫| 91免费观看在线| 91精品国产综合久久香蕉的特点| 精品国产一区二区三区久久久蜜月 | 国产精品国产馆在线真实露脸 | 午夜天堂影视香蕉久久| 免费观看成人av| 成人av网址在线| 欧美日韩www| 久久久久久影视| 亚洲午夜成aⅴ人片| 国产在线精品免费av| 日本道精品一区二区三区| 在线播放日韩导航| 日本一二三四高清不卡| 亚洲午夜激情av| 国产精品亚洲成人| 欧美偷拍一区二区| 欧美经典一区二区| 青青国产91久久久久久| 99久久精品国产网站| 欧美一区日本一区韩国一区|