Added ability to create instance with pointer (#3698)

* Added ability to create instance with pointer

* Pull request feedback
This commit is contained in:
Larry Osterman 2022-06-02 17:59:20 -07:00 committed by GitHub
parent 78095ce0c7
commit bea147905a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 10 deletions

View File

@ -44,7 +44,8 @@ int main()
// create client
std::string endpoint(GetEnvHelper::GetEnv("ATTESTATION_AAD_URL"));
AttestationClient attestationClient(AttestationClient::Create(endpoint));
std::shared_ptr<AttestationClient> attestationClient(
std::make_shared<AttestationClient>(AttestationClient::Create(endpoint)));
std::vector<uint8_t> const sgxEnclaveQuote = AttestationCollateral::SgxQuote();
@ -56,7 +57,7 @@ int main()
= AttestationData{AttestationCollateral::RunTimeData(), AttestationDataType::Binary};
Azure::Response<AttestationToken<AttestationResult>> const sgxResult
= attestationClient.AttestSgxEnclave(sgxEnclaveQuote, attestOptions);
= attestationClient->AttestSgxEnclave(sgxEnclaveQuote, attestOptions);
std::cout << "SGX Quote MRSIGNER is: "
<< Convert::Base64Encode(*sgxResult.Value.Body.SgxMrSigner) << std::endl;

View File

@ -40,6 +40,7 @@ int main()
GetEnvHelper::GetEnv("AZURE_TENANT_ID"),
GetEnvHelper::GetEnv("AZURE_CLIENT_ID"),
GetEnvHelper::GetEnv("AZURE_CLIENT_SECRET"));
AttestationAdministrationClient adminClient(AttestationAdministrationClient::Create(
GetEnvHelper::GetEnv("ATTESTATION_AAD_URL"), credential));

View File

@ -322,6 +322,17 @@ issuancerules {
auto const client = AttestationClient::Create(this->m_endpoint, options);
EXPECT_EQ(m_endpoint, client.Endpoint());
}
{
std::unique_ptr<AttestationClient> client = std::make_unique<AttestationClient>(
AttestationClient::Create(this->m_endpoint, options));
EXPECT_EQ(m_endpoint, client->Endpoint());
}
{
std::unique_ptr<AttestationClient const> client = std::make_unique<AttestationClient>(
AttestationClient::Create(this->m_endpoint, options));
EXPECT_EQ(m_endpoint, client->Endpoint());
}
}
namespace {

View File

@ -28,7 +28,7 @@ namespace Azure { namespace Security { namespace Attestation { namespace Test {
private:
protected:
std::shared_ptr<Azure::Core::Credentials::TokenCredential> m_credential;
std::unique_ptr<AttestationAdministrationClient> m_adminClient;
// Create
virtual void SetUp() override
{
@ -36,9 +36,11 @@ namespace Azure { namespace Security { namespace Attestation { namespace Test {
{
// TPM attestation requires a policy document be set. For simplicity, we only run the
// test against an AAD attestation service instance.
auto adminClient = CreateAdminClient(InstanceType::AAD);
m_adminClient = std::make_unique<AttestationAdministrationClient>(
CreateAdminClient(InstanceType::AAD));
// Set a minimal policy, which will make the TPM attestation code happy.
adminClient.SetAttestationPolicy(
m_adminClient->SetAttestationPolicy(
AttestationType::Tpm,
"version=1.0; authorizationrules{=> permit();}; issuancerules{};");
}
@ -46,11 +48,8 @@ namespace Azure { namespace Security { namespace Attestation { namespace Test {
virtual void TearDown() override
{
{
auto adminClient = CreateAdminClient(InstanceType::AAD);
// Reset the attestation policy for this instance back to the default.
adminClient.ResetAttestationPolicy(AttestationType::Tpm);
}
// Reset the attestation policy for this instance back to the default.
m_adminClient->ResetAttestationPolicy(AttestationType::Tpm);
// Make sure you call the base classes TearDown method to ensure recordings are made.
TestBase::TearDown();