[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] TPM emulator: HMAC calculation fix for response from TPM_LoadKey2



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1204541623 0
# Node ID 5ea409d66ee4c78764920c4319f8bdece359a0f6
# Parent  71a8366fb212b9199090bf9e87e389bdd65e5cbd
TPM emulator: HMAC calculation fix for response from TPM_LoadKey2
Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>
---
 tools/vtpm/vtpm.patch |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletion(-)

diff -r 71a8366fb212 -r 5ea409d66ee4 tools/vtpm/vtpm.patch
--- a/tools/vtpm/vtpm.patch     Fri Feb 29 09:19:58 2008 -0700
+++ b/tools/vtpm/vtpm.patch     Mon Mar 03 10:53:43 2008 +0000
@@ -125,9 +125,32 @@ diff -uprN tpm_emulator/tpm/tpm_capabili
        return TPM_FAIL;
  
      case TPM_CAP_PROP_ACTIVE_COUNTER:
+diff -uprN tpm_emulator/tpm/tpm_cmd_handler.c vtpm/tpm/tpm_cmd_handler.c
+--- tpm_emulator/tpm/tpm_cmd_handler.c 2008-02-27 16:35:41.000000000 -0500
++++ vtpm/tpm/tpm_cmd_handler.c 2008-02-28 14:43:28.000000000 -0500
+@@ -94,12 +94,18 @@ void tpm_compute_out_param_digest(TPM_CO
+   sha1_ctx_t sha1;
+   UINT32 res = CPU_TO_BE32(rsp->result);
+   UINT32 ord = CPU_TO_BE32(ordinal);
++  UINT32 offset = 0;
+ 
+   /* compute SHA1 hash */
+   sha1_init(&sha1);
+   sha1_update(&sha1, (BYTE*)&res, 4);
+   sha1_update(&sha1, (BYTE*)&ord, 4);
+-  sha1_update(&sha1, rsp->param, rsp->paramSize);
++  if (ordinal == TPM_ORD_LoadKey2) {
++      offset = 4;
++  }
++  if (rsp->paramSize - offset > 0) {
++      sha1_update(&sha1, rsp->param + offset, rsp->paramSize - offset);
++  }
+   sha1_final(&sha1, rsp->auth1->digest);
+   if (rsp->auth2 != NULL) memcpy(rsp->auth2->digest, 
+     rsp->auth1->digest, sizeof(rsp->auth1->digest));
 diff -uprN tpm_emulator/tpm/tpm_data.c vtpm/tpm/tpm_data.c
---- tpm_emulator/tpm/tpm_data.c        2006-12-08 12:51:29.000000000 -0800
-+++ vtpm/tpm/tpm_data.c        2006-12-13 16:38:52.000000000 -0800
+--- tpm_emulator/tpm/tpm_data.c        2008-02-27 16:35:41.000000000 -0500
++++ vtpm/tpm/tpm_data.c        2008-02-27 16:35:40.000000000 -0500
 @@ -1,6 +1,7 @@
  /* Software-Based Trusted Platform Module (TPM) Emulator for Linux
   * Copyright (C) 2004 Mario Strasser <mast@xxxxxxx>,

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.