CFLAGS="$save_CFLAGS"
])
+AS_IF([test -n "$tss2lib"], [
+ # Check for Esys_SetCryptoCallbacks availability
+ save_LIBS=$LIBS
+ save_CFLAGS=$CFLAGS
+ LIBS="$LIBS $TSS2_ESYS_LIBS"
+ CFLAGS="$CFLAGS $TSS2_ESYS_CFLAGS"
+ AC_CHECK_FUNCS([Esys_SetCryptoCallbacks])
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+])
+
+AM_CONDITIONAL(NEED_ESYS_CRYPTO_CALLBACKS, test "$ac_cv_func_Esys_SetCryptoCallbacks" = "yes")
+
AC_ARG_WITH(tpm,
AS_HELP_STRING([--without-tpm],
[Disable TPM (trousers) support.]),
endif
if ENABLE_TPM2
-COBJECTS += tpm2/tpm2.c tpm2/tpm2.h tpm2/tpm2_esys.c tpm2/callbacks/esys_crypto_callbacks.h tpm2/callbacks/esys_crypto_callbacks.c \
+COBJECTS += tpm2/tpm2.c tpm2/tpm2.h tpm2/tpm2_esys.c
+if NEED_ESYS_CRYPTO_CALLBACKS
+COBJECTS += tpm2/callbacks/esys_crypto_callbacks.h tpm2/callbacks/esys_crypto_callbacks.c \
tpm2/callbacks/aes/aes_callbacks.h tpm2/callbacks/aes/aes_callbacks.c tpm2/callbacks/ecdh/ecdh_callbacks.h \
tpm2/callbacks/ecdh/ecdh_callbacks.c tpm2/callbacks/random/random_callbacks.h tpm2/callbacks/random/random_callbacks.c \
tpm2/callbacks/hmac/hmac_callbacks.h tpm2/callbacks/hmac/hmac_callbacks.c tpm2/callbacks/hash/hash_callbacks.h \
tpm2/callbacks/hash/hash_callbacks.c tpm2/callbacks/rsa/rsa_callbacks.h tpm2/callbacks/rsa/rsa_callbacks.c
+endif
COBJECTS += dlwrap/tss2_esys.c dlwrap/tss2_esysfuncs.h dlwrap/tss2_esys.h
COBJECTS += dlwrap/tss2_mu.c dlwrap/tss2_mufuncs.h dlwrap/tss2_mu.h
COBJECTS += dlwrap/tss2_tctildr.c dlwrap/tss2_tctildrfuncs.h dlwrap/tss2_tctildr.h
FUNC(TSS2_RC, Esys_FlushContext, (ESYS_CONTEXT *esysContext, ESYS_TR flushHandle), (esysContext, flushHandle))
FUNC(TSS2_RC, Esys_GetCapability, (ESYS_CONTEXT *esysContext, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, TPM2_CAP capability, UINT32 property, UINT32 propertyCount, TPMI_YES_NO *moreData, TPMS_CAPABILITY_DATA **capabilityData), (esysContext, shandle1, shandle2, shandle3, capability, property, propertyCount, moreData, capabilityData))
VOID_FUNC(void, Esys_Free, (void *__ptr), (__ptr))
+#ifdef HAVE_ESYS_SETCRYPTOCALLBACKS
FUNC(TSS2_RC, Esys_SetCryptoCallbacks, (ESYS_CONTEXT *esysContext, ESYS_CRYPTO_CALLBACKS *callbacks), (esysContext, callbacks))
+#endif
typedef struct ESYS_CONTEXT ESYS_CONTEXT;
+#ifdef HAVE_ESYS_SETCRYPTOCALLBACKS
int _gnutls_setup_tss2_callbacks(ESYS_CONTEXT *ctx);
+#endif
#endif /* GNUTLS_LIB_TPM2_ESYS_CALLBACKS_H */
goto error;
}
+#ifdef HAVE_ESYS_SETCRYPTOCALLBACKS
rc = _gnutls_setup_tss2_callbacks(*ctx);
if (rc) {
gnutls_assert();
rc);
goto error;
}
+#endif
rc = GNUTLS_TSS2_ESYS_FUNC(Esys_Startup)(*ctx, TPM2_SU_CLEAR);
if (rc == TPM2_RC_INITIALIZE) {