Esempio n. 1
0
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;
}