android读取eps,ChangeEPS.c - Android社区 - https://www.androidos.net.cn/

// This file was extracted from the TCG Published

// Trusted Platform Module Library

// Part 3: Commands

// Family "2.0"

// Level 00 Revision 01.16

// October 30, 2014

#include "InternalRoutines.h"

#include "ChangeEPS_fp.h"

TPM_RC

TPM2_ChangeEPS(

ChangeEPS_In *in // IN: input parameter list

)

{

TPM_RC result;

// The command needs NV update. Check if NV is available.

// A TPM_RC_NV_UNAVAILABLE or TPM_RC_NV_RATE error may be returned at

// this point

result = NvIsAvailable();

if(result != TPM_RC_SUCCESS) return result;

// Input parameter is not reference in command action

in = NULL;

// Internal Data Update

// Reset endorsement hierarchy seed from RNG

CryptGenerateRandom(PRIMARY_SEED_SIZE, gp.EPSeed.t.buffer);

// Create new ehProof value from RNG

CryptGenerateRandom(PROOF_SIZE, gp.ehProof.t.buffer);

// Enable endorsement hierarchy

gc.ehEnable = TRUE;

// set authValue buffer to zeros

MemorySet(gp.endorsementAuth.t.buffer, 0, gp.endorsementAuth.t.size);

// Set endorsement authValue to null

gp.endorsementAuth.t.size = 0;

// Set endorsement authPolicy to null

gp.endorsementAlg = TPM_ALG_NULL;

gp.endorsementPolicy.t.size = 0;

// Flush loaded object in endorsement hierarchy

ObjectFlushHierarchy(TPM_RH_ENDORSEMENT);

// Flush evict object of endorsement hierarchy stored in NV

NvFlushHierarchy(TPM_RH_ENDORSEMENT);

// Save hierarchy changes to NV

NvWriteReserved(NV_EP_SEED, &gp.EPSeed);

NvWriteReserved(NV_EH_PROOF, &gp.ehProof);

NvWriteReserved(NV_ENDORSEMENT_AUTH, &gp.endorsementAuth);

NvWriteReserved(NV_ENDORSEMENT_ALG, &gp.endorsementAlg);

NvWriteReserved(NV_ENDORSEMENT_POLICY, &gp.endorsementPolicy);

// orderly state should be cleared because of the update to state clear data

g_clearOrderly = TRUE;

return TPM_RC_SUCCESS;

}

C++程序

|

64行

|

1.85 KB

// This file was extracted from the TCG Published

// Trusted Platform Module Library

// Part 3: Commands

// Family "2.0"

// Level 00 Revision 01.16

// October 30, 2014

#include "InternalRoutines.h"

#include "ChangeEPS_fp.h"

TPM_RC

TPM2_ChangeEPS(

ChangeEPS_In *in // IN: input parameter list

)

{

TPM_RC result;

// The command needs NV update. Check if NV is available.

// A TPM_RC_NV_UNAVAILABLE or TPM_RC_NV_RATE error may be returned at

// this point

result = NvIsAvailable();

if(result != TPM_RC_SUCCESS) return result;

// Input parameter is not reference in command action

in = NULL;

// Internal Data Update

// Reset endorsement hierarchy seed from RNG

CryptGenerateRandom(PRIMARY_SEED_SIZE, gp.EPSeed.t.buffer);

// Create new ehProof value from RNG

CryptGenerateRandom(PROOF_SIZE, gp.ehProof.t.buffer);

// Enable endorsement hierarchy

gc.ehEnable = TRUE;

// set authValue buffer to zeros

MemorySet(gp.endorsementAuth.t.buffer, 0, gp.endorsementAuth.t.size);

// Set endorsement authValue to null

gp.endorsementAuth.t.size = 0;

// Set endorsement authPolicy to null

gp.endorsementAlg = TPM_ALG_NULL;

gp.endorsementPolicy.t.size = 0;

// Flush loaded object in endorsement hierarchy

ObjectFlushHierarchy(TPM_RH_ENDORSEMENT);

// Flush evict object of endorsement hierarchy stored in NV

NvFlushHierarchy(TPM_RH_ENDORSEMENT);

// Save hierarchy changes to NV

NvWriteReserved(NV_EP_SEED, &gp.EPSeed);

NvWriteReserved(NV_EH_PROOF, &gp.ehProof);

NvWriteReserved(NV_ENDORSEMENT_AUTH, &gp.endorsementAuth);

NvWriteReserved(NV_ENDORSEMENT_ALG, &gp.endorsementAlg);

NvWriteReserved(NV_ENDORSEMENT_POLICY, &gp.endorsementPolicy);

// orderly state should be cleared because of the update to state clear data

g_clearOrderly = TRUE;

return TPM_RC_SUCCESS;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值