123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727 |
- /* SPDX-License-Identifier: BSD-2-Clause */
- /*******************************************************************************
- * Copyright 2021, Fraunhofer SIT
- * All rights reserved.
- *******************************************************************************/
- /**
- * The purpose of this file is to copy it into your project and
- * include it during compilation if you don't want to link against
- * libtss2-fapi at compile time.
- * It will attempt to load libtss2-fapi.so during runtime.
- * It will either work similarly to directly linking to libtss2-fapi.so
- * at compile-time or return a NOT_IMPLEMENTED error.
- *
- * For new versions of this file, please check:
- * http://github.com/tpm2-software/tpm2-tss/tss2-dlopen
- */
- #include <dlfcn.h>
- #include <stdio.h>
- #include <tss2/tss2_fapi.h>
- #define str(s) xstr(s)
- #define xstr(s) #s
- #ifdef ENABLE_WARN
- #define WARN(str, ...) do { fprintf(stderr, "WARNING: " str "\n", ## __VA_ARGS__); } while (0)
- #else /* ENABLE_WARN */
- #define WARN(...) do { } while (0)
- #endif /* ENABLE_WARN */
- #define LIB "libtss2-fapi.so.1"
- static void *dlhandle = NULL;
- static TSS2_RC
- init_dlhandle(void)
- {
- if (dlhandle)
- return TSS2_RC_SUCCESS;
- dlhandle = dlopen(LIB, RTLD_NOW | RTLD_LOCAL);
- if (!dlhandle) {
- WARN("Library " LIB " not found: %s.", dlerror());
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- }
- return TSS2_RC_SUCCESS;
- }
- TSS2_RC
- Fapi_Initialize(
- FAPI_CONTEXT **context,
- char const *uri)
- {
- if (init_dlhandle() != TSS2_RC_SUCCESS)
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- static TSS2_RC (*sym) (FAPI_CONTEXT **context, char const *uri) = NULL;
- if (!sym)
- sym = dlsym(dlhandle, "Fapi_Initialize");
- if (!sym) {
- WARN("Function Fapi_Initialize not found.");
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- }
- return sym(context, uri);
- }
- TSS2_RC
- Fapi_Initialize_Async(
- FAPI_CONTEXT **context,
- char const *uri)
- {
- if (init_dlhandle() != TSS2_RC_SUCCESS)
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- static TSS2_RC (*sym) (FAPI_CONTEXT **context, char const *uri) = NULL;
- if (!sym)
- sym = dlsym(dlhandle, "Fapi_Initialize_Async");
- if (!sym) {
- WARN("Function Fapi_Initialize_Async not found.");
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- }
- return sym(context, uri);
- }
- TSS2_RC Fapi_Initialize_Finish(
- FAPI_CONTEXT **context)
- {
- static TSS2_RC (*sym) (FAPI_CONTEXT **context) = NULL;
- if (!sym)
- sym = dlsym(dlhandle, "Fapi_Initialize_Finish");
- if (!sym) {
- WARN("Function Fapi_Initialize_Finish not found.");
- return TSS2_FAPI_RC_NOT_IMPLEMENTED;
- }
- return sym(context);
- }
- void
- Fapi_Finalize(FAPI_CONTEXT **ctx)
- {
- if (!ctx || !*ctx)
- return;
- static TSS2_RC (*sym) (FAPI_CONTEXT **ctx) = NULL;
- if (!sym)
- sym = dlsym(dlhandle, "Fapi_Finalize");
- if (!sym) {
- WARN("Function Fapi_Finalize not found.");
- return;
- }
- sym(ctx);
- }
- void
- Fapi_Free(void *__ptr)
- {
- if (!__ptr)
- return;
- static TSS2_RC (*sym) (void *__ptr) = NULL;
- if (!sym)
- sym = dlsym(dlhandle, "Fapi_Free");
- if (!sym) {
- WARN("Function Fapi_Free not found.");
- return;
- }
- sym(__ptr);
- }
- #define MAKE_FAPI_0(fun) \
- TSS2_RC fun (FAPI_CONTEXT *ctx) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx); \
- }
- #define MAKE_FAPI_1(fun, type1,parm1) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1); \
- }
- #define MAKE_FAPI_2(fun, type1,parm1, type2,parm2) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2); \
- }
- #define MAKE_FAPI_3(fun, type1,parm1, type2,parm2, type3,parm3) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3); \
- }
- #define MAKE_FAPI_4(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3, type4) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4); \
- }
- #define MAKE_FAPI_5(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5); \
- }
- #define MAKE_FAPI_6(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6); \
- }
- #define MAKE_FAPI_7(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7); \
- }
- #define MAKE_FAPI_8(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8) { \
- static TSS2_RC (*sym) (FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8); \
- }
- #define MAKE_FAPI_9(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
- type9,parm9) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
- type9 parm9) { \
- TSS2_RC (*sym)(FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
- type9) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
- parm9); \
- }
- #define MAKE_FAPI_10(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
- type9,parm9, type10,parm10) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
- type9 parm9, type10 parm10) { \
- TSS2_RC (*sym)(FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
- type9, type10) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
- parm9, parm10); \
- }
- #define MAKE_FAPI_11(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
- type9,parm9, type10,parm10, type11,parm11) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
- type9 parm9, type10 parm10, type11 parm11) { \
- TSS2_RC (*sym)(FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
- type9, type10, type11) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
- parm9, parm10, parm11); \
- }
- #define MAKE_FAPI_12(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
- type9,parm9, type10,parm10, type11,parm11, type12,parm12) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
- type9 parm9, type10 parm10, type11 parm11, type12 parm12) { \
- TSS2_RC (*sym)(FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
- type9, type10, type11, type12) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
- parm9, parm10, parm11, parm12); \
- }
- #define MAKE_FAPI_13(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
- type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
- type9,parm9, type10,parm10, type11,parm11, type12,parm12, \
- type13,parm13) \
- TSS2_RC fun (FAPI_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
- type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
- type9 parm9, type10 parm10, type11 parm11, type12 parm12, \
- type13 parm13) { \
- TSS2_RC (*sym)(FAPI_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
- type9, type10, type11, type12, type13) = NULL; \
- if (!sym) \
- sym = dlsym(dlhandle, str(fun)); \
- if (!sym) { \
- WARN("Function " str(fun) " not found."); \
- return TSS2_FAPI_RC_NOT_IMPLEMENTED; \
- } \
- return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
- parm9, parm10, parm11, parm12, parm13); \
- }
- MAKE_FAPI_1(Fapi_GetTcti,
- TSS2_TCTI_CONTEXT **, tcti);
- MAKE_FAPI_2(Fapi_GetPollHandles,
- FAPI_POLL_HANDLE **, handles,
- size_t *, num_handles);
- MAKE_FAPI_1(Fapi_GetInfo,
- char **, info);
- MAKE_FAPI_0(Fapi_GetInfo_Async);
- MAKE_FAPI_1(Fapi_GetInfo_Finish,
- char **, info);
- MAKE_FAPI_3(Fapi_Provision,
- char const *, authValueEh,
- char const *, authValueSh,
- char const *, authValueLockout);
- MAKE_FAPI_3(Fapi_Provision_Async,
- char const *, authValueEh,
- char const *, authValueSh,
- char const *, authValueLockout);
- MAKE_FAPI_0(Fapi_Provision_Finish);
- MAKE_FAPI_2(Fapi_GetPlatformCertificates,
- uint8_t **, certificates,
- size_t *, certificatesSize);
- MAKE_FAPI_0(Fapi_GetPlatformCertificates_Async);
- MAKE_FAPI_2(Fapi_GetPlatformCertificates_Finish,
- uint8_t **, certificates,
- size_t *, certificatesSize);
- MAKE_FAPI_2(Fapi_GetRandom,
- size_t, numBytes,
- uint8_t **, data);
- MAKE_FAPI_1(Fapi_GetRandom_Async,
- size_t, numBytes);
- MAKE_FAPI_1(Fapi_GetRandom_Finish,
- uint8_t **, data);
- MAKE_FAPI_2(Fapi_Import,
- char const *, path,
- char const *, importData);
- MAKE_FAPI_2(Fapi_Import_Async,
- char const *, path,
- char const *, importData);
- MAKE_FAPI_0(Fapi_Import_Finish);
- MAKE_FAPI_2(Fapi_List,
- char const *, searchPath,
- char **, pathList);
- MAKE_FAPI_1(Fapi_List_Async,
- char const *, searchPath);
- MAKE_FAPI_1(Fapi_List_Finish,
- char **, pathList);
- MAKE_FAPI_1(Fapi_Delete,
- char const *, path);
- MAKE_FAPI_1(Fapi_Delete_Async,
- char const *, path);
- MAKE_FAPI_0(Fapi_Delete_Finish);
- MAKE_FAPI_4(Fapi_GetEsysBlob,
- char const *, path,
- uint8_t *, type,
- uint8_t **, data,
- size_t *, length);
- MAKE_FAPI_1(Fapi_GetEsysBlob_Async,
- char const *, path);
- MAKE_FAPI_3(Fapi_GetEsysBlob_Finish,
- uint8_t *, type,
- uint8_t **, data,
- size_t *, length);
- MAKE_FAPI_2(Fapi_ChangeAuth,
- char const *, entityPath,
- char const *, authValue);
- MAKE_FAPI_2(Fapi_ChangeAuth_Async,
- char const *, entityPath,
- char const *, authValue);
- MAKE_FAPI_0(Fapi_ChangeAuth_Finish);
- MAKE_FAPI_2(Fapi_SetDescription,
- char const *, path,
- char const *, description);
- MAKE_FAPI_2(Fapi_SetDescription_Async,
- char const *, path,
- char const *, description);
- MAKE_FAPI_0(Fapi_SetDescription_Finish);
- MAKE_FAPI_2(Fapi_GetDescription,
- char const *, path,
- char **, description);
- MAKE_FAPI_1(Fapi_GetDescription_Async,
- char const *, path);
- MAKE_FAPI_1(Fapi_GetDescription_Finish,
- char **, description);
- MAKE_FAPI_3(Fapi_SetAppData,
- char const *, path,
- uint8_t const *, appData,
- size_t, appDataSize);
- MAKE_FAPI_3(Fapi_SetAppData_Async,
- char const *, path,
- uint8_t const *, appData,
- size_t, appDataSize);
- MAKE_FAPI_0(Fapi_SetAppData_Finish);
- MAKE_FAPI_3(Fapi_GetAppData,
- char const *, path,
- uint8_t **, appData,
- size_t *, appDataSize);
- MAKE_FAPI_1(Fapi_GetAppData_Async,
- char const *, path);
- MAKE_FAPI_2(Fapi_GetAppData_Finish,
- uint8_t **, appData,
- size_t *, appDataSize);
- MAKE_FAPI_6(Fapi_GetTpmBlobs,
- char const *, path,
- uint8_t **, tpm2bPublic,
- size_t *, tpm2bPublicSize,
- uint8_t **, tpm2bPrivate,
- size_t *, tpm2bPrivateSize,
- char **, policy);
- MAKE_FAPI_1(Fapi_GetTpmBlobs_Async,
- char const *, path);
- MAKE_FAPI_5(Fapi_GetTpmBlobs_Finish,
- uint8_t **, tpm2bPublic,
- size_t *, tpm2bPublicSize,
- uint8_t **, tpm2bPrivate,
- size_t *, tpm2bPrivateSize,
- char **, policy);
- MAKE_FAPI_4(Fapi_CreateKey,
- char const *, path,
- char const *, type,
- char const *, policyPath,
- char const *, authValue);
- MAKE_FAPI_4(Fapi_CreateKey_Async,
- char const *, path,
- char const *, type,
- char const *, policyPath,
- char const *, authValue);
- MAKE_FAPI_0(Fapi_CreateKey_Finish);
- MAKE_FAPI_8(Fapi_Sign,
- char const *, keyPath,
- char const *, padding,
- uint8_t const *, digest,
- size_t, digestSize,
- uint8_t **, signature,
- size_t *, signatureSize,
- char **, publicKey,
- char **, certificate);
- MAKE_FAPI_4(Fapi_Sign_Async,
- char const *, keyPath,
- char const *, padding,
- uint8_t const *, digest,
- size_t, digestSize);
- MAKE_FAPI_4(Fapi_Sign_Finish,
- uint8_t **, signature,
- size_t *, signatureSize,
- char **, publicKey,
- char **, certificate);
- MAKE_FAPI_5(Fapi_VerifySignature,
- char const *, keyPath,
- uint8_t const *, digest,
- size_t, digestSize,
- uint8_t const *, signature,
- size_t, signatureSize);
- MAKE_FAPI_5(Fapi_VerifySignature_Async,
- char const *, keyPath,
- uint8_t const *, digest,
- size_t, digestSize,
- uint8_t const *, signature,
- size_t, signatureSize);
- MAKE_FAPI_0(Fapi_VerifySignature_Finish);
- MAKE_FAPI_5(Fapi_Encrypt,
- char const *, keyPath,
- uint8_t const *, plainText,
- size_t, plainTextSize,
- uint8_t **, cipherText,
- size_t *, cipherTextSize);
- MAKE_FAPI_3(Fapi_Encrypt_Async,
- char const *, keyPath,
- uint8_t const *, plainText,
- size_t, plainTextSize);
- MAKE_FAPI_2(Fapi_Encrypt_Finish,
- uint8_t **, cipherText,
- size_t *, cipherTextSize );
- MAKE_FAPI_5(Fapi_Decrypt,
- char const *, keyPath,
- uint8_t const *, cipherText,
- size_t, cipherTextSize,
- uint8_t **, plainText,
- size_t *, plainTextSize);
- MAKE_FAPI_3(Fapi_Decrypt_Async,
- char const *, keyPath,
- uint8_t const *, cipherText,
- size_t, cipherTextSize);
- MAKE_FAPI_2(Fapi_Decrypt_Finish,
- uint8_t **, plainText,
- size_t *, plainTextSize);
- MAKE_FAPI_2(Fapi_SetCertificate,
- char const *, path,
- char const *, x509certData);
- MAKE_FAPI_2(Fapi_SetCertificate_Async,
- char const *, path,
- char const *, x509certData);
- MAKE_FAPI_0(Fapi_SetCertificate_Finish);
- MAKE_FAPI_2(Fapi_GetCertificate,
- char const *, path,
- char **, x509certData);
- MAKE_FAPI_1(Fapi_GetCertificate_Async,
- char const *, path);
- MAKE_FAPI_1(Fapi_GetCertificate_Finish,
- char **, x509certData);
- MAKE_FAPI_3(Fapi_ExportKey,
- char const *, pathOfKeyToDuplicate,
- char const *, pathToPublicKeyOfNewParent,
- char **, exportedData);
- MAKE_FAPI_2(Fapi_ExportKey_Async,
- char const *, pathOfKeyToDuplicate,
- char const *, pathToPublicKeyOfNewParent);
- MAKE_FAPI_1(Fapi_ExportKey_Finish,
- char **, exportedData);
- MAKE_FAPI_6(Fapi_CreateSeal,
- char const *, path,
- char const *, type,
- size_t, size,
- char const *, policyPath,
- char const *, authValue,
- uint8_t const *, data);
- MAKE_FAPI_6(Fapi_CreateSeal_Async,
- char const *, path,
- char const *, type,
- size_t, size,
- char const *, policyPath,
- char const *, authValue,
- uint8_t const *, data);
- MAKE_FAPI_0(Fapi_CreateSeal_Finish);
- MAKE_FAPI_3(Fapi_Unseal,
- char const *, path,
- uint8_t **, data,
- size_t *, size);
- MAKE_FAPI_1(Fapi_Unseal_Async,
- char const *, path);
- MAKE_FAPI_2(Fapi_Unseal_Finish,
- uint8_t **, data,
- size_t *, size);
- MAKE_FAPI_2(Fapi_ExportPolicy,
- char const *, path,
- char **, jsonPolicy);
- MAKE_FAPI_1(Fapi_ExportPolicy_Async,
- char const *, path);
- MAKE_FAPI_1(Fapi_ExportPolicy_Finish,
- char **, jsonPolicy);
- MAKE_FAPI_4(Fapi_AuthorizePolicy,
- char const *, policyPath,
- char const *, keyPath,
- uint8_t const *, policyRef,
- size_t, policyRefSize);
- MAKE_FAPI_4(Fapi_AuthorizePolicy_Async,
- char const *, policyPath,
- char const *, keyPath,
- uint8_t const *, policyRef,
- size_t, policyRefSize);
- MAKE_FAPI_0(Fapi_AuthorizePolicy_Finish);
- MAKE_FAPI_2(Fapi_WriteAuthorizeNv,
- char const *, nvPath,
- char const *, policyPath);
- MAKE_FAPI_2(Fapi_WriteAuthorizeNv_Async,
- char const *, nvPath,
- char const *, policyPath);
- MAKE_FAPI_0(Fapi_WriteAuthorizeNv_Finish);
- MAKE_FAPI_4(Fapi_PcrRead,
- uint32_t, pcrIndex,
- uint8_t **, pcrValue,
- size_t *, pcrValueSize,
- char **, pcrLog);
- MAKE_FAPI_1(Fapi_PcrRead_Async,
- uint32_t, pcrIndex);
- MAKE_FAPI_3(Fapi_PcrRead_Finish,
- uint8_t **, pcrValue,
- size_t *, pcrValueSize,
- char **, pcrLog);
- MAKE_FAPI_4(Fapi_PcrExtend,
- uint32_t, pcr,
- uint8_t const *, data,
- size_t, dataSize,
- char const *, logData);
- MAKE_FAPI_4(Fapi_PcrExtend_Async,
- uint32_t, pcr,
- uint8_t const *, data,
- size_t, dataSize,
- char const *, logData);
- MAKE_FAPI_0(Fapi_PcrExtend_Finish);
- MAKE_FAPI_11(Fapi_Quote,
- uint32_t *, pcrList,
- size_t, pcrListSize,
- char const *, keyPath,
- char const *, quoteType,
- uint8_t const *, qualifyingData,
- size_t, qualifyingDataSize,
- char **, quoteInfo,
- uint8_t **, signature,
- size_t *, signatureSize,
- char **, pcrLog,
- char **, certificate);
- MAKE_FAPI_6(Fapi_Quote_Async,
- uint32_t *, pcrList,
- size_t, pcrListSize,
- char const *, keyPath,
- char const *, quoteType,
- uint8_t const *, qualifyingData,
- size_t, qualifyingDataSize);
- MAKE_FAPI_5(Fapi_Quote_Finish,
- char **, quoteInfo,
- uint8_t **, signature,
- size_t *, signatureSize,
- char **, pcrLog,
- char **, certificate);
- MAKE_FAPI_7(Fapi_VerifyQuote,
- char const *, publicKeyPath,
- uint8_t const *, qualifyingData,
- size_t, qualifyingDataSize,
- char const *, quoteInfo,
- uint8_t const *, signature,
- size_t, signatureSize,
- char const *, pcrLog);
- MAKE_FAPI_7(Fapi_VerifyQuote_Async,
- char const *, publicKeyPath,
- uint8_t const *, qualifyingData,
- size_t, qualifyingDataSize,
- char const *, quoteInfo,
- uint8_t const *, signature,
- size_t, signatureSize,
- char const *, pcrLog);
- MAKE_FAPI_0(Fapi_VerifyQuote_Finish);
- MAKE_FAPI_5(Fapi_CreateNv,
- char const *, path,
- char const *, type,
- size_t, size,
- char const *, policyPath,
- char const *, authValue);
- MAKE_FAPI_5(Fapi_CreateNv_Async,
- char const *, path,
- char const *, type,
- size_t, size,
- char const *, policyPath,
- char const *, authValue);
- MAKE_FAPI_0(Fapi_CreateNv_Finish);
- MAKE_FAPI_4(Fapi_NvRead,
- char const *, path,
- uint8_t **, data,
- size_t *, size,
- char **, logData);
- MAKE_FAPI_1(Fapi_NvRead_Async,
- char const *, path);
- MAKE_FAPI_3(Fapi_NvRead_Finish,
- uint8_t **, data,
- size_t *, size,
- char **, logData);
- MAKE_FAPI_3(Fapi_NvWrite,
- char const *, path,
- uint8_t const *, data,
- size_t, size);
- MAKE_FAPI_3(Fapi_NvWrite_Async,
- char const *, path,
- uint8_t const *, data,
- size_t, size);
- MAKE_FAPI_0(Fapi_NvWrite_Finish);
- MAKE_FAPI_4(Fapi_NvExtend,
- char const *, path,
- uint8_t const *, data,
- size_t, size,
- char const *, logData);
- MAKE_FAPI_4(Fapi_NvExtend_Async,
- char const *, path,
- uint8_t const *, data,
- size_t, size,
- char const *, logData);
- MAKE_FAPI_0(Fapi_NvExtend_Finish);
- MAKE_FAPI_1(Fapi_NvIncrement,
- char const *, path);
- MAKE_FAPI_1(Fapi_NvIncrement_Async,
- char const *, path);
- MAKE_FAPI_0(Fapi_NvIncrement_Finish);
- MAKE_FAPI_2(Fapi_NvSetBits,
- char const *, path,
- uint64_t, bitmap);
- MAKE_FAPI_2(Fapi_NvSetBits_Async,
- char const *, path,
- uint64_t, bitmap);
- MAKE_FAPI_0(Fapi_NvSetBits_Finish);
- MAKE_FAPI_2(Fapi_SetAuthCB,
- Fapi_CB_Auth, callback,
- void *, userData);
- MAKE_FAPI_2(Fapi_SetBranchCB,
- Fapi_CB_Branch, callback,
- void *, userData);
- MAKE_FAPI_2(Fapi_SetSignCB,
- Fapi_CB_Sign, callback,
- void *, userData);
- MAKE_FAPI_2(Fapi_SetPolicyActionCB,
- Fapi_CB_PolicyAction, callback,
- void *, userData);
|