2014-06-12 4 views
3

Windows SDK (Vista 이상)에는 TPM 기본 서비스와 인터페이싱하기위한 tbs.h/dll/lib가 있습니다. 일부 TPM 명령을 실행하고 다음에 대한 MSDN 참조를 참조하십시오. http://msdn.microsoft.com/en-us/library/windows/desktop/aa446799(v=vs.85).aspxTBS.lib Tbsip_Submit_Command() 호출

"명령 버퍼"를 구성하고 특정 명령을 전달하는 방법을 모르겠습니다. 나는 이것의 특정 예를 찾을 수 없다.

TPM_Seal을 사용하고 싶지만 명령을 설정하는 방법은 조금도 다릅니다.

아래의 TBS 컨텍스트를 만드는 기본 C++ 응용 프로그램을 설치하면 성공합니다.

TBS_CONTEXT_PARAMS pContextParams; 
TBS_HCONTEXT  hContext; 
TBS_RESULT   rv; 
pContextParams.version = TBS_CONTEXT_VERSION_ONE; 

rv = Tbsi_Context_Create(&pContextParams, &hContext); 
printf("\n1 RESULT : %x STATUS : %x", rv, hContext); 

BYTE data[10] = {0,0xc0,0,0,0,0x0a,0,0,0,0x50}; 
BYTE buf[512]; 
UINT32 buf_len = 512; 

rv = Tbsip_Submit_Command(hContext,0,TBS_COMMAND_PRIORITY_NORMAL,data,10,buf,&buf_len); 
printf("\n2 RESULT : %x STATUS : %x", rv, hContext); 

rv = Tbsip_Context_Close(hContext); 
printf("\n3 RESULT : %x STATUS : %x", rv, hContext); 

이 예제에서는 작동 올바르게 명령을 전달하는 것 - 난 그냥 명령 버퍼에 "오른쪽"명령 시퀀스를 얻는 방법에 대한 몇 가지 정보를 찾을 필요가있다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa446799(v=vs.85).aspx

그리고 tbs.h는 명령에 관련된 모든 구조를 포함하지 않습니다

함수 참조

이 여기에 있습니다. 내가 TSS API를 사용하여 볼 수있는 예

정보는 지금까지 수집 한 대부분 (내가 창에서 사용할 수 있다고 생각하지 않습니다.) :
TPM 데이터 구조는 다음과 같습니다 : http://www.trustedcomputinggroup.org/files/static_page_files/E55A303C-1A4B-B294-D066E66A82DAE27D/TPM%20Main-Part%202%20TPM%20Structures_v1.2_rev116_01032011.pdf

TrouSerS (http://trousers.sourceforge.net/)에는 위에 정의 된 모든 다양한 바이트 코드를 고심하게 정의하는 포함 파일 집합이 있습니다.

+0

나는 바지 프로젝트 @ http://trousers.sourceforge.net/에서 includes (tss.h, tpm.h)를 살펴 봤는데, 적어도 사용 된 대부분의 16 진 코드를 정의합니다. – Yablargo

+0

이 문서 http://www.trustedcomputinggroup.org/files/static_page_files/E55A303C-1A4B-B294-D066E66A82DAE27D/TPM%20Main-Part%202%20TPM%20Structures_v1.2_rev116_01032011.pdf에는 TPM 구조가 나열되어 있습니다. 다양한 바이트 명령을 모두 포함합니다. – Yablargo

답변

1

명령은 본 설명서의 제 2 부에 설명되어 있지 않고 Part 3 - Commands입니다.

TPM_seal 명령은 섹션 10.1 (72 페이지)에 정의되어 있습니다. 1331 행은 명령의 모양을 보여줍니다.

반환 값 rv은 명령이 TPM에서 성공적으로 실행되었는지 여부를 알려주지 않습니다. TBS가 명령을 보내고 응답을받을 수 있었는지 여부를 알려줍니다. pabResult 버퍼를 해독해야합니다.

또한 other question에 대한 내 대답을 확인해야합니다.