Commit Graph

16 Commits

Author SHA1 Message Date
Stefan Berger
6a39d24669 tpm2: Allow to runtime-disable SHA3 (not currenty supported)
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
cbf4757385 tpm2: Allow to runtime-disable SM2
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
689376598e tpm2: Allow to runtime-disable ECDAA
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
b6df124f7b tpm2: Allow to runtime-disable ECSCHNORR
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
8afb546148 tpm2: Allow to runtime-disable CMAC
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
7d11c20963 tpm2: Allow to runtime-disable cipher modes CTR,OFB,CBC, and ECB
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
1e3e82c074 tpm2: Allow to runtime-disable SHA-1 & SHA-512 hashing algorithm
Runtime-disabling any hash algorithm also means that the corresponding
hash bank must be disabled as well. In case the SHA-1 bank is disabled,
the output of TPM2_GetCapability must therefore filter-out the SHA-1 bank
that is still compiled-in but otherwise cannot be used.

$ tssgetcapability -cap 5
3 PCR selections
    hash TPM_ALG_SHA256
    TPMS_PCR_SELECTION length 3
    ff ff ff
    hash TPM_ALG_SHA384
    TPMS_PCR_SELECTION length 3
    ff ff ff
    hash TPM_ALG_SHA512
    TPMS_PCR_SELECTION length 3
    ff ff ff

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
c6e4785063 tpm2: Allow to runtime-disable ECMQV
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
83a18c67e7 tpm2: Allow to runtime-disable RSAES encryption scheme
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
50fc1a383c tpm2: Allow to runtime-disable RSASSA signing scheme
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
26ad3f2167 tpm2: Allow to runtime-disable RSAPSS signing scheme
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
01d5759990 tpm2: Allow to runtime-disable SM4 symmetric encryption algorithm
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
5a02cd2ea3 tpm2: Allow to runtime-disable TDES symmetric encryption algorithm
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
ad7c4a9b8f tpm2: Allow to runtime-disable Camellia symmetric encryption algorithm
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
31dc25a92c tpm2: Add support for setting a runtime profile
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00
Stefan Berger
63f4981309 tpm2: Implement functions to set and check runtime-disabled algorithms
Implement functions to set and check runtime-disabled algorithms. Use
these functions when the algorithm capabilities of the TPM 2 are
advertised via the TPM2_GetCapability command. However, it is not
sufficient to just suppress runtime-disabled algorithms in the return
value of this command but also certain code paths have to be instrumented
to check for disabled algorithms since they could otherwise lead to their
usage. Users are not required nor will they always look at the returned
values of TPM2_GetCapability but should still be prevented from using
runtime-disabled algorithms.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2024-07-15 11:51:38 -04:00