CryptographyClient Class
- java.
lang. Object - com.
azure. security. keyvault. keys. cryptography. CryptographyClient
- com.
public class CryptographyClient
The CryptographyClient provides synchronous methods to perform cryptographic operations using asymmetric and symmetric keys. The client supports encrypt, decrypt, wrap key, unwrap key, sign and verify operations using the configured key.
Getting Started
In order to interact with the Azure Key Vault service, you will need to create an instance of the CryptographyClient 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 Cryptography Client
The following code sample demonstrates the creation of a CryptographyClient, using the CryptographyClientBuilder to configure it.
CryptographyClient cryptographyClient = new CryptographyClientBuilder()
.keyIdentifier("<your-key-id>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
JsonWebKey jsonWebKey = new JsonWebKey().setId("SampleJsonWebKey");
CryptographyClient cryptographyClient = new CryptographyClientBuilder()
.jsonWebKey(jsonWebKey)
.buildClient();
When a CryptographyClient gets created using a Azure Key Vault key identifier
, the first time a cryptographic operation is attempted, the client will attempt to retrieve the key material from the service, cache it, and perform all future cryptographic operations locally, deferring to the service when that's not possible. If key retrieval and caching fails because of a non-retryable error, the client will not make any further attempts and will fall back to performing all cryptographic operations on the service side. Conversely, when a CryptographyClient created using a JsonWebKey, all cryptographic operations will be performed locally.
Encrypt Data
The CryptographyClient can be used to encrypt data.
Code Sample:
The following code sample demonstrates how to synchronously encrypt data using the encrypt(EncryptionAlgorithm algorithm, byte[] plaintext) API.
byte[] plaintext = new byte[100];
new Random(0x1234567L).nextBytes(plaintext);
EncryptResult encryptResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintext);
System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
encryptResult.getCipherText().length, encryptResult.getAlgorithm());
Note: For the asynchronous sample, refer to CryptographyAsyncClient.
Decrypt Data
The CryptographyClient can be used to decrypt data.
Code Sample:
The following code sample demonstrates how to synchronously decrypt data using the decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext) API.
byte[] ciphertext = new byte[100];
new Random(0x1234567L).nextBytes(ciphertext);
DecryptResult decryptResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertext);
System.out.printf("Received decrypted content of length: %d.%n", decryptResult.getPlainText().length);
Note: For the asynchronous sample, refer to CryptographyAsyncClient.
Method Summary
Methods inherited from java.lang.Object
Method Details
decrypt
public DecryptResult decrypt(DecryptParameters decryptParameters, Context context)
Decrypts a single block of encrypted data using the configured key and specified algorithm. Note that only a single block of data may be decrypted, the size of this block is dependent on the target key and the algorithm to be used. The decrypt operation is supported for both asymmetric and symmetric keys. This operation requires the keys/decrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for decrypting the specified encrypted content. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Decrypts the encrypted content prints out the decrypted content details when a response has been received.
byte[] myCiphertext = new byte[100];
new Random(0x1234567L).nextBytes(myCiphertext);
byte[] iv = {
(byte) 0x1a, (byte) 0xf3, (byte) 0x8c, (byte) 0x2d, (byte) 0xc2, (byte) 0xb9, (byte) 0x6f, (byte) 0xfd,
(byte) 0xd8, (byte) 0x66, (byte) 0x94, (byte) 0x09, (byte) 0x23, (byte) 0x41, (byte) 0xbc, (byte) 0x04
};
DecryptParameters decryptParameters = DecryptParameters.createA128CbcParameters(myCiphertext, iv);
DecryptResult decryptedResult = cryptographyClient.decrypt(decryptParameters, new Context("key1", "value1"));
System.out.printf("Received decrypted content of length: %d.%n", decryptedResult.getPlainText().length);
Parameters:
Returns:
decrypt
public DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext)
Decrypts a single block of encrypted data using the configured key and specified algorithm. Note that only a single block of data may be decrypted, the size of this block is dependent on the target key and the algorithm to be used. The decrypt operation is supported for both asymmetric and symmetric keys. This operation requires the keys/decrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for decrypting the specified encrypted content. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Decrypts the encrypted content prints out the decrypted content details when a response has been received.
byte[] ciphertext = new byte[100];
new Random(0x1234567L).nextBytes(ciphertext);
DecryptResult decryptResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertext);
System.out.printf("Received decrypted content of length: %d.%n", decryptResult.getPlainText().length);
Parameters:
Returns:
decrypt
public DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext, Context context)
Decrypts a single block of encrypted data using the configured key and specified algorithm. Note that only a single block of data may be decrypted, the size of this block is dependent on the target key and the algorithm to be used. The decrypt operation is supported for both asymmetric and symmetric keys. This operation requires the keys/decrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for decrypting the specified encrypted content. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Decrypts the encrypted content prints out the decrypted content details when a response has been received.
byte[] ciphertextToDecrypt = new byte[100];
new Random(0x1234567L).nextBytes(ciphertextToDecrypt);
DecryptResult decryptionResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertextToDecrypt,
new Context("key1", "value1"));
System.out.printf("Received decrypted content of length: %d.%n", decryptionResult.getPlainText().length);
Parameters:
Returns:
encrypt
public EncryptResult encrypt(EncryptParameters encryptParameters, Context context)
Encrypts an arbitrary sequence of bytes using the configured key. Note that the encrypt operation only supports a single block of data, the size of which is dependent on the target key and the encryption algorithm to be used. The encrypt operation is supported for both symmetric keys and asymmetric keys. In case of asymmetric keys, the public portion of the key is used for encryption. This operation requires the keys/encrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for encrypting the specified plaintext
. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Encrypts the content prints out the encrypted content details when a response has been received.
byte[] myPlaintext = new byte[100];
new Random(0x1234567L).nextBytes(myPlaintext);
byte[] iv = {
(byte) 0x1a, (byte) 0xf3, (byte) 0x8c, (byte) 0x2d, (byte) 0xc2, (byte) 0xb9, (byte) 0x6f, (byte) 0xfd,
(byte) 0xd8, (byte) 0x66, (byte) 0x94, (byte) 0x09, (byte) 0x23, (byte) 0x41, (byte) 0xbc, (byte) 0x04
};
EncryptParameters encryptParameters = EncryptParameters.createA128CbcParameters(myPlaintext, iv);
EncryptResult encryptedResult = cryptographyClient.encrypt(encryptParameters, new Context("key1", "value1"));
System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
encryptedResult.getCipherText().length, encryptedResult.getAlgorithm());
Parameters:
Returns:
encrypt
public EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext)
Encrypts an arbitrary sequence of bytes using the configured key. Note that the encrypt operation only supports a single block of data, the size of which is dependent on the target key and the encryption algorithm to be used. The encrypt operation is supported for both symmetric keys and asymmetric keys. In case of asymmetric keys, the public portion of the key is used for encryption. This operation requires the keys/encrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for encrypting the specified plaintext
. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Encrypts the content and prints out the encrypted content details when a response has been received.
byte[] plaintext = new byte[100];
new Random(0x1234567L).nextBytes(plaintext);
EncryptResult encryptResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintext);
System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
encryptResult.getCipherText().length, encryptResult.getAlgorithm());
Parameters:
Returns:
encrypt
public EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext, Context context)
Encrypts an arbitrary sequence of bytes using the configured key. Note that the encrypt operation only supports a single block of data, the size of which is dependent on the target key and the encryption algorithm to be used. The encrypt operation is supported for both symmetric keys and asymmetric keys. In case of asymmetric keys, the public portion of the key is used for encryption. This operation requires the keys/encrypt
permission for non-local operations.
The EncryptionAlgorithm indicates the type of algorithm to use for encrypting the specified plaintext
. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, A256CBCPAD, A256CBC_HS512 and A256GCM.
Code Samples
Encrypts the content prints out the encrypted content details when a response has been received.
byte[] plaintextToEncrypt = new byte[100];
new Random(0x1234567L).nextBytes(plaintextToEncrypt);
EncryptResult encryptionResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintextToEncrypt,
new Context("key1", "value1"));
System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
encryptionResult.getCipherText().length, encryptionResult.getAlgorithm());
Parameters:
Returns:
getKey
public KeyVaultKey getKey()
Gets the public part of the configured key. The get key operation is applicable to all key types and it requires the keys/get
permission for non-local operations.
Code Samples
Gets the configured key in the client and prints out the returned key details when a response has been received.
KeyVaultKey key = cryptographyClient.getKey();
System.out.printf("Key returned with name: %s and id: %s.%n", key.getName(), key.getId());
Returns:
getKeyWithResponse
public Response
Gets the public part of the configured key. The get key operation is applicable to all key types and it requires the keys/get
permission for non-local operations.
Code Samples
Gets the configured key in the client and prints out the returned key details when a response has been received.
KeyVaultKey keyWithVersion = cryptographyClient.getKeyWithResponse(new Context("key1", "value1")).getValue();
System.out.printf("Key is returned with name: %s and id %s.%n", keyWithVersion.getName(),
keyWithVersion.getId());
Parameters:
Returns:
sign
public SignResult sign(SignatureAlgorithm algorithm, byte[] digest)
Creates a signature from a digest using the configured key. The sign operation supports both asymmetric and symmetric keys. This operation requires the keys/sign
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to create the signature from the digest. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Sings the digest prints out the signature details when a response has been received.
byte[] data = new byte[100];
new Random(0x1234567L).nextBytes(data);
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data);
byte[] digest = md.digest();
SignResult signResult = cryptographyClient.sign(SignatureAlgorithm.ES256, digest);
System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResult.getSignature().length,
signResult.getAlgorithm());
Parameters:
Returns:
sign
public SignResult sign(SignatureAlgorithm algorithm, byte[] digest, Context context)
Creates a signature from a digest using the configured key. The sign operation supports both asymmetric and symmetric keys. This operation requires the keys/sign
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to create the signature from the digest. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Sings the digest prints out the signature details when a response has been received.
byte[] dataToVerify = new byte[100];
new Random(0x1234567L).nextBytes(dataToVerify);
MessageDigest myMessageDigest = MessageDigest.getInstance("SHA-256");
myMessageDigest.update(dataToVerify);
byte[] digestContent = myMessageDigest.digest();
SignResult signResponse = cryptographyClient.sign(SignatureAlgorithm.ES256, digestContent,
new Context("key1", "value1"));
System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResponse.getSignature().length,
signResponse.getAlgorithm());
Parameters:
Returns:
signData
public SignResult signData(SignatureAlgorithm algorithm, byte[] data)
Creates a signature from the raw data using the configured key. The sign data operation supports both asymmetric and symmetric keys. This operation requires the keys/sign
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to sign the digest. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Signs the raw data prints out the signature details when a response has been received.
byte[] data = new byte[32];
new Random(0x1234567L).nextBytes(data);
SignResult signResult = cryptographyClient.sign(SignatureAlgorithm.ES256, data);
System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResult.getSignature().length,
signResult.getAlgorithm());
Parameters:
Returns:
signData
public SignResult signData(SignatureAlgorithm algorithm, byte[] data, Context context)
Creates a signature from the raw data using the configured key. The sign data operation supports both asymmetric and symmetric keys. This operation requires the keys/sign
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to sign the digest. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Signs the raw data prints out the signature details when a response has been received.
byte[] plainTextData = new byte[32];
new Random(0x1234567L).nextBytes(plainTextData);
SignResult signingResult = cryptographyClient.sign(SignatureAlgorithm.ES256, plainTextData);
System.out.printf("Received signature of length: %d, with algorithm: %s.%n",
signingResult.getSignature().length, new Context("key1", "value1"));
Parameters:
Returns:
unwrapKey
public UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey)
Unwraps a symmetric key using the configured key that was initially used for wrapping that key. This operation is the reverse of the wrap operation. The unwrap operation supports asymmetric and symmetric keys to unwrap. This operation requires the keys/unwrapKey
permission for non-local operations.
The KeyWrapAlgorithm indicates the type of algorithm to use for unwrapping the specified encrypted key content. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128KW, A192KW and A256KW.
Code Samples
Unwraps the key content prints out the unwrapped key details when a response has been received.
byte[] keyContent = new byte[100];
new Random(0x1234567L).nextBytes(keyContent);
WrapResult wrapKeyResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyContent,
new Context("key1", "value1"));
UnwrapResult unwrapResult = cryptographyClient.unwrapKey(KeyWrapAlgorithm.RSA_OAEP,
wrapKeyResult.getEncryptedKey());
System.out.printf("Received key of length %d", unwrapResult.getKey().length);
Parameters:
Returns:
unwrapKey
public UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey, Context context)
Unwraps a symmetric key using the configured key that was initially used for wrapping that key. This operation is the reverse of the wrap operation. The unwrap operation supports asymmetric and symmetric keys to unwrap. This operation requires the keys/unwrapKey
permission for non-local operations.
The KeyWrapAlgorithm indicates the type of algorithm to use for unwrapping the specified encrypted key content. Possible values for asymmetric keys include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128KW, A192KW and A256KW.
Code Samples
Unwraps the key content prints out the unwrapped key details when a response has been received.
byte[] keyContentToWrap = new byte[100];
new Random(0x1234567L).nextBytes(keyContentToWrap);
Context context = new Context("key1", "value1");
WrapResult wrapKeyContentResult =
cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyContentToWrap, context);
UnwrapResult unwrapKeyResponse =
cryptographyClient.unwrapKey(KeyWrapAlgorithm.RSA_OAEP, wrapKeyContentResult.getEncryptedKey(), context);
System.out.printf("Received key of length %d", unwrapKeyResponse.getKey().length);
Parameters:
Returns:
verify
public VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature)
Verifies a signature using the configured key. The verify operation supports both symmetric keys and asymmetric keys. In case of asymmetric keys public portion of the key is used to verify the signature. This operation requires the keys/verify
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to verify the signature. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Verifies the signature against the specified digest prints out the verification details when a response has been received.
byte[] myData = new byte[100];
new Random(0x1234567L).nextBytes(myData);
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(myData);
byte[] myDigest = messageDigest.digest();
// A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
VerifyResult verifyResult = cryptographyClient.verify(SignatureAlgorithm.ES256, myDigest, signature);
System.out.printf("Verification status: %s.%n", verifyResult.isValid());
Parameters:
Returns:
verify
public VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature, Context context)
Verifies a signature using the configured key. The verify operation supports both symmetric keys and asymmetric keys. In case of asymmetric keys public portion of the key is used to verify the signature. This operation requires the keys/verify
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to verify the signature. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Verifies the signature against the specified digest prints out the verification details when a response has been received.
byte[] dataBytes = new byte[100];
new Random(0x1234567L).nextBytes(dataBytes);
MessageDigest msgDigest = MessageDigest.getInstance("SHA-256");
msgDigest.update(dataBytes);
byte[] digestBytes = msgDigest.digest();
// A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
VerifyResult verifyResponse = cryptographyClient.verify(SignatureAlgorithm.ES256, digestBytes, signatureBytes,
new Context("key1", "value1"));
System.out.printf("Verification status: %s.%n", verifyResponse.isValid());
Parameters:
Returns:
verifyData
public VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature)
Verifies a signature against the raw data using the configured key. The verify operation supports both symmetric keys and asymmetric keys. In case of asymmetric keys public portion of the key is used to verify the signature. This operation requires the keys/verify
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to verify the signature. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Verifies the signature against the raw data prints out the verification details when a response has been received.
byte[] myData = new byte[32];
new Random(0x1234567L).nextBytes(myData);
// A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
VerifyResult verifyResult = cryptographyClient.verify(SignatureAlgorithm.ES256, myData, signature);
System.out.printf("Verification status: %s.%n", verifyResult.isValid());
Parameters:
Returns:
verifyData
public VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature, Context context)
Verifies a signature against the raw data using the configured key. The verify operation supports both symmetric keys and asymmetric keys. In case of asymmetric keys public portion of the key is used to verify the signature. This operation requires the keys/verify
permission for non-local operations.
The SignatureAlgorithm indicates the type of algorithm to use to verify the signature. Possible values include: ES256, ES384, ES512, ES256K, PS256, RS384, RS512, RS256, RS384, and RS512.
Code Samples
Verifies the signature against the raw data prints out the verification details when a response has been received.
byte[] dataToVerify = new byte[32];
new Random(0x1234567L).nextBytes(dataToVerify);
// A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
VerifyResult verificationResult = cryptographyClient.verify(SignatureAlgorithm.ES256, dataToVerify,
mySignature, new Context("key1", "value1"));
System.out.printf("Verification status: %s.%n", verificationResult.isValid());
Parameters:
Returns:
wrapKey
public WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key)
Wraps a symmetric key using the configured key. The wrap operation supports wrapping a symmetric key with both symmetric and asymmetric keys. This operation requires the keys/wrapKey
permission for non-local operations.
The KeyWrapAlgorithm indicates the type of algorithm to use for wrapping the specified key content. Possible values include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128KW, A192KW and A256KW.
Code Samples
Wraps the key content prints out the wrapped key details when a response has been received.
byte[] key = new byte[100];
new Random(0x1234567L).nextBytes(key);
WrapResult wrapResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, key);
System.out.printf("Received encrypted key of length: %d, with algorithm: %s.%n",
wrapResult.getEncryptedKey().length, wrapResult.getAlgorithm());
Parameters:
Returns:
wrapKey
public WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key, Context context)
Wraps a symmetric key using the configured key. The wrap operation supports wrapping a symmetric key with both symmetric and asymmetric keys. This operation requires the keys/wrapKey
permission for non-local operations.
The KeyWrapAlgorithm indicates the type of algorithm to use for wrapping the specified key content. Possible values include: RSA1_5, RSA_OAEP and RSA_OAEP_256.
Possible values for symmetric keys include: A128KW, A192KW and A256KW.
Code Samples
Wraps the key content prints out the wrapped key details when a response has been received.
byte[] keyToWrap = new byte[100];
new Random(0x1234567L).nextBytes(keyToWrap);
WrapResult keyWrapResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyToWrap,
new Context("key1", "value1"));
System.out.printf("Received encrypted key of length: %d, with algorithm: %s.%n",
keyWrapResult.getEncryptedKey().length, keyWrapResult.getAlgorithm());
Parameters:
Returns:
Applies to
Azure SDK for Java