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

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

?? migrate.c

?? IBM開發的TPM的驅動, 有少量的例子可以供參考
?? C
?? 第 1 頁 / 共 2 頁
字號:
				    keyhndl,				    migscheme,				    migblen, migblob,				    k.privkeylen, k.encprivkey,				    authhandle1,				    TPM_NONCE_SIZE, nonceodd,				    c,				    TPM_HASH_SIZE, authdata1,				    authhandle2,				    TPM_NONCE_SIZE, nonceodd,				    c, TPM_HASH_SIZE, authdata2);		if ((ret & ERR_MASK) != 0) {			TSS_OIAPclose(authhandle1);			TSS_OIAPclose(authhandle2);			return ret;		}		/* transmit the request buffer to the TPM device and read the reply */		ret = TPM_Transmit(tpmdata, "CreateMigrationBlob");		if (ret != 0) {			TSS_OIAPclose(authhandle1);			TSS_OIAPclose(authhandle2);			return ret;		}		/* validate HMAC in response */		size1 = LOAD32(tpmdata, TPM_DATA_OFFSET);		size2 =		    LOAD32(tpmdata,			   TPM_DATA_OFFSET + TPM_U32_SIZE + size1);		if (size1 != 0) {			ret = TSS_checkhmac2(tpmdata, ordinal, nonceodd,					     keyauth, TPM_HASH_SIZE,					     migauth, TPM_HASH_SIZE,					     TPM_U32_SIZE, TPM_DATA_OFFSET,					     size1,					     TPM_DATA_OFFSET +					     TPM_U32_SIZE, TPM_U32_SIZE,					     TPM_DATA_OFFSET +					     TPM_U32_SIZE + size1, size2,					     TPM_DATA_OFFSET +					     TPM_U32_SIZE + size1 +					     TPM_U32_SIZE, 0, 0);		} else {			ret = TSS_checkhmac2(tpmdata, ordinal, nonceodd,					     keyauth, TPM_HASH_SIZE,					     migauth, TPM_HASH_SIZE,					     TPM_U32_SIZE, TPM_DATA_OFFSET,					     TPM_U32_SIZE,					     TPM_DATA_OFFSET +					     TPM_U32_SIZE, size2,					     TPM_DATA_OFFSET +					     TPM_U32_SIZE + TPM_U32_SIZE,					     0, 0);		}		TSS_OIAPclose(authhandle1);		TSS_OIAPclose(authhandle2);		if (ret != 0)			return ret;	} else {		/* no parent key password required */		/* open OIAP session for the Migrating Key */		ret = TSS_OIAPopen(&authhandle1, enonce1);		if (ret != 0)			return ret;		/* calculate Migration authorization HMAC value */		ret =		    TSS_authhmac(authdata1, migauth, TPM_HASH_SIZE,				 enonce1, nonceodd, c, TPM_U32_SIZE,				 &ordinal, TPM_U16_SIZE, &migscheme,				 migblen, migblob, TPM_U32_SIZE, &datsize,				 k.privkeylen, k.encprivkey, 0, 0);		if (ret != 0) {			TSS_OIAPclose(authhandle1);			return ret;		}		/* build the request buffer */		ret = TSS_buildbuff(create_mig_fmt_noauth, tpmdata,				    ordinal,				    keyhndl,				    migscheme,				    migblen, migblob,				    k.privkeylen, k.encprivkey,				    authhandle1,				    TPM_NONCE_SIZE, nonceodd,				    c, TPM_HASH_SIZE, authdata1);		if ((ret & ERR_MASK) != 0) {			TSS_OIAPclose(authhandle1);			return ret;		}		/* transmit the request buffer to the TPM device and read the reply */		ret = TPM_Transmit(tpmdata, "CreateMigrationBlob");		if (ret != 0) {			TSS_OIAPclose(authhandle1);			return ret;		}		/* check HMAC in response */		size1 = LOAD32(tpmdata, TPM_DATA_OFFSET);		size2 =		    LOAD32(tpmdata,			   TPM_DATA_OFFSET + TPM_U32_SIZE + size1);		if (size1 != 0) {			ret =			    TSS_checkhmac1(tpmdata, ordinal, nonceodd,					   migauth, TPM_HASH_SIZE,					   TPM_U32_SIZE, TPM_DATA_OFFSET,					   size1,					   TPM_DATA_OFFSET + TPM_U32_SIZE,					   TPM_U32_SIZE,					   TPM_DATA_OFFSET + TPM_U32_SIZE +					   size1, size2,					   TPM_DATA_OFFSET + TPM_U32_SIZE +					   size1 + TPM_U32_SIZE, 0, 0);		} else {			ret =			    TSS_checkhmac1(tpmdata, ordinal, nonceodd,					   migauth, TPM_HASH_SIZE,					   TPM_U32_SIZE, TPM_DATA_OFFSET,					   TPM_U32_SIZE,					   TPM_DATA_OFFSET + TPM_U32_SIZE,					   size2,					   TPM_DATA_OFFSET + TPM_U32_SIZE +					   TPM_U32_SIZE, 0, 0);		}		TSS_OIAPclose(authhandle1);		if (ret != 0)			return ret;	}	memcpy(rndblob, tpmdata + TPM_DATA_OFFSET + TPM_U32_SIZE, size1);	memcpy(outblob,	       tpmdata + TPM_DATA_OFFSET + TPM_U32_SIZE + size1 +	       TPM_U32_SIZE, size2);	*rndblen = size1;	*outblen = size2;	return 0;}/****************************************************************************//*                                                                          *//* Convert a Migration Blob                                                 *//*                                                                          *//* The arguments are...                                                     *//*                                                                          *//* keyhandle is the handle of the new parent key of the key                 *//*           being migrated                                                 *//* keyauth   is the authorization data (password) for the parent key        *//* rndblob   is a pointer to an area contining the random XOR data          *//* rndblen   is an integer containing the length of the random XOR data     *//* keyblob   is a pointer to an area contining the migration public         *//*           encrypted key blob                                             *//* keyblen   is an integer containing the length of the migration           *//*           public key blob                                                *//* encblob   is a pointer to an area which will receive the migrated        *//*           key re-encrypted private key blob                              *//* endblen   is a pointer to an integer which will receive size of          *//*           the migrated key re-encrypted private key blob                 *//*                                                                          *//****************************************************************************/uint32_t TPM_ConvertMigrationBlob(unsigned int keyhandle,				  unsigned char *keyauth,				  unsigned char *rndblob,				  unsigned int rndblen,				  unsigned char *keyblob,				  unsigned int keyblen,				  unsigned char *encblob,				  unsigned int *encblen){	unsigned char convert_mig_fmt[] = "00 c2 T l l @ @ l % o %";	uint32_t ret;	unsigned char tpmdata[TPM_MAX_BUFF_SIZE];	unsigned char nonceodd[TPM_NONCE_SIZE];	unsigned char evennonce[TPM_NONCE_SIZE];	unsigned char pubauth[TPM_HASH_SIZE];	unsigned char c;	uint32_t ordinal;	uint32_t authhandle;	uint32_t keyhndl;	uint32_t rndsize;	uint32_t datsize;	int size;	/* check input arguments */	if (keyauth == NULL || rndblob == NULL || keyblob == NULL	    || encblob == NULL || encblen == NULL)		return ERR_NULL_ARG;	/* generate odd nonce */	TSS_gennonce(nonceodd);	/* Open OIAP Session */	ret = TSS_OIAPopen(&authhandle, evennonce);	if (ret != 0)		return ret;	/* move Network byte order data to variables for hmac calculation */	ordinal = htonl(0x2A);	keyhndl = htonl(keyhandle);	rndsize = htonl(rndblen);	datsize = htonl(keyblen);	c = 0;	/* calculate authorization HMAC value */	ret =	    TSS_authhmac(pubauth, keyauth, TPM_HASH_SIZE, evennonce,			 nonceodd, c, TPM_U32_SIZE, &ordinal, TPM_U32_SIZE,			 &datsize, keyblen, keyblob, TPM_U32_SIZE,			 &rndsize, rndblen, rndblob, 0, 0);	if (ret != 0) {		TSS_OIAPclose(authhandle);		return ret;	}	/* build the request buffer */	ret = TSS_buildbuff(convert_mig_fmt, tpmdata,			    ordinal,			    keyhndl,			    keyblen, keyblob,			    rndblen, rndblob,			    authhandle,			    TPM_NONCE_SIZE, nonceodd,			    c, TPM_HASH_SIZE, pubauth);	if ((ret & ERR_MASK) != 0) {		TSS_OIAPclose(authhandle);		return ret;	}	/* transmit the request buffer to the TPM device and read the reply */	ret = TPM_Transmit(tpmdata, "ConvertMigrationBlob");	if (ret != 0) {		TSS_OIAPclose(authhandle);		return ret;	}	TSS_OIAPclose(authhandle);	size = LOAD32(tpmdata, TPM_DATA_OFFSET);	ret =	    TSS_checkhmac1(tpmdata, ordinal, nonceodd, keyauth,			   TPM_HASH_SIZE, TPM_U32_SIZE, TPM_DATA_OFFSET,			   size, TPM_DATA_OFFSET + TPM_U32_SIZE, 0, 0);	if (ret != 0)		return ret;	memcpy(encblob, tpmdata + TPM_DATA_OFFSET + TPM_U32_SIZE, size);	*encblen = size;	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线视频一区二区| 国产日韩欧美a| 亚洲人亚洲人成电影网站色| 久久激情五月激情| 精品少妇一区二区三区免费观看 | 欧美精品三级日韩久久| 欧美美女视频在线观看| 欧美一区二区在线视频| 欧美日韩成人一区二区| 成人性生交大片免费| 顶级嫩模精品视频在线看| 日韩一区中文字幕| 亚洲美女少妇撒尿| 亚洲在线一区二区三区| 亚洲综合在线第一页| 国产精品美女久久久久久| 高清视频一区二区| 26uuu国产一区二区三区| 激情小说亚洲一区| 韩国中文字幕2020精品| 日韩高清电影一区| 日韩精品福利网| 激情av综合网| 色哟哟一区二区| 91免费看`日韩一区二区| 欧美体内she精视频| 欧美另类一区二区三区| 久久久久国产免费免费| 最新高清无码专区| 国产精品美女久久久久久久久久久| 一区二区三区欧美日韩| 日本不卡免费在线视频| 国产麻豆9l精品三级站| 国产麻豆欧美日韩一区| 蜜臀精品久久久久久蜜臀| 欧美一区二区播放| 久久精品亚洲国产奇米99| 精品久久久三级丝袜| 国产精品电影院| 亚洲电影一区二区| 日韩一区二区三区在线| 欧美一区二区三区免费| 日韩在线卡一卡二| 欧美国产欧美综合| 欧美日韩激情在线| 国产一区二区视频在线播放| 国产精品的网站| 日韩一级二级三级| 色综合一个色综合| 麻豆成人久久精品二区三区红| 国产肉丝袜一区二区| 欧美视频三区在线播放| 韩国毛片一区二区三区| 伊人色综合久久天天人手人婷| 欧美大片顶级少妇| 色婷婷精品久久二区二区蜜臀av | 欧美三级视频在线| 国产精品一级二级三级| 亚洲一区二区视频| 欧美国产日本视频| 欧美一区二区三区四区视频 | 99久久伊人久久99| 久久精品久久精品| 亚洲国产一区二区视频| 日本一区二区三区免费乱视频 | 色婷婷亚洲综合| 国内精品第一页| 午夜不卡在线视频| 最新国产の精品合集bt伙计| 2023国产精品视频| 欧美精品一区二区三| 日韩精品一二三四| 国产精品久久一级| 国产欧美精品国产国产专区| 亚洲午夜免费电影| 色国产综合视频| 国产精品高潮呻吟久久| 久久久亚洲午夜电影| 亚洲三级理论片| 精品处破学生在线二十三| 国产福利一区在线| 99久免费精品视频在线观看| 久久电影网电视剧免费观看| 一二三四社区欧美黄| 久久精品视频在线看| 精品视频在线免费| 色婷婷综合久久久久中文一区二区| 国产原创一区二区| 亚洲超碰精品一区二区| 午夜精品福利视频网站| 日韩国产精品91| 国产亚洲欧美在线| 国产日韩欧美精品一区| 亚洲欧美自拍偷拍色图| 亚洲福利国产精品| 麻豆精品在线播放| 高清不卡在线观看av| 91麻豆国产香蕉久久精品| 欧美视频一区二区| 欧美变态tickling挠脚心| 国产日韩欧美制服另类| 亚洲精品自拍动漫在线| 亚洲超碰精品一区二区| 看电视剧不卡顿的网站| 波多野结衣中文字幕一区 | 亚洲夂夂婷婷色拍ww47| 日韩精品免费视频人成| 国产麻豆成人精品| 色妹子一区二区| 337p亚洲精品色噜噜噜| 欧美极品少妇xxxxⅹ高跟鞋 | 精品日韩在线观看| 国产精品视频看| 亚洲国产cao| 国产成人免费xxxxxxxx| 欧美三片在线视频观看 | 国产精品一区久久久久| 91热门视频在线观看| 91精品国产福利| 国产精品卡一卡二卡三| 成人app在线| 欧洲亚洲精品在线| 一区二区三区在线看| 丰满放荡岳乱妇91ww| 欧美精品少妇一区二区三区| 国产亚洲欧美日韩俺去了| 香蕉久久夜色精品国产使用方法| 国产麻豆成人传媒免费观看| 欧美天天综合网| 亚洲欧美电影一区二区| 国产91综合网| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品视频九色porn| 91麻豆精品91久久久久久清纯 | 亚洲欧美影音先锋| 日本中文字幕不卡| 色哟哟一区二区| 国产欧美久久久精品影院| 另类欧美日韩国产在线| 欧美剧情片在线观看| 亚洲天堂2016| 国产乱人伦精品一区二区在线观看| 制服丝袜国产精品| 亚洲精品国久久99热| 国产高清不卡一区| 精品久久久久99| 蜜臀久久99精品久久久画质超高清| 一本色道久久综合亚洲91| 国产精品女主播在线观看| 国产一区欧美一区| 精品粉嫩超白一线天av| 日韩黄色一级片| 欧美日韩高清在线播放| 一二三四区精品视频| 99久久99久久精品免费观看| 国产精品网友自拍| 国产成人av电影在线观看| 精品捆绑美女sm三区| 九九**精品视频免费播放| 欧美一区二区三区视频免费| 亚洲福利视频三区| 欧美日韩色一区| 五月开心婷婷久久| 欧美一区二区视频在线观看2020| 午夜欧美在线一二页| 欧美人牲a欧美精品| 日韩精彩视频在线观看| 欧美电影免费观看高清完整版在线观看| 五月婷婷另类国产| 91精品国产日韩91久久久久久| 琪琪一区二区三区| 日韩精品资源二区在线| 久久91精品久久久久久秒播| 精品国产乱子伦一区| 成a人片国产精品| 色哟哟日韩精品| 99精品一区二区| 国产不卡视频在线播放| 午夜视频在线观看一区二区| 精品三级在线观看| 欧美日韩大陆一区二区| 成人动漫视频在线| 国产精品一二三四区| 免费在线一区观看| 一区二区三区免费看视频| 国产精品乱人伦一区二区| 亚洲日本va午夜在线电影| 天天色天天操综合| 精品久久国产字幕高潮| 韩国女主播成人在线| 中文字幕制服丝袜一区二区三区 | 黄网站免费久久| 亚洲国产经典视频| 91福利资源站| 久久国产精品第一页| 国产欧美日产一区| 欧美日韩另类一区| 激情丁香综合五月| 亚洲精品免费看| 欧美va亚洲va国产综合|