azure-sdk-for-cpp/sdk/keyvault/azure-security-keyvault-certificates/samples/certificate_basic_operations.md
George Arama bd08d226e1
relocate kv samples (#5582)
* relocate kv samples

* temp removal of links
2024-04-30 22:09:49 +00:00

3.5 KiB

Creating, getting, updating, and deleting certificates

This sample demonstrates how to :

  • create a certificate
  • get a certificate
  • update a certificate
  • delete a certificate
  • purge a certificate

in Azure Key Vault. To get started, you'll need a URI to an Azure Key Vault.

Creating a CertificateClient

To create a new CertificateClient to create, get, update, or delete certificates, you need the endpoint to an Azure Key Vault and credentials.

Key Vault Certificate client for C++ currently supports any TokenCredential for authenticating.

  auto credential = std::make_shared<Azure::Identity::DefaultAzureCredential>();

Then, in the sample below, you can set keyVaultUrl based on an environment variable, configuration setting, or any way that works for your application.

CertificateClient certificateClient(std::getenv("AZURE_KEYVAULT_URL"), credential);

Creating a Certificate

Call StartCreateCertificate to create a new certificate, with specified properties and policy.

std::string certificateName = "Sample1";
CertificateCreateOptions options;
... 
// start the create process
auto response = certificateClient.StartCreateCertificate(certificateName, options);

Getting a Certificate

Call PollUntilDone to poll the status of the creation. Once the opperation has completed we will call GetCertificate

// wait for complete to get the certificate
auto pollResponse = response.PollUntilDone(defaultWait).Value;
// check the status of the poll response
if (!pollResponse.Error && pollResponse.Status.Value() == "completed")
{
// get the certificate
certificate = certificateClient.GetCertificate(certificateName).Value;
std::cout << "Created certificate with policy. Certificate name : " << certificate.Name();
}

Updating certificate properties

Call UpdateCertificateProperties to change one of the certificate properties.

CertificateUpdateOptions updateOptions;
updateOptions.Properties = certificate.Properties;
updateOptions.Properties.Enabled = false;

auto updatedCertificate
        = certificateClient
            .UpdateCertificateProperties(
                certificateName, certificate.Properties.Version, updateOptions)
            .Value;

std::cout << "After update certificate is enabled : "
          << (updatedCertificate.Properties.Enabled.HasValue()
                      && updatedCertificate.Properties.Enabled.Value()
                  ? "true"
                  : "false");

Deleting a Certificate

Call StartDeleteCertificate to delete a certificate. This is a long running operation.

auto response = certificateClient.StartDeleteCertificate(certificateName);

Purging a deleted certificate

If the Azure Key Vault is soft delete-enabled and you want to permanently delete the certificate before its ScheduledPurgeDate, the certificate needs to be purged.

auto result = response.PollUntilDone(defaultWait);
certificateClient.PurgeDeletedCertificate(certificateName);

Source

To see the full example source, see: Source Code