[FEATURE REQ] Provide an implementation of 'AsyncKeyEncryptionKey' that uses a local symmetric key
See original GitHub issueIs your feature request related to a problem? Please describe.
With version 8 of the storage SDK, we are using SymmetricKey for client-side encryption of Azure storage blobs. This implementation performs encryption locally on the machine and accepts an in-memory encryption key. The new version 12 of the storage SDK (azure-storage-blob-cryptography
) uses a new interface AsyncKeyEncryptionKey
for the encryption key and I couldn’t find an implementation of it like the SymmetricKey
class. There is one implementation that Rick from storage sdk team pointed me to KeyEncryptionKeyClient
but it requires the encryption key to be present in key vault. More details in this query - #6536.
Describe the solution you’d like An implementation of AsyncKeyEncryptionKey that mimics the functionality provided by SymmetricKey.
Describe alternatives you’ve considered No other alternatives have been considered yet.
Additional context NA
Information Checklist Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
- Description Added
- Expected solution specified
Issue Analytics
- State:
- Created 4 years ago
- Comments:14 (8 by maintainers)
@SukruthKS The April beta release contains the features:
Here is the code sample that you can use:
@SukruthKS The Febburay KV-keys release, supports this feature. Here is the package link: https://search.maven.org/artifact/com.azure/azure-security-keyvault-keys/4.2.0-beta.1/jar
Sample Code to build AsyncKeyEncryptionKey using local symmetric key: JsonWebKey localKey = JsonWebKey.fromAes(new SecretKeySpec(localSymmeticKeyBytes, “AES”), Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)); KeyVaultKey kvKey = KeyVaultKey.fromName(“localSymmeticKey”, localKey);
AsyncKeyEncryptionKey akek = new KeyEncryptionKeyClientBuilder() .credential(credentialReal) .buildAsyncKeyEncryptionKey(kvKey).block();