2021-05-19 19:52:34

by Amir Mizinski

[permalink] [raw]
Subject: [PATCH v2] add longer timeout for verify signature command

From: Amir Mizinski <[email protected]>

while testing TPM2_CC_VERIFY_SIGNATURE with usage of RSA 3070-bit keys i
encountered a timeout error. it seems current values do not support this case
as described in ptp 1.05 6.5.1.3:
https://trustedcomputinggroup.org/wp-content/uploads/PC_Client_Specific-Platform_TPM_Profile_for-PTP_2p0-v1p05p_r14_pub.pdf

The patch was tested on Raspberry-Pie 3, using Nuvoton NPCT75X TPM.

Changes since version 1:
-"tpm2: add longer timout for verify signature command"
- Fixed and extended commit description.
Addressed comments from:
- Jarkko Sakkinen: https://lore.kernel.org/patchwork/patch/1424664/

Amir Mizinski (1):
tpm2: add longer timeout for verify signature command

drivers/char/tpm/tpm2-cmd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--
2.7.4



2021-05-19 21:16:55

by Amir Mizinski

[permalink] [raw]
Subject: [PATCH v2] tpm2: add longer timeout for verify signature command

From: Amir Mizinski <[email protected]>

While running a TPM2_CC_VERIFY_SIGNATURE(0x177) operation with RSA 3070-bit
keys the TPM driver fails with the following error:
"kernel: [ 2416.187522] tpm tpm0: Operation Timed out"

Since a) the TPM PC Client specification does not specify a number for
verify signature operation timeout, and b) the duration of
TPM2_CC_VERIFY_SIGNATURE with RSA 3070-bit keys exceeds the current timeout
of TPM_LONG (2 seconds), it is preferable to pick the longest timeout
possible.
Therefore, set the duration for TPM2_CC_VERIFY_SIGNATUE to TPM_LONG_LONG
(5 minutes).

Signed-off-by: Amir Mizinski <[email protected]>
---
drivers/char/tpm/tpm2-cmd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 7603295..e71154b 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -87,7 +87,7 @@ static u8 tpm2_ordinal_duration_index(u32 ordinal)
return TPM_MEDIUM;

case TPM2_CC_VERIFY_SIGNATURE: /* 177 */
- return TPM_LONG;
+ return TPM_LONG_LONG;

case TPM2_CC_PCR_EXTEND: /* 182 */
return TPM_MEDIUM;
--
2.7.4


2021-05-21 15:36:45

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH v2] tpm2: add longer timeout for verify signature command

On Wed, May 19, 2021 at 05:00:59PM +0300, [email protected] wrote:
> From: Amir Mizinski <[email protected]>
>
> While running a TPM2_CC_VERIFY_SIGNATURE(0x177) operation with RSA 3070-bit

The hexcode for the TPM command is absoulutely irrelevant detail.

AFAIK, 3070-bit does not exist. It's 3072-bit.

> keys the TPM driver fails with the following error:

Empty line here.

> "kernel: [ 2416.187522] tpm tpm0: Operation Timed out"
>
> Since a) the TPM PC Client specification does not specify a number for

Remove "a)".
> verify signature operation timeout, and b) the duration of

Remove "b)".

> TPM2_CC_VERIFY_SIGNATURE with RSA 3070-bit keys exceeds the current timeout
> of TPM_LONG (2 seconds), it is preferable to pick the longest timeout
> possible.

Empty line here.

> Therefore, set the duration for TPM2_CC_VERIFY_SIGNATUE to TPM_LONG_LONG
> (5 minutes).
>
Add here:

Link: https://trustedcomputinggroup.org/resource/pc-client-specific-platform-firmware-profile-specification/

> Signed-off-by: Amir Mizinski <[email protected]>


> ---
> drivers/char/tpm/tpm2-cmd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
> index 7603295..e71154b 100644
> --- a/drivers/char/tpm/tpm2-cmd.c
> +++ b/drivers/char/tpm/tpm2-cmd.c
> @@ -87,7 +87,7 @@ static u8 tpm2_ordinal_duration_index(u32 ordinal)
> return TPM_MEDIUM;
>
> case TPM2_CC_VERIFY_SIGNATURE: /* 177 */
> - return TPM_LONG;
> + return TPM_LONG_LONG;
>
> case TPM2_CC_PCR_EXTEND: /* 182 */
> return TPM_MEDIUM;
> --
> 2.7.4
>
>

/Jarkko