<term><option>tpm2-measure-keyslot-nvpcr=</option></term>
<listitem><para>Controls whether to measure information about the used LUKS unlock keyslot to a TPM2
- non-volatile index (nvindex in PCR mode). If set to to an empty string (which is the default) no TPM2
- nvindex extension is done, otherwise keyslot information is measured to an nvindex of the specified
- name, which is allocated if needed. It is recommended to set this to <literal>cryptsetup</literal> to
- enable this logic. The slot index and the used unlock mechanism (i.e. <literal>tpm2</literal>,
- <literal>fido2</literal>, <literal>pkcs11</literal>) is measured along with the activated volume name
- and its UUID.</para>
+ non-volatile index (nvindex in PCR mode). Takes a boolean argument, or an NvPCR name. If set to false
+ or an empty string (which is the default) no TPM2 nvindex extension is done, otherwise keyslot
+ information is measured to an nvindex of the specified name, which is allocated if needed. If set to
+ true the recommended default of <literal>cryptsetup</literal> is selected as NvPCR. The slot index
+ and the used unlock mechanism (i.e. <literal>tpm2</literal>, <literal>fido2</literal>,
+ <literal>pkcs11</literal>) are measured along with the activated volume name and its UUID.</para>
<xi:include href="version-info.xml" xpointer="v259"/></listitem>
</varlistentry>
} else if ((val = startswith(option, "tpm2-measure-keyslot-nvpcr="))) {
- if (isempty(val)) {
+ r = isempty(val) ? false : parse_boolean(val);
+ if (r == 0) {
arg_tpm2_measure_keyslot_nvpcr = mfree(arg_tpm2_measure_keyslot_nvpcr);
return 0;
}
-
- if (!tpm2_nvpcr_name_is_valid(val)) {
+ if (r > 0)
+ val = "cryptsetup";
+ else if (!tpm2_nvpcr_name_is_valid(val)) {
log_warning("Invalid NvPCR name, ignoring: %s", option);
return 0;
}
* assignment, under the assumption that people who are fine to use sd-stub with its PCR
* assignments are also OK with our PCR 15 use here. */
if (r > 0)
- if (!strextend_with_separator(&options, ",", "tpm2-measure-pcr=yes,tpm2-measure-keyslot-nvpcr=cryptsetup"))
+ if (!strextend_with_separator(&options, ",", "tpm2-measure-pcr=yes,tpm2-measure-keyslot-nvpcr=yes"))
return log_oom();
if (r == 0)
log_debug("Will not measure volume key of volume '%s', not booted via systemd-stub with measurements enabled.", id);