mirror of
https://github.com/systemd/systemd.git
synced 2025-02-03 17:47:28 +03:00
tpm2: add tpm2_pcr_values_has_(any|all)_values() functions
This commit is contained in:
parent
70cb382d36
commit
26d8d71fa5
@ -211,12 +211,7 @@ int enroll_tpm2(struct crypt_device *cd,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
bool pcr_value_specified = false;
|
||||
for (size_t i = 0; i < n_hash_pcr_values; i++)
|
||||
if (hash_pcr_values[i].value.size > 0) {
|
||||
pcr_value_specified = true;
|
||||
break;
|
||||
}
|
||||
bool pcr_value_specified = tpm2_pcr_values_has_any_values(hash_pcr_values, n_hash_pcr_values);
|
||||
|
||||
r = tpm2_pcr_read_missing_values(tpm2_context, hash_pcr_values, n_hash_pcr_values);
|
||||
if (r < 0)
|
||||
|
@ -1590,6 +1590,28 @@ bool tpm2_pcr_values_valid(const Tpm2PCRValue *pcr_values, size_t n_pcr_values)
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Returns true if any of the provided PCR values has an actual hash value included, false otherwise. */
|
||||
bool tpm2_pcr_values_has_any_values(const Tpm2PCRValue *pcr_values, size_t n_pcr_values) {
|
||||
assert(pcr_values || n_pcr_values == 0);
|
||||
|
||||
FOREACH_ARRAY(v, pcr_values, n_pcr_values)
|
||||
if (v->value.size > 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Returns true if all of the provided PCR values has an actual hash value included, false otherwise. */
|
||||
bool tpm2_pcr_values_has_all_values(const Tpm2PCRValue *pcr_values, size_t n_pcr_values) {
|
||||
assert(pcr_values || n_pcr_values == 0);
|
||||
|
||||
FOREACH_ARRAY(v, pcr_values, n_pcr_values)
|
||||
if (v->value.size == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static int cmp_pcr_values(const Tpm2PCRValue *a, const Tpm2PCRValue *b) {
|
||||
assert(a);
|
||||
assert(b);
|
||||
|
@ -83,6 +83,8 @@ typedef struct {
|
||||
}
|
||||
|
||||
bool tpm2_pcr_value_valid(const Tpm2PCRValue *pcr_value);
|
||||
bool tpm2_pcr_values_has_any_values(const Tpm2PCRValue *pcr_values, size_t n_pcr_values);
|
||||
bool tpm2_pcr_values_has_all_values(const Tpm2PCRValue *pcr_values, size_t n_pcr_values);
|
||||
int tpm2_pcr_value_from_string(const char *arg, Tpm2PCRValue *ret_pcr_value);
|
||||
char *tpm2_pcr_value_to_string(const Tpm2PCRValue *pcr_value);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user