From 289611fadaada115cd1c80e280dbbe6a997f10cf Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Sun, 12 Jun 2022 16:40:52 -0400 Subject: [PATCH] tpm2: Allow to runtime-disable RSA by key sizes Signed-off-by: Stefan Berger --- src/tpm2/Unmarshal.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/tpm2/Unmarshal.c b/src/tpm2/Unmarshal.c index 3680b8db..7c11ac28 100644 --- a/src/tpm2/Unmarshal.c +++ b/src/tpm2/Unmarshal.c @@ -3750,15 +3750,24 @@ TPMI_RSA_KEY_BITS_Unmarshal(TPMI_RSA_KEY_BITS *target, BYTE **buffer, INT32 *siz case 1024: case 2048: case 3072: -#if RSA_4096 // libtpms added begin +#if RSA_4096 // libtpms added begin case 4096: -#endif // libtpms added end +#endif + if (!RuntimeAlgorithmKeySizeCheckEnabled(&g_RuntimeProfile.RuntimeAlgorithm, + TPM_ALG_RSA, + *target, + TPM_ECC_NONE, + g_RuntimeProfile.stateFormatLevel)) { + rc = TPM_RC_VALUE; + } // libtpms added end break; default: rc = TPM_RC_VALUE; - *target = orig_target; // libtpms added } } + if (rc != TPM_RC_SUCCESS) { // libtpms added begin + *target = orig_target; + } // libtpms added end return rc; }