| #if !defined(_TSPI_H_) |
| #define _TSPI_H_ |
| |
| #include <tss/tss_defines.h> |
| #include <tss/tss_typedef.h> |
| #include <tss/tss_structs.h> |
| #include <tss/tss_error.h> |
| #include <tss/tss_error_basics.h> |
| |
| #if !defined( TSPICALL ) |
| #if !defined(WIN32) || defined (TSP_STATIC) |
| // Linux, or a Win32 static library |
| #define TSPICALL extern TSS_RESULT |
| #elif defined (TSPDLL_EXPORTS) |
| // Win32 DLL build |
| #define TSPICALL extern __declspec(dllexport) TSS_RESULT |
| #else |
| // Win32 DLL import |
| #define TSPICALL extern __declspec(dllimport) TSS_RESULT |
| #endif |
| #endif /* TSPICALL */ |
| |
| #if defined ( __cplusplus ) |
| extern "C" { |
| #endif /* __cplusplus */ |
| |
| |
| // Class-independent ASN.1 conversion functions |
| TSPICALL Tspi_EncodeDER_TssBlob |
| ( |
| UINT32 rawBlobSize, // in |
| BYTE* rawBlob, // in |
| UINT32 blobType, // in |
| UINT32* derBlobSize, // in, out |
| BYTE* derBlob // out |
| ); |
| |
| TSPICALL Tspi_DecodeBER_TssBlob |
| ( |
| UINT32 berBlobSize, // in |
| BYTE* berBlob, // in |
| UINT32* blobType, // out |
| UINT32* rawBlobSize, // in, out |
| BYTE* rawBlob // out |
| ); |
| |
| |
| |
| // Common Methods |
| TSPICALL Tspi_SetAttribUint32 |
| ( |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG attribFlag, // in |
| TSS_FLAG subFlag, // in |
| UINT32 ulAttrib // in |
| ); |
| |
| TSPICALL Tspi_GetAttribUint32 |
| ( |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG attribFlag, // in |
| TSS_FLAG subFlag, // in |
| UINT32* pulAttrib // out |
| ); |
| |
| TSPICALL Tspi_SetAttribData |
| ( |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG attribFlag, // in |
| TSS_FLAG subFlag, // in |
| UINT32 ulAttribDataSize, // in |
| BYTE* rgbAttribData // in |
| ); |
| |
| TSPICALL Tspi_GetAttribData |
| ( |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG attribFlag, // in |
| TSS_FLAG subFlag, // in |
| UINT32* pulAttribDataSize, // out |
| BYTE** prgbAttribData // out |
| ); |
| |
| TSPICALL Tspi_ChangeAuth |
| ( |
| TSS_HOBJECT hObjectToChange, // in |
| TSS_HOBJECT hParentObject, // in |
| TSS_HPOLICY hNewPolicy // in |
| ); |
| |
| TSPICALL Tspi_ChangeAuthAsym |
| ( |
| TSS_HOBJECT hObjectToChange, // in |
| TSS_HOBJECT hParentObject, // in |
| TSS_HKEY hIdentKey, // in |
| TSS_HPOLICY hNewPolicy // in |
| ); |
| |
| TSPICALL Tspi_GetPolicyObject |
| ( |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG policyType, // in |
| TSS_HPOLICY* phPolicy // out |
| ); |
| |
| |
| |
| // Tspi_Context Class Definitions |
| TSPICALL Tspi_Context_Create |
| ( |
| TSS_HCONTEXT* phContext // out |
| ); |
| |
| TSPICALL Tspi_Context_Close |
| ( |
| TSS_HCONTEXT hContext // in |
| ); |
| |
| TSPICALL Tspi_Context_Connect |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_UNICODE* wszDestination // in |
| ); |
| |
| TSPICALL Tspi_Context_FreeMemory |
| ( |
| TSS_HCONTEXT hContext, // in |
| BYTE* rgbMemory // in |
| ); |
| |
| TSPICALL Tspi_Context_GetDefaultPolicy |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HPOLICY* phPolicy // out |
| ); |
| |
| TSPICALL Tspi_Context_CreateObject |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG objectType, // in |
| TSS_FLAG initFlags, // in |
| TSS_HOBJECT* phObject // out |
| ); |
| |
| TSPICALL Tspi_Context_CloseObject |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HOBJECT hObject // in |
| ); |
| |
| TSPICALL Tspi_Context_GetCapability |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG capArea, // in |
| UINT32 ulSubCapLength, // in |
| BYTE* rgbSubCap, // in |
| UINT32* pulRespDataLength, // out |
| BYTE** prgbRespData // out |
| ); |
| |
| TSPICALL Tspi_Context_GetTpmObject |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HTPM* phTPM // out |
| ); |
| |
| TSPICALL Tspi_Context_SetTransEncryptionKey |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HKEY hKey // in |
| ); |
| |
| TSPICALL Tspi_Context_CloseSignTransport |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HKEY hSigningKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_Context_LoadKeyByBlob |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HKEY hUnwrappingKey, // in |
| UINT32 ulBlobLength, // in |
| BYTE* rgbBlobData, // in |
| TSS_HKEY* phKey // out |
| ); |
| |
| TSPICALL Tspi_Context_LoadKeyByUUID |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID uuidData, // in |
| TSS_HKEY* phKey // out |
| ); |
| |
| TSPICALL Tspi_Context_RegisterKey |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_HKEY hKey, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID uuidKey, // in |
| TSS_FLAG persistentStorageTypeParent, // in |
| TSS_UUID uuidParentKey // in |
| ); |
| |
| TSPICALL Tspi_Context_UnregisterKey |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID uuidKey, // in |
| TSS_HKEY* phkey // out |
| ); |
| |
| TSPICALL Tspi_Context_GetKeyByUUID |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID uuidData, // in |
| TSS_HKEY* phKey // out |
| ); |
| |
| TSPICALL Tspi_Context_GetKeyByPublicInfo |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_ALGORITHM_ID algID, // in |
| UINT32 ulPublicInfoLength, // in |
| BYTE* rgbPublicInfo, // in |
| TSS_HKEY* phKey // out |
| ); |
| |
| TSPICALL Tspi_Context_GetRegisteredKeysByUUID |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID* pUuidData, // in |
| UINT32* pulKeyHierarchySize, // out |
| TSS_KM_KEYINFO** ppKeyHierarchy // out |
| ); |
| |
| TSPICALL Tspi_Context_GetRegisteredKeysByUUID2 |
| ( |
| TSS_HCONTEXT hContext, // in |
| TSS_FLAG persistentStorageType, // in |
| TSS_UUID* pUuidData, // in |
| UINT32* pulKeyHierarchySize, // out |
| TSS_KM_KEYINFO2** ppKeyHierarchy // out |
| ); |
| |
| |
| // Policy class definitions |
| TSPICALL Tspi_Policy_SetSecret |
| ( |
| TSS_HPOLICY hPolicy, // in |
| TSS_FLAG secretMode, // in |
| UINT32 ulSecretLength, // in |
| BYTE* rgbSecret // in |
| ); |
| |
| TSPICALL Tspi_Policy_FlushSecret |
| ( |
| TSS_HPOLICY hPolicy // in |
| ); |
| |
| TSPICALL Tspi_Policy_AssignToObject |
| ( |
| TSS_HPOLICY hPolicy, // in |
| TSS_HOBJECT hObject // in |
| ); |
| |
| |
| |
| // TPM Class Definitions |
| TSPICALL Tspi_TPM_KeyControlOwner |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| UINT32 attribName, // in |
| TSS_BOOL attribValue, // in |
| TSS_UUID* pUuidData // out |
| ); |
| |
| TSPICALL Tspi_TPM_CreateEndorsementKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_CreateRevocableEndorsementKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| TSS_VALIDATION* pValidationData, // in, out |
| UINT32* pulEkResetDataLength, // in, out |
| BYTE** rgbEkResetData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_RevokeEndorsementKey |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulEkResetDataLength, // in |
| BYTE* rgbEkResetData // in |
| ); |
| |
| TSPICALL Tspi_TPM_GetPubEndorsementKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_BOOL fOwnerAuthorized, // in |
| TSS_VALIDATION* pValidationData, // in, out |
| TSS_HKEY* phEndorsementPubKey // out |
| ); |
| |
| TSPICALL Tspi_TPM_OwnerGetSRKPubKey |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32* pulPubKeyLength, // out |
| BYTE** prgbPubKey // out |
| ); |
| |
| TSPICALL Tspi_TPM_TakeOwnership |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKeySRK, // in |
| TSS_HKEY hEndorsementPubKey // in |
| ); |
| |
| TSPICALL Tspi_TPM_ClearOwner |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_BOOL fForcedClear // in |
| ); |
| |
| TSPICALL Tspi_TPM_CollateIdentityRequest |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKeySRK, // in |
| TSS_HKEY hCAPubKey, // in |
| UINT32 ulIdentityLabelLength, // in |
| BYTE* rgbIdentityLabelData, // in |
| TSS_HKEY hIdentityKey, // in |
| TSS_ALGORITHM_ID algID, // in |
| UINT32* pulTCPAIdentityReqLength, // out |
| BYTE** prgbTCPAIdentityReq // out |
| ); |
| |
| TSPICALL Tspi_TPM_ActivateIdentity |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hIdentKey, // in |
| UINT32 ulAsymCAContentsBlobLength, // in |
| BYTE* rgbAsymCAContentsBlob, // in |
| UINT32 ulSymCAAttestationBlobLength, // in |
| BYTE* rgbSymCAAttestationBlob, // in |
| UINT32* pulCredentialLength, // out |
| BYTE** prgbCredential // out |
| ); |
| |
| TSPICALL Tspi_TPM_CreateMaintenanceArchive |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_BOOL fGenerateRndNumber, // in |
| UINT32* pulRndNumberLength, // out |
| BYTE** prgbRndNumber, // out |
| UINT32* pulArchiveDataLength, // out |
| BYTE** prgbArchiveData // out |
| ); |
| |
| TSPICALL Tspi_TPM_KillMaintenanceFeature |
| ( |
| TSS_HTPM hTPM // in |
| ); |
| |
| TSPICALL Tspi_TPM_LoadMaintenancePubKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hMaintenanceKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_CheckMaintenancePubKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hMaintenanceKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_SetOperatorAuth |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HPOLICY hOperatorPolicy // in |
| ); |
| |
| TSPICALL Tspi_TPM_SetStatus |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_FLAG statusFlag, // in |
| TSS_BOOL fTpmState // in |
| ); |
| |
| TSPICALL Tspi_TPM_GetStatus |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_FLAG statusFlag, // in |
| TSS_BOOL* pfTpmState // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetCapability |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_FLAG capArea, // in |
| UINT32 ulSubCapLength, // in |
| BYTE* rgbSubCap, // in |
| UINT32* pulRespDataLength, // out |
| BYTE** prgbRespData // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetCapabilitySigned |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| TSS_FLAG capArea, // in |
| UINT32 ulSubCapLength, // in |
| BYTE* rgbSubCap, // in |
| TSS_VALIDATION* pValidationData, // in, out |
| UINT32* pulRespDataLength, // out |
| BYTE** prgbRespData // out |
| ); |
| |
| TSPICALL Tspi_TPM_SelfTestFull |
| ( |
| TSS_HTPM hTPM // in |
| ); |
| |
| TSPICALL Tspi_TPM_CertifySelfTest |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_GetTestResult |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32* pulTestResultLength, // out |
| BYTE** prgbTestResult // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetRandom |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulRandomDataLength, // in |
| BYTE** prgbRandomData // out |
| ); |
| |
| TSPICALL Tspi_TPM_StirRandom |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulEntropyDataLength, // in |
| BYTE* rgbEntropyData // in |
| ); |
| |
| TSPICALL Tspi_TPM_GetEvent |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulPcrIndex, // in |
| UINT32 ulEventNumber, // in |
| TSS_PCR_EVENT* pPcrEvent // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetEvents |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulPcrIndex, // in |
| UINT32 ulStartNumber, // in |
| UINT32* pulEventNumber, // in, out |
| TSS_PCR_EVENT** prgPcrEvents // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetEventLog |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32* pulEventNumber, // out |
| TSS_PCR_EVENT** prgPcrEvents // out |
| ); |
| |
| TSPICALL Tspi_TPM_Quote |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hIdentKey, // in |
| TSS_HPCRS hPcrComposite, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_Quote2 |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hIdentKey, // in |
| TSS_BOOL fAddVersion, // in |
| TSS_HPCRS hPcrComposite, // in |
| TSS_VALIDATION* pValidationData, // in, out |
| UINT32* versionInfoSize, // out |
| BYTE** versionInfo // out |
| ); |
| |
| TSPICALL Tspi_TPM_PcrExtend |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulPcrIndex, // in |
| UINT32 ulPcrDataLength, // in |
| BYTE* pbPcrData, // in |
| TSS_PCR_EVENT* pPcrEvent, // in |
| UINT32* pulPcrValueLength, // out |
| BYTE** prgbPcrValue // out |
| ); |
| |
| TSPICALL Tspi_TPM_PcrRead |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulPcrIndex, // in |
| UINT32* pulPcrValueLength, // out |
| BYTE** prgbPcrValue // out |
| ); |
| |
| TSPICALL Tspi_TPM_PcrReset |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HPCRS hPcrComposite // in |
| ); |
| |
| TSPICALL Tspi_TPM_AuthorizeMigrationTicket |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hMigrationKey, // in |
| TSS_MIGRATE_SCHEME migrationScheme, // in |
| UINT32* pulMigTicketLength, // out |
| BYTE** prgbMigTicket // out |
| ); |
| |
| TSPICALL Tspi_TPM_CMKSetRestrictions |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_CMK_DELEGATE CmkDelegate // in |
| ); |
| |
| TSPICALL Tspi_TPM_CMKApproveMA |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HMIGDATA hMaAuthData // in |
| ); |
| |
| TSPICALL Tspi_TPM_CMKCreateTicket |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hVerifyKey, // in |
| TSS_HMIGDATA hSigData // in |
| ); |
| |
| TSPICALL Tspi_TPM_ReadCounter |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32* counterValue // out |
| ); |
| |
| TSPICALL Tspi_TPM_ReadCurrentTicks |
| ( |
| TSS_HTPM hTPM, // in |
| TPM_CURRENT_TICKS* tickCount // out |
| ); |
| |
| TSPICALL Tspi_TPM_DirWrite |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulDirIndex, // in |
| UINT32 ulDirDataLength, // in |
| BYTE* rgbDirData // in |
| ); |
| |
| TSPICALL Tspi_TPM_DirRead |
| ( |
| TSS_HTPM hTPM, // in |
| UINT32 ulDirIndex, // in |
| UINT32* pulDirDataLength, // out |
| BYTE** prgbDirData // out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_AddFamily |
| ( |
| TSS_HTPM hTPM, // in, must not be NULL |
| BYTE bLabel, // in |
| TSS_HDELFAMILY* phFamily // out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_GetFamily |
| ( |
| TSS_HTPM hTPM, // in, must not NULL |
| UINT32 ulFamilyID, // in |
| TSS_HDELFAMILY* phFamily // out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_InvalidateFamily |
| ( |
| TSS_HTPM hTPM, // in, must not be NULL |
| TSS_HDELFAMILY hFamily // in |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_CreateDelegation |
| ( |
| TSS_HTPM hObject, // in |
| BYTE bLabel, // in |
| UINT32 ulFlags, // in |
| TSS_HPCRS hPcr, // in, may be NULL |
| TSS_HDELFAMILY hFamily, // in |
| TSS_HPOLICY hDelegation // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_CacheOwnerDelegation |
| ( |
| TSS_HTPM hTPM, // in, must not be NULL |
| TSS_HPOLICY hDelegation, // in, out |
| UINT32 ulIndex, // in |
| UINT32 ulFlags // in |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_UpdateVerificationCount |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HPOLICY hDelegation // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_VerifyDelegation |
| ( |
| TSS_HPOLICY hDelegation // in, out |
| ); |
| |
| TSPICALL Tspi_TPM_Delegate_ReadTables |
| ( |
| TSS_HCONTEXT hContext, // in |
| UINT32* pulFamilyTableSize, // out |
| TSS_FAMILY_TABLE_ENTRY** ppFamilyTable, // out |
| UINT32* pulDelegateTableSize, // out |
| TSS_DELEGATION_TABLE_ENTRY** ppDelegateTable // out |
| ); |
| |
| TSPICALL Tspi_TPM_DAA_JoinInit |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| UINT32 daaCounter, // in |
| UINT32 issuerAuthPKsLength, // in |
| TSS_HKEY* issuerAuthPKs, // in |
| UINT32 issuerAuthPKSignaturesLength, // in |
| UINT32 issuerAuthPKSignaturesLength2, // in |
| BYTE** issuerAuthPKSignatures, // in |
| UINT32* capitalUprimeLength, // out |
| BYTE** capitalUprime, // out |
| TSS_DAA_IDENTITY_PROOF** identityProof, // out |
| UINT32* joinSessionLength, // out |
| BYTE** joinSession // out |
| ); |
| |
| TSPICALL Tspi_TPM_DAA_JoinCreateDaaPubKey |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| UINT32 authenticationChallengeLength, // in |
| BYTE* authenticationChallenge, // in |
| UINT32 nonceIssuerLength, // in |
| BYTE* nonceIssuer, // in |
| UINT32 attributesPlatformLength, // in |
| UINT32 attributesPlatformLength2, // in |
| BYTE** attributesPlatform, // in |
| UINT32 joinSessionLength, // in |
| BYTE* joinSession, // in |
| TSS_DAA_CREDENTIAL_REQUEST** credentialRequest // out |
| ); |
| |
| TSPICALL Tspi_TPM_DAA_JoinStoreCredential |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| TSS_DAA_CRED_ISSUER* credIssuer, // in |
| UINT32 joinSessionLength, // in |
| BYTE* joinSession // in |
| ); |
| |
| TSPICALL Tspi_TPM_DAA_Sign |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| TSS_HDAA_ARA_KEY hARAKey, // in |
| TSS_DAA_SELECTED_ATTRIB* revealAttributes, // in |
| UINT32 verifierNonceLength, // in |
| BYTE* verifierNonce, // in |
| UINT32 verifierBaseNameLength, // in |
| BYTE* verifierBaseName, // in |
| TSS_HOBJECT signData, // in |
| TSS_DAA_SIGNATURE** daaSignature // out |
| ); |
| |
| TSPICALL Tspi_TPM_GetAuditDigest |
| ( |
| TSS_HTPM hTPM, // in |
| TSS_HKEY hKey, // in |
| TSS_BOOL closeAudit, // in |
| UINT32* pulAuditDigestSize, // out |
| BYTE** prgbAuditDigest, // out |
| TPM_COUNTER_VALUE* pCounterValue, // out |
| TSS_VALIDATION* pValidationData, // out |
| UINT32* ordSize, // out |
| UINT32** ordList // out |
| ); |
| |
| |
| |
| // PcrComposite Class Definitions |
| TSPICALL Tspi_PcrComposite_SelectPcrIndex |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32 ulPcrIndex // in |
| ); |
| |
| TSPICALL Tspi_PcrComposite_SelectPcrIndexEx |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32 ulPcrIndex, // in |
| UINT32 direction // in |
| ); |
| |
| TSPICALL Tspi_PcrComposite_SetPcrValue |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32 ulPcrIndex, // in |
| UINT32 ulPcrValueLength, // in |
| BYTE* rgbPcrValue // in |
| ); |
| |
| TSPICALL Tspi_PcrComposite_GetPcrValue |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32 ulPcrIndex, // in |
| UINT32* pulPcrValueLength, // out |
| BYTE** prgbPcrValue // out |
| ); |
| |
| TSPICALL Tspi_PcrComposite_SetPcrLocality |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32 LocalityValue // in |
| ); |
| |
| TSPICALL Tspi_PcrComposite_GetPcrLocality |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32* pLocalityValue // out |
| ); |
| |
| TSPICALL Tspi_PcrComposite_GetCompositeHash |
| ( |
| TSS_HPCRS hPcrComposite, // in |
| UINT32* pLen, // in |
| BYTE** ppbHashData // out |
| ); |
| |
| |
| |
| // Key Class Definition |
| TSPICALL Tspi_Key_LoadKey |
| ( |
| TSS_HKEY hKey, // in |
| TSS_HKEY hUnwrappingKey // in |
| ); |
| |
| TSPICALL Tspi_Key_UnloadKey |
| ( |
| TSS_HKEY hKey // in |
| ); |
| |
| TSPICALL Tspi_Key_GetPubKey |
| ( |
| TSS_HKEY hKey, // in |
| UINT32* pulPubKeyLength, // out |
| BYTE** prgbPubKey // out |
| ); |
| |
| TSPICALL Tspi_Key_CertifyKey |
| ( |
| TSS_HKEY hKey, // in |
| TSS_HKEY hCertifyingKey, // in |
| TSS_VALIDATION* pValidationData // in, out |
| ); |
| |
| TSPICALL Tspi_Key_CreateKey |
| ( |
| TSS_HKEY hKey, // in |
| TSS_HKEY hWrappingKey, // in |
| TSS_HPCRS hPcrComposite // in, may be NULL |
| ); |
| |
| TSPICALL Tspi_Key_WrapKey |
| ( |
| TSS_HKEY hKey, // in |
| TSS_HKEY hWrappingKey, // in |
| TSS_HPCRS hPcrComposite // in, may be NULL |
| ); |
| |
| TSPICALL Tspi_Key_CreateMigrationBlob |
| ( |
| TSS_HKEY hKeyToMigrate, // in |
| TSS_HKEY hParentKey, // in |
| UINT32 ulMigTicketLength, // in |
| BYTE* rgbMigTicket, // in |
| UINT32* pulRandomLength, // out |
| BYTE** prgbRandom, // out |
| UINT32* pulMigrationBlobLength, // out |
| BYTE** prgbMigrationBlob // out |
| ); |
| |
| TSPICALL Tspi_Key_ConvertMigrationBlob |
| ( |
| TSS_HKEY hKeyToMigrate, // in |
| TSS_HKEY hParentKey, // in |
| UINT32 ulRandomLength, // in |
| BYTE* rgbRandom, // in |
| UINT32 ulMigrationBlobLength, // in |
| BYTE* rgbMigrationBlob // in |
| ); |
| |
| TSPICALL Tspi_Key_MigrateKey |
| ( |
| TSS_HKEY hMaKey, // in |
| TSS_HKEY hPublicKey, // in |
| TSS_HKEY hMigData // in |
| ); |
| |
| TSPICALL Tspi_Key_CMKCreateBlob |
| ( |
| TSS_HKEY hKeyToMigrate, // in |
| TSS_HKEY hParentKey, // in |
| TSS_HMIGDATA hMigrationData, // in |
| UINT32* pulRandomLength, // out |
| BYTE** prgbRandom // out |
| ); |
| |
| TSPICALL Tspi_Key_CMKConvertMigration |
| ( |
| TSS_HKEY hKeyToMigrate, // in |
| TSS_HKEY hParentKey, // in |
| TSS_HMIGDATA hMigrationData, // in |
| UINT32 ulRandomLength, // in |
| BYTE* rgbRandom // in |
| ); |
| |
| |
| |
| // Hash Class Definition |
| TSPICALL Tspi_Hash_Sign |
| ( |
| TSS_HHASH hHash, // in |
| TSS_HKEY hKey, // in |
| UINT32* pulSignatureLength, // out |
| BYTE** prgbSignature // out |
| ); |
| |
| TSPICALL Tspi_Hash_VerifySignature |
| ( |
| TSS_HHASH hHash, // in |
| TSS_HKEY hKey, // in |
| UINT32 ulSignatureLength, // in |
| BYTE* rgbSignature // in |
| ); |
| |
| TSPICALL Tspi_Hash_SetHashValue |
| ( |
| TSS_HHASH hHash, // in |
| UINT32 ulHashValueLength, // in |
| BYTE* rgbHashValue // in |
| ); |
| |
| TSPICALL Tspi_Hash_GetHashValue |
| ( |
| TSS_HHASH hHash, // in |
| UINT32* pulHashValueLength, // out |
| BYTE** prgbHashValue // out |
| ); |
| |
| TSPICALL Tspi_Hash_UpdateHashValue |
| ( |
| TSS_HHASH hHash, // in |
| UINT32 ulDataLength, // in |
| BYTE* rgbData // in |
| ); |
| |
| TSPICALL Tspi_Hash_TickStampBlob |
| ( |
| TSS_HHASH hHash, // in |
| TSS_HKEY hIdentKey, // in |
| TSS_VALIDATION* pValidationData // in |
| ); |
| |
| |
| |
| // EncData Class Definition |
| TSPICALL Tspi_Data_Bind |
| ( |
| TSS_HENCDATA hEncData, // in |
| TSS_HKEY hEncKey, // in |
| UINT32 ulDataLength, // in |
| BYTE* rgbDataToBind // in |
| ); |
| |
| TSPICALL Tspi_Data_Unbind |
| ( |
| TSS_HENCDATA hEncData, // in |
| TSS_HKEY hKey, // in |
| UINT32* pulUnboundDataLength, // out |
| BYTE** prgbUnboundData // out |
| ); |
| |
| TSPICALL Tspi_Data_Seal |
| ( |
| TSS_HENCDATA hEncData, // in |
| TSS_HKEY hEncKey, // in |
| UINT32 ulDataLength, // in |
| BYTE* rgbDataToSeal, // in |
| TSS_HPCRS hPcrComposite // in |
| ); |
| |
| TSPICALL Tspi_Data_Unseal |
| ( |
| TSS_HENCDATA hEncData, // in |
| TSS_HKEY hKey, // in |
| UINT32* pulUnsealedDataLength, // out |
| BYTE** prgbUnsealedData // out |
| ); |
| |
| |
| |
| // NV Class Definition |
| TSPICALL Tspi_NV_DefineSpace |
| ( |
| TSS_HNVSTORE hNVStore, // in |
| TSS_HPCRS hReadPcrComposite, // in, may be NULL |
| TSS_HPCRS hWritePcrComposite // in, may be NULL |
| ); |
| |
| TSPICALL Tspi_NV_ReleaseSpace |
| ( |
| TSS_HNVSTORE hNVStore // in |
| ); |
| |
| TSPICALL Tspi_NV_WriteValue |
| ( |
| TSS_HNVSTORE hNVStore, // in |
| UINT32 offset, // in |
| UINT32 ulDataLength, // in |
| BYTE* rgbDataToWrite // in |
| ); |
| |
| TSPICALL Tspi_NV_ReadValue |
| ( |
| TSS_HNVSTORE hNVStore, // in |
| UINT32 offset, // in |
| UINT32* ulDataLength, // in, out |
| BYTE** rgbDataRead // out |
| ); |
| |
| |
| // DAA Utility functions (optional, do not require a TPM or TCS) |
| TSPICALL Tspi_DAA_IssuerKeyVerify |
| ( |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_BOOL* isCorrect // out |
| ); |
| |
| TSPICALL Tspi_DAA_Issuer_GenerateKey |
| ( |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| UINT32 issuerBaseNameLength, // in |
| BYTE* issuerBaseName // in |
| ); |
| |
| TSPICALL Tspi_DAA_Issuer_InitCredential |
| ( |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_HKEY issuerAuthPK, // in |
| TSS_DAA_IDENTITY_PROOF* identityProof, // in |
| UINT32 capitalUprimeLength, // in |
| BYTE* capitalUprime, // in |
| UINT32 daaCounter, // in |
| UINT32* nonceIssuerLength, // out |
| BYTE** nonceIssuer, // out |
| UINT32* authenticationChallengeLength, // out |
| BYTE** authenticationChallenge, // out |
| UINT32* joinSessionLength, // out |
| BYTE** joinSession // out |
| ); |
| |
| TSPICALL Tspi_DAA_Issuer_IssueCredential |
| ( |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_DAA_CREDENTIAL_REQUEST* credentialRequest, // in |
| UINT32 issuerJoinSessionLength, // in |
| BYTE* issuerJoinSession, // in |
| TSS_DAA_CRED_ISSUER** credIssuer // out |
| ); |
| |
| TSPICALL Tspi_DAA_Verifier_Init |
| ( |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| UINT32* nonceVerifierLength, // out |
| BYTE** nonceVerifier, // out |
| UINT32* baseNameLength, // out |
| BYTE** baseName // out |
| ); |
| |
| TSPICALL Tspi_DAA_VerifySignature |
| ( |
| TSS_HDAA_CREDENTIAL hDAACredential, // in |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_HDAA_ARA_KEY hARAKey, // in |
| TSS_HHASH hARACondition, // in |
| UINT32 attributesLength, // in |
| UINT32 attributesLength2, // in |
| BYTE** attributes, // in |
| UINT32 verifierNonceLength, // in |
| BYTE* verifierNonce, // in |
| UINT32 verifierBaseNameLength, // in |
| BYTE* verifierBaseName, // in |
| TSS_HOBJECT signData, // in |
| TSS_DAA_SIGNATURE* daaSignature, // in |
| TSS_BOOL* isCorrect // out |
| ); |
| |
| TSPICALL Tspi_DAA_ARA_GenerateKey |
| ( |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_HDAA_ARA_KEY hARAKey // in |
| ); |
| |
| TSPICALL Tspi_DAA_ARA_RevokeAnonymity |
| ( |
| TSS_HDAA_ARA_KEY hARAKey, // in |
| TSS_HHASH hARACondition, // in |
| TSS_HDAA_ISSUER_KEY hIssuerKey, // in |
| TSS_DAA_PSEUDONYM_ENCRYPTED* encryptedPseudonym, // in |
| TSS_DAA_PSEUDONYM_PLAIN** pseudonym // out |
| ); |
| |
| |
| |
| // Callback typedefs |
| typedef TSS_RESULT (*Tspicb_CallbackHMACAuth) |
| ( |
| PVOID lpAppData, // in |
| TSS_HOBJECT hAuthorizedObject, // in |
| TSS_BOOL ReturnOrVerify, // in |
| UINT32 ulPendingFunction, // in |
| TSS_BOOL ContinueUse, // in |
| UINT32 ulSizeNonces, // in |
| BYTE* rgbNonceEven, // in |
| BYTE* rgbNonceOdd, // in |
| BYTE* rgbNonceEvenOSAP, // in |
| BYTE* rgbNonceOddOSAP, // in |
| UINT32 ulSizeDigestHmac, // in |
| BYTE* rgbParamDigest, // in |
| BYTE* rgbHmacData // in, out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_CallbackXorEnc) |
| ( |
| PVOID lpAppData, // in |
| TSS_HOBJECT hOSAPObject, // in |
| TSS_HOBJECT hObject, // in |
| TSS_FLAG PurposeSecret, // in |
| UINT32 ulSizeNonces, // in |
| BYTE* rgbNonceEven, // in |
| BYTE* rgbNonceOdd, // in |
| BYTE* rgbNonceEvenOSAP, // in |
| BYTE* rgbNonceOddOSAP, // in |
| UINT32 ulSizeEncAuth, // in |
| BYTE* rgbEncAuthUsage, // out |
| BYTE* rgbEncAuthMigration // out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_CallbackTakeOwnership) |
| ( |
| PVOID lpAppData, // in |
| TSS_HOBJECT hObject, // in |
| TSS_HKEY hObjectPubKey, // in |
| UINT32 ulSizeEncAuth, // in |
| BYTE* rgbEncAuth // out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_CallbackSealxMask) |
| ( |
| PVOID lpAppData, // in |
| TSS_HKEY hKey, // in |
| TSS_HENCDATA hEncData, // in |
| TSS_ALGORITHM_ID algID, // in |
| UINT32 ulSizeNonces, // in |
| BYTE* rgbNonceEven, // in |
| BYTE* rgbNonceOdd, // in |
| BYTE* rgbNonceEvenOSAP, // in |
| BYTE* rgbNonceOddOSAP, // in |
| UINT32 ulDataLength, // in |
| BYTE* rgbDataToMask, // in |
| BYTE* rgbMaskedData // out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_CallbackChangeAuthAsym) |
| ( |
| PVOID lpAppData, // in |
| TSS_HOBJECT hObject, // in |
| TSS_HKEY hObjectPubKey, // in |
| UINT32 ulSizeEncAuth, // in |
| UINT32 ulSizeAuthLink, // in |
| BYTE* rgbEncAuth, // out |
| BYTE* rgbAuthLink // out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_CollateIdentity) |
| ( |
| PVOID lpAppData, // in |
| UINT32 ulTCPAPlainIdentityProofLength, // in |
| BYTE* rgbTCPAPlainIdentityProof, // in |
| TSS_ALGORITHM_ID algID, // in |
| UINT32 ulSessionKeyLength, // out |
| BYTE* rgbSessionKey, // out |
| UINT32* pulTCPAIdentityProofLength, // out |
| BYTE* rgbTCPAIdentityProof // out |
| ); |
| |
| |
| typedef TSS_RESULT (*Tspicb_ActivateIdentity) |
| ( |
| PVOID lpAppData, // in |
| UINT32 ulSessionKeyLength, // in |
| BYTE* rgbSessionKey, // in |
| UINT32 ulSymCAAttestationBlobLength, // in |
| BYTE* rgbSymCAAttestationBlob, // in |
| UINT32* pulCredentialLength, // out |
| BYTE* rgbCredential // out |
| ); |
| |
| |
| typedef TSS_RESULT (*Tspicb_DAA_Sign) |
| ( |
| PVOID lpAppData, // in |
| TSS_HDAA_ISSUER_KEY daaPublicKey, // in |
| UINT32 gammasLength, // in |
| BYTE** gammas, // in |
| UINT32 attributesLength, // in |
| BYTE** attributes, // in |
| UINT32 randomAttributesLength, // in |
| BYTE** randomAttributes, // in |
| UINT32 attributeCommitmentsLength,// in |
| TSS_DAA_ATTRIB_COMMIT* attributeCommitments, // in |
| TSS_DAA_ATTRIB_COMMIT* attributeCommitmentsProof, // in |
| TSS_DAA_PSEUDONYM_PLAIN* pseudonym, // in |
| TSS_DAA_PSEUDONYM_PLAIN* pseudonymTilde, // in |
| TSS_DAA_PSEUDONYM_ENCRYPTED* pseudonymEncrypted, // in |
| TSS_DAA_PSEUDONYM_ENCRYPTED* pseudonymEncProof, // in |
| TSS_DAA_SIGN_CALLBACK** additionalProof // out |
| ); |
| |
| typedef TSS_RESULT (*Tspicb_DAA_VerifySignature) |
| ( |
| PVOID lpAppData, // in |
| UINT32 challengeLength, // in |
| BYTE* challenge, // in |
| TSS_DAA_SIGN_CALLBACK* additionalProof, // in |
| TSS_HDAA_ISSUER_KEY daaPublicKey, // in |
| UINT32 gammasLength, // in |
| BYTE** gammas, // in |
| UINT32 sAttributesLength, // in |
| BYTE** sAttributes, // in |
| UINT32 attributeCommitmentsLength,// in |
| TSS_DAA_ATTRIB_COMMIT* attributeCommitments, // in |
| TSS_DAA_ATTRIB_COMMIT* attributeCommitmentsProof, // in |
| UINT32 zetaLength, // in |
| BYTE* zeta, // in |
| UINT32 sFLength, // in |
| BYTE* sF, // in |
| TSS_DAA_PSEUDONYM* pseudonym, // in |
| TSS_DAA_PSEUDONYM* pseudonymProof, // in |
| TSS_BOOL* isCorrect // out |
| ); |
| |
| |
| #if defined ( __cplusplus ) |
| } |
| #endif /* __cplusplus */ |
| |
| |
| #endif /* _TSPI_H_ */ |