Added Linux SPI stdio support for running on Rasberry Pi. Cleanups for wolfTPM.

pull/2/head
David Garske 2018-02-08 12:21:39 -08:00
parent 9036e7bdec
commit 156fc9b521
11 changed files with 243 additions and 166 deletions

4
.gitignore vendored
View File

@ -22,3 +22,7 @@ test-suite.log
src/.deps src/.deps
src/.libs src/.libs
RemoteSystemsTempFiles RemoteSystemsTempFiles
examples/tpm/.deps
*.o
examples/tpm/tpm2_demo
examples/tpm/.libs

View File

@ -32,7 +32,7 @@ extern SPI_HandleTypeDef hspi1;
#ifdef WOLF_TPM2 #ifdef WOLF_TPM2
extern int TPM2_Demo(void); #include <examples/tpm/tpm2_demo.h>
#endif #endif

View File

@ -78,7 +78,7 @@ maintainer-clean-local:
# !!!! first line of rule has to start with a hard (real) tab, not spaces # !!!! first line of rule has to start with a hard (real) tab, not spaces
egs: egs:
$(MAKE) examples/mqttclient/mqttclient; $(MAKE) examples/tpm/tpm2_demo;
install-exec-local: install-generic-config install-exec-local: install-generic-config

View File

@ -5,12 +5,23 @@ This example demonstrates calling the various TPM 2.0 API's.
## Building ## Building
`./configure && make` 1. Build wolfSSL:
```
./autogen.sh
./configure --enable-ecc --enable-sha512 && make && sudo make install
```
2. Build wolfTPM:
```
./configure && make
```
## Platform ## Platform
This example was written for the STM32 with the CubeMX HAL. To add additional SPI hardware support insert your own interface call in `tpm2_demo.c` for the `TPM2_IoCb` function. This example was written for use on Raspberry Pi or the STM32 with the CubeMX HAL. To add additional SPI hardware support insert your own interface call in `tpm2_demo.c` for the `TPM2_IoCb` function.
## Sample Output ## Sample Output

View File

@ -1,5 +1,5 @@
# wolftpm # wolftpm
# Copyright (C) 2016 wolfSSL Inc. # Copyright (C) 2018 wolfSSL Inc.
# All right reserved. # All right reserved.
AC_INIT([wolftpm],[0.1.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com]) AC_INIT([wolftpm],[0.1.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com])
@ -18,7 +18,7 @@ AC_ARG_PROGRAM
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_HEADERS([src/config.h])
WOLFMQTT_LIBRARY_VERSION=1:0:0 WOLFTPM_LIBRARY_VERSION=1:0:0
# | | | # | | |
# +------+ | +---+ # +------+ | +---+
# | | | # | | |
@ -30,7 +30,7 @@ WOLFMQTT_LIBRARY_VERSION=1:0:0
# | +- increment if source code has changed # | +- increment if source code has changed
# | set to zero if current is incremented # | set to zero if current is incremented
# +- increment if interfaces have been added, removed or changed # +- increment if interfaces have been added, removed or changed
AC_SUBST([WOLFMQTT_LIBRARY_VERSION]) AC_SUBST([WOLFTPM_LIBRARY_VERSION])
LT_PREREQ([2.2]) LT_PREREQ([2.2])
LT_INIT([disable-static], [win32-dll]) LT_INIT([disable-static], [win32-dll])
@ -67,7 +67,7 @@ AC_CHECK_LIB(network,socket)
# DEBUG # DEBUG
DEBUG_CFLAGS="-g -O0" DEBUG_CFLAGS="-g -O0"
DEBUG_CPPFLAGS="-DDEBUG -DDEBUG_WOLFMQTT" DEBUG_CPPFLAGS="-DDEBUG -DDEBUG_WOLFTPM"
AX_DEBUG AX_DEBUG
AS_IF([test "x$ax_enable_debug" = "xyes"], AS_IF([test "x$ax_enable_debug" = "xyes"],

View File

@ -1,4 +1,13 @@
# vim:ft=automake # vim:ft=automake
# All paths should be given relative to the root # All paths should be given relative to the root
EXTRA_DIST+= examples/tpm/tpm2_demo.c if BUILD_EXAMPLES
noinst_PROGRAMS += examples/tpm/tpm2_demo
noinst_HEADERS += examples/tpm/tpm2_demo.h
examples_tpm_tpm2_demo_SOURCES = examples/tpm/tpm2_demo.c
examples_tpm_tpm2_demo_LDADD = src/libwolftpm.la $(LIB_STATIC_ADD)
examples_tpm_tpm2_demo_DEPENDENCIES = src/libwolftpm.la
endif
dist_example_DATA+= examples/tpm/tpm2_demo.c
DISTCLEANFILES+= examples/tpm/.libs/tpm_demo

View File

@ -1,6 +1,6 @@
/* tpm2_demo.c /* tpm2_demo.c
* *
* Copyright (C) 2006-2017 wolfSSL Inc. * Copyright (C) 2006-2018 wolfSSL Inc.
* *
* This file is part of wolfSSL. (formerly known as CyaSSL) * This file is part of wolfSSL. (formerly known as CyaSSL)
* *
@ -30,21 +30,30 @@
#include <wolfssl/wolfcrypt/logging.h> #include <wolfssl/wolfcrypt/logging.h>
#include <wolftpm/tpm2.h> #include <wolftpm/tpm2.h>
#include <examples/tpm/tpm2_demo.h>
/* Local variables */ /* Local variables */
static TPM2_CTX gTpm2Ctx; static TPM2_CTX gTpm2Ctx;
/* Configuration for the SPI interface */
#ifdef WOLFSSL_STM32_CUBEMX #ifdef WOLFSSL_STM32_CUBEMX
extern SPI_HandleTypeDef hspi1; extern SPI_HandleTypeDef hspi1;
#define TPM2_USER_CTX &hspi1 #define TPM2_USER_CTX &hspi1
#else #else
#define TPM2_USER_CTX NULL #include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define TPM2_USER_CTX (void*)"/dev/spidev0.0"
#endif #endif
/* IO Callback */ /* IO Callback */
static TPM_RC TPM2_IoCb(TPM2_CTX* ctx, const byte* txBuf, byte* rxBuf, static TPM_RC TPM2_IoCb(TPM2_CTX* ctx, const byte* txBuf, byte* rxBuf,
word16 xferSz, void* userCtx) word16 xferSz, void* userCtx)
{ {
int ret = TPM_RC_FAILURE;
#ifdef WOLFSSL_STM32_CUBEMX #ifdef WOLFSSL_STM32_CUBEMX
/* STM32 CubeMX Hal */
SPI_HandleTypeDef* hspi = (SPI_HandleTypeDef*)userCtx; SPI_HandleTypeDef* hspi = (SPI_HandleTypeDef*)userCtx;
HAL_StatusTypeDef status; HAL_StatusTypeDef status;
@ -52,18 +61,26 @@ static TPM_RC TPM2_IoCb(TPM2_CTX* ctx, const byte* txBuf, byte* rxBuf,
status = HAL_SPI_TransmitReceive(hspi, (byte*)txBuf, rxBuf, xferSz, 5000); status = HAL_SPI_TransmitReceive(hspi, (byte*)txBuf, rxBuf, xferSz, 5000);
__HAL_SPI_DISABLE(hspi); __HAL_SPI_DISABLE(hspi);
if (status == HAL_OK) if (status == HAL_OK)
return TPM_RC_SUCCESS; ret = TPM_RC_SUCCESS;
#else #else
/* TODO: Add your platform here for HW interface */ /* Use Linux Style SPI access */
(void)ctx; const char* devPath = (const char*)userCtx;
(void)txBuf; size_t size;
(void)rxBuf; int devFile = open(devPath, O_RDWR);
(void)xferSz; if (devFile >= 0) {
(void)userCtx; size = write(devFile, txBuf, xferSz);
if (size == xferSz) {
size = read(devFile, rxBuf, xferSz);
ret = TPM_RC_SUCCESS;
}
close(devFile);
}
#endif #endif
return TPM_RC_FAILURE;
(void)ctx;
return ret;
} }
#define RAND_GET_SZ 32 #define RAND_GET_SZ 32
@ -104,7 +121,6 @@ int TPM2_Demo(void)
} cmdOut; } cmdOut;
int pcrCount, pcrIndex, i; int pcrCount, pcrIndex, i;
TPML_TAGGED_TPM_PROPERTY* tpmProp; TPML_TAGGED_TPM_PROPERTY* tpmProp;
TPM_HANDLE ek;
#ifdef DEBUG_WOLFSSL #ifdef DEBUG_WOLFSSL
wolfSSL_Debugging_ON(); wolfSSL_Debugging_ON();
@ -263,3 +279,10 @@ int TPM2_Demo(void)
return rc; return rc;
} }
#ifndef NO_MAIN_DRIVER
int main(void)
{
return TPM2_Demo();
}
#endif

View File

@ -0,0 +1,29 @@
/* tpm2_demo.h
*
* Copyright (C) 2006-2018 wolfSSL Inc.
*
* This file is part of wolfSSL. (formerly known as CyaSSL)
*
* wolfTPM is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfTPM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _TPM2_DEMO_H_
#define _TPM2_DEMO_H_
int TPM2_Demo(void);
#endif /* _TPM2_DEMO_H_ */

View File

@ -7,6 +7,6 @@ lib_LTLIBRARIES+= src/libwolftpm.la
src_libwolftpm_la_SOURCES = src/tpm2.c src_libwolftpm_la_SOURCES = src/tpm2.c
src_libwolftpm_la_CFLAGS = -DBUILDING_WOLFTPM $(AM_CFLAGS) src_libwolftpm_la_CFLAGS = -DBUILDING_WOLFTPM $(AM_CFLAGS)
src_libwolftpm_la_CPPFLAGS = -DBUILDING_WOLFTPM $(AM_CPPFLAGS) src_libwolftpm_la_CPPFLAGS = -DBUILDING_WOLFTPM $(AM_CPPFLAGS)
src_libwolftpm_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFMQTT_LIBRARY_VERSION} src_libwolftpm_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFTPM_LIBRARY_VERSION}
src_libwolftpm_la_DEPENDENCIES = src_libwolftpm_la_DEPENDENCIES =
EXTRA_DIST += EXTRA_DIST +=

View File

@ -22,6 +22,7 @@
#ifndef __TPM2_H__ #ifndef __TPM2_H__
#define __TPM2_H__ #define __TPM2_H__
#include <wolftpm/visibility.h>
#include <wolfssl/wolfcrypt/types.h> #include <wolfssl/wolfcrypt/types.h>
#include <wolfssl/wolfcrypt/hash.h> #include <wolfssl/wolfcrypt/hash.h>
#include <wolfssl/wolfcrypt/rsa.h> #include <wolfssl/wolfcrypt/rsa.h>
@ -1833,17 +1834,17 @@ typedef struct TPM2_CTX {
/* Functions */ /* Functions */
#define _TPM_Init TPM2_Init #define _TPM_Init TPM2_Init
WOLFSSL_API TPM_RC TPM2_Init(TPM2_CTX* ctx, TPM2HalIoCb ioCb, void* userCtx); WOLFTPM_API TPM_RC TPM2_Init(TPM2_CTX* ctx, TPM2HalIoCb ioCb, void* userCtx);
typedef struct { typedef struct {
TPM_SU startupType; TPM_SU startupType;
} Startup_In; } Startup_In;
WOLFSSL_API TPM_RC TPM2_Startup(Startup_In* in); WOLFTPM_API TPM_RC TPM2_Startup(Startup_In* in);
typedef struct { typedef struct {
TPM_SU shutdownType; TPM_SU shutdownType;
} Shutdown_In; } Shutdown_In;
WOLFSSL_API TPM_RC TPM2_Shutdown(Shutdown_In* in); WOLFTPM_API TPM_RC TPM2_Shutdown(Shutdown_In* in);
typedef struct { typedef struct {
@ -1855,14 +1856,14 @@ typedef struct {
TPMI_YES_NO moreData; TPMI_YES_NO moreData;
TPMS_CAPABILITY_DATA capabilityData; TPMS_CAPABILITY_DATA capabilityData;
} GetCapability_Out; } GetCapability_Out;
WOLFSSL_API TPM_RC TPM2_GetCapability(GetCapability_In* in, WOLFTPM_API TPM_RC TPM2_GetCapability(GetCapability_In* in,
GetCapability_Out* out); GetCapability_Out* out);
typedef struct { typedef struct {
TPMI_YES_NO fullTest; TPMI_YES_NO fullTest;
} SelfTest_In; } SelfTest_In;
WOLFSSL_API TPM_RC TPM2_SelfTest(SelfTest_In* in); WOLFTPM_API TPM_RC TPM2_SelfTest(SelfTest_In* in);
typedef struct { typedef struct {
TPML_ALG toTest; TPML_ALG toTest;
@ -1870,14 +1871,14 @@ typedef struct {
typedef struct { typedef struct {
TPML_ALG toDoList; TPML_ALG toDoList;
} IncrementalSelfTest_Out; } IncrementalSelfTest_Out;
WOLFSSL_API TPM_RC TPM2_IncrementalSelfTest(IncrementalSelfTest_In* in, WOLFTPM_API TPM_RC TPM2_IncrementalSelfTest(IncrementalSelfTest_In* in,
IncrementalSelfTest_Out* out); IncrementalSelfTest_Out* out);
typedef struct { typedef struct {
TPM2B_MAX_BUFFER outData; TPM2B_MAX_BUFFER outData;
TPM_RC testResult; TPM_RC testResult;
} GetTestResult_Out; } GetTestResult_Out;
WOLFSSL_API TPM_RC TPM2_GetTestResult(GetTestResult_Out* out); WOLFTPM_API TPM_RC TPM2_GetTestResult(GetTestResult_Out* out);
typedef struct { typedef struct {
@ -1886,12 +1887,12 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_DIGEST randomBytes; TPM2B_DIGEST randomBytes;
} GetRandom_Out; } GetRandom_Out;
WOLFSSL_API TPM_RC TPM2_GetRandom(GetRandom_In* in, GetRandom_Out* out); WOLFTPM_API TPM_RC TPM2_GetRandom(GetRandom_In* in, GetRandom_Out* out);
typedef struct { typedef struct {
TPM2B_SENSITIVE_DATA inData; TPM2B_SENSITIVE_DATA inData;
} StirRandom_In; } StirRandom_In;
WOLFSSL_API TPM_RC TPM2_StirRandom(StirRandom_In* in); WOLFTPM_API TPM_RC TPM2_StirRandom(StirRandom_In* in);
typedef struct { typedef struct {
TPML_PCR_SELECTION pcrSelectionIn; TPML_PCR_SELECTION pcrSelectionIn;
@ -1901,7 +1902,7 @@ typedef struct {
TPML_PCR_SELECTION pcrSelectionOut; TPML_PCR_SELECTION pcrSelectionOut;
TPML_DIGEST pcrValues; TPML_DIGEST pcrValues;
} PCR_Read_Out; } PCR_Read_Out;
WOLFSSL_API TPM_RC TPM2_PCR_Read(PCR_Read_In* in, PCR_Read_Out* out); WOLFTPM_API TPM_RC TPM2_PCR_Read(PCR_Read_In* in, PCR_Read_Out* out);
typedef struct { typedef struct {
@ -1909,7 +1910,7 @@ typedef struct {
TPMS_AUTH_COMMAND auth; TPMS_AUTH_COMMAND auth;
TPML_DIGEST_VALUES digests; TPML_DIGEST_VALUES digests;
} PCR_Extend_In; } PCR_Extend_In;
WOLFSSL_API TPM_RC TPM2_PCR_Extend(PCR_Extend_In* in); WOLFTPM_API TPM_RC TPM2_PCR_Extend(PCR_Extend_In* in);
typedef struct { typedef struct {
@ -1927,7 +1928,7 @@ typedef struct {
TPM2B_DIGEST creationHash; TPM2B_DIGEST creationHash;
TPMT_TK_CREATION creationTicket; TPMT_TK_CREATION creationTicket;
} Create_Out; } Create_Out;
WOLFSSL_API TPM_RC TPM2_Create(Create_In* in, Create_Out* out); WOLFTPM_API TPM_RC TPM2_Create(Create_In* in, Create_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT parentHandle; TPMI_DH_OBJECT parentHandle;
@ -1941,7 +1942,7 @@ typedef struct {
TPM2B_PUBLIC outPublic; TPM2B_PUBLIC outPublic;
TPM2B_NAME name; TPM2B_NAME name;
} CreateLoaded_Out; } CreateLoaded_Out;
WOLFSSL_API TPM_RC TPM2_CreateLoaded(CreateLoaded_In* in, WOLFTPM_API TPM_RC TPM2_CreateLoaded(CreateLoaded_In* in,
CreateLoaded_Out* out); CreateLoaded_Out* out);
@ -1960,7 +1961,7 @@ typedef struct {
TPMT_TK_CREATION creationTicket; TPMT_TK_CREATION creationTicket;
TPM2B_NAME name; TPM2B_NAME name;
} CreatePrimary_Out; } CreatePrimary_Out;
WOLFSSL_API TPM_RC TPM2_CreatePrimary(CreatePrimary_In* in, WOLFTPM_API TPM_RC TPM2_CreatePrimary(CreatePrimary_In* in,
CreatePrimary_Out* out); CreatePrimary_Out* out);
typedef struct { typedef struct {
@ -1973,13 +1974,13 @@ typedef struct {
TPM_HANDLE objectHandle; TPM_HANDLE objectHandle;
TPM2B_NAME name; TPM2B_NAME name;
} Load_Out; } Load_Out;
WOLFSSL_API TPM_RC TPM2_Load(Load_In* in, Load_Out* out); WOLFTPM_API TPM_RC TPM2_Load(Load_In* in, Load_Out* out);
typedef struct { typedef struct {
TPMI_DH_CONTEXT flushHandle; TPMI_DH_CONTEXT flushHandle;
} FlushContext_In; } FlushContext_In;
WOLFSSL_API TPM_RC TPM2_FlushContext(FlushContext_In* in); WOLFTPM_API TPM_RC TPM2_FlushContext(FlushContext_In* in);
typedef struct { typedef struct {
@ -1989,7 +1990,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_SENSITIVE_DATA outData; TPM2B_SENSITIVE_DATA outData;
} Unseal_Out; } Unseal_Out;
WOLFSSL_API TPM_RC TPM2_Unseal(Unseal_In* in, Unseal_Out* out); WOLFTPM_API TPM_RC TPM2_Unseal(Unseal_In* in, Unseal_Out* out);
typedef struct { typedef struct {
@ -2005,13 +2006,13 @@ typedef struct {
TPMI_SH_AUTH_SESSION sessionHandle; TPMI_SH_AUTH_SESSION sessionHandle;
TPM2B_NONCE nonceTPM; TPM2B_NONCE nonceTPM;
} StartAuthSession_Out; } StartAuthSession_Out;
WOLFSSL_API TPM_RC TPM2_StartAuthSession(StartAuthSession_In* in, WOLFTPM_API TPM_RC TPM2_StartAuthSession(StartAuthSession_In* in,
StartAuthSession_Out* out); StartAuthSession_Out* out);
typedef struct { typedef struct {
TPMI_SH_POLICY sessionHandle; TPMI_SH_POLICY sessionHandle;
} PolicyRestart_In; } PolicyRestart_In;
WOLFSSL_API TPM_RC TPM2_PolicyRestart(PolicyRestart_In* in); WOLFTPM_API TPM_RC TPM2_PolicyRestart(PolicyRestart_In* in);
typedef struct { typedef struct {
@ -2023,7 +2024,7 @@ typedef struct {
TPM_HANDLE objectHandle; TPM_HANDLE objectHandle;
TPM2B_NAME name; TPM2B_NAME name;
} LoadExternal_Out; } LoadExternal_Out;
WOLFSSL_API TPM_RC TPM2_LoadExternal(LoadExternal_In* in, WOLFTPM_API TPM_RC TPM2_LoadExternal(LoadExternal_In* in,
LoadExternal_Out* out); LoadExternal_Out* out);
typedef struct { typedef struct {
@ -2034,7 +2035,7 @@ typedef struct {
TPM2B_NAME name; TPM2B_NAME name;
TPM2B_NAME qualifiedName; TPM2B_NAME qualifiedName;
} ReadPublic_Out; } ReadPublic_Out;
WOLFSSL_API TPM_RC TPM2_ReadPublic(ReadPublic_In* in, ReadPublic_Out* out); WOLFTPM_API TPM_RC TPM2_ReadPublic(ReadPublic_In* in, ReadPublic_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT activateHandle; TPMI_DH_OBJECT activateHandle;
@ -2045,7 +2046,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_DIGEST certInfo; TPM2B_DIGEST certInfo;
} ActivateCredential_Out; } ActivateCredential_Out;
WOLFSSL_API TPM_RC TPM2_ActivateCredential(ActivateCredential_In* in, WOLFTPM_API TPM_RC TPM2_ActivateCredential(ActivateCredential_In* in,
ActivateCredential_Out* out); ActivateCredential_Out* out);
typedef struct { typedef struct {
@ -2057,7 +2058,7 @@ typedef struct {
TPM2B_ID_OBJECT credentialBlob; TPM2B_ID_OBJECT credentialBlob;
TPM2B_ENCRYPTED_SECRET secret; TPM2B_ENCRYPTED_SECRET secret;
} MakeCredential_Out; } MakeCredential_Out;
WOLFSSL_API TPM_RC TPM2_MakeCredential(MakeCredential_In* in, WOLFTPM_API TPM_RC TPM2_MakeCredential(MakeCredential_In* in,
MakeCredential_Out* out); MakeCredential_Out* out);
typedef struct { typedef struct {
@ -2068,7 +2069,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_PRIVATE outPrivate; TPM2B_PRIVATE outPrivate;
} ObjectChangeAuth_Out; } ObjectChangeAuth_Out;
WOLFSSL_API TPM_RC TPM2_ObjectChangeAuth(ObjectChangeAuth_In* in, WOLFTPM_API TPM_RC TPM2_ObjectChangeAuth(ObjectChangeAuth_In* in,
ObjectChangeAuth_Out* out); ObjectChangeAuth_Out* out);
@ -2083,7 +2084,7 @@ typedef struct {
TPM2B_PRIVATE duplicate; TPM2B_PRIVATE duplicate;
TPM2B_ENCRYPTED_SECRET outSymSeed; TPM2B_ENCRYPTED_SECRET outSymSeed;
} Duplicate_Out; } Duplicate_Out;
WOLFSSL_API TPM_RC TPM2_Duplicate(Duplicate_In* in, Duplicate_Out* out); WOLFTPM_API TPM_RC TPM2_Duplicate(Duplicate_In* in, Duplicate_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT oldParent; TPMI_DH_OBJECT oldParent;
@ -2096,7 +2097,7 @@ typedef struct {
TPM2B_PRIVATE outDuplicate; TPM2B_PRIVATE outDuplicate;
TPM2B_ENCRYPTED_SECRET outSymSeed; TPM2B_ENCRYPTED_SECRET outSymSeed;
} Rewrap_Out; } Rewrap_Out;
WOLFSSL_API TPM_RC TPM2_Rewrap(Rewrap_In* in, Rewrap_Out* out); WOLFTPM_API TPM_RC TPM2_Rewrap(Rewrap_In* in, Rewrap_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT parentHandle; TPMI_DH_OBJECT parentHandle;
@ -2109,7 +2110,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_PRIVATE outPrivate; TPM2B_PRIVATE outPrivate;
} Import_Out; } Import_Out;
WOLFSSL_API TPM_RC TPM2_Import(Import_In* in, Import_Out* out); WOLFTPM_API TPM_RC TPM2_Import(Import_In* in, Import_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT keyHandle; TPMI_DH_OBJECT keyHandle;
@ -2120,7 +2121,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_PUBLIC_KEY_RSA outData; TPM2B_PUBLIC_KEY_RSA outData;
} RSA_Encrypt_Out; } RSA_Encrypt_Out;
WOLFSSL_API TPM_RC TPM2_RSA_Encrypt(RSA_Encrypt_In* in, RSA_Encrypt_Out* out); WOLFTPM_API TPM_RC TPM2_RSA_Encrypt(RSA_Encrypt_In* in, RSA_Encrypt_Out* out);
typedef struct { typedef struct {
@ -2132,7 +2133,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_PUBLIC_KEY_RSA message; TPM2B_PUBLIC_KEY_RSA message;
} RSA_Decrypt_Out; } RSA_Decrypt_Out;
WOLFSSL_API TPM_RC TPM2_RSA_Decrypt(RSA_Decrypt_In* in, RSA_Decrypt_Out* out); WOLFTPM_API TPM_RC TPM2_RSA_Decrypt(RSA_Decrypt_In* in, RSA_Decrypt_Out* out);
typedef struct { typedef struct {
@ -2142,7 +2143,7 @@ typedef struct {
TPM2B_ECC_POINT zPoint; TPM2B_ECC_POINT zPoint;
TPM2B_ECC_POINT pubPoint; TPM2B_ECC_POINT pubPoint;
} ECDH_KeyGen_Out; } ECDH_KeyGen_Out;
WOLFSSL_API TPM_RC TPM2_ECDH_KeyGen(ECDH_KeyGen_In* in, ECDH_KeyGen_Out* out); WOLFTPM_API TPM_RC TPM2_ECDH_KeyGen(ECDH_KeyGen_In* in, ECDH_KeyGen_Out* out);
typedef struct { typedef struct {
@ -2152,7 +2153,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_ECC_POINT outPoint; TPM2B_ECC_POINT outPoint;
} ECDH_ZGen_Out; } ECDH_ZGen_Out;
WOLFSSL_API TPM_RC TPM2_ECDH_ZGen(ECDH_ZGen_In* in, ECDH_ZGen_Out* out); WOLFTPM_API TPM_RC TPM2_ECDH_ZGen(ECDH_ZGen_In* in, ECDH_ZGen_Out* out);
typedef struct { typedef struct {
TPMI_ECC_CURVE curveID; TPMI_ECC_CURVE curveID;
@ -2160,7 +2161,7 @@ typedef struct {
typedef struct { typedef struct {
TPMS_ALGORITHM_DETAIL_ECC parameters; TPMS_ALGORITHM_DETAIL_ECC parameters;
} ECC_Parameters_Out; } ECC_Parameters_Out;
WOLFSSL_API TPM_RC TPM2_ECC_Parameters(ECC_Parameters_In* in, WOLFTPM_API TPM_RC TPM2_ECC_Parameters(ECC_Parameters_In* in,
ECC_Parameters_Out* out); ECC_Parameters_Out* out);
typedef struct { typedef struct {
@ -2174,7 +2175,7 @@ typedef struct {
TPM2B_ECC_POINT outZ1; TPM2B_ECC_POINT outZ1;
TPM2B_ECC_POINT outZ2; TPM2B_ECC_POINT outZ2;
} ZGen_2Phase_Out; } ZGen_2Phase_Out;
WOLFSSL_API TPM_RC TPM2_ZGen_2Phase(ZGen_2Phase_In* in, ZGen_2Phase_Out* out); WOLFTPM_API TPM_RC TPM2_ZGen_2Phase(ZGen_2Phase_In* in, ZGen_2Phase_Out* out);
typedef struct { typedef struct {
@ -2188,7 +2189,7 @@ typedef struct {
TPM2B_MAX_BUFFER outData; TPM2B_MAX_BUFFER outData;
TPM2B_IV ivOut; TPM2B_IV ivOut;
} EncryptDecrypt_Out; } EncryptDecrypt_Out;
WOLFSSL_API TPM_RC TPM2_EncryptDecrypt(EncryptDecrypt_In* in, WOLFTPM_API TPM_RC TPM2_EncryptDecrypt(EncryptDecrypt_In* in,
EncryptDecrypt_Out* out); EncryptDecrypt_Out* out);
typedef struct { typedef struct {
@ -2202,7 +2203,7 @@ typedef struct {
TPM2B_MAX_BUFFER outData; TPM2B_MAX_BUFFER outData;
TPM2B_IV ivOut; TPM2B_IV ivOut;
} EncryptDecrypt2_Out; } EncryptDecrypt2_Out;
WOLFSSL_API TPM_RC TPM2_EncryptDecrypt2(EncryptDecrypt2_In* in, WOLFTPM_API TPM_RC TPM2_EncryptDecrypt2(EncryptDecrypt2_In* in,
EncryptDecrypt2_Out* out); EncryptDecrypt2_Out* out);
@ -2215,7 +2216,7 @@ typedef struct {
TPM2B_DIGEST outHash; TPM2B_DIGEST outHash;
TPMT_TK_HASHCHECK validation; TPMT_TK_HASHCHECK validation;
} Hash_Out; } Hash_Out;
WOLFSSL_API TPM_RC TPM2_Hash(Hash_In* in, Hash_Out* out); WOLFTPM_API TPM_RC TPM2_Hash(Hash_In* in, Hash_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT handle; TPMI_DH_OBJECT handle;
@ -2225,7 +2226,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_DIGEST outHMAC; TPM2B_DIGEST outHMAC;
} HMAC_Out; } HMAC_Out;
WOLFSSL_API TPM_RC TPM2_HMAC(HMAC_In* in, HMAC_Out* out); WOLFTPM_API TPM_RC TPM2_HMAC(HMAC_In* in, HMAC_Out* out);
typedef struct { typedef struct {
@ -2236,7 +2237,7 @@ typedef struct {
typedef struct { typedef struct {
TPMI_DH_OBJECT sequenceHandle; TPMI_DH_OBJECT sequenceHandle;
} HMAC_Start_Out; } HMAC_Start_Out;
WOLFSSL_API TPM_RC TPM2_HMAC_Start(HMAC_Start_In* in, HMAC_Start_Out* out); WOLFTPM_API TPM_RC TPM2_HMAC_Start(HMAC_Start_In* in, HMAC_Start_Out* out);
typedef struct { typedef struct {
@ -2246,14 +2247,14 @@ typedef struct {
typedef struct { typedef struct {
TPMI_DH_OBJECT sequenceHandle; TPMI_DH_OBJECT sequenceHandle;
} HashSequenceStart_Out; } HashSequenceStart_Out;
WOLFSSL_API TPM_RC TPM2_HashSequenceStart(HashSequenceStart_In* in, WOLFTPM_API TPM_RC TPM2_HashSequenceStart(HashSequenceStart_In* in,
HashSequenceStart_Out* out); HashSequenceStart_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT sequenceHandle; TPMI_DH_OBJECT sequenceHandle;
TPM2B_MAX_BUFFER buffer; TPM2B_MAX_BUFFER buffer;
} SequenceUpdate_In; } SequenceUpdate_In;
WOLFSSL_API TPM_RC TPM2_SequenceUpdate(SequenceUpdate_In* in); WOLFTPM_API TPM_RC TPM2_SequenceUpdate(SequenceUpdate_In* in);
typedef struct { typedef struct {
TPMI_DH_OBJECT sequenceHandle; TPMI_DH_OBJECT sequenceHandle;
@ -2264,7 +2265,7 @@ typedef struct {
TPM2B_DIGEST result; TPM2B_DIGEST result;
TPMT_TK_HASHCHECK validation; TPMT_TK_HASHCHECK validation;
} SequenceComplete_Out; } SequenceComplete_Out;
WOLFSSL_API TPM_RC TPM2_SequenceComplete(SequenceComplete_In* in, WOLFTPM_API TPM_RC TPM2_SequenceComplete(SequenceComplete_In* in,
SequenceComplete_Out* out); SequenceComplete_Out* out);
@ -2276,7 +2277,7 @@ typedef struct {
typedef struct { typedef struct {
TPML_DIGEST_VALUES results; TPML_DIGEST_VALUES results;
} EventSequenceComplete_Out; } EventSequenceComplete_Out;
WOLFSSL_API TPM_RC TPM2_EventSequenceComplete(EventSequenceComplete_In* in, WOLFTPM_API TPM_RC TPM2_EventSequenceComplete(EventSequenceComplete_In* in,
EventSequenceComplete_Out* out); EventSequenceComplete_Out* out);
@ -2290,7 +2291,7 @@ typedef struct {
TPM2B_ATTEST certifyInfo; TPM2B_ATTEST certifyInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} Certify_Out; } Certify_Out;
WOLFSSL_API TPM_RC TPM2_Certify(Certify_In* in, Certify_Out* out); WOLFTPM_API TPM_RC TPM2_Certify(Certify_In* in, Certify_Out* out);
typedef struct { typedef struct {
@ -2305,7 +2306,7 @@ typedef struct {
TPM2B_ATTEST certifyInfo; TPM2B_ATTEST certifyInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} CertifyCreation_Out; } CertifyCreation_Out;
WOLFSSL_API TPM_RC TPM2_CertifyCreation(CertifyCreation_In* in, CertifyCreation_Out* out); WOLFTPM_API TPM_RC TPM2_CertifyCreation(CertifyCreation_In* in, CertifyCreation_Out* out);
typedef struct { typedef struct {
@ -2318,7 +2319,7 @@ typedef struct {
TPM2B_ATTEST quoted; TPM2B_ATTEST quoted;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} Quote_Out; } Quote_Out;
WOLFSSL_API TPM_RC TPM2_Quote(Quote_In* in, Quote_Out* out); WOLFTPM_API TPM_RC TPM2_Quote(Quote_In* in, Quote_Out* out);
typedef struct { typedef struct {
TPMI_RH_ENDORSEMENT privacyAdminHandle; TPMI_RH_ENDORSEMENT privacyAdminHandle;
@ -2331,7 +2332,7 @@ typedef struct {
TPM2B_ATTEST auditInfo; TPM2B_ATTEST auditInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} GetSessionAuditDigest_Out; } GetSessionAuditDigest_Out;
WOLFSSL_API TPM_RC TPM2_GetSessionAuditDigest(GetSessionAuditDigest_In* in, WOLFTPM_API TPM_RC TPM2_GetSessionAuditDigest(GetSessionAuditDigest_In* in,
GetSessionAuditDigest_Out* out); GetSessionAuditDigest_Out* out);
typedef struct { typedef struct {
@ -2344,7 +2345,7 @@ typedef struct {
TPM2B_ATTEST auditInfo; TPM2B_ATTEST auditInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} GetCommandAuditDigest_Out; } GetCommandAuditDigest_Out;
WOLFSSL_API TPM_RC TPM2_GetCommandAuditDigest(GetCommandAuditDigest_In* in, WOLFTPM_API TPM_RC TPM2_GetCommandAuditDigest(GetCommandAuditDigest_In* in,
GetCommandAuditDigest_Out* out); GetCommandAuditDigest_Out* out);
typedef struct { typedef struct {
@ -2357,7 +2358,7 @@ typedef struct {
TPM2B_ATTEST timeInfo; TPM2B_ATTEST timeInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} GetTime_Out; } GetTime_Out;
WOLFSSL_API TPM_RC TPM2_GetTime(GetTime_In* in, GetTime_Out* out); WOLFTPM_API TPM_RC TPM2_GetTime(GetTime_In* in, GetTime_Out* out);
typedef struct { typedef struct {
TPMI_DH_OBJECT signHandle; TPMI_DH_OBJECT signHandle;
@ -2371,7 +2372,7 @@ typedef struct {
TPM2B_ECC_POINT E; TPM2B_ECC_POINT E;
UINT16 counter; UINT16 counter;
} Commit_Out; } Commit_Out;
WOLFSSL_API TPM_RC TPM2_Commit(Commit_In* in, Commit_Out* out); WOLFTPM_API TPM_RC TPM2_Commit(Commit_In* in, Commit_Out* out);
typedef struct { typedef struct {
@ -2381,7 +2382,7 @@ typedef struct {
TPM2B_ECC_POINT Q; TPM2B_ECC_POINT Q;
UINT16 counter; UINT16 counter;
} EC_Ephemeral_Out; } EC_Ephemeral_Out;
WOLFSSL_API TPM_RC TPM2_EC_Ephemeral(EC_Ephemeral_In* in, WOLFTPM_API TPM_RC TPM2_EC_Ephemeral(EC_Ephemeral_In* in,
EC_Ephemeral_Out* out); EC_Ephemeral_Out* out);
typedef struct { typedef struct {
@ -2392,7 +2393,7 @@ typedef struct {
typedef struct { typedef struct {
TPMT_TK_VERIFIED validation; TPMT_TK_VERIFIED validation;
} VerifySignature_Out; } VerifySignature_Out;
WOLFSSL_API TPM_RC TPM2_VerifySignature(VerifySignature_In* in, WOLFTPM_API TPM_RC TPM2_VerifySignature(VerifySignature_In* in,
VerifySignature_Out* out); VerifySignature_Out* out);
@ -2405,7 +2406,7 @@ typedef struct {
typedef struct { typedef struct {
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} Sign_Out; } Sign_Out;
WOLFSSL_API TPM_RC TPM2_Sign(Sign_In* in, Sign_Out* out); WOLFTPM_API TPM_RC TPM2_Sign(Sign_In* in, Sign_Out* out);
typedef struct { typedef struct {
@ -2414,7 +2415,7 @@ typedef struct {
TPML_CC setList; TPML_CC setList;
TPML_CC clearList; TPML_CC clearList;
} SetCommandCodeAuditStatus_In; } SetCommandCodeAuditStatus_In;
WOLFSSL_API TPM_RC TPM2_SetCommandCodeAuditStatus( WOLFTPM_API TPM_RC TPM2_SetCommandCodeAuditStatus(
SetCommandCodeAuditStatus_In* in); SetCommandCodeAuditStatus_In* in);
@ -2425,7 +2426,7 @@ typedef struct {
typedef struct { typedef struct {
TPML_DIGEST_VALUES digests; TPML_DIGEST_VALUES digests;
} PCR_Event_Out; } PCR_Event_Out;
WOLFSSL_API TPM_RC TPM2_PCR_Event(PCR_Event_In* in, PCR_Event_Out* out); WOLFTPM_API TPM_RC TPM2_PCR_Event(PCR_Event_In* in, PCR_Event_Out* out);
typedef struct { typedef struct {
@ -2438,7 +2439,7 @@ typedef struct {
UINT32 sizeNeeded; UINT32 sizeNeeded;
UINT32 sizeAvailable; UINT32 sizeAvailable;
} PCR_Allocate_Out; } PCR_Allocate_Out;
WOLFSSL_API TPM_RC TPM2_PCR_Allocate(PCR_Allocate_In* in, WOLFTPM_API TPM_RC TPM2_PCR_Allocate(PCR_Allocate_In* in,
PCR_Allocate_Out* out); PCR_Allocate_Out* out);
typedef struct { typedef struct {
@ -2447,18 +2448,18 @@ typedef struct {
TPMI_ALG_HASH hashAlg; TPMI_ALG_HASH hashAlg;
TPMI_DH_PCR pcrNum; TPMI_DH_PCR pcrNum;
} PCR_SetAuthPolicy_In; } PCR_SetAuthPolicy_In;
WOLFSSL_API TPM_RC TPM2_PCR_SetAuthPolicy(PCR_SetAuthPolicy_In* in); WOLFTPM_API TPM_RC TPM2_PCR_SetAuthPolicy(PCR_SetAuthPolicy_In* in);
typedef struct { typedef struct {
TPMI_DH_PCR pcrHandle; TPMI_DH_PCR pcrHandle;
TPM2B_DIGEST auth; TPM2B_DIGEST auth;
} PCR_SetAuthValue_In; } PCR_SetAuthValue_In;
WOLFSSL_API TPM_RC TPM2_PCR_SetAuthValue(PCR_SetAuthValue_In* in); WOLFTPM_API TPM_RC TPM2_PCR_SetAuthValue(PCR_SetAuthValue_In* in);
typedef struct { typedef struct {
TPMI_DH_PCR pcrHandle; TPMI_DH_PCR pcrHandle;
} PCR_Reset_In; } PCR_Reset_In;
WOLFSSL_API TPM_RC TPM2_PCR_Reset(PCR_Reset_In* in); WOLFTPM_API TPM_RC TPM2_PCR_Reset(PCR_Reset_In* in);
typedef struct { typedef struct {
@ -2474,7 +2475,7 @@ typedef struct {
TPM2B_TIMEOUT timeout; TPM2B_TIMEOUT timeout;
TPMT_TK_AUTH policyTicket; TPMT_TK_AUTH policyTicket;
} PolicySigned_Out; } PolicySigned_Out;
WOLFSSL_API TPM_RC TPM2_PolicySigned(PolicySigned_In* in, WOLFTPM_API TPM_RC TPM2_PolicySigned(PolicySigned_In* in,
PolicySigned_Out* out); PolicySigned_Out* out);
typedef struct { typedef struct {
@ -2489,7 +2490,7 @@ typedef struct {
TPM2B_TIMEOUT timeout; TPM2B_TIMEOUT timeout;
TPMT_TK_AUTH policyTicket; TPMT_TK_AUTH policyTicket;
} PolicySecret_Out; } PolicySecret_Out;
WOLFSSL_API TPM_RC TPM2_PolicySecret(PolicySecret_In* in, WOLFTPM_API TPM_RC TPM2_PolicySecret(PolicySecret_In* in,
PolicySecret_Out* out); PolicySecret_Out* out);
typedef struct { typedef struct {
@ -2500,26 +2501,26 @@ typedef struct {
TPM2B_NAME authName; TPM2B_NAME authName;
TPMT_TK_AUTH ticket; TPMT_TK_AUTH ticket;
} PolicyTicket_In; } PolicyTicket_In;
WOLFSSL_API TPM_RC TPM2_PolicyTicket(PolicyTicket_In* in); WOLFTPM_API TPM_RC TPM2_PolicyTicket(PolicyTicket_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPML_DIGEST pHashList; TPML_DIGEST pHashList;
} PolicyOR_In; } PolicyOR_In;
WOLFSSL_API TPM_RC TPM2_PolicyOR(PolicyOR_In* in); WOLFTPM_API TPM_RC TPM2_PolicyOR(PolicyOR_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPM2B_DIGEST pcrDigest; TPM2B_DIGEST pcrDigest;
TPML_PCR_SELECTION pcrs; TPML_PCR_SELECTION pcrs;
} PolicyPCR_In; } PolicyPCR_In;
WOLFSSL_API TPM_RC TPM2_PolicyPCR(PolicyPCR_In* in); WOLFTPM_API TPM_RC TPM2_PolicyPCR(PolicyPCR_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPMA_LOCALITY locality; TPMA_LOCALITY locality;
} PolicyLocality_In; } PolicyLocality_In;
WOLFSSL_API TPM_RC TPM2_PolicyLocality(PolicyLocality_In* in); WOLFTPM_API TPM_RC TPM2_PolicyLocality(PolicyLocality_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
@ -2529,7 +2530,7 @@ typedef struct {
UINT16 offset; UINT16 offset;
TPM_EO operation; TPM_EO operation;
} PolicyNV_In; } PolicyNV_In;
WOLFSSL_API TPM_RC TPM2_PolicyNV(PolicyNV_In* in); WOLFTPM_API TPM_RC TPM2_PolicyNV(PolicyNV_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
@ -2537,30 +2538,30 @@ typedef struct {
UINT16 offset; UINT16 offset;
TPM_EO operation; TPM_EO operation;
} PolicyCounterTimer_In; } PolicyCounterTimer_In;
WOLFSSL_API TPM_RC TPM2_PolicyCounterTimer(PolicyCounterTimer_In* in); WOLFTPM_API TPM_RC TPM2_PolicyCounterTimer(PolicyCounterTimer_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPM_CC code; TPM_CC code;
} PolicyCommandCode_In; } PolicyCommandCode_In;
WOLFSSL_API TPM_RC TPM2_PolicyCommandCode(PolicyCommandCode_In* in); WOLFTPM_API TPM_RC TPM2_PolicyCommandCode(PolicyCommandCode_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
} PolicyPhysicalPresence_In; } PolicyPhysicalPresence_In;
WOLFSSL_API TPM_RC TPM2_PolicyPhysicalPresence(PolicyPhysicalPresence_In* in); WOLFTPM_API TPM_RC TPM2_PolicyPhysicalPresence(PolicyPhysicalPresence_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPM2B_DIGEST cpHashA; TPM2B_DIGEST cpHashA;
} PolicyCpHash_In; } PolicyCpHash_In;
WOLFSSL_API TPM_RC TPM2_PolicyCpHash(PolicyCpHash_In* in); WOLFTPM_API TPM_RC TPM2_PolicyCpHash(PolicyCpHash_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPM2B_DIGEST nameHash; TPM2B_DIGEST nameHash;
} PolicyNameHash_In; } PolicyNameHash_In;
WOLFSSL_API TPM_RC TPM2_PolicyNameHash(PolicyNameHash_In* in); WOLFTPM_API TPM_RC TPM2_PolicyNameHash(PolicyNameHash_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
@ -2568,7 +2569,7 @@ typedef struct {
TPM2B_NAME newParentName; TPM2B_NAME newParentName;
TPMI_YES_NO includeObject; TPMI_YES_NO includeObject;
} PolicyDuplicationSelect_In; } PolicyDuplicationSelect_In;
WOLFSSL_API TPM_RC TPM2_PolicyDuplicationSelect(PolicyDuplicationSelect_In* in); WOLFTPM_API TPM_RC TPM2_PolicyDuplicationSelect(PolicyDuplicationSelect_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
@ -2577,17 +2578,17 @@ typedef struct {
TPM2B_NAME keySign; TPM2B_NAME keySign;
TPMT_TK_VERIFIED checkTicket; TPMT_TK_VERIFIED checkTicket;
} PolicyAuthorize_In; } PolicyAuthorize_In;
WOLFSSL_API TPM_RC TPM2_PolicyAuthorize(PolicyAuthorize_In* in); WOLFTPM_API TPM_RC TPM2_PolicyAuthorize(PolicyAuthorize_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
} PolicyAuthValue_In; } PolicyAuthValue_In;
WOLFSSL_API TPM_RC TPM2_PolicyAuthValue(PolicyAuthValue_In* in); WOLFTPM_API TPM_RC TPM2_PolicyAuthValue(PolicyAuthValue_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
} PolicyPassword_In; } PolicyPassword_In;
WOLFSSL_API TPM_RC TPM2_PolicyPassword(PolicyPassword_In* in); WOLFTPM_API TPM_RC TPM2_PolicyPassword(PolicyPassword_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
@ -2595,32 +2596,32 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_DIGEST policyDigest; TPM2B_DIGEST policyDigest;
} PolicyGetDigest_Out; } PolicyGetDigest_Out;
WOLFSSL_API TPM_RC TPM2_PolicyGetDigest(PolicyGetDigest_In* in, PolicyGetDigest_Out* out); WOLFTPM_API TPM_RC TPM2_PolicyGetDigest(PolicyGetDigest_In* in, PolicyGetDigest_Out* out);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPMI_YES_NO writtenSet; TPMI_YES_NO writtenSet;
} PolicyNvWritten_In; } PolicyNvWritten_In;
WOLFSSL_API TPM_RC TPM2_PolicyNvWritten(PolicyNvWritten_In* in); WOLFTPM_API TPM_RC TPM2_PolicyNvWritten(PolicyNvWritten_In* in);
typedef struct { typedef struct {
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
TPM2B_DIGEST templateHash; TPM2B_DIGEST templateHash;
} PolicyTemplate_In; } PolicyTemplate_In;
WOLFSSL_API TPM_RC TPM2_PolicyTemplate(PolicyTemplate_In* in); WOLFTPM_API TPM_RC TPM2_PolicyTemplate(PolicyTemplate_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
TPMI_SH_POLICY policySession; TPMI_SH_POLICY policySession;
} PolicyAuthorizeNV_In; } PolicyAuthorizeNV_In;
WOLFSSL_API TPM_RC TPM2_PolicyAuthorizeNV(PolicyAuthorizeNV_In* in); WOLFTPM_API TPM_RC TPM2_PolicyAuthorizeNV(PolicyAuthorizeNV_In* in);
WOLFSSL_API void _TPM_Hash_Start(void); WOLFTPM_API void _TPM_Hash_Start(void);
WOLFSSL_API void _TPM_Hash_Data(UINT32 dataSize, BYTE *data); WOLFTPM_API void _TPM_Hash_Data(UINT32 dataSize, BYTE *data);
WOLFSSL_API void _TPM_Hash_End(void); WOLFTPM_API void _TPM_Hash_End(void);
typedef struct { typedef struct {
@ -2628,48 +2629,48 @@ typedef struct {
TPMI_RH_ENABLES enable; TPMI_RH_ENABLES enable;
TPMI_YES_NO state; TPMI_YES_NO state;
} HierarchyControl_In; } HierarchyControl_In;
WOLFSSL_API TPM_RC TPM2_HierarchyControl(HierarchyControl_In* in); WOLFTPM_API TPM_RC TPM2_HierarchyControl(HierarchyControl_In* in);
typedef struct { typedef struct {
TPMI_RH_HIERARCHY_AUTH authHandle; TPMI_RH_HIERARCHY_AUTH authHandle;
TPM2B_DIGEST authPolicy; TPM2B_DIGEST authPolicy;
TPMI_ALG_HASH hashAlg; TPMI_ALG_HASH hashAlg;
} SetPrimaryPolicy_In; } SetPrimaryPolicy_In;
WOLFSSL_API TPM_RC TPM2_SetPrimaryPolicy(SetPrimaryPolicy_In* in); WOLFTPM_API TPM_RC TPM2_SetPrimaryPolicy(SetPrimaryPolicy_In* in);
typedef struct { typedef struct {
TPMI_RH_PLATFORM authHandle; TPMI_RH_PLATFORM authHandle;
} ChangePPS_In; } ChangePPS_In;
WOLFSSL_API TPM_RC TPM2_ChangePPS(ChangePPS_In* in); WOLFTPM_API TPM_RC TPM2_ChangePPS(ChangePPS_In* in);
typedef struct { typedef struct {
TPMI_RH_PLATFORM authHandle; TPMI_RH_PLATFORM authHandle;
} ChangeEPS_In; } ChangeEPS_In;
WOLFSSL_API TPM_RC TPM2_ChangeEPS(ChangeEPS_In* in); WOLFTPM_API TPM_RC TPM2_ChangeEPS(ChangeEPS_In* in);
typedef struct { typedef struct {
TPMI_RH_CLEAR authHandle; TPMI_RH_CLEAR authHandle;
} Clear_In; } Clear_In;
WOLFSSL_API TPM_RC TPM2_Clear(Clear_In* in); WOLFTPM_API TPM_RC TPM2_Clear(Clear_In* in);
typedef struct { typedef struct {
TPMI_RH_CLEAR auth; TPMI_RH_CLEAR auth;
TPMI_YES_NO disable; TPMI_YES_NO disable;
} ClearControl_In; } ClearControl_In;
WOLFSSL_API TPM_RC TPM2_ClearControl(ClearControl_In* in); WOLFTPM_API TPM_RC TPM2_ClearControl(ClearControl_In* in);
typedef struct { typedef struct {
TPMI_RH_HIERARCHY_AUTH authHandle; TPMI_RH_HIERARCHY_AUTH authHandle;
TPM2B_AUTH newAuth; TPM2B_AUTH newAuth;
} HierarchyChangeAuth_In; } HierarchyChangeAuth_In;
WOLFSSL_API TPM_RC TPM2_HierarchyChangeAuth(HierarchyChangeAuth_In* in); WOLFTPM_API TPM_RC TPM2_HierarchyChangeAuth(HierarchyChangeAuth_In* in);
typedef struct { typedef struct {
TPMI_RH_LOCKOUT lockHandle; TPMI_RH_LOCKOUT lockHandle;
} DictionaryAttackLockReset_In; } DictionaryAttackLockReset_In;
WOLFSSL_API TPM_RC TPM2_DictionaryAttackLockReset(DictionaryAttackLockReset_In* in); WOLFTPM_API TPM_RC TPM2_DictionaryAttackLockReset(DictionaryAttackLockReset_In* in);
typedef struct { typedef struct {
TPMI_RH_LOCKOUT lockHandle; TPMI_RH_LOCKOUT lockHandle;
@ -2677,7 +2678,7 @@ typedef struct {
UINT32 newRecoveryTime; UINT32 newRecoveryTime;
UINT32 lockoutRecovery; UINT32 lockoutRecovery;
} DictionaryAttackParameters_In; } DictionaryAttackParameters_In;
WOLFSSL_API TPM_RC TPM2_DictionaryAttackParameters(DictionaryAttackParameters_In* in); WOLFTPM_API TPM_RC TPM2_DictionaryAttackParameters(DictionaryAttackParameters_In* in);
typedef struct { typedef struct {
@ -2685,13 +2686,13 @@ typedef struct {
TPML_CC setList; TPML_CC setList;
TPML_CC clearList; TPML_CC clearList;
} PP_Commands_In; } PP_Commands_In;
WOLFSSL_API TPM_RC TPM2_PP_Commands(PP_Commands_In* in); WOLFTPM_API TPM_RC TPM2_PP_Commands(PP_Commands_In* in);
typedef struct { typedef struct {
TPMI_RH_PLATFORM authHandle; TPMI_RH_PLATFORM authHandle;
UINT32 algorithmSet; UINT32 algorithmSet;
} SetAlgorithmSet_In; } SetAlgorithmSet_In;
WOLFSSL_API TPM_RC TPM2_SetAlgorithmSet(SetAlgorithmSet_In* in); WOLFTPM_API TPM_RC TPM2_SetAlgorithmSet(SetAlgorithmSet_In* in);
typedef struct { typedef struct {
TPMI_RH_PLATFORM authorization; TPMI_RH_PLATFORM authorization;
@ -2699,7 +2700,7 @@ typedef struct {
TPM2B_DIGEST fuDigest; TPM2B_DIGEST fuDigest;
TPMT_SIGNATURE manifestSignature; TPMT_SIGNATURE manifestSignature;
} FieldUpgradeStart_In; } FieldUpgradeStart_In;
WOLFSSL_API TPM_RC TPM2_FieldUpgradeStart(FieldUpgradeStart_In* in); WOLFTPM_API TPM_RC TPM2_FieldUpgradeStart(FieldUpgradeStart_In* in);
typedef struct { typedef struct {
TPM2B_MAX_BUFFER fuData; TPM2B_MAX_BUFFER fuData;
@ -2708,7 +2709,7 @@ typedef struct {
TPMT_HA nextDigest; TPMT_HA nextDigest;
TPMT_HA firstDigest; TPMT_HA firstDigest;
} FieldUpgradeData_Out; } FieldUpgradeData_Out;
WOLFSSL_API TPM_RC TPM2_FieldUpgradeData(FieldUpgradeData_In* in, WOLFTPM_API TPM_RC TPM2_FieldUpgradeData(FieldUpgradeData_In* in,
FieldUpgradeData_Out* out); FieldUpgradeData_Out* out);
typedef struct { typedef struct {
@ -2717,7 +2718,7 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_MAX_BUFFER fuData; TPM2B_MAX_BUFFER fuData;
} FirmwareRead_Out; } FirmwareRead_Out;
WOLFSSL_API TPM_RC TPM2_FirmwareRead(FirmwareRead_In* in, FirmwareRead_Out* out); WOLFTPM_API TPM_RC TPM2_FirmwareRead(FirmwareRead_In* in, FirmwareRead_Out* out);
typedef struct { typedef struct {
@ -2726,7 +2727,7 @@ typedef struct {
typedef struct { typedef struct {
TPMS_CONTEXT context; TPMS_CONTEXT context;
} ContextSave_Out; } ContextSave_Out;
WOLFSSL_API TPM_RC TPM2_ContextSave(ContextSave_In* in, ContextSave_Out* out); WOLFTPM_API TPM_RC TPM2_ContextSave(ContextSave_In* in, ContextSave_Out* out);
typedef struct { typedef struct {
TPMS_CONTEXT context; TPMS_CONTEXT context;
@ -2734,7 +2735,7 @@ typedef struct {
typedef struct { typedef struct {
TPMI_DH_CONTEXT loadedHandle; TPMI_DH_CONTEXT loadedHandle;
} ContextLoad_Out; } ContextLoad_Out;
WOLFSSL_API TPM_RC TPM2_ContextLoad(ContextLoad_In* in, ContextLoad_Out* out); WOLFTPM_API TPM_RC TPM2_ContextLoad(ContextLoad_In* in, ContextLoad_Out* out);
typedef struct { typedef struct {
@ -2742,31 +2743,31 @@ typedef struct {
TPMI_DH_OBJECT objectHandle; TPMI_DH_OBJECT objectHandle;
TPMI_DH_PERSISTENT persistentHandle; TPMI_DH_PERSISTENT persistentHandle;
} EvictControl_In; } EvictControl_In;
WOLFSSL_API TPM_RC TPM2_EvictControl(EvictControl_In* in); WOLFTPM_API TPM_RC TPM2_EvictControl(EvictControl_In* in);
typedef struct { typedef struct {
TPMS_TIME_INFO currentTime; TPMS_TIME_INFO currentTime;
} ReadClock_Out; } ReadClock_Out;
WOLFSSL_API TPM_RC TPM2_ReadClock(ReadClock_Out* out); WOLFTPM_API TPM_RC TPM2_ReadClock(ReadClock_Out* out);
typedef struct { typedef struct {
TPMI_RH_PROVISION auth; TPMI_RH_PROVISION auth;
UINT64 newTime; UINT64 newTime;
} ClockSet_In; } ClockSet_In;
WOLFSSL_API TPM_RC TPM2_ClockSet(ClockSet_In* in); WOLFTPM_API TPM_RC TPM2_ClockSet(ClockSet_In* in);
typedef struct { typedef struct {
TPMI_RH_PROVISION auth; TPMI_RH_PROVISION auth;
TPM_CLOCK_ADJUST rateAdjust; TPM_CLOCK_ADJUST rateAdjust;
} ClockRateAdjust_In; } ClockRateAdjust_In;
WOLFSSL_API TPM_RC TPM2_ClockRateAdjust(ClockRateAdjust_In* in); WOLFTPM_API TPM_RC TPM2_ClockRateAdjust(ClockRateAdjust_In* in);
typedef struct { typedef struct {
TPMT_PUBLIC_PARMS parameters; TPMT_PUBLIC_PARMS parameters;
} TestParms_In; } TestParms_In;
WOLFSSL_API TPM_RC TPM2_TestParms(TestParms_In* in); WOLFTPM_API TPM_RC TPM2_TestParms(TestParms_In* in);
typedef struct { typedef struct {
@ -2774,19 +2775,19 @@ typedef struct {
TPM2B_AUTH auth; TPM2B_AUTH auth;
TPM2B_NV_PUBLIC publicInfo; TPM2B_NV_PUBLIC publicInfo;
} NV_DefineSpace_In; } NV_DefineSpace_In;
WOLFSSL_API TPM_RC TPM2_NV_DefineSpace(NV_DefineSpace_In* in); WOLFTPM_API TPM_RC TPM2_NV_DefineSpace(NV_DefineSpace_In* in);
typedef struct { typedef struct {
TPMI_RH_PROVISION authHandle; TPMI_RH_PROVISION authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
} NV_UndefineSpace_In; } NV_UndefineSpace_In;
WOLFSSL_API TPM_RC TPM2_NV_UndefineSpace(NV_UndefineSpace_In* in); WOLFTPM_API TPM_RC TPM2_NV_UndefineSpace(NV_UndefineSpace_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
TPMI_RH_PLATFORM platform; TPMI_RH_PLATFORM platform;
} NV_UndefineSpaceSpecial_In; } NV_UndefineSpaceSpecial_In;
WOLFSSL_API TPM_RC TPM2_NV_UndefineSpaceSpecial(NV_UndefineSpaceSpecial_In* in); WOLFTPM_API TPM_RC TPM2_NV_UndefineSpaceSpecial(NV_UndefineSpaceSpecial_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
@ -2795,7 +2796,7 @@ typedef struct {
TPM2B_NV_PUBLIC nvPublic; TPM2B_NV_PUBLIC nvPublic;
TPM2B_NAME nvName; TPM2B_NAME nvName;
} NV_ReadPublic_Out; } NV_ReadPublic_Out;
WOLFSSL_API TPM_RC TPM2_NV_ReadPublic(NV_ReadPublic_In* in, NV_ReadPublic_Out* out); WOLFTPM_API TPM_RC TPM2_NV_ReadPublic(NV_ReadPublic_In* in, NV_ReadPublic_Out* out);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
@ -2803,38 +2804,38 @@ typedef struct {
TPM2B_MAX_NV_BUFFER data; TPM2B_MAX_NV_BUFFER data;
UINT16 offset; UINT16 offset;
} NV_Write_In; } NV_Write_In;
WOLFSSL_API TPM_RC TPM2_NV_Write(NV_Write_In* in); WOLFTPM_API TPM_RC TPM2_NV_Write(NV_Write_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
} NV_Increment_In; } NV_Increment_In;
WOLFSSL_API TPM_RC TPM2_NV_Increment(NV_Increment_In* in); WOLFTPM_API TPM_RC TPM2_NV_Increment(NV_Increment_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
TPM2B_MAX_NV_BUFFER data; TPM2B_MAX_NV_BUFFER data;
} NV_Extend_In; } NV_Extend_In;
WOLFSSL_API TPM_RC TPM2_NV_Extend(NV_Extend_In* in); WOLFTPM_API TPM_RC TPM2_NV_Extend(NV_Extend_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
UINT64 bits; UINT64 bits;
} NV_SetBits_In; } NV_SetBits_In;
WOLFSSL_API TPM_RC TPM2_NV_SetBits(NV_SetBits_In* in); WOLFTPM_API TPM_RC TPM2_NV_SetBits(NV_SetBits_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
} NV_WriteLock_In; } NV_WriteLock_In;
WOLFSSL_API TPM_RC TPM2_NV_WriteLock(NV_WriteLock_In* in); WOLFTPM_API TPM_RC TPM2_NV_WriteLock(NV_WriteLock_In* in);
typedef struct { typedef struct {
TPMI_RH_PROVISION authHandle; TPMI_RH_PROVISION authHandle;
} NV_GlobalWriteLock_In; } NV_GlobalWriteLock_In;
WOLFSSL_API TPM_RC TPM2_NV_GlobalWriteLock(NV_GlobalWriteLock_In* in); WOLFTPM_API TPM_RC TPM2_NV_GlobalWriteLock(NV_GlobalWriteLock_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
@ -2845,19 +2846,19 @@ typedef struct {
typedef struct { typedef struct {
TPM2B_MAX_NV_BUFFER data; TPM2B_MAX_NV_BUFFER data;
} NV_Read_Out; } NV_Read_Out;
WOLFSSL_API TPM_RC TPM2_NV_Read(NV_Read_In* in, NV_Read_Out* out); WOLFTPM_API TPM_RC TPM2_NV_Read(NV_Read_In* in, NV_Read_Out* out);
typedef struct { typedef struct {
TPMI_RH_NV_AUTH authHandle; TPMI_RH_NV_AUTH authHandle;
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
} NV_ReadLock_In; } NV_ReadLock_In;
WOLFSSL_API TPM_RC TPM2_NV_ReadLock(NV_ReadLock_In* in); WOLFTPM_API TPM_RC TPM2_NV_ReadLock(NV_ReadLock_In* in);
typedef struct { typedef struct {
TPMI_RH_NV_INDEX nvIndex; TPMI_RH_NV_INDEX nvIndex;
TPM2B_AUTH newAuth; TPM2B_AUTH newAuth;
} NV_ChangeAuth_In; } NV_ChangeAuth_In;
WOLFSSL_API TPM_RC TPM2_NV_ChangeAuth(NV_ChangeAuth_In* in); WOLFTPM_API TPM_RC TPM2_NV_ChangeAuth(NV_ChangeAuth_In* in);
typedef struct { typedef struct {
TPMI_DH_OBJECT signHandle; TPMI_DH_OBJECT signHandle;
@ -2872,13 +2873,13 @@ typedef struct {
TPM2B_ATTEST certifyInfo; TPM2B_ATTEST certifyInfo;
TPMT_SIGNATURE signature; TPMT_SIGNATURE signature;
} NV_Certify_Out; } NV_Certify_Out;
WOLFSSL_API TPM_RC TPM2_NV_Certify(NV_Certify_In* in, NV_Certify_Out* out); WOLFTPM_API TPM_RC TPM2_NV_Certify(NV_Certify_In* in, NV_Certify_Out* out);
/* Helper API's - Not based on spec */ /* Helper API's - Not based on spec */
WOLFSSL_API int TPM2_GetHashDigestSize(TPMI_ALG_HASH hashAlg); WOLFTPM_API int TPM2_GetHashDigestSize(TPMI_ALG_HASH hashAlg);
WOLFSSL_API const char* TPM2_GetAlgName(TPM_ALG_ID alg); WOLFTPM_API const char* TPM2_GetAlgName(TPM_ALG_ID alg);
WOLFSSL_API const char* TPM2_GetRCString(TPM_RC rc); WOLFTPM_API const char* TPM2_GetRCString(TPM_RC rc);
WOLFSSL_API void TPM2_SetupPCRSel(TPML_PCR_SELECTION* pcr, TPM_ALG_ID alg, int pcrIndex); WOLFTPM_API void TPM2_SetupPCRSel(TPML_PCR_SELECTION* pcr, TPM_ALG_ID alg, int pcrIndex);
#endif /* __TPM2_H__ */ #endif /* __TPM2_H__ */

View File

@ -2,14 +2,14 @@
* *
* Copyright (C) 2006-2018 wolfSSL Inc. * Copyright (C) 2006-2018 wolfSSL Inc.
* *
* This file is part of wolfMQTT. * This file is part of wolfTPM.
* *
* wolfMQTT is free software; you can redistribute it and/or modify * wolfTPM is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* wolfMQTT is distributed in the hope that it will be useful, * wolfTPM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
@ -21,41 +21,41 @@
/* Visibility control macros */ /* Visibility control macros */
#ifndef WOLFMQTT_VISIBILITY_H #ifndef WOLFTPM_VISIBILITY_H
#define WOLFMQTT_VISIBILITY_H #define WOLFTPM_VISIBILITY_H
/* WOLFMQTT_API is used for the public API symbols. /* WOLFTPM_API is used for the public API symbols.
It either imports or exports (or does nothing for static builds) It either imports or exports (or does nothing for static builds)
WOLFMQTT_LOCAL is used for non-API symbols (private). WOLFTPM_LOCAL is used for non-API symbols (private).
*/ */
#if defined(BUILDING_WOLFMQTT) #if defined(BUILDING_WOLFTPM)
#if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY #if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
#define WOLFMQTT_API __attribute__ ((visibility("default"))) #define WOLFTPM_API __attribute__ ((visibility("default")))
#define WOLFMQTT_LOCAL __attribute__ ((visibility("hidden"))) #define WOLFTPM_LOCAL __attribute__ ((visibility("hidden")))
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
#define WOLFMQTT_API __global #define WOLFTPM_API __global
#define WOLFMQTT_LOCAL __hidden #define WOLFTPM_LOCAL __hidden
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
#ifdef _WINDLL #ifdef _WINDLL
#define WOLFMQTT_API __declspec(dllexport) #define WOLFTPM_API __declspec(dllexport)
#else #else
#define WOLFMQTT_API #define WOLFTPM_API
#endif #endif
#define WOLFMQTT_LOCAL #define WOLFTPM_LOCAL
#else #else
#define WOLFMQTT_API #define WOLFTPM_API
#define WOLFMQTT_LOCAL #define WOLFTPM_LOCAL
#endif /* HAVE_VISIBILITY */ #endif /* HAVE_VISIBILITY */
#else /* BUILDING_WOLFMQTT */ #else /* BUILDING_WOLFTPM */
#if defined(_MSC_VER) #if defined(_MSC_VER)
#define WOLFMQTT_API __declspec(dllimport) #define WOLFTPM_API __declspec(dllimport)
#define WOLFMQTT_LOCAL #define WOLFTPM_LOCAL
#else #else
#define WOLFMQTT_API #define WOLFTPM_API
#define WOLFMQTT_LOCAL #define WOLFTPM_LOCAL
#endif #endif
#endif /* BUILDING_WOLFMQTT */ #endif /* BUILDING_WOLFTPM */
#endif /* WOLFMQTT_VISIBILITY_H */ #endif /* WOLFTPM_VISIBILITY_H */