TPM_RC Tss2_Sys_NV_Read_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_RH_NV_AUTH authHandle, TPMI_RH_NV_INDEX nvIndex, UINT16 size, UINT16 offset ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_NV_Read ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), authHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), nvIndex, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), size, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), offset, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 0; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_NV_Certify_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_DH_OBJECT signHandle, TPMI_RH_NV_AUTH authHandle, TPMI_RH_NV_INDEX nvIndex, TPM2B_DATA *qualifyingData, TPMT_SIG_SCHEME *inScheme, UINT16 size, UINT16 offset ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } if( inScheme == NULL ) { return TSS2_SYS_RC_BAD_REFERENCE; } CommonPreparePrologue( sysContext, TPM_CC_NV_Certify ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), signHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), authHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), nvIndex, &(SYS_CONTEXT->rval) ); if( qualifyingData == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( qualifyingData->b ) ); Marshal_TPMT_SIG_SCHEME( sysContext, inScheme ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), size, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), offset, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_EC_Ephemeral_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_ECC_CURVE curveID ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_EC_Ephemeral ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), curveID, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 0; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_Startup_Prepare( TSS2_SYS_CONTEXT *sysContext, TPM_SU startupType ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_Startup ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), startupType, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 0; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 0; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_Hash_Prepare( TSS2_SYS_CONTEXT *sysContext, TPM2B_MAX_BUFFER *data, TPMI_ALG_HASH hashAlg, TPMI_RH_HIERARCHY hierarchy ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_Hash ); if( data == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( data->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), hashAlg, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), hierarchy, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_SetCommandCodeAuditStatus_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_RH_PROVISION auth, TPMI_ALG_HASH auditAlg, TPML_CC *setList, TPML_CC *clearList ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_SetCommandCodeAuditStatus ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), auth, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), auditAlg, &(SYS_CONTEXT->rval) ); Marshal_TPML_CC( sysContext, setList ); Marshal_TPML_CC( sysContext, clearList ); SYS_CONTEXT->decryptAllowed = 0; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_HMAC_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_DH_OBJECT handle, TPM2B_MAX_BUFFER *buffer, TPMI_ALG_HASH hashAlg ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_HMAC ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), handle, &(SYS_CONTEXT->rval) ); if( buffer == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( buffer->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), hashAlg, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_GetRandom_Prepare( TSS2_SYS_CONTEXT *sysContext, UINT16 bytesRequested ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_GetRandom ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), bytesRequested, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 0; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_HashSequenceStart_Prepare( TSS2_SYS_CONTEXT *sysContext, TPM2B_AUTH *auth, TPMI_ALG_HASH hashAlg ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_HashSequenceStart ); if( auth == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( auth->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), hashAlg, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_PolicyNV_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_RH_NV_AUTH authHandle, TPMI_RH_NV_INDEX nvIndex, TPMI_SH_POLICY policySession, TPM2B_OPERAND *operandB, UINT16 offset, TPM_EO operation ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_PolicyNV ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), authHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), nvIndex, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), policySession, &(SYS_CONTEXT->rval) ); if( operandB == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( operandB->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), offset, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), operation, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_ZGen_2Phase_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_DH_OBJECT keyA, TPM2B_ECC_POINT *inQsB, TPM2B_ECC_POINT *inQeB, TPMI_ECC_KEY_EXCHANGE inScheme, UINT16 counter ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_ZGen_2Phase ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), keyA, &(SYS_CONTEXT->rval) ); if( inQsB == 0 ) { SYS_CONTEXT->decryptNull = 1; } Marshal_TPM2B_ECC_POINT( sysContext, inQsB ); Marshal_TPM2B_ECC_POINT( sysContext, inQeB ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), inScheme, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), counter, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
void Marshal_TPMS_SCHEME_HASH( TSS2_SYS_CONTEXT *sysContext, TPMS_SCHEME_HASH *schemeHash ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), schemeHash->hashAlg, &( SYS_CONTEXT->rval ) ); return; }
void Marshal_TPMS_SIGNATURE_RSA( TSS2_SYS_CONTEXT *sysContext, TPMS_SIGNATURE_RSA *signatureRsa ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), signatureRsa->hash, &( SYS_CONTEXT->rval ) ); MARSHAL_SIMPLE_TPM2B( sysContext, (TPM2B *)&signatureRsa->sig ); return; }
void Marshal_TPMT_HA( TSS2_SYS_CONTEXT *sysContext, TPMT_HA *ha ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), ha->hashAlg, &( SYS_CONTEXT->rval ) ); Marshal_TPMU_HA( sysContext, &ha->digest, ha->hashAlg ); return; }
void Marshal_TPMT_RSA_DECRYPT( TSS2_SYS_CONTEXT *sysContext, TPMT_RSA_DECRYPT *rsaDecrypt ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), rsaDecrypt->scheme, &( SYS_CONTEXT->rval ) ); Marshal_TPMU_ASYM_SCHEME( sysContext, &rsaDecrypt->details, rsaDecrypt->scheme ); return; }
void Marshal_TPMT_KDF_SCHEME( TSS2_SYS_CONTEXT *sysContext, TPMT_KDF_SCHEME *kdfScheme ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), kdfScheme->scheme, &( SYS_CONTEXT->rval ) ); Marshal_TPMU_KDF_SCHEME( sysContext, &kdfScheme->details, kdfScheme->scheme ); return; }
void Marshal_TPMT_SYM_DEF( TSS2_SYS_CONTEXT *sysContext, TPMT_SYM_DEF *symDef ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), symDef->algorithm, &( SYS_CONTEXT->rval ) ); Marshal_TPMU_SYM_KEY_BITS( sysContext, &symDef->keyBits, symDef->algorithm ); Marshal_TPMU_SYM_MODE( sysContext, &symDef->mode, symDef->algorithm ); return; }
void Marshal_TPM2B_SENSITIVE( TSS2_SYS_CONTEXT *sysContext, TPM2B_SENSITIVE *sensitive ) { UINT8 *sizePtr = SYS_CONTEXT->nextData; if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; if( sensitive == 0 ) { Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), 0, &( SYS_CONTEXT->rval )); } else { Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), sensitive->t.size, &( SYS_CONTEXT->rval ) ); Marshal_TPMT_SENSITIVE( sysContext, &sensitive->t.sensitiveArea ); } *(UINT16 *)sizePtr = CHANGE_ENDIAN_WORD( SYS_CONTEXT->nextData - (UINT8 *)sizePtr - 2 ); return; }
void Marshal_TPMT_TK_CREATION( TSS2_SYS_CONTEXT *sysContext, TPMT_TK_CREATION *tkCreation ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), tkCreation->tag, &( SYS_CONTEXT->rval ) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), tkCreation->hierarchy, &( SYS_CONTEXT->rval ) ); MARSHAL_SIMPLE_TPM2B( sysContext, (TPM2B *)&tkCreation->digest ); return; }
void Marshal_TPMU_SYM_MODE( TSS2_SYS_CONTEXT *sysContext, TPMU_SYM_MODE *symMode, UINT32 selector ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; switch( selector ) { #ifdef TPM_ALG_AES case TPM_ALG_AES: Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), symMode->aes, &( SYS_CONTEXT->rval ) ); break; #endif #ifdef TPM_ALG_SM4 case TPM_ALG_SM4: Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), symMode->sm4, &( SYS_CONTEXT->rval ) ); break; #endif #ifdef TPM_ALG_CAMELLIA case TPM_ALG_CAMELLIA: Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), symMode->camellia, &( SYS_CONTEXT->rval ) ); break; #endif #ifdef TPM_ALG_XOR case TPM_ALG_XOR: break; #endif #ifdef TPM_ALG_NULL case TPM_ALG_NULL: break; #endif } return; }
void Marshal_TPMS_RSA_PARMS( TSS2_SYS_CONTEXT *sysContext, TPMS_RSA_PARMS *rsaParms ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_TPMT_SYM_DEF_OBJECT( sysContext, &rsaParms->symmetric ); Marshal_TPMT_RSA_SCHEME( sysContext, &rsaParms->scheme ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), rsaParms->keyBits, &( SYS_CONTEXT->rval ) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), rsaParms->exponent, &( SYS_CONTEXT->rval ) ); return; }
void Marshal_TPMT_SENSITIVE( TSS2_SYS_CONTEXT *sysContext, TPMT_SENSITIVE *sensitive ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), sensitive->sensitiveType, &( SYS_CONTEXT->rval ) ); MARSHAL_SIMPLE_TPM2B( sysContext, (TPM2B *)&sensitive->authValue ); MARSHAL_SIMPLE_TPM2B( sysContext, (TPM2B *)&sensitive->seedValue ); Marshal_TPMU_SENSITIVE_COMPOSITE( sysContext, &sensitive->sensitive, sensitive->sensitiveType ); return; }
void Marshal_TPMS_ECC_PARMS( TSS2_SYS_CONTEXT *sysContext, TPMS_ECC_PARMS *eccParms ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_TPMT_SYM_DEF_OBJECT( sysContext, &eccParms->symmetric ); Marshal_TPMT_ECC_SCHEME( sysContext, &eccParms->scheme ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), eccParms->curveID, &( SYS_CONTEXT->rval ) ); Marshal_TPMT_KDF_SCHEME( sysContext, &eccParms->kdf ); return; }
void Marshal_TPML_ALG( TSS2_SYS_CONTEXT *sysContext, TPML_ALG *alg ) { UINT32 i; if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), alg->count, &( SYS_CONTEXT->rval ) ); for( i = 0; i < alg->count; i++ ) { Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), alg->algorithms[i], &( SYS_CONTEXT->rval ) ); } return; }
void Marshal_TPMS_PCR_SELECTION( TSS2_SYS_CONTEXT *sysContext, TPMS_PCR_SELECTION *pcrSelection ) { UINT32 i; if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), pcrSelection->hash, &( SYS_CONTEXT->rval ) ); Marshal_UINT8( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), pcrSelection->sizeofSelect, &( SYS_CONTEXT->rval ) ); for( i = 0; i < pcrSelection->sizeofSelect; i++ ) { Marshal_UINT8( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), pcrSelection->pcrSelect[i], &( SYS_CONTEXT->rval ) ); } return; }
TPM_RC Tss2_Sys_NV_Write_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_RH_NV_AUTH authHandle, TPMI_RH_NV_INDEX nvIndex, TPM2B_MAX_NV_BUFFER *data, UINT16 offset ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_NV_Write ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), authHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), nvIndex, &(SYS_CONTEXT->rval) ); if( data == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( data->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), offset, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_EncryptDecrypt_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_DH_OBJECT keyHandle, TPMI_YES_NO decrypt, TPMI_ALG_SYM_MODE mode, TPM2B_IV *ivIn, TPM2B_MAX_BUFFER *inData ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_EncryptDecrypt ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), keyHandle, &(SYS_CONTEXT->rval) ); Marshal_UINT8( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), decrypt, &(SYS_CONTEXT->rval) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), mode, &(SYS_CONTEXT->rval) ); MARSHAL_SIMPLE_TPM2B( sysContext, &( ivIn->b ) ); MARSHAL_SIMPLE_TPM2B( sysContext, &( inData->b ) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 1; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }
TPM_RC Tss2_Sys_PCR_SetAuthPolicy_Prepare( TSS2_SYS_CONTEXT *sysContext, TPMI_RH_PLATFORM authHandle, TPM2B_DIGEST *authPolicy, TPMI_ALG_HASH hashAlg, TPMI_DH_PCR pcrNum ) { if( sysContext == NULL ) { return( TSS2_SYS_RC_BAD_REFERENCE ); } CommonPreparePrologue( sysContext, TPM_CC_PCR_SetAuthPolicy ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), authHandle, &(SYS_CONTEXT->rval) ); if( authPolicy == 0 ) { SYS_CONTEXT->decryptNull = 1; } MARSHAL_SIMPLE_TPM2B( sysContext, &( authPolicy->b ) ); Marshal_UINT16( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), hashAlg, &(SYS_CONTEXT->rval) ); Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), pcrNum, &(SYS_CONTEXT->rval) ); SYS_CONTEXT->decryptAllowed = 1; SYS_CONTEXT->encryptAllowed = 0; SYS_CONTEXT->authAllowed = 1; CommonPrepareEpilogue( sysContext ); return SYS_CONTEXT->rval; }