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

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

?? rpc_aik.c

?? TCG軟件棧 linux系統上使用 為可信應用軟件提供和 TPM通信的 接口 其網站上有很多關于使用此軟件的測試用例
?? C
字號:
/* * Licensed Materials - Property of IBM * * trousers - An open source TCG Software Stack * * (C) Copyright International Business Machines Corp. 2004-2007 * */#include <stdlib.h>#include <stdio.h>#include <string.h>#include <assert.h>#include "trousers/tss.h"#include "trousers/trousers.h"#include "trousers_types.h"#include "spi_utils.h"#include "capabilities.h"#include "tsplog.h"#include "hosttable.h"#include "tcsd_wrap.h"#include "obj.h"#include "rpc_tcstp_tsp.h"TSS_RESULTRPC_MakeIdentity_TP(struct host_table_entry *hte,		    TCPA_ENCAUTH identityAuth,	/* in */		    TCPA_CHOSENID_HASH IDLabel_PrivCAHash,	/* in */		    UINT32 idKeyInfoSize,	/* in */		    BYTE * idKeyInfo,	/* in */		    TPM_AUTH * pSrkAuth,	/* in, out */		    TPM_AUTH * pOwnerAuth,	/* in, out */		    UINT32 * idKeySize,	/* out */		    BYTE ** idKey,	/* out */		    UINT32 * pcIdentityBindingSize,	/* out */		    BYTE ** prgbIdentityBinding,	/* out */		    UINT32 * pcEndorsementCredentialSize,	/* out */		    BYTE ** prgbEndorsementCredential,	/* out */		    UINT32 * pcPlatformCredentialSize,	/* out */		    BYTE ** prgbPlatformCredential,	/* out */		    UINT32 * pcConformanceCredentialSize,	/* out */		    BYTE ** prgbConformanceCredential)	/* out */{	TSS_RESULT result;	int i;	initData(&hte->comm, 7);	hte->comm.hdr.u.ordinal = TCSD_ORD_MAKEIDENTITY;	LogDebugFn("TCS Context: 0x%x", hte->tcsContext);	if (setData(TCSD_PACKET_TYPE_UINT32, 0, &hte->tcsContext, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_ENCAUTH, 1, &identityAuth, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_DIGEST, 2, &IDLabel_PrivCAHash, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_UINT32, 3, &idKeyInfoSize, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_PBYTE, 4, idKeyInfo, idKeyInfoSize, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	i = 5;	if (pSrkAuth) {		if (setData(TCSD_PACKET_TYPE_AUTH, i++, pSrkAuth, 0, &hte->comm))			return TSPERR(TSS_E_INTERNAL_ERROR);	}	if (setData(TCSD_PACKET_TYPE_AUTH, i++, pOwnerAuth, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	result = sendTCSDPacket(hte);	if (result == TSS_SUCCESS)		result = hte->comm.hdr.u.result;	i = 0;	if (result == TSS_SUCCESS) {		i = 0;		if (pSrkAuth) {			if (getData(TCSD_PACKET_TYPE_AUTH, i++, pSrkAuth, 0, &hte->comm)) {				result = TSPERR(TSS_E_INTERNAL_ERROR);				goto done;			}		}		if (getData(TCSD_PACKET_TYPE_AUTH, i++, pOwnerAuth, 0, &hte->comm)) {			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, idKeySize, 0, &hte->comm)) {			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*idKey = (BYTE *) malloc(*idKeySize);		if (*idKey == NULL) {			LogError("malloc of %u bytes failed.", *idKeySize);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *idKey, *idKeySize, &hte->comm)) {			free(*idKey);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, pcIdentityBindingSize, 0, &hte->comm)) {			free(*idKey);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*prgbIdentityBinding = (BYTE *) malloc(*pcIdentityBindingSize);		if (*prgbIdentityBinding == NULL) {			LogError("malloc of %u bytes failed.", *pcIdentityBindingSize);			free(*idKey);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *prgbIdentityBinding, *pcIdentityBindingSize, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, pcEndorsementCredentialSize, 0, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*prgbEndorsementCredential = (BYTE *) malloc(*pcEndorsementCredentialSize);		if (*prgbEndorsementCredential == NULL) {			LogError("malloc of %u bytes failed.", *pcEndorsementCredentialSize);			free(*idKey);			free(*prgbIdentityBinding);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *prgbEndorsementCredential, *pcEndorsementCredentialSize, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, pcPlatformCredentialSize, 0, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*prgbPlatformCredential = (BYTE *) malloc(*pcPlatformCredentialSize);		if (*prgbPlatformCredential == NULL) {			LogError("malloc of %u bytes failed.", *pcPlatformCredentialSize);			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *prgbPlatformCredential, *pcPlatformCredentialSize, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			free(*prgbPlatformCredential);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, pcConformanceCredentialSize, 0, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			free(*prgbPlatformCredential);			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*prgbConformanceCredential = (BYTE *) malloc(*pcConformanceCredentialSize);		if (*prgbConformanceCredential == NULL) {			LogError("malloc of %u bytes failed.", *pcConformanceCredentialSize);			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			free(*prgbPlatformCredential);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *prgbConformanceCredential, *pcConformanceCredentialSize, &hte->comm)) {			free(*idKey);			free(*prgbIdentityBinding);			free(*prgbEndorsementCredential);			free(*prgbPlatformCredential);			free(*prgbConformanceCredential);			result = TSPERR(TSS_E_INTERNAL_ERROR);		}	}done:	return result;}TSS_RESULTRPC_GetCredential_TP(struct host_table_entry *hte,		     UINT32 ulCredentialType,          /* in */		     UINT32 ulCredentialAccessMode,    /* in */		     UINT32 * pulCredentialSize,       /* out */		     BYTE ** prgbCredentialData)       /* out */{	TSS_RESULT result;	initData(&hte->comm, 3);	hte->comm.hdr.u.ordinal = TCSD_ORD_GETCREDENTIAL;	LogDebugFn("TCS Context: 0x%x", hte->tcsContext);	if (setData(TCSD_PACKET_TYPE_UINT32, 0, &hte->tcsContext, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_UINT32, 1, &ulCredentialType, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_UINT32, 2, &ulCredentialAccessMode, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	result = sendTCSDPacket(hte);	if (result == TSS_SUCCESS)		result = hte->comm.hdr.u.result;	if (result == TSS_SUCCESS) {		if (getData(TCSD_PACKET_TYPE_UINT32, 0, pulCredentialSize, 0, &hte->comm)) {			return TSPERR(TSS_E_INTERNAL_ERROR);		}		*prgbCredentialData = (BYTE *) malloc(*pulCredentialSize);		if (*prgbCredentialData == NULL) {			LogError("malloc of %u bytes failed.", *pulCredentialSize);			return TSPERR(TSS_E_OUTOFMEMORY);		}		if (getData(TCSD_PACKET_TYPE_PBYTE, 1, *prgbCredentialData,			    *pulCredentialSize, &hte->comm)) {			free(*prgbCredentialData);			result = TSPERR(TSS_E_INTERNAL_ERROR);                }	}	return result;}TSS_RESULTRPC_ActivateTPMIdentity_TP(struct host_table_entry *hte,			   TCS_KEY_HANDLE idKey,	/* in */			   UINT32 blobSize,	/* in */			   BYTE * blob,	/* in */			   TPM_AUTH * idKeyAuth,	/* in, out */			   TPM_AUTH * ownerAuth,	/* in, out */			   UINT32 * SymmetricKeySize,	/* out */			   BYTE ** SymmetricKey)	/* out */{	TSS_RESULT result;	int i = 0;	initData(&hte->comm, 6);	hte->comm.hdr.u.ordinal = TCSD_ORD_ACTIVATETPMIDENTITY;	LogDebugFn("TCS Context: 0x%x", hte->tcsContext);	if (setData(TCSD_PACKET_TYPE_UINT32, i++, &hte->tcsContext, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_UINT32, i++, &idKey, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_UINT32, i++, &blobSize, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (setData(TCSD_PACKET_TYPE_PBYTE, i++, blob, blobSize, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	if (idKeyAuth) {		if (setData(TCSD_PACKET_TYPE_AUTH, i++, idKeyAuth, 0, &hte->comm))			return TSPERR(TSS_E_INTERNAL_ERROR);	}	if (setData(TCSD_PACKET_TYPE_AUTH, i++, ownerAuth, 0, &hte->comm))		return TSPERR(TSS_E_INTERNAL_ERROR);	result = sendTCSDPacket(hte);	if (result == TSS_SUCCESS)		result = hte->comm.hdr.u.result;	if (result == TSS_SUCCESS) {		i = 0;		if (idKeyAuth) {			if (getData(TCSD_PACKET_TYPE_AUTH, i++, idKeyAuth, 0, &hte->comm))				result = TSPERR(TSS_E_INTERNAL_ERROR);		}		if (getData(TCSD_PACKET_TYPE_AUTH, i++, ownerAuth, 0, &hte->comm)) {			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		if (getData(TCSD_PACKET_TYPE_UINT32, i++, SymmetricKeySize, 0, &hte->comm)) {			result = TSPERR(TSS_E_INTERNAL_ERROR);			goto done;		}		*SymmetricKey = malloc(*SymmetricKeySize);		if (*SymmetricKey == NULL) {			LogError("malloc of %u bytes failed.", *SymmetricKeySize);			result = TSPERR(TSS_E_OUTOFMEMORY);			goto done;		}		if (getData(TCSD_PACKET_TYPE_PBYTE, i++, *SymmetricKey, *SymmetricKeySize, &hte->comm)) {			free(*SymmetricKey);			result = TSPERR(TSS_E_INTERNAL_ERROR);		}	}done:	return result;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色偷偷成人一区二区三区91| 亚洲激情网站免费观看| 精品国产乱码久久| 欧美一区二区三区人| 91精品免费观看| 9191国产精品| 91精品国产入口在线| 日韩欧美一级在线播放| 337p亚洲精品色噜噜狠狠| 欧美日韩一级视频| 日韩午夜在线观看视频| 欧美mv和日韩mv国产网站| 欧美xxxxx牲另类人与| 欧美精品一区男女天堂| 久久久www成人免费无遮挡大片| www欧美成人18+| 国产丝袜在线精品| 国产精品成人在线观看| 亚洲精品日韩综合观看成人91| 亚洲男人天堂av| 亚洲综合免费观看高清在线观看| 亚洲一区二区三区中文字幕在线| 亚洲国产日韩av| 日本视频一区二区三区| 国产一区二区精品久久91| 国产69精品一区二区亚洲孕妇| 99久久er热在这里只有精品66| 一本大道久久a久久综合| 欧美日韩美女一区二区| 日韩三级视频中文字幕| 欧美国产国产综合| 亚洲欧美激情视频在线观看一区二区三区| 亚洲久草在线视频| 日本欧美大码aⅴ在线播放| 精品一区二区三区视频 | 欧美日韩成人高清| 91超碰这里只有精品国产| 精品国产在天天线2019| 中文久久乱码一区二区| 一区二区三区日本| 精品午夜一区二区三区在线观看| 成人性生交大合| 欧美日韩一区三区四区| 精品99一区二区三区| 亚洲区小说区图片区qvod| 免费在线观看一区二区三区| 国产不卡免费视频| 欧美福利电影网| 国产亚洲成aⅴ人片在线观看| 亚洲女同一区二区| 蜜臀久久99精品久久久久久9| bt欧美亚洲午夜电影天堂| 欧美情侣在线播放| 国产精品久久久久久久久免费樱桃| 亚洲成人动漫av| 成人av一区二区三区| 欧美日产在线观看| 亚洲欧洲av在线| 久久se这里有精品| 91看片淫黄大片一级在线观看| 精品国产精品一区二区夜夜嗨 | 国产成人啪免费观看软件| 欧美中文字幕一区二区三区亚洲| 精品欧美乱码久久久久久1区2区 | 成人免费黄色大片| 日韩午夜电影在线观看| 亚洲免费观看在线观看| 国产精品18久久久久久久久| 欧美日韩日日夜夜| 亚洲色图视频网| 国产精品88av| 欧美一级生活片| 夜夜爽夜夜爽精品视频| av亚洲精华国产精华精| 精品国产乱子伦一区| 午夜久久久影院| 91麻豆产精品久久久久久| 久久色在线观看| 日韩电影在线一区二区| 色系网站成人免费| 国产精品理伦片| 国产美女主播视频一区| 91精品久久久久久蜜臀| 亚洲国产综合色| 91在线精品一区二区| 久久久99精品免费观看不卡| 蜜桃精品视频在线| 欧美精选在线播放| 一区二区三区.www| 91在线观看免费视频| 国产精品麻豆一区二区| 国产精品一区二区男女羞羞无遮挡| 日韩欧美一卡二卡| 日韩电影免费一区| 欧美二区三区91| 五月婷婷激情综合| 中文字幕亚洲一区二区av在线| 国产美女视频91| www国产成人免费观看视频 深夜成人网| 日本系列欧美系列| 这里只有精品视频在线观看| 亚洲一级二级三级在线免费观看| 欧美主播一区二区三区| 亚洲图片自拍偷拍| 欧美日韩国产区一| 手机精品视频在线观看| 欧美在线free| 亚洲chinese男男1069| 欧美丰满一区二区免费视频| 亚洲地区一二三色| 91.麻豆视频| 日本va欧美va精品| 精品久久国产老人久久综合| 久久99精品久久久久久国产越南| 日韩午夜在线播放| 国模娜娜一区二区三区| 久久嫩草精品久久久精品一| 国产成人丝袜美腿| 综合久久久久综合| 欧美在线观看一二区| 日本成人在线不卡视频| 欧美精品一区二区三区高清aⅴ | 日韩女优电影在线观看| 激情小说亚洲一区| 国产午夜精品久久久久久免费视| 成人免费视频网站在线观看| 亚洲三级在线免费| 欧美老人xxxx18| 久久精品国产99| 久久精品欧美日韩| 972aa.com艺术欧美| 亚洲综合在线五月| 正在播放亚洲一区| 国产高清不卡二三区| 亚洲日本乱码在线观看| 欧美日本免费一区二区三区| 久久精品国产亚洲高清剧情介绍 | 日一区二区三区| 秋霞国产午夜精品免费视频| 精品国产91亚洲一区二区三区婷婷| 国产激情偷乱视频一区二区三区| 成人免费一区二区三区视频| 欧美在线一区二区| 狠狠色狠狠色合久久伊人| 国产精品第四页| 欧美一区二区在线观看| 国产91精品一区二区麻豆网站| 亚洲一区二区偷拍精品| 久久这里只有精品首页| 99国产欧美另类久久久精品| 日韩精品福利网| 国产精品美女久久久久高潮| 欧美日韩一区久久| 国产一区在线看| 亚洲自拍另类综合| 久久久三级国产网站| 欧美午夜精品理论片a级按摩| 久久9热精品视频| 一区二区在线观看av| 欧美一区二区视频网站| 91在线观看高清| 精品一区二区三区欧美| 亚洲精品国产精华液| 欧美精品一区二区蜜臀亚洲| 欧美做爰猛烈大尺度电影无法无天| 蜜桃精品视频在线观看| 一区二区三区在线观看国产| 久久精品视频网| 欧美蜜桃一区二区三区| 97久久人人超碰| 国产乱国产乱300精品| 日韩综合小视频| 亚洲欧美日韩国产综合| 精品久久久久久最新网址| 欧美视频在线一区| 91在线视频官网| 国产一区二区三区在线观看免费 | 97久久精品人人做人人爽| 国产一区二区成人久久免费影院 | 香蕉久久夜色精品国产使用方法| 日本一区二区在线不卡| 欧美一卡二卡三卡| 欧美日韩免费高清一区色橹橹| 成人va在线观看| 久久电影网电视剧免费观看| 亚洲午夜免费福利视频| 亚洲三级在线观看| 国产精品久久二区二区| 久久这里只精品最新地址| 日韩午夜在线影院| 欧美一区二区三区公司| 欧美亚洲一区二区三区四区| 色婷婷久久久久swag精品| av亚洲精华国产精华精华| 国产aⅴ综合色| 国产成a人亚洲| 欧美日韩一区小说| 欧美午夜精品一区二区蜜桃 | 日韩精品最新网址| 91麻豆精品国产91久久久久久|