From: Lennart Poettering Date: Fri, 19 Aug 2022 20:18:31 +0000 (+0200) Subject: tpm2-util: add helper for formatting PCR masks as string X-Git-Tag: v252-rc1~224^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d5cc0d45322e71cf02cbef3022ff745e4bb3433;p=thirdparty%2Fsystemd.git tpm2-util: add helper for formatting PCR masks as string --- diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index f5b97fae73a..7c9eb77f95d 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -2160,3 +2160,22 @@ int tpm2_load_pcr_public_key(const char *path, void **ret_pubkey, size_t *ret_pu return 0; } + +int pcr_mask_to_string(uint32_t mask, char **ret) { + _cleanup_free_ char *buf = NULL; + int r; + + assert(ret); + + for (unsigned i = 0; i < TPM2_PCRS_MAX; i++) { + if (!(mask & (UINT32_C(1) << i))) + continue; + + r = strextendf_with_separator(&buf, "+", "%u", i); + if (r < 0) + return r; + } + + *ret = TAKE_PTR(buf); + return 0; +} diff --git a/src/shared/tpm2-util.h b/src/shared/tpm2-util.h index 2ff7c0eb63b..554ca58df6a 100644 --- a/src/shared/tpm2-util.h +++ b/src/shared/tpm2-util.h @@ -146,3 +146,5 @@ int tpm2_parse_pcr_argument(const char *arg, uint32_t *mask); int tpm2_load_pcr_signature(const char *path, JsonVariant **ret); int tpm2_load_pcr_public_key(const char *path, void **ret_pubkey, size_t *ret_pubkey_size); + +int pcr_mask_to_string(uint32_t mask, char **ret);