/// <summary> /// Attest a TPM based enclave. /// See <seealso href="https://docs.microsoft.com/en-us/azure/attestation/virtualization-based-security-protocol"/> for more information. /// </summary> /// <param name="request">TPM Attestation request.</param> /// <param name="cancellationToken">Cancellation token used to cancel this operation.</param> /// <returns>A <see cref="TpmAttestationResponse"/> containing the TPM attestation response.</returns> public virtual Response <TpmAttestationResponse> AttestTpm(TpmAttestationRequest request, CancellationToken cancellationToken = default) { Argument.AssertNotNull(request, nameof(request)); using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(AttestationClient)}.{nameof(AttestTpm)}"); scope.Start(); try { return(_restClient.AttestTpm(request, cancellationToken)); } catch (Exception ex) { scope.Failed(ex); throw; } }
/// <summary> /// Attest a TPM based enclave. /// See https://docs.microsoft.com/en-us/azure/attestation/virtualization-based-security-protocol for more information. /// </summary> /// <param name="request"></param> /// <param name="cancellationToken">Cancellation token used to cancel this operation.</param> /// <returns>A <see cref="TpmAttestationResponse"/>.</returns> public virtual Response <BinaryData> AttestTpm(BinaryData request, CancellationToken cancellationToken = default) { Argument.AssertNotNull(request, nameof(request)); using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(AttestationClient)}.{nameof(AttestTpm)}"); scope.Start(); try { var response = _restClient.AttestTpm(new TpmAttestationRequest { Data = request.ToArray() }, cancellationToken); BinaryData responseData = new BinaryData(response.Value); return(Response.FromValue(responseData, response.GetRawResponse())); } catch (Exception ex) { scope.Failed(ex); throw; } }