diff mbox series

[v2,2/2] tests: Skip over pcrUpdateCounter byte in result comparison

Message ID 20200707040522.4013885-3-stefanb@linux.vnet.ibm.com
State New
Headers show
Series tpm: Some fixes | expand

Commit Message

Stefan Berger July 7, 2020, 4:05 a.m. UTC
Due to a change in the TPM 2 code the pcrUpdate counter in the
PCRRead response is now different, so we skip comparison of the
14th byte.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
 tests/qtest/tpm-util.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

David Gibson July 7, 2020, 8:19 a.m. UTC | #1
On Tue, Jul 07, 2020 at 12:05:22AM -0400, Stefan Berger wrote:
> Due to a change in the TPM 2 code the pcrUpdate counter in the
> PCRRead response is now different, so we skip comparison of the
> 14th byte.

Can you elaborate on this a bit, both in the code comment and the
commit message.

> 
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
> ---
>  tests/qtest/tpm-util.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c
> index 34efae8f18..58a9593745 100644
> --- a/tests/qtest/tpm-util.c
> +++ b/tests/qtest/tpm-util.c
> @@ -139,7 +139,11 @@ void tpm_util_pcrread(QTestState *s, tx_func *tx,
>  
>      tx(s, tpm_pcrread, sizeof(tpm_pcrread), buffer, sizeof(buffer));
>  
> -    g_assert_cmpmem(buffer, exp_resp_size, exp_resp, exp_resp_size);
> +    /* skip pcrUpdateCounter (14th byte) in comparison */
> +    g_assert(exp_resp_size >= 15);
> +    g_assert_cmpmem(buffer, 13, exp_resp, 13);
> +    g_assert_cmpmem(&buffer[14], exp_resp_size - 14,
> +                    &exp_resp[14], exp_resp_size - 14);
>  }
>  
>  bool tpm_util_swtpm_has_tpm2(void)
Stefan Berger July 7, 2020, 5:43 p.m. UTC | #2
On 7/7/20 4:19 AM, David Gibson wrote:
> On Tue, Jul 07, 2020 at 12:05:22AM -0400, Stefan Berger wrote:
>> Due to a change in the TPM 2 code the pcrUpdate counter in the
>> PCRRead response is now different, so we skip comparison of the
>> 14th byte.
> Can you elaborate on this a bit, both in the code comment and the
> commit message.


Will do in v3. Basically the TPM 2 code has been 'fixed' to reflect the 
pcclient profile more closely and due to the change in PCRs that belong 
to the 'TCB group' the response of the TPM2_Pcrread command now returns 
a slightly different value for the pcrUpdateCounter value, which 
unfortunately breaks the test cases. Leaving the TPM 2 as it was wasn't 
a long-term option.

https://github.com/stefanberger/libtpms/commit/0f5d791a7d3431a6831086f5a186cc53149f695f
diff mbox series

Patch

diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c
index 34efae8f18..58a9593745 100644
--- a/tests/qtest/tpm-util.c
+++ b/tests/qtest/tpm-util.c
@@ -139,7 +139,11 @@  void tpm_util_pcrread(QTestState *s, tx_func *tx,
 
     tx(s, tpm_pcrread, sizeof(tpm_pcrread), buffer, sizeof(buffer));
 
-    g_assert_cmpmem(buffer, exp_resp_size, exp_resp, exp_resp_size);
+    /* skip pcrUpdateCounter (14th byte) in comparison */
+    g_assert(exp_resp_size >= 15);
+    g_assert_cmpmem(buffer, 13, exp_resp, 13);
+    g_assert_cmpmem(&buffer[14], exp_resp_size - 14,
+                    &exp_resp[14], exp_resp_size - 14);
 }
 
 bool tpm_util_swtpm_has_tpm2(void)