Exemple #1
0
 /// <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;
     }
 }
Exemple #2
0
        /// <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;
            }
        }