aboutsummaryrefslogtreecommitdiffstats
path: root/TPM2-Plugin/lib/include/tpm2_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'TPM2-Plugin/lib/include/tpm2_util.h')
-rw-r--r--TPM2-Plugin/lib/include/tpm2_util.h298
1 files changed, 0 insertions, 298 deletions
diff --git a/TPM2-Plugin/lib/include/tpm2_util.h b/TPM2-Plugin/lib/include/tpm2_util.h
deleted file mode 100644
index de02777..0000000
--- a/TPM2-Plugin/lib/include/tpm2_util.h
+++ /dev/null
@@ -1,298 +0,0 @@
-//**********************************************************************;
-// Copyright (c) 2017, Intel Corporation
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-//
-// 3. Neither the name of Intel Corporation nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-// THE POSSIBILITY OF SUCH DAMAGE.
-//**********************************************************************;
-#ifndef STRING_BYTES_H
-#define STRING_BYTES_H
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-
-#include <tss2/tss2_sys.h>
-
-#include "tpm2_error.h"
-
-#if defined (__GNUC__)
-#define COMPILER_ATTR(...) __attribute__((__VA_ARGS__))
-#else
-#define COMPILER_ATTR(...)
-#endif
-
-#define xstr(s) str(s)
-#define str(s) #s
-
-#define UNUSED(x) (void)x
-
-#define ARRAY_LEN(x) (sizeof(x)/sizeof(x[0]))
-
-#define BUFFER_SIZE(type, field) (sizeof((((type *)NULL)->field)))
-
-#define TSS2_APP_RC_LAYER TSS2_RC_LAYER(5)
-
-#define TPM2B_TYPE_INIT(type, field) { .size = BUFFER_SIZE(type, field), }
-#define TPM2B_INIT(xsize) { .size = xsize, }
-#define TPM2B_EMPTY_INIT TPM2B_INIT(0)
-#define TPM2B_SENSITIVE_CREATE_EMPTY_INIT { \
- .sensitive = { \
- .data = { \
- .size = 0 \
- }, \
- .userAuth = { \
- .size = 0 \
- } \
- } \
- }
-
-#define TPMS_AUTH_COMMAND_INIT(session_handle) { \
- .sessionHandle = session_handle,\
- .nonce = TPM2B_EMPTY_INIT, \
- .sessionAttributes = TPMA_SESSION_CONTINUESESSION, \
- .hmac = TPM2B_EMPTY_INIT \
- }
-
-#define TPMS_AUTH_COMMAND_EMPTY_INIT TPMS_AUTH_COMMAND_INIT(0)
-
-
-#define TPMT_TK_CREATION_EMPTY_INIT { \
- .tag = 0, \
- .hierarchy = 0, \
- .digest = TPM2B_EMPTY_INIT \
- }
-
-#define TPML_PCR_SELECTION_EMPTY_INIT { \
- .count = 0, \
- } //ignore pcrSelections since count is 0.
-
-#define TPMS_CAPABILITY_DATA_EMPTY_INIT { \
- .capability = 0, \
- } // ignore data since capability is 0.
-
-#define TPMT_TK_HASHCHECK_EMPTY_INIT { \
- .tag = 0, \
- .hierarchy = 0, \
- .digest = TPM2B_EMPTY_INIT \
- }
-
-#define TSS2L_SYS_AUTH_COMMAND_INIT(cnt, array) { \
- .count = cnt, \
- .auths = array, \
- }
-
-/*
- * This macro is useful as a wrapper around SAPI functions to automatically
- * retry function calls when the RC is TPM2_RC_RETRY.
- */
-#define TSS2_RETRY_EXP(expression) \
- ({ \
- TSS2_RC __result = 0; \
- do { \
- __result = (expression); \
- } while (tpm2_error_get(__result) == TPM2_RC_RETRY); \
- __result; \
- })
-
-typedef struct {
- UINT16 size;
- BYTE buffer[0];
-} TPM2B;
-
-int tpm2_util_hex_to_byte_structure(const char *inStr, UINT16 *byteLenth, BYTE *byteBuffer);
-
-/**
- * Appends a TPM2B buffer to a MAX buffer.
- * @param result
- * The MAX buffer to append to
- * @param append
- * The buffer to append to result.
- * @return
- * true on success, false otherwise.
- */
-bool tpm2_util_concat_buffer(TPM2B_MAX_BUFFER *result, TPM2B *append);
-
-/**
- * Converts a numerical string into a uint32 value.
- * @param str
- * The numerical string to convert.
- * @param value
- * The value to store the conversion into.
- * @return
- * true on success, false otherwise.
- */
-bool tpm2_util_string_to_uint32(const char *str, uint32_t *value);
-
-/**
- * Converts a numerical string into a uint16 value.
- * @param str
- * The numerical string to convert.
- * @param value
- * The value to store the conversion into.
- * @return
- * true on success, false otherwise.
- */
-bool tpm2_util_string_to_uint16(const char *str, uint16_t *value);
-
-/**
- * Prints an xxd compatible hexdump to stdout if output is enabled,
- * ie no -Q option.
- *
- * @param data
- * The data to print.
- * @param len
- * The length of the data.
- */
-void tpm2_util_hexdump(const BYTE *data, size_t len);
-
-/**
- * Prints a file as a hex string to stdout if quiet mode
- * is not enabled.
- * ie no -Q option.
- *
- * @param fd
- * A readable open file.
- * @param len
- * The length of the data to read and print.
- * @return
- * true if len bytes were successfully read and printed,
- * false otherwise
- */
-bool tpm2_util_hexdump_file(FILE *fd, size_t len);
-
-/**
- * Prints a TPM2B as a hex dump.
- * @param buffer the TPM2B to print.
- */
-static inline void tpm2_util_print_tpm2b(TPM2B *buffer) {
-
- return tpm2_util_hexdump(buffer->buffer, buffer->size);
-}
-
-/**
- * Reads a TPM2B object from FILE* and prints data in hex.
- * @param fd
- * A readable open file.
- */
-bool tpm2_util_print_tpm2b_file(FILE *fd);
-
-/**
- * Checks if the host is big endian
- * @return
- * True of the host is big endian false otherwise.
- */
-bool tpm2_util_is_big_endian(void);
-
-/**
- * Swaps the endianess of 16 bit value.
- * @param data
- * A 16 bit value to swap the endianess on.
- * @return
- * The 16 bit value with the endianess swapped.
- */
-UINT16 tpm2_util_endian_swap_16(UINT16 data);
-
-/**
- * Just like string_bytes_endian_convert_16 but for 32 bit values.
- */
-UINT32 tpm2_util_endian_swap_32(UINT32 data);
-
-/**
- * Just like string_bytes_endian_convert_16 but for 64 bit values.
- */
-UINT64 tpm2_util_endian_swap_64(UINT64 data);
-
-/**
- * Converts a 16 bit value from host endianess to network endianess.
- * @param data
- * The data to possibly swap endianess.
- * @return
- * The swapped data.
- */
-UINT16 tpm2_util_hton_16(UINT16 data);
-
-/**
- * Just like string_bytes_endian_hton_16 but for 32 bit values.
- */
-UINT32 tpm2_util_hton_32(UINT32 data);
-
-/**
- * Just like string_bytes_endian_hton_16 but for 64 bit values.
- */
-UINT64 tpm2_util_hton_64(UINT64 data);
-
-/**
- * Converts a 16 bit value from network endianess to host endianess.
- * @param data
- * The data to possibly swap endianess.
- * @return
- * The swapped data.
- */
-UINT16 tpm2_util_ntoh_16(UINT16 data);
-
-/**
- * Just like string_bytes_endian_ntoh_16 but for 32 bit values.
- */
-UINT32 tpm2_util_ntoh_32(UINT32 data);
-
-/**
- * Just like string_bytes_endian_ntoh_16 but for 64 bit values.
- */
-UINT64 tpm2_util_ntoh_64(UINT64 data);
-
-/**
- * Counts the number of set bits aka a population count.
- * @param data
- * The data to count set bits in.
- * @return
- * The number of set bits or population count.
- */
-UINT32 tpm2_util_pop_count(UINT32 data);
-
-/**
- * Prints whitespace indention for yaml output.
- * @param indent_count
- * Number of times to indent
- */
-void print_yaml_indent(size_t indent_count);
-
-/**
- * Convert a TPM2B_PUBLIC into a yaml format and output if not quiet.
- * @param public
- * The TPM2B_PUBLIC to output in YAML format.
- */
-void tpm2_util_public_to_yaml(TPM2B_PUBLIC *public);
-
-
-/**
- * Convert a TPMA_OBJECT to a yaml format and output if not quiet.
- * @param obj
- * The TPMA_OBJECT attributes to print.
- */
-void tpm2_util_tpma_object_to_yaml(TPMA_OBJECT obj);
-
-#endif /* STRING_BYTES_H */