aboutsummaryrefslogtreecommitdiff
path: root/src/security/tpm/tss/tcg-2.0/tss_marshaling.h
diff options
context:
space:
mode:
authorPhilipp Deppenwiese <zaolin@das-labor.org>2017-10-18 21:54:24 +0200
committerStefan Reinauer <stefan.reinauer@coreboot.org>2018-01-18 02:17:34 +0000
commit86391f16054ff1aa8af75b552204d24f3c00d50e (patch)
tree4e27b7d9cbb74227080572d01a449d7b961e2130 /src/security/tpm/tss/tcg-2.0/tss_marshaling.h
parentd88fb36e61beac7b52b6183385de4434895a4995 (diff)
security/tpm: Move TSS stacks into sub-directory
Change-Id: I5e20d98665c17d39f3f69772093a062bb905f6f9 Signed-off-by: Philipp Deppenwiese <zaolin@das-labor.org> Reviewed-on: https://review.coreboot.org/22105 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/security/tpm/tss/tcg-2.0/tss_marshaling.h')
-rw-r--r--src/security/tpm/tss/tcg-2.0/tss_marshaling.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/security/tpm/tss/tcg-2.0/tss_marshaling.h b/src/security/tpm/tss/tcg-2.0/tss_marshaling.h
new file mode 100644
index 0000000000..d34756d566
--- /dev/null
+++ b/src/security/tpm/tss/tcg-2.0/tss_marshaling.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef TCG2_TSS_MARSHALING_H_
+#define TCG2_TSS_MARSHALING_H_
+
+#include <commonlib/iobuf.h>
+#include "tss_structures.h"
+
+/* The below functions are used to serialize/deserialize TPM2 commands. */
+
+/**
+ * tpm_marshal_command
+ *
+ * Given a structure containing a TPM2 command, serialize the structure for
+ * sending it to the TPM.
+ *
+ * @command: code of the TPM2 command to marshal
+ * @tpm_command_body: a pointer to the command specific structure
+ * @ob: output buffer where command is marshaled to
+ *
+ * Returns 0 on success or -1 on error.
+ *
+ */
+int tpm_marshal_command(TPM_CC command, void *tpm_command_body,
+ struct obuf *ob);
+
+/**
+ * tpm_unmarshal_response
+ *
+ * Given a buffer received from the TPM in response to a certain command,
+ * deserialize the buffer into the expeced response structure.
+ *
+ * struct tpm2_response is a union of all possible responses.
+ *
+ * @command: code of the TPM2 command for which a response is unmarshaled
+ * @ib: input buffer containing the serialized response.
+ *
+ * Returns a pointer to the deserialized response or NULL in case of
+ * unmarshaling problems.
+ */
+struct tpm2_response *tpm_unmarshal_response(TPM_CC command, struct ibuf *ib);
+
+#endif // TCG2_TSS_MARSHALING_H_