Class KeyClient
KeyClient
provides synchronous methods to manage keys
in the Azure Key Vault. The
client supports creating, retrieving, updating, deleting, purging, backing up, restoring, listing, releasing and
rotating the keys
. The client also supports listing deleted keys
for a
soft-delete enabled Azure Key Vault.
Getting Started
In order to interact with the Azure Key Vault service, you will need to create an instance of the
KeyClient
class, a vault url and a credential object.
The examples shown in this document use a credential object named DefaultAzureCredential for authentication, which is appropriate for most scenarios, including local development and production environments. Additionally, we recommend using a managed identity for authentication in production environments. You can find more information on different ways of authenticating and their corresponding credential types in the Azure Identity documentation".
Sample: Construct Synchronous Key Client
The following code sample demonstrates the creation of a KeyClient
, using the KeyClientBuilder
to configure it.
KeyClient keyClient = new KeyClientBuilder() .vaultUrl("<your-key-vault-url>") .credential(new DefaultAzureCredentialBuilder().build()) .buildClient();
Create a Cryptographic Key
TheKeyClient
can be used to create a key in the key vault.
Code Sample:
The following code sample demonstrates how to synchronously create a cryptographic key in the key vault,
using the createKey(String, KeyType)
API.
KeyVaultKey key = keyClient.createKey("keyName", KeyType.EC); System.out.printf("Created key with name: %s and id: %s%n", key.getName(), key.getId());
Note: For the asynchronous sample, refer to KeyAsyncClient
.
Get a Cryptographic Key
TheKeyClient
can be used to retrieve a key from the key vault.
Code Sample:
The following code sample demonstrates how to synchronously retrieve a key from the key vault, using
the getKey(String)
API.
KeyVaultKey keyWithVersionValue = keyClient.getKey("keyName"); System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersionValue.getName(), keyWithVersionValue.getId());
Note: For the asynchronous sample, refer to KeyAsyncClient
.
Delete a Cryptographic Key
TheKeyClient
can be used to delete a key from the key vault.
Code Sample:
The following code sample demonstrates how to synchronously delete a key from the
key vault, using the beginDeleteKey(String)
API.
SyncPoller<DeletedKey, Void> deleteKeyPoller = keyClient.beginDeleteKey("keyName"); PollResponse<DeletedKey> deleteKeyPollResponse = deleteKeyPoller.poll(); // Deleted date only works for SoftDelete Enabled Key Vault. DeletedKey deletedKey = deleteKeyPollResponse.getValue(); System.out.printf("Key delete date: %s%n", deletedKey.getDeletedOn()); System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId()); // Key is being deleted on the server. deleteKeyPoller.waitForCompletion(); // Key is deleted
Note: For the asynchronous sample, refer to KeyAsyncClient
.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]
Requests a backup of the specifiedkey
be downloaded to the client.com.azure.core.http.rest.Response
<byte[]> backupKeyWithResponse
(String name, com.azure.core.util.Context context) Requests a backup of the specifiedkey
be downloaded to the client.com.azure.core.util.polling.SyncPoller
<DeletedKey, Void> beginDeleteKey
(String name) Deletes akey
of any type from the key vault.com.azure.core.util.polling.SyncPoller
<KeyVaultKey, Void> beginRecoverDeletedKey
(String name) Recovers thedeleted key
in the key vault to its latest version and can only be performed on a soft-delete enabled vault.createEcKey
(CreateEcKeyOptions createEcKeyOptions) Creates a newEC key
and stores it in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> createEcKeyWithResponse
(CreateEcKeyOptions createEcKeyOptions, com.azure.core.util.Context context) Creates a newEC key
and stores it in the key vault.createKey
(CreateKeyOptions createKeyOptions) Creates a newkey
and stores it in the key vault.Creates a newkey
and stores it in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> createKeyWithResponse
(CreateKeyOptions createKeyOptions, com.azure.core.util.Context context) Creates a newkey
and stores it in the key vault.createOctKey
(CreateOctKeyOptions createOctKeyOptions) Creates and stores a newsymmetric key
in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> createOctKeyWithResponse
(CreateOctKeyOptions createOctKeyOptions, com.azure.core.util.Context context) Creates and stores a newsymmetric key
in the key vault.createRsaKey
(CreateRsaKeyOptions createRsaKeyOptions) Creates a newRSA key
and stores it in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> createRsaKeyWithResponse
(CreateRsaKeyOptions createRsaKeyOptions, com.azure.core.util.Context context) Creates a newRSA key
and stores it in the key vault.getCryptographyClient
(String keyName) Creates aCryptographyClient
for the latest version of a given key.getCryptographyClient
(String keyName, String keyVersion) Creates aCryptographyClient
for a given key version.getDeletedKey
(String name) Gets the public part of adeleted key
.com.azure.core.http.rest.Response
<DeletedKey> getDeletedKeyWithResponse
(String name, com.azure.core.util.Context context) Gets the public part of adeleted key
.Gets the public part of the specifiedkey
and key version.Gets the public part of the specifiedkey
and key version.getKeyRotationPolicy
(String keyName) Gets theKeyRotationPolicy
for thekey
with the provided name.com.azure.core.http.rest.Response
<KeyRotationPolicy> getKeyRotationPolicyWithResponse
(String keyName, com.azure.core.util.Context context) Gets theKeyRotationPolicy
for thekey
with the provided name.com.azure.core.http.rest.Response
<KeyVaultKey> getKeyWithResponse
(String name, String version, com.azure.core.util.Context context) Gets the public part of the specifiedkey
and key version.byte[]
getRandomBytes
(int count) Get the requested number of bytes containing random values from a managed HSM.com.azure.core.http.rest.Response
<byte[]> getRandomBytesWithResponse
(int count, com.azure.core.util.Context context) Get the requested number of bytes containing random values from a managed HSM.Get the vault endpoint url to which service requests are sent to.importKey
(ImportKeyOptions importKeyOptions) Imports an externally createdkey
and stores it in the key vault.importKey
(String name, JsonWebKey keyMaterial) Imports an externally createdkey
and stores it in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> importKeyWithResponse
(ImportKeyOptions importKeyOptions, com.azure.core.util.Context context) Imports an externally createdkey
and stores it in the key vault.com.azure.core.http.rest.PagedIterable
<DeletedKey> Listsdeleted keys
of the key vault.com.azure.core.http.rest.PagedIterable
<DeletedKey> listDeletedKeys
(com.azure.core.util.Context context) Listsdeleted keys
of the key vault.com.azure.core.http.rest.PagedIterable
<KeyProperties> Listkeys
in the key vault.com.azure.core.http.rest.PagedIterable
<KeyProperties> listPropertiesOfKeys
(com.azure.core.util.Context context) Listkeys
in the key vault.com.azure.core.http.rest.PagedIterable
<KeyProperties> List all versions of the specifiedkeys
.com.azure.core.http.rest.PagedIterable
<KeyProperties> listPropertiesOfKeyVersions
(String name, com.azure.core.util.Context context) List all versions of the specifiedkeys
.void
purgeDeletedKey
(String name) Permanently deletes the specifiedkey
without the possibility of recovery.com.azure.core.http.rest.Response
<Void> purgeDeletedKeyWithResponse
(String name, com.azure.core.util.Context context) Permanently deletes the specifiedkey
without the possibility of recovery.releaseKey
(String name, String targetAttestationToken) Releases the latest version of akey
.releaseKey
(String name, String version, String targetAttestationToken) Releases a specific version of akey
.com.azure.core.http.rest.Response
<ReleaseKeyResult> releaseKeyWithResponse
(String name, String version, String targetAttestationToken, ReleaseKeyOptions releaseKeyOptions, com.azure.core.util.Context context) Releases akey
.restoreKeyBackup
(byte[] backup) Restores a backed upkey
to a vault.com.azure.core.http.rest.Response
<KeyVaultKey> restoreKeyBackupWithResponse
(byte[] backup, com.azure.core.util.Context context) Restores a backed upkey
to a vault.Rotates akey
.com.azure.core.http.rest.Response
<KeyVaultKey> rotateKeyWithResponse
(String name, com.azure.core.util.Context context) Rotates akey
.updateKeyProperties
(KeyProperties keyProperties, KeyOperation... keyOperations) Updates theattributes
andkey operations
associated with the specifiedkey
, but not the cryptographic key material of the specifiedkey
in the key vault.com.azure.core.http.rest.Response
<KeyVaultKey> updateKeyPropertiesWithResponse
(KeyProperties keyProperties, com.azure.core.util.Context context, KeyOperation... keyOperations) Updates theattributes
andkey operations
associated with the specifiedkey
, but not the cryptographic key material of the specifiedkey
in the key vault.updateKeyRotationPolicy
(String keyName, KeyRotationPolicy keyRotationPolicy) Updates theKeyRotationPolicy
of thekey
with the provided name.com.azure.core.http.rest.Response
<KeyRotationPolicy> updateKeyRotationPolicyWithResponse
(String keyName, KeyRotationPolicy keyRotationPolicy, com.azure.core.util.Context context) Updates theKeyRotationPolicy
of the key with the provided name.
-
Method Details
-
getVaultUrl
Get the vault endpoint url to which service requests are sent to.- Returns:
- The vault endpoint url.
-
getCryptographyClient
Creates aCryptographyClient
for the latest version of a given key.To ensure correct behavior when performing operations such as
Decrypt
,Unwrap
andVerify
, it is recommended to use aCryptographyClient
created for the specific key version that was used for the corresponding inverse operation:Encrypt
,Wrap
, orSign
, respectively.You can provide a key version either via
getCryptographyClient(String, String)
or by ensuring it is included in thekeyIdentifier
passed toCryptographyClientBuilder.keyIdentifier(String)
before building a client.- Parameters:
keyName
- The name of the key.- Returns:
- An instance of
CryptographyClient
associated with the latest version of a key with the provided name. - Throws:
IllegalArgumentException
- IfkeyName
isnull
or empty.
-
getCryptographyClient
Creates aCryptographyClient
for a given key version.- Parameters:
keyName
- The name of the key.keyVersion
- The key version.- Returns:
- An instance of
CryptographyClient
associated with a key with the provided name and version. IfkeyVersion
isnull
or empty, the client will use the latest version of the key. - Throws:
IllegalArgumentException
- IfkeyName
isnull
or empty.
-
createKey
Creates a newkey
and stores it in the key vault. The create key operation can be used to create anykeyType
in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
keyType
indicates the type ofkey
to create. Possible values include:EC
,EC-HSM
,RSA
,RSA-HSM
,OCT
, andOCT-HSM
.Code Samples
Creates a new
EC key
. Prints out the details of thecreated key
.KeyVaultKey key = keyClient.createKey("keyName", KeyType.EC); System.out.printf("Created key with name: %s and id: %s%n", key.getName(), key.getId());
- Parameters:
name
- The name of thekey
being created.keyType
- The type ofkey
to create. For valid values, seeKeyType
.- Returns:
- The
created key
. - Throws:
com.azure.core.exception.ResourceModifiedException
- Ifname
orkeyType
arenull
.com.azure.core.exception.HttpResponseException
- Ifname
is an empty string.
-
createKey
Creates a newkey
and stores it in the key vault. The create key operation can be used to create anykeyType
in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateKeyOptions
parameter is required. Theexpires
andnotBefore
values are optional. TheCreateKeyOptions.isEnabled()
enabled} field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofkey
to create. Possible values include:EC
,EC-HSM
,RSA
,RSA-HSM
,OCT
, andOCT-HSM
.Code Samples
Creates a new
RSA key
which activates in one day and expires in one year. Prints out the details of thecreated key
.CreateKeyOptions createKeyOptions = new CreateKeyOptions("keyName", KeyType.RSA) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); KeyVaultKey optionsKey = keyClient.createKey(createKeyOptions); System.out.printf("Created key with name: %s and id: %s%n", optionsKey.getName(), optionsKey.getId());
- Parameters:
createKeyOptions
- Theoptions object
containing information about thekey
being created.- Returns:
- The
created key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateKeyOptions
isnull
.com.azure.core.exception.HttpResponseException
- Ifname
is an empty string.
-
createKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> createKeyWithResponse(CreateKeyOptions createKeyOptions, com.azure.core.util.Context context) Creates a newkey
and stores it in the key vault. The create key operation can be used to create anykeyType
in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateKeyOptions
parameter is required. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofkey
to create. Possible values include:EC
,EC-HSM
,RSA
,RSA-HSM
,OCT
, andOCT-HSM
.Code Samples
Creates a new
RSA key
which activates in one day and expires in one year. Prints out the details of thecreated key
.CreateKeyOptions createKeyOptions = new CreateKeyOptions("keyName", KeyType.RSA) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); Response<KeyVaultKey> createKeyResponse = keyClient.createKeyWithResponse(createKeyOptions, new Context("key1", "value1")); System.out.printf("Created key with name: %s and: id %s%n", createKeyResponse.getValue().getName(), createKeyResponse.getValue().getId());
- Parameters:
createKeyOptions
- Theoptions object
containing information about thekey
being created.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains thecreated key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateKeyOptions
is malformed.
-
createRsaKey
Creates a newRSA key
and stores it in the key vault. The create RSA key operation can be used to create any RSA key type in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateRsaKeyOptions
parameter is required. ThekeySize
can be optionally specified. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofkey
to create. Possible values include:RSA
andRSA-HSM
.Code Samples
Creates a new
RSA key
with size 2048 which activates in one day and expires in one year. Prints out the details of thecreated key
.CreateRsaKeyOptions createRsaKeyOptions = new CreateRsaKeyOptions("keyName") .setKeySize(2048) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); KeyVaultKey rsaKey = keyClient.createRsaKey(createRsaKeyOptions); System.out.printf("Created key with name: %s and id: %s%n", rsaKey.getName(), rsaKey.getId());
- Parameters:
createRsaKeyOptions
- Theoptions object
containing information about theRSA key
being created.- Returns:
- The
created key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateRsaKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateRsaKeyOptions
is malformed.
-
createRsaKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> createRsaKeyWithResponse(CreateRsaKeyOptions createRsaKeyOptions, com.azure.core.util.Context context) Creates a newRSA key
and stores it in the key vault. The create RSA key operation can be used to create any RSA key type in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateRsaKeyOptions
parameter is required. ThekeySize
can be optionally specified. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofkey
to create. Possible values include:RSA
andRSA-HSM
.Code Samples
Creates a new
RSA key
with size 2048 which activates in one day and expires in one year. Prints out the details of thecreated key
.CreateRsaKeyOptions createRsaKeyOptions = new CreateRsaKeyOptions("keyName") .setKeySize(2048) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); Response<KeyVaultKey> createRsaKeyResponse = keyClient.createRsaKeyWithResponse(createRsaKeyOptions, new Context("key1", "value1")); System.out.printf("Created key with name: %s and: id %s%n", createRsaKeyResponse.getValue().getName(), createRsaKeyResponse.getValue().getId());
- Parameters:
createRsaKeyOptions
- Theoptions object
containing information about theRSA key
being created.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains thecreated key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateRsaKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateRsaKeyOptions
is malformed.
-
createEcKey
Creates a newEC key
and stores it in the key vault. The create EC key operation can be used to create any ECkey type
in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateEcKeyOptions
parameter is required. Thekey curve
can be optionally specified. If not specified, the default valueP-256
is used by Azure Key Vault. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofKeyVaultKey
key to create. Possible values include:EC
andEC-HSM
.Code Samples
Creates a new
EC key
with aP-384
web key curve. The key activates in one day and expires in one year. Prints out the details of thecreated key
.CreateEcKeyOptions createEcKeyOptions = new CreateEcKeyOptions("keyName") .setCurveName(KeyCurveName.P_384) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); KeyVaultKey ecKey = keyClient.createEcKey(createEcKeyOptions); System.out.printf("Created key with name: %s and id: %s%n", ecKey.getName(), ecKey.getId());
- Parameters:
createEcKeyOptions
- Theoptions object
containing information about theEC key
being created.- Returns:
- The
created key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateEcKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateEcKeyOptions
is malformed.
-
createEcKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> createEcKeyWithResponse(CreateEcKeyOptions createEcKeyOptions, com.azure.core.util.Context context) Creates a newEC key
and stores it in the key vault. The create EC key operation can be used to create any ECkey type
in Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. It requires thekeys/create
permission.The
CreateEcKeyOptions
parameter is required. Thekey curve
can be optionally specified. If not specified, the default valueP-256
is used by Azure Key Vault. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofKeyVaultKey
key to create. Possible values include:EC
andEC-HSM
.Code Samples
Creates a new
EC key
with aP-384
web key curve. The key activates in one day and expires in one year. Prints out the details of thecreated key
.CreateEcKeyOptions createEcKeyOptions = new CreateEcKeyOptions("keyName") .setCurveName(KeyCurveName.P_384) .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); Response<KeyVaultKey> createEcKeyResponse = keyClient.createEcKeyWithResponse(createEcKeyOptions, new Context("key1", "value1")); System.out.printf("Created key with name: %s and: id %s%n", createEcKeyResponse.getValue().getName(), createEcKeyResponse.getValue().getId());
- Parameters:
createEcKeyOptions
- Theoptions object
containing information about theEC key
being created.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains thecreated key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateEcKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateEcKeyOptions
is malformed.
-
createOctKey
Creates and stores a newsymmetric key
in the key vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of the key. This operation requires thekeys/create
permission.The
CreateOctKeyOptions
parameter is required. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofKeyVaultKey
key to create. Possible values include:OCT
andOCT-HSM
.Code Samples
Creates a new
symmetric key
. Thekey
activates in one day and expires in one year. Prints out the details of the newlycreated key
.CreateOctKeyOptions createOctKeyOptions = new CreateOctKeyOptions("keyName") .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); KeyVaultKey octKey = keyClient.createOctKey(createOctKeyOptions); System.out.printf("Created key with name: %s and id: %s%n", octKey.getName(), octKey.getId());
- Parameters:
createOctKeyOptions
- Theoptions object
containing information about thesymmetric key
being created.- Returns:
- The
created key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateOctKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateOctKeyOptions
is malformed.
-
createOctKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> createOctKeyWithResponse(CreateOctKeyOptions createOctKeyOptions, com.azure.core.util.Context context) Creates and stores a newsymmetric key
in the key vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of the key. This operation requires thekeys/create
permission.The
CreateOctKeyOptions
parameter is required. Theexpires
andnotBefore
values are optional. Theenabled
field is set totrue
by Azure Key Vault, if not specified.The
keyType
indicates the type ofKeyVaultKey
key to create. Possible values include:OCT
andOCT-HSM
.Code Samples
Creates a new
symmetric key
. Thekey
activates in one day and expires in one year. Prints out the details of the newlycreated key
.CreateOctKeyOptions createOctKeyOptions = new CreateOctKeyOptions("keyName") .setNotBefore(OffsetDateTime.now().plusDays(1)) .setExpiresOn(OffsetDateTime.now().plusYears(1)); Response<KeyVaultKey> createOctKeyResponse = keyClient.createOctKeyWithResponse(createOctKeyOptions, new Context("key1", "value1")); System.out.printf("Created key with name: %s and: id %s%n", createOctKeyResponse.getValue().getName(), createOctKeyResponse.getValue().getId());
- Parameters:
createOctKeyOptions
- Theoptions object
containing information about thesymmetric key
being created.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains thecreated key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfCreateKeyOptions.getName()
is an empty string.NullPointerException
- IfcreateOctKeyOptions
isnull
.com.azure.core.exception.ResourceModifiedException
- IfcreateOctKeyOptions
is malformed.
-
importKey
Imports an externally createdkey
and stores it in the key vault. The import key operation may be used to import anykey type
into Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. This operation requires thekeys/import
permission.Code Samples
Imports a new
key
into the key vault. Prints out the details of theimported key
.KeyVaultKey key = keyClient.importKey("keyName", jsonWebKeyToImport); System.out.printf("Imported key with name: %s and id: %s%n", key.getName(), key.getId());
- Parameters:
name
- The name for theimported key
.keyMaterial
- TheJsonWebKey
being imported.- Returns:
- The
imported key
. - Throws:
com.azure.core.exception.HttpResponseException
- Ifname
is an empty string.
-
importKey
Imports an externally createdkey
and stores it in the key vault. The import key operation may be used to import anykey type
into Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. This operation requires thekeys/import
permission.ImportKeyOptions
is required and its fieldsname
andkey material
cannot benull
. Theexpires
andnotBefore
values inkeyImportOptions
are optional. If not specified, no values are set for the fields. Theenabled
field is set totrue
and thehsm
field is set tofalse
by Azure Key Vault, if they are not specified.Code Samples
Imports a new
key
into the key vault. Prints out the details of theimported key
.ImportKeyOptions options = new ImportKeyOptions("keyName", jsonWebKeyToImport) .setHardwareProtected(false); KeyVaultKey importedKey = keyClient.importKey(options); System.out.printf("Imported key with name: %s and id: %s%n", importedKey.getName(), importedKey.getId());
- Parameters:
importKeyOptions
- Theoptions object
containing information about theJsonWebKey
being imported.- Returns:
- The
imported key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfKeyProperties.getName()
is an empty string.NullPointerException
- IfimportKeyOptions
isnull
.
-
importKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> importKeyWithResponse(ImportKeyOptions importKeyOptions, com.azure.core.util.Context context) Imports an externally createdkey
and stores it in the key vault. The import key operation may be used to import anykey type
into Azure Key Vault. If akey
with the provided name already exists, Azure Key Vault creates a new version of thekey
. This operation requires thekeys/import
permission.ImportKeyOptions
is required and its fieldsname
andkey material
cannot benull
. Theexpires
andnotBefore
values inkeyImportOptions
are optional. If not specified, no values are set for the fields. Theenabled
field is set totrue
and thehsm
field is set tofalse
by Azure Key Vault, if they are not specified.Code Samples
Imports a new
key
into the key vault. Prints out the details of theimported key
.ImportKeyOptions importKeyOptions = new ImportKeyOptions("keyName", jsonWebKeyToImport) .setHardwareProtected(false); Response<KeyVaultKey> response = keyClient.importKeyWithResponse(importKeyOptions, new Context("key1", "value1")); System.out.printf("Imported key with name: %s and id: %s%n", response.getValue().getName(), response.getValue().getId());
- Parameters:
importKeyOptions
- Theoptions object
containing information about theJsonWebKey
being imported.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains theimported key
. - Throws:
com.azure.core.exception.HttpResponseException
- IfKeyProperties.getName()
is an empty string.NullPointerException
- IfkeyImportOptions
isnull
.
-
getKey
Gets the public part of the specifiedkey
and key version. The get key operation is applicable to allkey types
and it requires thekeys/get
permission.Code Samples
Gets a specific version of the
key
in the key vault. Prints out the details of theretrieved key
.String keyVersion = "6A385B124DEF4096AF1361A85B16C204"; KeyVaultKey keyWithVersion = keyClient.getKey("keyName", keyVersion); System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersion.getName(), keyWithVersion.getId());
- Parameters:
name
- The name of thekey
, cannot benull
.version
- The version of thekey
to retrieve. If this is an empty string ornull
, this call is equivalent to callinggetKey(String)
, with the latest version being retrieved.- Returns:
- The requested
key
. The content of thekey
isnull
if bothname
andversion
arenull
or empty. - Throws:
com.azure.core.exception.HttpResponseException
- If a validname
and a non-null/emptyversion
is specified.com.azure.core.exception.ResourceNotFoundException
- When akey
with the providedname
doesn't exist in the key vault or an empty/null
name
and a non-null/emptyversion
is provided.
-
getKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> getKeyWithResponse(String name, String version, com.azure.core.util.Context context) Gets the public part of the specifiedkey
and key version. The get key operation is applicable to allkey types
and it requires thekeys/get
permission.Code Samples
Gets a specific version of the
key
in the key vault. Prints out the details of theretrieved key
.String keyVersion = "6A385B124DEF4096AF1361A85B16C204"; Response<KeyVaultKey> getKeyResponse = keyClient.getKeyWithResponse("keyName", keyVersion, new Context("key1", "value1")); System.out.printf("Retrieved key with name: %s and: id %s%n", getKeyResponse.getValue().getName(), getKeyResponse.getValue().getId());
- Parameters:
name
- The name of thekey
, cannot benull
.version
- The version of thekey
to retrieve. If this is an empty string ornull
, this call is equivalent to callinggetKey(String)
, with the latest version being retrieved.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains the requestedkey
. The content of thekey
isnull
if bothname
andversion
arenull
or empty. - Throws:
com.azure.core.exception.HttpResponseException
- If a validname
and a non-null/emptyversion
is specified.com.azure.core.exception.ResourceNotFoundException
- When akey
with the providedname
doesn't exist in the key vault or an empty/null
name
and a non-null/emptyversion
is provided.
-
getKey
Gets the public part of the specifiedkey
and key version. The get key operation is applicable to allkey types
and it requires thekeys/get
permission.Code Samples
Gets a specific version of the
key
in the key vault. Prints out the details of theretrieved key
.KeyVaultKey keyWithVersionValue = keyClient.getKey("keyName"); System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersionValue.getName(), keyWithVersionValue.getId());
- Parameters:
name
- The name of thekey
, cannot benull
.- Returns:
- The requested
key
. The content of the key isnull
ifname
isnull
or empty. - Throws:
com.azure.core.exception.HttpResponseException
- If a non null/empty and an invalidname
is specified.com.azure.core.exception.ResourceNotFoundException
- When a key with non null/emptyname
doesn't exist in the key vault.
-
updateKeyProperties
Updates theattributes
andkey operations
associated with the specifiedkey
, but not the cryptographic key material of the specifiedkey
in the key vault. The update operation changes specifiedattributes
of an existing storedkey
andattributes
that are not specified in the request are left unchanged. The cryptographic key material of akey
itself cannot be changed. This operation requires thekeys/set
permission.Code Samples
Gets the latest version of the
key
, changes its expiry time andkey operations
and the updates thekey
in the key vault.KeyVaultKey key = keyClient.getKey("keyName"); key.getProperties().setExpiresOn(OffsetDateTime.now().plusDays(60)); KeyVaultKey updatedKey = keyClient.updateKeyProperties(key.getProperties(), KeyOperation.ENCRYPT, KeyOperation.DECRYPT); System.out.printf("Key is updated with name %s and id %s %n", updatedKey.getName(), updatedKey.getId());
- Parameters:
keyProperties
- Thekey properties
object with updated properties.keyOperations
- The updatedkey operations
to associate with the key.- Returns:
- A
Response
whosevalue
contains theupdated key
. - Throws:
com.azure.core.exception.HttpResponseException
- Ifname
orversion
is an empty string.NullPointerException
- Ifkey
isnull
.com.azure.core.exception.ResourceNotFoundException
- When a key withname
andversion
doesn't exist in the key vault.
-
updateKeyPropertiesWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> updateKeyPropertiesWithResponse(KeyProperties keyProperties, com.azure.core.util.Context context, KeyOperation... keyOperations) Updates theattributes
andkey operations
associated with the specifiedkey
, but not the cryptographic key material of the specifiedkey
in the key vault. The update operation changes specifiedattributes
of an existing storedkey
andattributes
that are not specified in the request are left unchanged. The cryptographic key material of akey
itself cannot be changed. This operation requires thekeys/set
permission.Code Samples
Gets the latest version of the
key
, changes its expiry time andkey operations
and the updates thekey
in the key vault.KeyVaultKey key = keyClient.getKey("keyName"); key.getProperties().setExpiresOn(OffsetDateTime.now().plusDays(60)); Response<KeyVaultKey> updateKeyResponse = keyClient.updateKeyPropertiesWithResponse(key.getProperties(), new Context("key1", "value1"), KeyOperation.ENCRYPT, KeyOperation.DECRYPT); System.out.printf("Updated key with name: %s and id: %s%n", updateKeyResponse.getValue().getName(), updateKeyResponse.getValue().getId());
- Parameters:
keyProperties
- Thekey properties
object with updated properties.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.keyOperations
- The updatedkey operations
to associate with the key.- Returns:
- A
Response
whosevalue
contains theupdated key
. - Throws:
com.azure.core.exception.HttpResponseException
- Ifname
orversion
is an empty string.NullPointerException
- IfkeyProperties
is null.com.azure.core.exception.ResourceNotFoundException
- When a key withname
andversion
doesn't exist in the key vault.
-
beginDeleteKey
Deletes akey
of any type from the key vault. If soft-delete is enabled on the key vault then thekey
is placed in the deleted state and requires to be purged for permanent deletion else thekey
is permanently deleted. The delete operation applies to anykey
stored in Azure Key Vault but it cannot be applied to an individual version of akey
. This operation removes the cryptographic material associated with thekey
, which means thekey
is not usable forSign/Verify
,Wrap/Unwrap
orEncrypt/Decrypt
operations. This operation requires thekeys/delete
permission.Code Samples
Deletes the
key
from the key vault. Prints out the recovery id of thedeleted key
.SyncPoller<DeletedKey, Void> deleteKeyPoller = keyClient.beginDeleteKey("keyName"); PollResponse<DeletedKey> deleteKeyPollResponse = deleteKeyPoller.poll(); // Deleted date only works for SoftDelete Enabled Key Vault. DeletedKey deletedKey = deleteKeyPollResponse.getValue(); System.out.printf("Key delete date: %s%n", deletedKey.getDeletedOn()); System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId()); // Key is being deleted on the server. deleteKeyPoller.waitForCompletion(); // Key is deleted
- Parameters:
name
- The name of thekey
to be deleted.- Returns:
- A
SyncPoller
to poll on and retrievedeleted key
- Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
getDeletedKey
Gets the public part of adeleted key
. The get deleted Key operation is applicable for soft-delete enabled vaults. This operation requires thekeys/get
permission.Code Samples
Gets the
deleted key
from the key vault enabled for soft-delete. Prints out the details of thedeleted key
.DeletedKey deletedKey = keyClient.getDeletedKey("keyName"); System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId());
- Parameters:
name
- The name of the deletedkey
.- Returns:
- The
deleted key
. - Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
getDeletedKeyWithResponse
public com.azure.core.http.rest.Response<DeletedKey> getDeletedKeyWithResponse(String name, com.azure.core.util.Context context) Gets the public part of adeleted key
. The get deleted Key operation is applicable for soft-delete enabled vaults. This operation requires thekeys/get
permission.Code Samples
Gets the
deleted key
from the key vault enabled for soft-delete. Prints out the details of thedeleted key
returned in theHTTPresponse
.Response<DeletedKey> deletedKeyResponse = keyClient.getDeletedKeyWithResponse("keyName", new Context("key1", "value1")); System.out.printf("Deleted key with recovery id: %s%n", deletedKeyResponse.getValue().getRecoveryId());
- Parameters:
name
- The name of the deletedkey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains thedeleted key
. - Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
purgeDeletedKey
Permanently deletes the specifiedkey
without the possibility of recovery. The purge deleted key operation is applicable for soft-delete enabled vaults. This operation requires thekeys/purge
permission.Code Samples
Purges the
deleted key
from the key vault enabled for soft-delete.keyClient.purgeDeletedKey("deletedKeyName");
- Parameters:
name
- The name of thedeleted key
.- Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
purgeDeletedKeyWithResponse
public com.azure.core.http.rest.Response<Void> purgeDeletedKeyWithResponse(String name, com.azure.core.util.Context context) Permanently deletes the specifiedkey
without the possibility of recovery. The purge deleted key operation is applicable for soft-delete enabled vaults. This operation requires thekeys/purge
permission.Code Samples
Purges the
deleted key
from the key vault enabled for soft-delete.Response<Void> purgeDeletedKeyResponse = keyClient.purgeDeletedKeyWithResponse("deletedKeyName", new Context("key1", "value1")); System.out.printf("Purge response status code: %d%n", purgeDeletedKeyResponse.getStatusCode());
- Parameters:
name
- The name of thedeleted key
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
containing status code and HTTP headers. - Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
beginRecoverDeletedKey
Recovers thedeleted key
in the key vault to its latest version and can only be performed on a soft-delete enabled vault. An attempt to recover annon-deleted key
will return an error. Consider this the inverse of the delete operation on soft-delete enabled vaults. This operation requires thekeys/recover
permission.Code Samples
Recovers the
deleted key
from the key vault enabled for soft-delete.SyncPoller<KeyVaultKey, Void> recoverKeyPoller = keyClient.beginRecoverDeletedKey("deletedKeyName"); PollResponse<KeyVaultKey> recoverKeyPollResponse = recoverKeyPoller.poll(); KeyVaultKey recoveredKey = recoverKeyPollResponse.getValue(); System.out.printf("Recovered key name: %s%n", recoveredKey.getName()); System.out.printf("Recovered key id: %s%n", recoveredKey.getId()); // Key is being recovered on the server. recoverKeyPoller.waitForCompletion(); // Key is recovered
- Parameters:
name
- The name of thedeleted key
to be recovered.- Returns:
- A
SyncPoller
to poll on and retrieverecovered key
. - Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
backupKey
Requests a backup of the specifiedkey
be downloaded to the client. The key backup operation exports akey
from Azure Key Vault in a protected form. Note that this operation does not return key material in a form that can be used outside the Azure Key Vault system, the returned key material is either protected to a Azure Key Vault HSM or to Azure Key Vault itself. The intent of this operation is to allow a client to generate akey
in one Azure Key Vault instance, backup thekey
, and then restore it into another Azure Key Vault instance. The backup operation may be used to export, in protected form, anykey type
from Azure Key Vault. Individual versions of akey
cannot be backed up.Backup/Restore
can be performed within geographical boundaries only; meaning that a backup from one geographical area cannot be restored to another geographical area. For example, a backup from the US geographical area cannot be restored in an EU geographical area. This operation requires thekey/backup
permission.Code Samples
Backs up the
key
from the key vault.byte[] keyBackup = keyClient.backupKey("keyName"); System.out.printf("Key backup byte array length: %s%n", keyBackup.length);
- Parameters:
name
- The name of thekey
.- Returns:
- The backed up key blob.
- Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
backupKeyWithResponse
public com.azure.core.http.rest.Response<byte[]> backupKeyWithResponse(String name, com.azure.core.util.Context context) Requests a backup of the specifiedkey
be downloaded to the client. The key backup operation exports akey
from Azure Key Vault in a protected form. Note that this operation does not return key material in a form that can be used outside the Azure Key Vault system, the returned key material is either protected to a Azure Key Vault HSM or to Azure Key Vault itself. The intent of this operation is to allow a client to generate akey
in one Azure Key Vault instance, backup thekey
, and then restore it into another Azure Key Vault instance. The backup operation may be used to export, in protected form, anykey type
from Azure Key Vault. Individual versions of akey
cannot be backed up.Backup/Restore
can be performed within geographical boundaries only; meaning that a backup from one geographical area cannot be restored to another geographical area. For example, a backup from the US geographical area cannot be restored in an EU geographical area. This operation requires thekey/backup
permission.Code Samples
Backs up the
key
from the key vault and prints out the length of the key's backup byte array returned in theHTTPresponse
.Response<byte[]> backupKeyResponse = keyClient.backupKeyWithResponse("keyName", new Context("key1", "value1")); System.out.printf("Key backup byte array length: %s%n", backupKeyResponse.getValue().length);
- Parameters:
name
- The name of thekey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains the backed up key blob. - Throws:
com.azure.core.exception.HttpResponseException
- When a key withname
is an empty string.com.azure.core.exception.ResourceNotFoundException
- When a key withname
doesn't exist in the key vault.
-
restoreKeyBackup
Restores a backed upkey
to a vault. Imports a previously backed upkey
into Azure Key Vault, restoring thekey
, its key identifier, attributes and access control policies. The restore operation may be used to import a previously backed upkey
. Individual versions of akey
cannot be restored. Thekey
is restored in its entirety with the same key name as it had when it was backed up. If the key name is not available in the target key vault, the restore operation will be rejected. While the key name is retained during restore, the final key identifier will change if thekey
is restored to a different vault. Restore will restore all versions and preserve version identifiers. The restore operation is subject to security constraints: The target key vault must be owned by the same Microsoft Azure Subscription as the source key vault. The user must have therestore
permission in the target key vault. This operation requires thekeys/restore
permission.Code Samples
Restores the
// Pass the key backup byte array to the restore operation.key
in the key vault from its backup.byte[] keyBackupByteArray = {}; KeyVaultKey keyResponse = keyClient.restoreKeyBackup(keyBackupByteArray); System.out.printf("Restored key with name: %s and: id %s%n", keyResponse.getName(), keyResponse.getId());
- Parameters:
backup
- The backup blob associated with thekey
.- Returns:
- The
restored key
. - Throws:
com.azure.core.exception.ResourceModifiedException
- When thebackup
blob is malformed.
-
restoreKeyBackupWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> restoreKeyBackupWithResponse(byte[] backup, com.azure.core.util.Context context) Restores a backed upkey
to a vault. Imports a previously backed upkey
into Azure Key Vault, restoring thekey
, its key identifier, attributes and access control policies. The restore operation may be used to import a previously backed upkey
. Individual versions of akey
cannot be restored. Thekey
is restored in its entirety with the same key name as it had when it was backed up. If the key name is not available in the target key vault, the restore operation will be rejected. While the key name is retained during restore, the final key identifier will change if thekey
is restored to a different vault. Restore will restore all versions and preserve version identifiers. The restore operation is subject to security constraints: The target key vault must be owned by the same Microsoft Azure Subscription as the source key vault. The user must have therestore
permission in the target key vault. This operation requires thekeys/restore
permission.Code Samples
Restores the
// Pass the key backup byte array to the restore operation.key
in the key vault from its backup. Prints out the details of therestored key
returned in theHTTPresponse
.Response<KeyVaultKey> keyResponse = keyClient.restoreKeyBackupWithResponse(keyBackupByteArray, new Context("key1", "value1")); System.out.printf("Restored key with name: %s and: id %s%n", keyResponse.getValue().getName(), keyResponse.getValue().getId());
- Parameters:
backup
- The backup blob associated with thekey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
Response
whosevalue
contains therestored key
. - Throws:
com.azure.core.exception.ResourceModifiedException
- When thebackup
blob is malformed.
-
listPropertiesOfKeys
Listkeys
in the key vault. Retrieves a list of thekeys
in the key vault asJsonWebKey
structures that contain the public part of a storedkey
. The list operation is applicable to allkey types
and the individualkey
response in the list is represented byKeyProperties
as only the key identifier, attributes and tags are provided in the response. The key material and individual key versions are not listed in the response. This operation requires thekeys/list
permission.Code Samples
It is possible to get
full keys
with key material from this information. Loop over theKeyProperties
and callgetKey(String, String)
. This will return thekey
with key material included as of its latest version.for (KeyProperties keyProperties : keyClient.listPropertiesOfKeys()) { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(), key.getKeyType()); }
Iterate keys by page
It is possible to get
full keys
with key material from this information. Iterate over all theKeyProperties
by page and callgetKey(String, String)
. This will return thekey
with key material included as of its latest version.keyClient.listPropertiesOfKeys().iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(keyProperties -> { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(), key.getKeyType()); }); });
-
listPropertiesOfKeys
public com.azure.core.http.rest.PagedIterable<KeyProperties> listPropertiesOfKeys(com.azure.core.util.Context context) Listkeys
in the key vault. Retrieves a list of thekeys
in the key vault asJsonWebKey
structures that contain the public part of a storedkey
. The list operation is applicable to allkey types
and the individualkey
response in the list is represented byKeyProperties
as only the key identifier, attributes and tags are provided in the response. The key material and individual key versions are not listed in the response. This operation requires thekeys/list
permission.Code Samples
It is possible to get
full keys
with key material from this information. Loop over theKeyProperties
and callgetKey(String, String)
. This will return thekey
with key material included as of its latest version.for (KeyProperties keyProperties : keyClient.listPropertiesOfKeys(new Context("key1", "value1"))) { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(), key.getKeyType()); }
Iterate by page
It is possible to get
full keys
with key material from this information. Iterate over all theKeyProperties
by page and callgetKey(String, String)
. This will return thekey
with key material included as of its latest version.keyClient.listPropertiesOfKeys().iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(keyProperties -> { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(), key.getKeyType()); }); });
-
listDeletedKeys
Listsdeleted keys
of the key vault. Thedeleted keys
are retrieved asJsonWebKey
structures that contain the public part of adeleted key
. The get deleted keys operation is applicable for vaults enabled for soft-delete. This operation requires thekeys/list
permission.Code Samples
Lists the
deleted keys
in the key vault and for eachdeleted key
prints out its recovery id.for (DeletedKey deletedKey : keyClient.listDeletedKeys()) { System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId()); }
Code Samples to iterate over deleted keys by page
Iterates over the
deleted keys
by page in the key vault and for each deleted key prints out its recovery id.keyClient.listDeletedKeys().iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(deletedKey -> System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId())); });
- Returns:
PagedIterable
of all of thedeleted keys
in the vault.
-
listDeletedKeys
public com.azure.core.http.rest.PagedIterable<DeletedKey> listDeletedKeys(com.azure.core.util.Context context) Listsdeleted keys
of the key vault. Thedeleted keys
are retrieved asJsonWebKey
structures that contain the public part of adeleted key
. The get deleted keys operation is applicable for vaults enabled for soft-delete. This operation requires thekeys/list
permission.Code Samples
Lists the
deleted keys
in the key vault and for eachdeleted key
prints out its recovery id.for (DeletedKey deletedKey : keyClient.listDeletedKeys(new Context("key1", "value1"))) { System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId()); }
Code Samples to iterate over deleted keys by page
Iterates over the
deleted keys
by page in the key vault and for each deleted key prints out its recovery id.keyClient.listDeletedKeys().iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(deletedKey -> System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId())); });
- Parameters:
context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
PagedIterable
of all of thedeleted keys
in the vault.
-
listPropertiesOfKeyVersions
public com.azure.core.http.rest.PagedIterable<KeyProperties> listPropertiesOfKeyVersions(String name) List all versions of the specifiedkeys
. The individual key response in the flux is represented byKeyProperties
as only the key identifier, attributes and tags are provided in the response. The key material values are not provided in the response. This operation requires thekeys/list
permission.It is possible to get
full keys
with key material for each version from this information. Loop over thekey
and callgetKey(String, String)
. This will return thekeys
with key material included of the specified versions.for (KeyProperties keyProperties : keyClient.listPropertiesOfKeyVersions("keyName")) { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key version: %s with name: %s and type: %s%n", key.getProperties().getVersion(), key.getName(), key.getKeyType()); }
Code Samples to iterate over key versions by page
It is possible to get
full keys
with key material for each version from this information. Iterate over all thekey
by page and callgetKey(String, String)
. This will return thekeys
with key material included of the specified versions.keyClient.listPropertiesOfKeyVersions("keyName").iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(keyProperties -> System.out.printf("Key name: %s. Key version: %s.%n", keyProperties.getName(), keyProperties.getVersion())); });
- Parameters:
name
- The name of thekey
.- Returns:
PagedIterable
ofkey
of all the versions of the specified key in the vault. The list is empty if akey
with the providedname
does not exist in the key vault.- Throws:
com.azure.core.exception.ResourceNotFoundException
- When a given keyname
isnull
or an empty string.
-
listPropertiesOfKeyVersions
public com.azure.core.http.rest.PagedIterable<KeyProperties> listPropertiesOfKeyVersions(String name, com.azure.core.util.Context context) List all versions of the specifiedkeys
. The individual key response in the flux is represented byKeyProperties
as only the key identifier, attributes and tags are provided in the response. The key material values are not provided in the response. This operation requires thekeys/list
permission.It is possible to get
full keys
with key material for each version from this information. Loop over thekey
and callgetKey(String, String)
. This will return thekeys
with key material included of the specified versions.for (KeyProperties keyProperties : keyClient.listPropertiesOfKeyVersions("keyName", new Context("key1", "value1"))) { KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion()); System.out.printf("Retrieved key version: %s with name: %s and type: %s%n", key.getProperties().getVersion(), key.getName(), key.getKeyType()); }
Code Samples to iterate over key versions by page
It is possible to get
full keys
with key material for each version from this information. Iterate over all thekey
by page and callgetKey(String, String)
. This will return thekeys
with key material included of the specified versions.keyClient.listPropertiesOfKeyVersions("keyName").iterableByPage().forEach(pagedResponse -> { System.out.printf("Got response details. Url: %s. Status code: %d.%n", pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode()); pagedResponse.getElements().forEach(keyProperties -> System.out.printf("Key name: %s. Key version: %s.%n", keyProperties.getName(), keyProperties.getVersion())); });
- Parameters:
name
- The name of thekey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
PagedIterable
ofkey
of all the versions of the specifiedkey
in the vault. The list is empty if akey
with the providedname
does not exist in the key vault.- Throws:
com.azure.core.exception.ResourceNotFoundException
- When a given keyname
isnull
or an empty string.
-
getRandomBytes
public byte[] getRandomBytes(int count) Get the requested number of bytes containing random values from a managed HSM.Code Samples
Gets a number of bytes containing random values from a Managed HSM. Prints out the retrieved bytes in base64Url format.
int amount = 16; byte[] randomBytes = keyClient.getRandomBytes(amount); System.out.printf("Retrieved %d random bytes: %s%n", amount, Arrays.toString(randomBytes));
- Parameters:
count
- The requested number of random bytes.- Returns:
- The requested number of bytes containing random values from a managed HSM.
-
getRandomBytesWithResponse
public com.azure.core.http.rest.Response<byte[]> getRandomBytesWithResponse(int count, com.azure.core.util.Context context) Get the requested number of bytes containing random values from a managed HSM.Code Samples
Gets a number of bytes containing random values from a Managed HSM. Prints out the
HTTP Response
details and the retrieved bytes in base64Url format.int amountOfBytes = 16; Response<byte[]> response = keyClient.getRandomBytesWithResponse(amountOfBytes, new Context("key1", "value1")); System.out.printf("Response received successfully with status code: %d. Retrieved %d random bytes: %s%n", response.getStatusCode(), amountOfBytes, Arrays.toString(response.getValue()));
- Parameters:
count
- The requested number of random bytes.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- The
HTTP response
for this operation and the requested number of bytes containing random values from a managed HSM.
-
releaseKey
Releases the latest version of akey
.The
key
must be exportable. This operation requires thekeys/release
permission.Code Samples
Releases a
key
. Prints out the signed object that contains the release key.String targetAttestationToken = "someAttestationToken"; ReleaseKeyResult releaseKeyResult = keyClient.releaseKey("keyName", targetAttestationToken); System.out.printf("Signed object containing released key: %s%n", releaseKeyResult);
- Parameters:
name
- The name of thekey
to release.targetAttestationToken
- The attestation assertion for the target of thekey
release.- Returns:
- The key release result containing the
released key
. - Throws:
IllegalArgumentException
- Ifname
ortargetAttestationToken
arenull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
releaseKey
Releases a specific version of akey
.The
key
must be exportable. This operation requires thekeys/release
permission.Code Samples
Releases a
key
. Prints out the signed object that contains the release key.String myKeyVersion = "6A385B124DEF4096AF1361A85B16C204"; String myTargetAttestationToken = "someAttestationToken"; ReleaseKeyResult releaseKeyVersionResult = keyClient.releaseKey("keyName", myKeyVersion, myTargetAttestationToken); System.out.printf("Signed object containing released key: %s%n", releaseKeyVersionResult);
- Parameters:
name
- The name of thekey
to release.version
- The version of the key to release. If this is empty ornull
, this call is equivalent to callingreleaseKey(String, String)
, with the latest key version being released.targetAttestationToken
- The attestation assertion for the target of thekey
release.- Returns:
- The key release result containing the
released key
. - Throws:
IllegalArgumentException
- Ifname
ortargetAttestationToken
arenull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
releaseKeyWithResponse
public com.azure.core.http.rest.Response<ReleaseKeyResult> releaseKeyWithResponse(String name, String version, String targetAttestationToken, ReleaseKeyOptions releaseKeyOptions, com.azure.core.util.Context context) Releases akey
.The key must be exportable. This operation requires the
keys/release
permission.Code Samples
Releases a
key
. Prints out theHTTP Response
details and the signed object that contains the release key.String releaseKeyVersion = "6A385B124DEF4096AF1361A85B16C204"; String someTargetAttestationToken = "someAttestationToken"; ReleaseKeyOptions releaseKeyOptions = new ReleaseKeyOptions() .setAlgorithm(KeyExportEncryptionAlgorithm.RSA_AES_KEY_WRAP_256) .setNonce("someNonce"); Response<ReleaseKeyResult> releaseKeyResultResponse = keyClient.releaseKeyWithResponse("keyName", releaseKeyVersion, someTargetAttestationToken, releaseKeyOptions, new Context("key1", "value1")); System.out.printf("Response received successfully with status code: %d. Signed object containing" + "released key: %s%n", releaseKeyResultResponse.getStatusCode(), releaseKeyResultResponse.getValue().getValue());
- Parameters:
name
- The name of thekey
to release.version
- The version of thekey
to release. If this is empty ornull
, this call is equivalent to callingreleaseKey(String, String)
, with the latest key version being released.targetAttestationToken
- The attestation assertion for the target of the key release.releaseKeyOptions
- Additionaloptions
for releasing akey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- The
HTTP response
for this operation and theReleaseKeyResult
containing thereleased key
. - Throws:
IllegalArgumentException
- Ifname
ortargetAttestationToken
arenull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
rotateKey
Rotates akey
. The rotate key operation will do so based onkey's rotation policy
. This operation requires thekeys/rotate
permission.Code Samples
Rotates a
key
. Prints outrotated key
details.KeyVaultKey key = keyClient.rotateKey("keyName"); System.out.printf("Rotated key with name: %s and version:%s%n", key.getName(), key.getProperties().getVersion());
- Parameters:
name
- The name ofkey
to be rotated. The system will generate a new version in the specifiedkey
.- Returns:
- The new version of the rotated
key
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
rotateKeyWithResponse
public com.azure.core.http.rest.Response<KeyVaultKey> rotateKeyWithResponse(String name, com.azure.core.util.Context context) Rotates akey
. The rotate key operation will do so based onkey's rotation policy
. This operation requires thekeys/rotate
permission.Code Samples
Rotates a
key
. Prints out theHTTP Response
androtated key
details.Response<KeyVaultKey> keyResponse = keyClient.rotateKeyWithResponse("keyName", new Context("key1", "value1")); System.out.printf("Response received successfully with status code: %d. Rotated key with name: %s and" + "version: %s%n", keyResponse.getStatusCode(), keyResponse.getValue().getName(), keyResponse.getValue().getProperties().getVersion());
- Parameters:
name
- The name ofkey
to be rotated. The system will generate a new version in the specifiedkey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- The
HTTP response
for this operation containing the new version of the rotatedkey
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
getKeyRotationPolicy
Gets theKeyRotationPolicy
for thekey
with the provided name. This operation requires thekeys/get
permission.Code Samples
Retrieves the
rotation policy
of a givenkey
. Prints out therotation policy key
details.KeyRotationPolicy keyRotationPolicy = keyClient.getKeyRotationPolicy("keyName"); System.out.printf("Retrieved key rotation policy with id: %s%n", keyRotationPolicy.getId());
- Parameters:
keyName
- The name of thekey
.- Returns:
- The
KeyRotationPolicy
for thekey
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
getKeyRotationPolicyWithResponse
public com.azure.core.http.rest.Response<KeyRotationPolicy> getKeyRotationPolicyWithResponse(String keyName, com.azure.core.util.Context context) Gets theKeyRotationPolicy
for thekey
with the provided name. This operation requires thekeys/get
permission.Code Samples
Retrieves the
rotation policy
of a givenkey
. Prints out theHTTP Response
androtation policy key
details.Response<KeyRotationPolicy> keyRotationPolicyResponse = keyClient.getKeyRotationPolicyWithResponse("keyName", new Context("key1", "value1")); System.out.printf("Response received successfully with status code: %d. Retrieved key rotation policy" + "with id: %s%n", keyRotationPolicyResponse.getStatusCode(), keyRotationPolicyResponse.getValue().getId());
- Parameters:
keyName
- The name of thekey
.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
HTTP response
for this operation containing theKeyRotationPolicy
for thekey
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
updateKeyRotationPolicy
public KeyRotationPolicy updateKeyRotationPolicy(String keyName, KeyRotationPolicy keyRotationPolicy) Updates theKeyRotationPolicy
of thekey
with the provided name. This operation requires thekeys/update
permission.Code Samples
Updates the
rotation policy
of a givenkey
. Prints out therotation policy key
details.List<KeyRotationLifetimeAction> lifetimeActions = new ArrayList<>(); KeyRotationLifetimeAction rotateLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.ROTATE) .setTimeAfterCreate("P90D"); KeyRotationLifetimeAction notifyLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.NOTIFY) .setTimeBeforeExpiry("P45D"); lifetimeActions.add(rotateLifetimeAction); lifetimeActions.add(notifyLifetimeAction); KeyRotationPolicy keyRotationPolicy = new KeyRotationPolicy() .setLifetimeActions(lifetimeActions) .setExpiresIn("P6M"); KeyRotationPolicy updatedPolicy = keyClient.updateKeyRotationPolicy("keyName", keyRotationPolicy); System.out.printf("Updated key rotation policy with id: %s%n", updatedPolicy.getId());
- Parameters:
keyName
- The name of thekey
.keyRotationPolicy
- TheKeyRotationPolicy
for the kekey
y.- Returns:
- The
KeyRotationPolicy
for thekey
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-
updateKeyRotationPolicyWithResponse
public com.azure.core.http.rest.Response<KeyRotationPolicy> updateKeyRotationPolicyWithResponse(String keyName, KeyRotationPolicy keyRotationPolicy, com.azure.core.util.Context context) Updates theKeyRotationPolicy
of the key with the provided name. This operation requires thekeys/update
permission.Code Samples
Updates the
rotation policy
of a givenkey
. Prints out theHTTP Response
androtation policy key
details.List<KeyRotationLifetimeAction> myLifetimeActions = new ArrayList<>(); KeyRotationLifetimeAction myRotateLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.ROTATE) .setTimeAfterCreate("P90D"); KeyRotationLifetimeAction myNotifyLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.NOTIFY) .setTimeBeforeExpiry("P45D"); myLifetimeActions.add(myRotateLifetimeAction); myLifetimeActions.add(myNotifyLifetimeAction); KeyRotationPolicy myKeyRotationPolicy = new KeyRotationPolicy() .setLifetimeActions(myLifetimeActions) .setExpiresIn("P6M"); Response<KeyRotationPolicy> keyRotationPolicyResponse = keyClient.updateKeyRotationPolicyWithResponse( "keyName", myKeyRotationPolicy, new Context("key1", "value1")); System.out.printf("Response received successfully with status code: %d. Updated key rotation policy" + "with id: %s%n", keyRotationPolicyResponse.getStatusCode(), keyRotationPolicyResponse.getValue().getId());
- Parameters:
keyName
- The name of thekey
.keyRotationPolicy
- TheKeyRotationPolicy
for the key.context
- AdditionalContext
that is passed through theHttpPipeline
during the service call.- Returns:
- A
HTTP response
for this operation containing theKeyRotationPolicy
for thekey
. - Throws:
IllegalArgumentException
- Ifname
isnull
or empty.com.azure.core.exception.ResourceNotFoundException
- If thekey
for the providedname
does not exist.
-