gpt4 book ai didi

c - 此 TPM 仿真器是否遵循扩展 PCR 寄存器的 TPM 规范?

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:05 26 4
gpt4 key购买 nike

以下代码来自 Mario Strasser 的 TPM 模拟器。规范说,

PCR := SHA1(PCR || data) 

读作“将 PCR 的旧值与数据连接起来,对连接后的字符串进行哈希处理并将哈希值存储在 PCR 中”。它不是 PCR := PCR BITWISE-OR SHA1(data) 也不是 PCR := SHA1(PCR BITWISE-OR data)

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;
}

最佳答案

据我所知,是的。请参阅我在 Perform OR on two hash outputs of sha1sum 中的评论

关于c - 此 TPM 仿真器是否遵循扩展 PCR 寄存器的 TPM 规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com