]> git.ipfire.org Git - thirdparty/systemd.git/commit
tpm-util: fix TPM parameter handling
authorAnatol Pomozov <anatol.pomozov@gmail.com>
Fri, 10 Sep 2021 18:52:55 +0000 (11:52 -0700)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 11 Sep 2021 06:32:17 +0000 (15:32 +0900)
commitd2bf22fb8d8ad8a2c137f30ecd1fb49aaf50f57f
tree3a36ca074ea110535eaba95ca3789e023f78cd15
parentc54e851acb122bf2f2578ad6d5a86b7ab071c526
tpm-util: fix TPM parameter handling

cryptenroll allows to specify a custom TPM driver separated from
parameters with colon e.g. `systemd-cryptenroll --tpm2-device=swtpm:`
tells to load swtpm tss driver and use it as a device.

Unfortunately it does not work, swtpm driver init() fails with

```
debug:tcti:src/tss2-tcti/tcti-swtpm.c:570:Tss2_Tcti_Swtpm_Init() Dup'd conf string to: 0x562f91cbc000
debug:tcti:src/util/key-value-parse.c:85:parse_key_value_string() parsing key/value: swtpm:
WARNING:tcti:src/util/key-value-parse.c:50:parse_key_value() key / value string is invalid
Failed to initialize TCTI context: tcti:A parameter has a bad value
```

It turns out that cryptenroll suppose to use the driver name internally
and strip it before passing the rest of parameters to init() function.
Without doing it swtpm receives incorrect key-value property and gets
confused.

Fix it by passing the correct parameter (without driver name) to the
init() function.

Fixes #20708
src/shared/tpm2-util.c