RE: [PATCH RESEND v4 1/1] tpm: add sysfs exports for all banks of PCR registers
From: Elliott, Robert (Servers) <hidden>
Date: 2020-11-30 19:01:38
Also in:
linux-integrity
...
+ * The first argument is the TPM algorithm id and the second is the + * hash used as both the suffix and the group name. Note: the group + * name is a directory in the top level tpm class with the name + * pcr-<hash>, so it must not clash with any other names already + * in the sysfs directory. + */ +PCR_ATTR_BUILD(TPM_ALG_SHA1, sha1); +PCR_ATTR_BUILD(TPM_ALG_SHA256, sha256); +PCR_ATTR_BUILD(TPM_ALG_SHA384, sha384); +PCR_ATTR_BUILD(TPM_ALG_SHA512, sha512); +PCR_ATTR_BUILD(TPM_ALG_SM3_256, sm3);
The latest PC Client Platform TPM Profile and TPM 2.0 Part 2 Structures specs also define codes for three SHA-3 hash algorithms: TPM_ALG_SHA3_256 TPM_ALG_SHA3_384 TPM_ALG_SHA3_512 ...
+
+ /* add one group for each bank hash */
+ for (i = 0; i < chip->nr_allocated_banks; i++) {
+ switch (chip->allocated_banks[i].alg_id) {
+ case TPM_ALG_SHA1:
+ chip->groups[chip->groups_cnt++] = &pcr_group_sha1;
+ break;
+ case TPM_ALG_SHA256:
+ chip->groups[chip->groups_cnt++] = &pcr_group_sha256;
+ break;
+ case TPM_ALG_SHA384:
+ chip->groups[chip->groups_cnt++] = &pcr_group_sha384;
+ break;
+ case TPM_ALG_SHA512:
+ chip->groups[chip->groups_cnt++] = &pcr_group_sha512;
+ break;
+ case TPM_ALG_SM3_256:
+ chip->groups[chip->groups_cnt++] = &pcr_group_sm3;
+ break;
+ default:
+ /*
+ * If this warning triggers, send a patch to
+ * add both a PCR_ATTR_BUILD() macro above for
+ * the missing algorithm as well as an
+ * additional case in this switch statement.
+ */
+ WARN(1, "TPM with unsupported bank algorthm
0x%04x",
+ chip->allocated_banks[i].alg_id);algorithm is missing the letter i. It might help to print the bank id (variable i) as well.