| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is GENERATED and do not modify it manually. |
| // To reproduce the generation process, run |
| // //src/platform2/libhwsec/overalls/gen_overalls.py with arguments as: |
| // --filter-by-usage |
| |
| #ifndef LIBHWSEC_OVERALLS_OVERALLS_H_ |
| #define LIBHWSEC_OVERALLS_OVERALLS_H_ |
| |
| #include <trousers/tss.h> |
| #include <trousers/trousers.h> // NOLINT(build/include_alpha) - needs tss.h |
| |
| namespace hwsec { |
| namespace overalls { |
| |
| // |Overalls| wraps trousers API (including Tspi and Trspi family), with the |
| // wrapper API name being the trousers API names of which the first "T" replaced |
| // by "O". For example, |Overalls::Ospi_Context_Create| calls |
| // |Tspi_Context_Create|. |
| // |
| // The purpose of this wrapper class is to make trousers APIs to be mock-able so |
| // we can enable the callers of trouser to be unittested in googletest |
| // framework. |
| class Overalls { |
| public: |
| Overalls() = default; |
| virtual ~Overalls() = default; |
| virtual void Orspi_UnloadBlob_UINT32(UINT64* offset, |
| UINT32* out, |
| BYTE* blob) { |
| return Trspi_UnloadBlob_UINT32(offset, out, blob); |
| } |
| virtual void Orspi_UnloadBlob_UINT16(UINT64* offset, |
| UINT16* out, |
| BYTE* blob) { |
| return Trspi_UnloadBlob_UINT16(offset, out, blob); |
| } |
| virtual TSS_RESULT Orspi_UnloadBlob_PUBKEY(UINT64* offset, |
| BYTE* blob, |
| TCPA_PUBKEY* pubKey) { |
| return Trspi_UnloadBlob_PUBKEY(offset, blob, pubKey); |
| } |
| virtual TSS_RESULT Orspi_UnloadBlob_KEY12(UINT64* offset, |
| BYTE* blob, |
| TPM_KEY12* key) { |
| return Trspi_UnloadBlob_KEY12(offset, blob, key); |
| } |
| virtual void Orspi_LoadBlob_UINT32(UINT64* offset, UINT32 in, BYTE* blob) { |
| return Trspi_LoadBlob_UINT32(offset, in, blob); |
| } |
| virtual void Orspi_LoadBlob_PUBKEY(UINT64* offset, |
| BYTE* blob, |
| TCPA_PUBKEY* pubKey) { |
| return Trspi_LoadBlob_PUBKEY(offset, blob, pubKey); |
| } |
| virtual TSS_RESULT Orspi_SymDecrypt(UINT16 alg, |
| UINT16 mode, |
| BYTE* key, |
| BYTE* iv, |
| BYTE* in, |
| UINT32 in_len, |
| BYTE* out, |
| UINT32* out_len) { |
| return Trspi_SymDecrypt(alg, mode, key, iv, in, in_len, out, out_len); |
| } |
| virtual TSS_RESULT Orspi_MGF1( |
| UINT32 alg, UINT32 seedLen, BYTE* seed, UINT32 outLen, BYTE* out) { |
| return Trspi_MGF1(alg, seedLen, seed, outLen, out); |
| } |
| virtual char* Orspi_Error_String(TSS_RESULT arg0) { |
| return Trspi_Error_String(arg0); |
| } |
| virtual TSS_RESULT Ospi_SetAttribUint32(TSS_HOBJECT hObject, |
| TSS_FLAG attribFlag, |
| TSS_FLAG subFlag, |
| UINT32 ulAttrib) { |
| return Tspi_SetAttribUint32(hObject, attribFlag, subFlag, ulAttrib); |
| } |
| virtual TSS_RESULT Ospi_GetAttribUint32(TSS_HOBJECT hObject, |
| TSS_FLAG attribFlag, |
| TSS_FLAG subFlag, |
| UINT32* pulAttrib) { |
| return Tspi_GetAttribUint32(hObject, attribFlag, subFlag, pulAttrib); |
| } |
| virtual TSS_RESULT Ospi_SetAttribData(TSS_HOBJECT hObject, |
| TSS_FLAG attribFlag, |
| TSS_FLAG subFlag, |
| UINT32 ulAttribDataSize, |
| BYTE* rgbAttribData) { |
| return Tspi_SetAttribData(hObject, attribFlag, subFlag, ulAttribDataSize, |
| rgbAttribData); |
| } |
| virtual TSS_RESULT Ospi_GetAttribData(TSS_HOBJECT hObject, |
| TSS_FLAG attribFlag, |
| TSS_FLAG subFlag, |
| UINT32* pulAttribDataSize, |
| BYTE** prgbAttribData) { |
| return Tspi_GetAttribData(hObject, attribFlag, subFlag, pulAttribDataSize, |
| prgbAttribData); |
| } |
| virtual TSS_RESULT Ospi_ChangeAuth(TSS_HOBJECT hObjectToChange, |
| TSS_HOBJECT hParentObject, |
| TSS_HPOLICY hNewPolicy) { |
| return Tspi_ChangeAuth(hObjectToChange, hParentObject, hNewPolicy); |
| } |
| virtual TSS_RESULT Ospi_GetPolicyObject(TSS_HOBJECT hObject, |
| TSS_FLAG policyType, |
| TSS_HPOLICY* phPolicy) { |
| return Tspi_GetPolicyObject(hObject, policyType, phPolicy); |
| } |
| virtual TSS_RESULT Ospi_Context_Create(TSS_HCONTEXT* phContext) { |
| return Tspi_Context_Create(phContext); |
| } |
| virtual TSS_RESULT Ospi_Context_Close(TSS_HCONTEXT hContext) { |
| return Tspi_Context_Close(hContext); |
| } |
| virtual TSS_RESULT Ospi_Context_Connect(TSS_HCONTEXT hContext, |
| TSS_UNICODE* wszDestination) { |
| return Tspi_Context_Connect(hContext, wszDestination); |
| } |
| virtual TSS_RESULT Ospi_Context_FreeMemory(TSS_HCONTEXT hContext, |
| BYTE* rgbMemory) { |
| return Tspi_Context_FreeMemory(hContext, rgbMemory); |
| } |
| virtual TSS_RESULT Ospi_Context_GetDefaultPolicy(TSS_HCONTEXT hContext, |
| TSS_HPOLICY* phPolicy) { |
| return Tspi_Context_GetDefaultPolicy(hContext, phPolicy); |
| } |
| virtual TSS_RESULT Ospi_Context_CreateObject(TSS_HCONTEXT hContext, |
| TSS_FLAG objectType, |
| TSS_FLAG initFlags, |
| TSS_HOBJECT* phObject) { |
| return Tspi_Context_CreateObject(hContext, objectType, initFlags, phObject); |
| } |
| virtual TSS_RESULT Ospi_Context_CloseObject(TSS_HCONTEXT hContext, |
| TSS_HOBJECT hObject) { |
| return Tspi_Context_CloseObject(hContext, hObject); |
| } |
| virtual TSS_RESULT Ospi_Context_GetTpmObject(TSS_HCONTEXT hContext, |
| TSS_HTPM* phTPM) { |
| return Tspi_Context_GetTpmObject(hContext, phTPM); |
| } |
| virtual TSS_RESULT Ospi_Context_LoadKeyByBlob(TSS_HCONTEXT hContext, |
| TSS_HKEY hUnwrappingKey, |
| UINT32 ulBlobLength, |
| BYTE* rgbBlobData, |
| TSS_HKEY* phKey) { |
| return Tspi_Context_LoadKeyByBlob(hContext, hUnwrappingKey, ulBlobLength, |
| rgbBlobData, phKey); |
| } |
| virtual TSS_RESULT Ospi_Context_LoadKeyByUUID(TSS_HCONTEXT hContext, |
| TSS_FLAG persistentStorageType, |
| TSS_UUID uuidData, |
| TSS_HKEY* phKey) { |
| return Tspi_Context_LoadKeyByUUID(hContext, persistentStorageType, uuidData, |
| phKey); |
| } |
| virtual TSS_RESULT Ospi_Policy_SetSecret(TSS_HPOLICY hPolicy, |
| TSS_FLAG secretMode, |
| UINT32 ulSecretLength, |
| BYTE* rgbSecret) { |
| return Tspi_Policy_SetSecret(hPolicy, secretMode, ulSecretLength, |
| rgbSecret); |
| } |
| virtual TSS_RESULT Ospi_Policy_AssignToObject(TSS_HPOLICY hPolicy, |
| TSS_HOBJECT hObject) { |
| return Tspi_Policy_AssignToObject(hPolicy, hObject); |
| } |
| virtual TSS_RESULT Ospi_TPM_CreateEndorsementKey( |
| TSS_HTPM hTPM, TSS_HKEY hKey, TSS_VALIDATION* pValidationData) { |
| return Tspi_TPM_CreateEndorsementKey(hTPM, hKey, pValidationData); |
| } |
| virtual TSS_RESULT Ospi_TPM_GetPubEndorsementKey( |
| TSS_HTPM hTPM, |
| TSS_BOOL fOwnerAuthorized, |
| TSS_VALIDATION* pValidationData, |
| TSS_HKEY* phEndorsementPubKey) { |
| return Tspi_TPM_GetPubEndorsementKey(hTPM, fOwnerAuthorized, |
| pValidationData, phEndorsementPubKey); |
| } |
| virtual TSS_RESULT Ospi_TPM_TakeOwnership(TSS_HTPM hTPM, |
| TSS_HKEY hKeySRK, |
| TSS_HKEY hEndorsementPubKey) { |
| return Tspi_TPM_TakeOwnership(hTPM, hKeySRK, hEndorsementPubKey); |
| } |
| virtual TSS_RESULT Ospi_TPM_CollateIdentityRequest( |
| TSS_HTPM hTPM, |
| TSS_HKEY hKeySRK, |
| TSS_HKEY hCAPubKey, |
| UINT32 ulIdentityLabelLength, |
| BYTE* rgbIdentityLabelData, |
| TSS_HKEY hIdentityKey, |
| TSS_ALGORITHM_ID algID, |
| UINT32* pulTCPAIdentityReqLength, |
| BYTE** prgbTCPAIdentityReq) { |
| return Tspi_TPM_CollateIdentityRequest( |
| hTPM, hKeySRK, hCAPubKey, ulIdentityLabelLength, rgbIdentityLabelData, |
| hIdentityKey, algID, pulTCPAIdentityReqLength, prgbTCPAIdentityReq); |
| } |
| virtual TSS_RESULT Ospi_TPM_ActivateIdentity( |
| TSS_HTPM hTPM, |
| TSS_HKEY hIdentKey, |
| UINT32 ulAsymCAContentsBlobLength, |
| BYTE* rgbAsymCAContentsBlob, |
| UINT32 ulSymCAAttestationBlobLength, |
| BYTE* rgbSymCAAttestationBlob, |
| UINT32* pulCredentialLength, |
| BYTE** prgbCredential) { |
| return Tspi_TPM_ActivateIdentity( |
| hTPM, hIdentKey, ulAsymCAContentsBlobLength, rgbAsymCAContentsBlob, |
| ulSymCAAttestationBlobLength, rgbSymCAAttestationBlob, |
| pulCredentialLength, prgbCredential); |
| } |
| virtual TSS_RESULT Ospi_TPM_SetStatus(TSS_HTPM hTPM, |
| TSS_FLAG statusFlag, |
| TSS_BOOL fTpmState) { |
| return Tspi_TPM_SetStatus(hTPM, statusFlag, fTpmState); |
| } |
| virtual TSS_RESULT Ospi_TPM_GetStatus(TSS_HTPM hTPM, |
| TSS_FLAG statusFlag, |
| TSS_BOOL* pfTpmState) { |
| return Tspi_TPM_GetStatus(hTPM, statusFlag, pfTpmState); |
| } |
| virtual TSS_RESULT Ospi_TPM_FieldUpgrade(TSS_HTPM hTPM, |
| UINT32 ulDataInLength, |
| BYTE* rgbDataIn, |
| UINT32* pulDataOutLength, |
| BYTE** prgbDataOut) { |
| return Tspi_TPM_FieldUpgrade(hTPM, ulDataInLength, rgbDataIn, |
| pulDataOutLength, prgbDataOut); |
| } |
| virtual TSS_RESULT Ospi_TPM_GetCapability(TSS_HTPM hTPM, |
| TSS_FLAG capArea, |
| UINT32 ulSubCapLength, |
| BYTE* rgbSubCap, |
| UINT32* pulRespDataLength, |
| BYTE** prgbRespData) { |
| return Tspi_TPM_GetCapability(hTPM, capArea, ulSubCapLength, rgbSubCap, |
| pulRespDataLength, prgbRespData); |
| } |
| virtual TSS_RESULT Ospi_TPM_GetRandom(TSS_HTPM hTPM, |
| UINT32 ulRandomDataLength, |
| BYTE** prgbRandomData) { |
| return Tspi_TPM_GetRandom(hTPM, ulRandomDataLength, prgbRandomData); |
| } |
| virtual TSS_RESULT Ospi_TPM_StirRandom(TSS_HTPM hTPM, |
| UINT32 ulEntropyDataLength, |
| BYTE* rgbEntropyData) { |
| return Tspi_TPM_StirRandom(hTPM, ulEntropyDataLength, rgbEntropyData); |
| } |
| virtual TSS_RESULT Ospi_TPM_Quote(TSS_HTPM hTPM, |
| TSS_HKEY hIdentKey, |
| TSS_HPCRS hPcrComposite, |
| TSS_VALIDATION* pValidationData) { |
| return Tspi_TPM_Quote(hTPM, hIdentKey, hPcrComposite, pValidationData); |
| } |
| virtual TSS_RESULT Ospi_TPM_PcrExtend(TSS_HTPM hTPM, |
| UINT32 ulPcrIndex, |
| UINT32 ulPcrDataLength, |
| BYTE* pbPcrData, |
| TSS_PCR_EVENT* pPcrEvent, |
| UINT32* pulPcrValueLength, |
| BYTE** prgbPcrValue) { |
| return Tspi_TPM_PcrExtend(hTPM, ulPcrIndex, ulPcrDataLength, pbPcrData, |
| pPcrEvent, pulPcrValueLength, prgbPcrValue); |
| } |
| virtual TSS_RESULT Ospi_TPM_PcrRead(TSS_HTPM hTPM, |
| UINT32 ulPcrIndex, |
| UINT32* pulPcrValueLength, |
| BYTE** prgbPcrValue) { |
| return Tspi_TPM_PcrRead(hTPM, ulPcrIndex, pulPcrValueLength, prgbPcrValue); |
| } |
| virtual TSS_RESULT Ospi_TPM_AuthorizeMigrationTicket( |
| TSS_HTPM hTPM, |
| TSS_HKEY hMigrationKey, |
| TSS_MIGRATE_SCHEME migrationScheme, |
| UINT32* pulMigTicketLength, |
| BYTE** prgbMigTicket) { |
| return Tspi_TPM_AuthorizeMigrationTicket(hTPM, hMigrationKey, |
| migrationScheme, |
| pulMigTicketLength, prgbMigTicket); |
| } |
| virtual TSS_RESULT Ospi_TPM_CMKApproveMA(TSS_HTPM hTPM, |
| TSS_HMIGDATA hMaAuthData) { |
| return Tspi_TPM_CMKApproveMA(hTPM, hMaAuthData); |
| } |
| virtual TSS_RESULT Ospi_TPM_CMKCreateTicket(TSS_HTPM hTPM, |
| TSS_HKEY hVerifyKey, |
| TSS_HMIGDATA hSigData) { |
| return Tspi_TPM_CMKCreateTicket(hTPM, hVerifyKey, hSigData); |
| } |
| virtual TSS_RESULT Ospi_PcrComposite_SelectPcrIndex(TSS_HPCRS hPcrComposite, |
| UINT32 ulPcrIndex) { |
| return Tspi_PcrComposite_SelectPcrIndex(hPcrComposite, ulPcrIndex); |
| } |
| virtual TSS_RESULT Ospi_PcrComposite_SetPcrValue(TSS_HPCRS hPcrComposite, |
| UINT32 ulPcrIndex, |
| UINT32 ulPcrValueLength, |
| BYTE* rgbPcrValue) { |
| return Tspi_PcrComposite_SetPcrValue(hPcrComposite, ulPcrIndex, |
| ulPcrValueLength, rgbPcrValue); |
| } |
| virtual TSS_RESULT Ospi_PcrComposite_GetPcrValue(TSS_HPCRS hPcrComposite, |
| UINT32 ulPcrIndex, |
| UINT32* pulPcrValueLength, |
| BYTE** prgbPcrValue) { |
| return Tspi_PcrComposite_GetPcrValue(hPcrComposite, ulPcrIndex, |
| pulPcrValueLength, prgbPcrValue); |
| } |
| virtual TSS_RESULT Ospi_PcrComposite_SetPcrLocality(TSS_HPCRS hPcrComposite, |
| UINT32 LocalityValue) { |
| return Tspi_PcrComposite_SetPcrLocality(hPcrComposite, LocalityValue); |
| } |
| virtual TSS_RESULT Ospi_Key_LoadKey(TSS_HKEY hKey, TSS_HKEY hUnwrappingKey) { |
| return Tspi_Key_LoadKey(hKey, hUnwrappingKey); |
| } |
| virtual TSS_RESULT Ospi_Key_UnloadKey(TSS_HKEY hKey) { |
| return Tspi_Key_UnloadKey(hKey); |
| } |
| virtual TSS_RESULT Ospi_Key_GetPubKey(TSS_HKEY hKey, |
| UINT32* pulPubKeyLength, |
| BYTE** prgbPubKey) { |
| return Tspi_Key_GetPubKey(hKey, pulPubKeyLength, prgbPubKey); |
| } |
| virtual TSS_RESULT Ospi_Key_CertifyKey(TSS_HKEY hKey, |
| TSS_HKEY hCertifyingKey, |
| TSS_VALIDATION* pValidationData) { |
| return Tspi_Key_CertifyKey(hKey, hCertifyingKey, pValidationData); |
| } |
| virtual TSS_RESULT Ospi_Key_CreateKey(TSS_HKEY hKey, |
| TSS_HKEY hWrappingKey, |
| TSS_HPCRS hPcrComposite) { |
| return Tspi_Key_CreateKey(hKey, hWrappingKey, hPcrComposite); |
| } |
| virtual TSS_RESULT Ospi_Key_WrapKey(TSS_HKEY hKey, |
| TSS_HKEY hWrappingKey, |
| TSS_HPCRS hPcrComposite) { |
| return Tspi_Key_WrapKey(hKey, hWrappingKey, hPcrComposite); |
| } |
| virtual TSS_RESULT Ospi_Key_CMKCreateBlob(TSS_HKEY hKeyToMigrate, |
| TSS_HKEY hParentKey, |
| TSS_HMIGDATA hMigrationData, |
| UINT32* pulRandomLength, |
| BYTE** prgbRandom) { |
| return Tspi_Key_CMKCreateBlob(hKeyToMigrate, hParentKey, hMigrationData, |
| pulRandomLength, prgbRandom); |
| } |
| virtual TSS_RESULT Ospi_Hash_Sign(TSS_HHASH hHash, |
| TSS_HKEY hKey, |
| UINT32* pulSignatureLength, |
| BYTE** prgbSignature) { |
| return Tspi_Hash_Sign(hHash, hKey, pulSignatureLength, prgbSignature); |
| } |
| virtual TSS_RESULT Ospi_Hash_SetHashValue(TSS_HHASH hHash, |
| UINT32 ulHashValueLength, |
| BYTE* rgbHashValue) { |
| return Tspi_Hash_SetHashValue(hHash, ulHashValueLength, rgbHashValue); |
| } |
| virtual TSS_RESULT Ospi_Data_Bind(TSS_HENCDATA hEncData, |
| TSS_HKEY hEncKey, |
| UINT32 ulDataLength, |
| BYTE* rgbDataToBind) { |
| return Tspi_Data_Bind(hEncData, hEncKey, ulDataLength, rgbDataToBind); |
| } |
| virtual TSS_RESULT Ospi_Data_Unbind(TSS_HENCDATA hEncData, |
| TSS_HKEY hKey, |
| UINT32* pulUnboundDataLength, |
| BYTE** prgbUnboundData) { |
| return Tspi_Data_Unbind(hEncData, hKey, pulUnboundDataLength, |
| prgbUnboundData); |
| } |
| virtual TSS_RESULT Ospi_Data_Seal(TSS_HENCDATA hEncData, |
| TSS_HKEY hEncKey, |
| UINT32 ulDataLength, |
| BYTE* rgbDataToSeal, |
| TSS_HPCRS hPcrComposite) { |
| return Tspi_Data_Seal(hEncData, hEncKey, ulDataLength, rgbDataToSeal, |
| hPcrComposite); |
| } |
| virtual TSS_RESULT Ospi_Data_Unseal(TSS_HENCDATA hEncData, |
| TSS_HKEY hKey, |
| UINT32* pulUnsealedDataLength, |
| BYTE** prgbUnsealedData) { |
| return Tspi_Data_Unseal(hEncData, hKey, pulUnsealedDataLength, |
| prgbUnsealedData); |
| } |
| virtual TSS_RESULT Ospi_NV_DefineSpace(TSS_HNVSTORE hNVStore, |
| TSS_HPCRS hReadPcrComposite, |
| TSS_HPCRS hWritePcrComposite) { |
| return Tspi_NV_DefineSpace(hNVStore, hReadPcrComposite, hWritePcrComposite); |
| } |
| virtual TSS_RESULT Ospi_NV_ReleaseSpace(TSS_HNVSTORE hNVStore) { |
| return Tspi_NV_ReleaseSpace(hNVStore); |
| } |
| virtual TSS_RESULT Ospi_NV_WriteValue(TSS_HNVSTORE hNVStore, |
| UINT32 offset, |
| UINT32 ulDataLength, |
| BYTE* rgbDataToWrite) { |
| return Tspi_NV_WriteValue(hNVStore, offset, ulDataLength, rgbDataToWrite); |
| } |
| virtual TSS_RESULT Ospi_NV_ReadValue(TSS_HNVSTORE hNVStore, |
| UINT32 offset, |
| UINT32* ulDataLength, |
| BYTE** rgbDataRead) { |
| return Tspi_NV_ReadValue(hNVStore, offset, ulDataLength, rgbDataRead); |
| } |
| }; |
| |
| } // namespace overalls |
| } // namespace hwsec |
| |
| #endif // LIBHWSEC_OVERALLS_OVERALLS_H_ |