首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此TPM模拟器是否遵循扩展PCR寄存器的TPM规范?

此TPM模拟器是否遵循扩展PCR寄存器的TPM规范?
EN

Stack Overflow用户
提问于 2009-11-10 19:43:17
回答 1查看 666关注 0票数 1

以下代码来自Mario Strasser的TPM模拟器。说明书上说,

代码语言:javascript
复制
PCR := SHA1(PCR || data) 

读取“将PCR的旧值与数据连接,对连接的字符串进行散列,并将散列存储在PCR中”。它既不是PCR := PCR BITWISE-OR SHA1(data)也不是PCR := SHA1(PCR BITWISE-OR data)

代码语言:javascript
复制
TPM_RESULT TPM_Extend(TPM_PCRINDEX pcrNum, TPM_DIGEST *inDigest, 
                      TPM_PCRVALUE *outDigest)
{
  tpm_sha1_ctx_t ctx;

  info("TPM_Extend()");
  if (pcrNum >= TPM_NUM_PCR) return TPM_BADINDEX;
  if (!(PCR_ATTRIB[pcrNum].pcrExtendLocal & (1 << LOCALITY))) return TPM_BAD_LOCALITY;
  /* compute new PCR value as SHA-1(old PCR value || inDigest) */
  tpm_sha1_init(&ctx);
  tpm_sha1_update(&ctx, PCR_VALUE[pcrNum].digest, sizeof(PCR_VALUE[pcrNum].digest));
  tpm_sha1_update(&ctx, inDigest->digest, sizeof(inDigest->digest));
  tpm_sha1_final(&ctx, PCR_VALUE[pcrNum].digest);  
  /* set output digest */
  if (tpmData.permanent.flags.disable) {
    memset(outDigest->digest, 0, sizeof(*outDigest->digest));
  } else {
    memcpy(outDigest, &PCR_VALUE[pcrNum], sizeof(TPM_PCRVALUE));
  }
  return TPM_SUCCESS;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-10 19:47:24

AFAIK,是的。在Perform OR on two hash outputs of sha1sum中查看我的评论

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1707369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档