void Marshal_TPMU_SIGNATURE( TSS2_SYS_CONTEXT *sysContext, TPMU_SIGNATURE *signature, UINT32 selector ) { if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; switch( selector ) { #ifdef TPM_ALG_RSASSA case TPM_ALG_RSASSA: Marshal_TPMS_SIGNATURE_RSASSA( sysContext, &signature->rsassa ); break; #endif #ifdef TPM_ALG_RSAPSS case TPM_ALG_RSAPSS: Marshal_TPMS_SIGNATURE_RSAPSS( sysContext, &signature->rsapss ); break; #endif #ifdef TPM_ALG_ECDSA case TPM_ALG_ECDSA: Marshal_TPMS_SIGNATURE_ECDSA( sysContext, &signature->ecdsa ); break; #endif #ifdef TPM_ALG_ECDAA case TPM_ALG_ECDAA: Marshal_TPMS_SIGNATURE_ECDAA( sysContext, &signature->ecdaa ); break; #endif #ifdef TPM_ALG_SM2 case TPM_ALG_SM2: Marshal_TPMS_SIGNATURE_SM2( sysContext, &signature->sm2 ); break; #endif #ifdef TPM_ALG_ECSCHNORR case TPM_ALG_ECSCHNORR: Marshal_TPMS_SIGNATURE_ECSCHNORR( sysContext, &signature->ecschnorr ); break; #endif #ifdef TPM_ALG_HMAC case TPM_ALG_HMAC: Marshal_TPMT_HA( sysContext, &signature->hmac ); break; #endif #ifdef TPM_ALG_NULL case TPM_ALG_NULL: break; #endif } return; }
void Marshal_TPML_DIGEST_VALUES( TSS2_SYS_CONTEXT *sysContext, TPML_DIGEST_VALUES *digestValues ) { UINT32 i; if( SYS_CONTEXT->rval != TSS2_RC_SUCCESS ) return; Marshal_UINT32( SYS_CONTEXT->tpmInBuffPtr, SYS_CONTEXT->maxCommandSize, &(SYS_CONTEXT->nextData), digestValues->count, &( SYS_CONTEXT->rval ) ); for( i = 0; i < digestValues->count; i++ ) { Marshal_TPMT_HA( sysContext, &digestValues->digests[i] ); } return; }