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

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

?? rpc_evlog.c

?? TCG軟件棧 linux系統(tǒng)上使用 為可信應(yīng)用軟件提供和 TPM通信的 接口 其網(wǎng)站上有很多關(guān)于使用此軟件的測試用例
?? C
字號(hào):
/* * Licensed Materials - Property of IBM * * trousers - An open source TCG Software Stack * * (C) Copyright International Business Machines Corp. 2004-2006 * */#include <stdlib.h>#include <stdio.h>#include <syslog.h>#include <string.h>#include <netdb.h>#include "trousers/tss.h"#include "trousers_types.h"#include "tcs_tsp.h"#include "tcs_utils.h"#include "tcs_int_literals.h"#include "capabilities.h"#include "tcslog.h"#include "tcsd_wrap.h"#include "tcsd.h"#include "tcs_utils.h"#include "rpc_tcstp_tcs.h"TSS_RESULTtcs_wrap_GetPcrEvent(struct tcsd_thread_data *data){	TCS_CONTEXT_HANDLE hContext;	TSS_PCR_EVENT *pEvent = NULL;	TSS_RESULT result;	UINT32 pcrIndex, number, totalSize;	BYTE lengthOnly;	if (getData(TCSD_PACKET_TYPE_UINT32, 0, &hContext, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	LogDebugFn("thread %zd context %x", THREAD_ID, hContext);	if (getData(TCSD_PACKET_TYPE_UINT32, 1, &pcrIndex, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	if (getData(TCSD_PACKET_TYPE_UINT32, 2, &number, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	if (getData(TCSD_PACKET_TYPE_BYTE, 3, &lengthOnly, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	if (lengthOnly)		result = TCS_GetPcrEvent_Internal(hContext, pcrIndex, &number, NULL);	else		result = TCS_GetPcrEvent_Internal(hContext, pcrIndex, &number, &pEvent);	if (result == TSS_SUCCESS) {		if (lengthOnly == FALSE)			totalSize = get_pcr_event_size(pEvent);		else			totalSize = 0;		initData(&data->comm, 2);		if (setData(TCSD_PACKET_TYPE_UINT32, 0, &number, 0, &data->comm)) {			if (lengthOnly == FALSE)				free_external_events(1, pEvent);			free(pEvent);			return TCSERR(TSS_E_INTERNAL_ERROR);		}		if (lengthOnly == FALSE) {			if (setData(TCSD_PACKET_TYPE_PCR_EVENT, 1, pEvent, 0, &data->comm)) {				free_external_events(1, pEvent);				free(pEvent);				return TCSERR(TSS_E_INTERNAL_ERROR);			}			free_external_events(1, pEvent);			free(pEvent);		}	} else		initData(&data->comm, 0);	data->comm.hdr.u.result = result;	return TSS_SUCCESS;}TSS_RESULTtcs_wrap_GetPcrEventsByPcr(struct tcsd_thread_data *data){	TCS_CONTEXT_HANDLE hContext;	TSS_PCR_EVENT *ppEvents = NULL;	TSS_RESULT result;	UINT32 firstEvent, eventCount, totalSize, pcrIndex, i, j;	if (getData(TCSD_PACKET_TYPE_UINT32, 0, &hContext, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	LogDebugFn("thread %zd context %x", THREAD_ID, hContext);	if (getData(TCSD_PACKET_TYPE_UINT32, 1, &pcrIndex, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	if (getData(TCSD_PACKET_TYPE_UINT32, 2, &firstEvent, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	if (getData(TCSD_PACKET_TYPE_UINT32, 3, &eventCount, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	result = TCS_GetPcrEventsByPcr_Internal(hContext, pcrIndex, firstEvent, &eventCount, &ppEvents);	if (result == TSS_SUCCESS) {		/* XXX totalSize not used */		for (i = 0, totalSize = 0; i < eventCount; i++)			totalSize += get_pcr_event_size(&(ppEvents[i]));		initData(&data->comm, eventCount + 1);		if (setData(TCSD_PACKET_TYPE_UINT32, 0, &eventCount, 0, &data->comm)) {			free_external_events(eventCount, ppEvents);			free(ppEvents);			return TCSERR(TSS_E_INTERNAL_ERROR);		}		i = 1;		for (j = 0; j < eventCount; j++) {			if (setData(TCSD_PACKET_TYPE_PCR_EVENT, i++, &(ppEvents[j]), 0, &data->comm)) {				free_external_events(eventCount, ppEvents);				free(ppEvents);				return TCSERR(TSS_E_INTERNAL_ERROR);			}		}		free_external_events(eventCount, ppEvents);		free(ppEvents);	} else		initData(&data->comm, 0);	data->comm.hdr.u.result = result;	return TSS_SUCCESS;}TSS_RESULTtcs_wrap_GetPcrEventLog(struct tcsd_thread_data *data){	TCS_CONTEXT_HANDLE hContext;	TSS_PCR_EVENT *ppEvents;	TSS_RESULT result;	UINT32 eventCount, totalSize, i, j;	if (getData(TCSD_PACKET_TYPE_UINT32, 0, &hContext, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	LogDebugFn("thread %zd context %x", THREAD_ID, hContext);	result = TCS_GetPcrEventLog_Internal(hContext, &eventCount, &ppEvents);	if (result == TSS_SUCCESS) {		for (i = 0, totalSize = 0; i < eventCount; i++)			totalSize += get_pcr_event_size(&(ppEvents[i]));		initData(&data->comm, eventCount + 1);		if (setData(TCSD_PACKET_TYPE_UINT32, 0, &eventCount, 0, &data->comm)) {			free_external_events(eventCount, ppEvents);			free(ppEvents);			return TCSERR(TSS_E_INTERNAL_ERROR);		}		i = 1;		for (j = 0; j < eventCount; j++) {			if (setData(TCSD_PACKET_TYPE_PCR_EVENT, i++, &(ppEvents[j]), 0, &data->comm)) {				free_external_events(eventCount, ppEvents);				free(ppEvents);				return TCSERR(TSS_E_INTERNAL_ERROR);			}		}		free_external_events(eventCount, ppEvents);		free(ppEvents);	} else		initData(&data->comm, 0);	data->comm.hdr.u.result = result;	return TSS_SUCCESS;}TSS_RESULTtcs_wrap_LogPcrEvent(struct tcsd_thread_data *data){	TCS_CONTEXT_HANDLE hContext;	TSS_PCR_EVENT event;	TSS_RESULT result;	UINT32 number;	/* Receive */	if (getData(TCSD_PACKET_TYPE_UINT32, 0, &hContext, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	LogDebugFn("thread %zd context %x", THREAD_ID, hContext);	if (getData(TCSD_PACKET_TYPE_PCR_EVENT , 1, &event, 0, &data->comm))		return TCSERR(TSS_E_INTERNAL_ERROR);	result = TCS_LogPcrEvent_Internal(hContext, event, &number);	if (result == TSS_SUCCESS) {		initData(&data->comm, 1);		if (setData(TCSD_PACKET_TYPE_UINT32, 0, &number, 0, &data->comm)) {			return TCSERR(TSS_E_INTERNAL_ERROR);		}	} else		initData(&data->comm, 0);	data->comm.hdr.u.result = result;	return TSS_SUCCESS;}voidLoadBlob_PCR_EVENT(UINT64 *offset, BYTE *blob, TSS_PCR_EVENT *event){	LoadBlob_VERSION(offset, blob, (TPM_VERSION *)&(event->versionInfo));	LoadBlob_UINT32(offset, event->ulPcrIndex, blob);	LoadBlob_UINT32(offset, event->eventType, blob);	LoadBlob_UINT32(offset, event->ulPcrValueLength, blob);	if (event->ulPcrValueLength > 0)		LoadBlob(offset, event->ulPcrValueLength, blob, event->rgbPcrValue);	LoadBlob_UINT32(offset, event->ulEventLength, blob);	if (event->ulEventLength > 0)		LoadBlob(offset, event->ulEventLength, blob, event->rgbEvent);}TSS_RESULTUnloadBlob_PCR_EVENT(UINT64 *offset, BYTE *blob, TSS_PCR_EVENT *event){	UnloadBlob_VERSION(offset, blob, (TPM_VERSION *)&(event->versionInfo));	UnloadBlob_UINT32(offset, &event->ulPcrIndex, blob);	UnloadBlob_UINT32(offset, &event->eventType, blob);	UnloadBlob_UINT32(offset, &event->ulPcrValueLength, blob);	if (event->ulPcrValueLength > 0) {		event->rgbPcrValue = malloc(event->ulPcrValueLength);		if (event->rgbPcrValue == NULL) {			LogError("malloc of %u bytes failed.", event->ulPcrValueLength);			return TCSERR(TSS_E_OUTOFMEMORY);		}		UnloadBlob(offset, event->ulPcrValueLength, blob, event->rgbPcrValue);	} else {		event->rgbPcrValue = NULL;	}	UnloadBlob_UINT32(offset, &event->ulEventLength, blob);	if (event->ulEventLength > 0) {		event->rgbEvent = malloc(event->ulEventLength);		if (event->rgbEvent == NULL) {			LogError("malloc of %u bytes failed.", event->ulEventLength);			free(event->rgbPcrValue);			return TCSERR(TSS_E_OUTOFMEMORY);		}		UnloadBlob(offset, event->ulEventLength, blob, event->rgbEvent);	} else {		event->rgbEvent = NULL;	}	return TSS_SUCCESS;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久综合精品| 亚洲成av人片观看| 国内久久婷婷综合| 91麻豆精品国产91久久久久久 | 国产激情偷乱视频一区二区三区| 欧美日韩国产色站一区二区三区| 一区二区三区四区视频精品免费| 波多野结衣在线一区| 中文字幕不卡在线播放| 国产风韵犹存在线视精品| 精品国产一区二区三区不卡| 国产在线播放一区| 精品国产乱子伦一区| 国产综合久久久久久鬼色| 26uuu另类欧美| 国产成人av福利| 国产精品嫩草影院av蜜臀| 成人看片黄a免费看在线| 中文字幕在线观看一区| caoporn国产精品| 亚洲乱码国产乱码精品精可以看 | 亚洲欧美偷拍卡通变态| 成人激情开心网| 亚洲曰韩产成在线| 91精品午夜视频| 黄色日韩网站视频| 日本一区二区综合亚洲| 一本大道综合伊人精品热热| 亚洲第一福利视频在线| 欧美肥妇free| 国产成人午夜精品影院观看视频| 久久久久久免费网| 97精品电影院| 三级影片在线观看欧美日韩一区二区| 欧美一级久久久| 成人黄动漫网站免费app| 自拍视频在线观看一区二区| 91.成人天堂一区| 国产一区二区网址| 亚洲综合在线观看视频| 欧美mv和日韩mv的网站| 波多野结衣一区二区三区| 午夜不卡av免费| 国产人久久人人人人爽| 欧美午夜一区二区| 激情成人午夜视频| 亚洲精品视频在线| 精品免费视频.| 91欧美一区二区| 久久精品久久99精品久久| 国产精品久久久久影院老司| 欧美日韩精品一区二区三区蜜桃| 国产美女精品在线| 亚洲国产一区二区三区 | 精品国产乱码久久久久久影片| 成人福利视频在线看| 日韩不卡免费视频| 国产精品久久久99| 日韩欧美一区二区视频| 99久久国产综合色|国产精品| 日产欧产美韩系列久久99| 中文字幕一区二区三区在线不卡| 欧美喷潮久久久xxxxx| 国产91精品欧美| 免费成人美女在线观看.| 久久精品视频免费观看| 欧美情侣在线播放| 91在线观看高清| 国产精品中文字幕一区二区三区| 亚洲成人av在线电影| 国产精品国产三级国产aⅴ无密码| 欧美一区二区三区在线视频 | 欧美一区二区视频在线观看| 99久久综合色| 懂色av一区二区三区蜜臀 | 亚洲国产日韩a在线播放性色| 国产欧美精品一区二区三区四区| 欧美精品视频www在线观看| 91蜜桃在线观看| 粉嫩久久99精品久久久久久夜| 麻豆精品一二三| 日韩激情在线观看| 午夜激情一区二区| 一区二区三区国产精华| 国产精品久久久久久久久免费相片| 精品国精品国产| 日韩精品一区二区三区中文不卡 | 欧美精选午夜久久久乱码6080| 91免费看`日韩一区二区| 福利91精品一区二区三区| 久久99日本精品| 美女脱光内衣内裤视频久久网站 | 欧美日韩午夜影院| 色成年激情久久综合| 99久久伊人精品| 丁香一区二区三区| 丁香婷婷综合激情五月色| 国产乱人伦偷精品视频不卡| 久草在线在线精品观看| 美国一区二区三区在线播放| 日本麻豆一区二区三区视频| 日韩电影一区二区三区| 欧美aⅴ一区二区三区视频| 日韩不卡一二三区| 另类小说视频一区二区| 黑人精品欧美一区二区蜜桃| 麻豆精品精品国产自在97香蕉| 蜜臀av性久久久久蜜臀aⅴ四虎| 偷拍与自拍一区| 麻豆精品蜜桃视频网站| 国产在线不卡一卡二卡三卡四卡| 国精品**一区二区三区在线蜜桃| 国产一区二区精品久久| 国产1区2区3区精品美女| 国产成人精品三级| 99视频精品在线| 久久精品视频免费观看| 国产精品不卡在线观看| 亚洲品质自拍视频| 亚洲一区二区三区四区五区中文| 亚洲二区在线视频| 免费视频一区二区| 精品亚洲免费视频| 丁香婷婷综合网| 日本韩国欧美在线| 日韩小视频在线观看专区| 久久久综合激的五月天| 国产精品视频在线看| 亚洲女子a中天字幕| 丝袜脚交一区二区| 国产一区二区影院| 91免费国产视频网站| 欧美日韩国产系列| 国产婷婷一区二区| 一区二区三区高清不卡| 美国三级日本三级久久99| 大桥未久av一区二区三区中文| 91国产视频在线观看| 51精品秘密在线观看| 欧美激情一区二区三区全黄| 一区二区成人在线观看| 久久国产尿小便嘘嘘尿| a美女胸又www黄视频久久| 欧美日韩精品一二三区| 国产午夜精品久久久久久免费视| 一区二区三区在线免费播放| 久久疯狂做爰流白浆xx| 91网站在线播放| 日韩欧美一区二区免费| 亚洲视频综合在线| 久久精品噜噜噜成人88aⅴ | 欧美一区二区三区视频在线观看| 精品三级av在线| 亚洲女同ⅹxx女同tv| 久久9热精品视频| 在线免费av一区| 国产亚洲精品bt天堂精选| 亚洲五码中文字幕| 国产伦精品一区二区三区视频青涩 | 亚洲国产精品久久久男人的天堂| 韩国毛片一区二区三区| 欧美三级一区二区| 国产精品夫妻自拍| 蜜芽一区二区三区| 91成人免费在线| 国产精品久久网站| 国产一区二区剧情av在线| 欧美巨大另类极品videosbest| 国产精品久久久久久久久搜平片| 美女看a上一区| 欧美男人的天堂一二区| 中文字幕在线观看不卡| 黄色小说综合网站| 午夜视黄欧洲亚洲| 91在线观看一区二区| 国产亚洲一区字幕| 韩国精品在线观看| 欧美一区二区三区日韩| 亚洲成人av电影在线| 91色乱码一区二区三区| 国产精品视频观看| 精品一二三四在线| 欧美成人国产一区二区| 丝袜亚洲精品中文字幕一区| 91麻豆国产福利在线观看| 国产精品久久午夜| 不卡高清视频专区| 国产精品青草综合久久久久99| 国产一区二区三区香蕉| 欧美一级一区二区| 热久久久久久久| 日韩一区二区视频在线观看| 日日骚欧美日韩| 7777精品久久久大香线蕉| 午夜精品一区二区三区免费视频 | 国产精品一品二品| 久久网站最新地址| 国产伦精品一区二区三区免费 | 亚洲免费视频中文字幕| 91丝袜美腿高跟国产极品老师|