public class DirectKmsMaterialProvider extends java.lang.Object implements EncryptionMaterialsProvider
KmsClient. Currently, the HashKey, RangeKey, and TableName will be
included in the KMS EncryptionContext for wrapping/unwrapping the key. This
means that records cannot be copied/moved between tables without re-encryption.| Constructor and Description |
|---|
DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms) |
DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms,
java.lang.String encryptionKeyId) |
DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms,
java.lang.String encryptionKeyId,
java.util.Map<java.lang.String,java.lang.String> materialDescription) |
| Modifier and Type | Method and Description |
|---|---|
protected software.amazon.awssdk.services.kms.model.DecryptResponse |
decrypt(software.amazon.awssdk.services.kms.model.DecryptRequest request,
EncryptionContext context)
Decrypts ciphertext.
|
protected software.amazon.awssdk.services.kms.model.GenerateDataKeyResponse |
generateDataKey(software.amazon.awssdk.services.kms.model.GenerateDataKeyRequest request,
EncryptionContext context)
Returns a data encryption key that you can use in your application to encrypt data locally.
|
DecryptionMaterials |
getDecryptionMaterials(EncryptionContext context)
Retrieves encryption materials matching the specified description from some source.
|
protected java.lang.String |
getEncryptionKeyId()
Get encryption key id that is used to create the
EncryptionMaterials. |
EncryptionMaterials |
getEncryptionMaterials(EncryptionContext context)
Returns EncryptionMaterials which the caller can use for encryption.
|
void |
refresh()
Forces this encryption materials provider to refresh its encryption
material.
|
protected java.lang.String |
selectEncryptionKeyId(EncryptionContext context)
Select encryption key id to be used to generate data key.
|
protected void |
validateEncryptionKeyId(java.lang.String encryptionKeyId,
EncryptionContext context)
Validate the encryption key id.
|
public DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms)
public DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms,
java.lang.String encryptionKeyId,
java.util.Map<java.lang.String,java.lang.String> materialDescription)
public DirectKmsMaterialProvider(software.amazon.awssdk.services.kms.KmsClient kms,
java.lang.String encryptionKeyId)
public DecryptionMaterials getDecryptionMaterials(EncryptionContext context)
EncryptionMaterialsProvidergetDecryptionMaterials in interface EncryptionMaterialsProvidercontext - Information to assist in selecting a the proper return value. The implementation
is free to determine the minimum necessary for successful processing.public EncryptionMaterials getEncryptionMaterials(EncryptionContext context)
EncryptionMaterialsProvidergetEncryptionMaterials in interface EncryptionMaterialsProvidercontext - Information to assist in selecting a the proper return value. The implementation
is free to determine the minimum necessary for successful processing.protected java.lang.String getEncryptionKeyId()
EncryptionMaterials.protected java.lang.String selectEncryptionKeyId(EncryptionContext context) throws DynamoDbEncryptionException
encryptionKeyId.context - encryption context.DynamoDbEncryptionException - when we fails to select a valid encryption key id.protected void validateEncryptionKeyId(java.lang.String encryptionKeyId,
EncryptionContext context)
throws DynamoDbEncryptionException
encryptionKeyId - encryption key id from DecryptResponse.context - encryption context.DynamoDbEncryptionException - when encryptionKeyId is invalid.protected software.amazon.awssdk.services.kms.model.DecryptResponse decrypt(software.amazon.awssdk.services.kms.model.DecryptRequest request,
EncryptionContext context)
DecryptRequest. Subclass can override the default implementation to provide
additional request parameters using attributes within the EncryptionContext.request - request parameters to decrypt the given ciphertext.context - additional useful data to decrypt the ciphertext.protected software.amazon.awssdk.services.kms.model.GenerateDataKeyResponse generateDataKey(software.amazon.awssdk.services.kms.model.GenerateDataKeyRequest request,
EncryptionContext context)
GenerateDataKeyRequest. Subclass can override the default implementation to provide additional
request parameters using attributes within the EncryptionContext.request - request parameters to generate the data key.context - additional useful data to generate the data key.public void refresh()
EncryptionMaterialsProviderrefresh in interface EncryptionMaterialsProvider