Index: tpm/tpm_marshalling.h |
diff --git a/tpm/tpm_marshalling.h b/tpm/tpm_marshalling.h |
index ed752274efe517929b4b3de087063c71bf89bd72..d510ebed94fe7ac7e566dc670049a8d963d0499d 100644 |
--- a/tpm/tpm_marshalling.h |
+++ b/tpm/tpm_marshalling.h |
@@ -1,6 +1,5 @@ |
-/* Software-Based Trusted Platform Module (TPM) Emulator for Linux |
- * Copyright (C) 2004 Mario Strasser <mast@gmx.net>, |
- * Swiss Federal Institute of Technology (ETH) Zurich |
+/* Software-based Trusted Platform Module (TPM) Emulator |
+ * Copyright (C) 2004-2010 Mario Strasser <mast@gmx.net> |
* |
* This module is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published |
@@ -12,11 +11,11 @@ |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
* GNU General Public License for more details. |
* |
- * $Id$ |
+ * $Id: tpm_marshalling.h 384 2010-02-17 14:17:43Z mast $ |
*/ |
-#ifndef _MARSHALLING_H_ |
-#define _MARSHALLING_H_ |
+#ifndef _TPM_MARSHALLING_H_ |
+#define _TPM_MARSHALLING_H_ |
#include "tpm_emulator.h" |
#include "tpm_structures.h" |
@@ -75,8 +74,8 @@ static inline int tpm_unmarshal_BYTE(BYTE **ptr, UINT32 *length, BYTE *v) |
static inline int tpm_marshal_UINT16(BYTE **ptr, UINT32 *length, UINT16 v) |
{ |
if (*length < 2) return -1; |
- (*ptr)[0] = (v >> 8) & 0xff; |
- (*ptr)[1] = v & 0xff; |
+ (*ptr)[0] = (BYTE)((v >> 8) & 0xff); |
+ (*ptr)[1] = (BYTE)(v & 0xff); |
*ptr += 2; *length -= 2; |
return 0; |
} |
@@ -92,8 +91,8 @@ static inline int tpm_unmarshal_UINT16(BYTE **ptr, UINT32 *length, UINT16 *v) |
static inline int tpm_marshal_UINT32(BYTE **ptr, UINT32 *length, UINT32 v) |
{ |
if (*length < 4) return -1; |
- (*ptr)[0] = (v >> 24) & 0xff; (*ptr)[1] = (v >> 16) & 0xff; |
- (*ptr)[2] = (v >> 8) & 0xff; (*ptr)[3] = v & 0xff; |
+ (*ptr)[0] = (BYTE)((v >> 24) & 0xff); (*ptr)[1] = (BYTE)((v >> 16) & 0xff); |
+ (*ptr)[2] = (BYTE)((v >> 8) & 0xff); (*ptr)[3] = (BYTE)(v & 0xff); |
*ptr += 4; *length -= 4; |
return 0; |
} |
@@ -110,10 +109,10 @@ static inline int tpm_unmarshal_UINT32(BYTE **ptr, UINT32 *length, UINT32 *v) |
static inline int tpm_marshal_UINT64(BYTE **ptr, UINT32 *length, UINT64 v) |
{ |
if (*length < 8) return -1; |
- (*ptr)[0] = (v >> 56) & 0xff; (*ptr)[1] = (v >> 48) & 0xff; |
- (*ptr)[2] = (v >> 40) & 0xff; (*ptr)[3] = (v >> 32) & 0xff; |
- (*ptr)[4] = (v >> 24) & 0xff; (*ptr)[5] = (v >> 16) & 0xff; |
- (*ptr)[6] = (v >> 8) & 0xff; (*ptr)[7] = v & 0xff; |
+ (*ptr)[0] = (BYTE)((v >> 56) & 0xff); (*ptr)[1] = (BYTE)((v >> 48) & 0xff); |
+ (*ptr)[2] = (BYTE)((v >> 40) & 0xff); (*ptr)[3] = (BYTE)((v >> 32) & 0xff); |
+ (*ptr)[4] = (BYTE)((v >> 24) & 0xff); (*ptr)[5] = (BYTE)((v >> 16) & 0xff); |
+ (*ptr)[6] = (BYTE)((v >> 8) & 0xff); (*ptr)[7] = (BYTE)(v & 0xff); |
*ptr += 8; *length -= 8; |
return 0; |
} |
@@ -483,6 +482,9 @@ int tpm_unmarshal_TPM_STANY_FLAGS(BYTE **ptr, UINT32 *length, TPM_STANY_FLAGS *v |
int tpm_marshal_RSA(BYTE **ptr, UINT32 *length, tpm_rsa_private_key_t *v); |
int tpm_unmarshal_RSA(BYTE **ptr, UINT32 *length, tpm_rsa_private_key_t *v); |
+int tpm_marshal_RSAPub(BYTE **ptr, UINT32 *length, tpm_rsa_public_key_t *v); |
+int tpm_unmarshal_RSAPub(BYTE **ptr, UINT32 *length, tpm_rsa_public_key_t *v); |
+ |
int tpm_marshal_TPM_KEY_DATA(BYTE **ptr, UINT32 *length, TPM_KEY_DATA *v); |
int tpm_unmarshal_TPM_KEY_DATA(BYTE **ptr, UINT32 *length, TPM_KEY_DATA *v); |
@@ -498,7 +500,10 @@ int tpm_unmarshal_TPM_SESSION_DATA(BYTE **ptr, UINT32 *length, TPM_SESSION_DATA |
int tpm_marshal_TPM_STANY_DATA(BYTE **ptr, UINT32 *length, TPM_STANY_DATA *v); |
int tpm_unmarshal_TPM_STANY_DATA(BYTE **ptr, UINT32 *length, TPM_STANY_DATA *v); |
+int tpm_unmarshal_TPM_DATA(BYTE **ptr, UINT32 *length, TPM_DATA *v); |
+int tpm_marshal_TPM_DATA(BYTE **ptr, UINT32 *length, TPM_DATA *v); |
+ |
int tpm_marshal_TPM_RESPONSE(BYTE **ptr, UINT32 *length, TPM_RESPONSE *v); |
int tpm_unmarshal_TPM_REQUEST(BYTE **ptr, UINT32 *length, TPM_REQUEST *v); |
-#endif /* _MARSHALLING_H_ */ |
+#endif /* _TPM_MARSHALLING_H_ */ |