8 #include <azure/core/context.hpp>
9 #include <azure/core/internal/tracing/service_tracing.hpp>
10 #include <azure/core/url.hpp>
13 namespace Azure {
namespace Core {
namespace Http {
namespace _internal {
17 namespace Azure {
namespace Security {
namespace Attestation {
133 std::string
const& endpoint,
134 std::shared_ptr<Core::Credentials::TokenCredential const> credential,
136 Azure::Core::Context
const& constext = Azure::Core::Context{});
152 std::string
const& endpoint,
154 Azure::Core::Context
const& constext = Azure::Core::Context{});
168 std::string
const Endpoint()
const {
return m_endpoint.GetAbsoluteUrl(); }
179 Azure::Core::Context
const& context = Azure::Core::Context::ApplicationContext)
const;
188 Azure::Core::Context
const& context = Azure::Core::Context{})
const;
202 Response<Models::AttestationToken<Models::AttestationResult>>
AttestSgxEnclave(
203 std::vector<uint8_t>
const& sgxQuoteToAttest,
204 AttestSgxEnclaveOptions options = AttestSgxEnclaveOptions{},
205 Azure::Core::Context
const& context = Azure::Core::Context{})
const;
221 std::vector<uint8_t>
const& openEnclaveReportToAttest,
222 AttestOpenEnclaveOptions options = AttestOpenEnclaveOptions{},
223 Azure::Core::Context
const& context = Azure::Core::Context{})
const;
237 Response<Models::TpmAttestationResult>
AttestTpm(
238 std::vector<uint8_t>
const& dataToAttest,
239 AttestTpmOptions
const& options = AttestTpmOptions{},
240 Azure::Core::Context
const& context = Azure::Core::Context{})
const;
243 Azure::Core::Url m_endpoint;
244 std::string m_apiVersion;
245 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_pipeline;
246 AttestationTokenValidationOptions m_tokenValidationOptions;
247 std::vector<Models::AttestationSigner> m_attestationSigners;
248 Azure::Core::Tracing::_internal::TracingContextFactory m_tracingFactory;
257 std::string
const& endpoint,
258 std::shared_ptr<Core::Credentials::TokenCredential const> credential,
259 AttestationClientOptions options = AttestationClientOptions{});
267 void RetrieveResponseValidationCollateral(
268 Azure::Core::Context
const& context = Azure::Core::Context{});
Defines the Azure Attestation API types.
Defines the supported options to create a Attestation clients.
Definition: attestation_client.hpp:117
AttestationClient(AttestationClient const &attestationClient)=default
Construct a new Attestation Client object from an existing attestation client.
static AttestationClient Create(std::string const &endpoint, std::shared_ptr< Core::Credentials::TokenCredential const > credential, AttestationClientOptions const &options=AttestationClientOptions{}, Azure::Core::Context const &constext=Azure::Core::Context{})
Construct a new Attestation Client object.
Definition: attestation_client.cpp:290
virtual ~AttestationClient()=default
Destructor.
Response< Models::AttestationToken< Models::AttestationResult > > AttestSgxEnclave(std::vector< uint8_t > const &sgxQuoteToAttest, AttestSgxEnclaveOptions options=AttestSgxEnclaveOptions{}, Azure::Core::Context const &context=Azure::Core::Context{}) const
Attest an SGX enclave, returning an attestation token representing the result of the attestation oper...
Definition: attestation_client.cpp:112
Response< Models::TokenValidationCertificateResult > GetTokenValidationCertificates(Azure::Core::Context const &context=Azure::Core::Context{}) const
Retrieve the attestation signing certificates for this attestation instance.
Definition: attestation_client.cpp:83
Response< Models::AttestationToken< Models::AttestationResult > > AttestOpenEnclave(std::vector< uint8_t > const &openEnclaveReportToAttest, AttestOpenEnclaveOptions options=AttestOpenEnclaveOptions{}, Azure::Core::Context const &context=Azure::Core::Context{}) const
Attest an OpenEnclave report, returning an attestation token representing the result of the attestati...
Definition: attestation_client.cpp:166
Response< Models::TpmAttestationResult > AttestTpm(std::vector< uint8_t > const &dataToAttest, AttestTpmOptions const &options=AttestTpmOptions{}, Azure::Core::Context const &context=Azure::Core::Context{}) const
Sends TPM-based attestation data to the service. The TPM attestation protocol is defined here
Definition: attestation_client.cpp:206
Response< Models::OpenIdMetadata > GetOpenIdMetadata(Azure::Core::Context const &context=Azure::Core::Context::ApplicationContext) const
Definition: attestation_client.cpp:61
Azure SDK abstractions.
Definition: attestation_administration_client.hpp:13
Define the options to create an Attestation client.
Definition: attestation_client_options.hpp:94