tpm2-util: expose more hash algorithms

swtpm supports them, hence maybe support them in our codebase, too
This commit is contained in:
Lennart Poettering
2022-08-17 17:30:29 +02:00
committed by Luca Boccassi
parent df6c3cbd02
commit 98193c39c6
2 changed files with 22 additions and 8 deletions

View File

@@ -1443,20 +1443,26 @@ int tpm2_make_luks2_json(
}
const char *tpm2_pcr_bank_to_string(uint16_t bank) {
/* For now, let's officially only support these two. We can extend this later on, should the need
* arise. */
if (bank == TPM2_ALG_SHA256)
return "sha256";
if (bank == TPM2_ALG_SHA1)
return "sha1";
if (bank == TPM2_ALG_SHA256)
return "sha256";
if (bank == TPM2_ALG_SHA384)
return "sha384";
if (bank == TPM2_ALG_SHA512)
return "sha512";
return NULL;
}
int tpm2_pcr_bank_from_string(const char *bank) {
if (streq_ptr(bank, "sha256"))
return TPM2_ALG_SHA256;
if (streq_ptr(bank, "sha1"))
return TPM2_ALG_SHA1;
if (streq_ptr(bank, "sha256"))
return TPM2_ALG_SHA256;
if (streq_ptr(bank, "sha384"))
return TPM2_ALG_SHA384;
if (streq_ptr(bank, "sha512"))
return TPM2_ALG_SHA512;
return -EINVAL;
}

View File

@@ -67,12 +67,20 @@ static inline bool TPM2_PCR_MASK_VALID(uint64_t pcr_mask) {
/* We want the helpers below to work also if TPM2 libs are not available, hence define these four defines if
* they are missing. */
#ifndef TPM2_ALG_SHA1
#define TPM2_ALG_SHA1 0x4
#endif
#ifndef TPM2_ALG_SHA256
#define TPM2_ALG_SHA256 0xB
#endif
#ifndef TPM2_ALG_SHA1
#define TPM2_ALG_SHA1 0x4
#ifndef TPM2_ALG_SHA384
#define TPM2_ALG_SHA384 0xC
#endif
#ifndef TPM2_ALG_SHA512
#define TPM2_ALG_SHA512 0xD
#endif
#ifndef TPM2_ALG_ECC