Interface EncryptionMaterialsProvider
- All Known Implementing Classes:
AsymmetricStaticProvider
,CachingMostRecentProvider
,DirectKmsMaterialProvider
,KeyStoreMaterialsProvider
,SymmetricStaticProvider
,WrappedMaterialsProvider
public interface EncryptionMaterialsProvider
Interface for providing encryption materials. Implementations are free to use any strategy for
providing encryption materials, such as simply providing static material that doesn't change, or
more complicated implementations, such as integrating with existing key management systems.
- Author:
- Greg Rubin
-
Method Summary
Modifier and TypeMethodDescriptiongetDecryptionMaterials
(EncryptionContext context) Retrieves encryption materials matching the specified description from some source.getEncryptionMaterials
(EncryptionContext context) Returns EncryptionMaterials which the caller can use for encryption.void
refresh()
Forces this encryption materials provider to refresh its encryption material.
-
Method Details
-
getDecryptionMaterials
Retrieves encryption materials matching the specified description from some source.- Parameters:
context
- Information to assist in selecting a the proper return value. The implementation is free to determine the minimum necessary for successful processing.- Returns:
- The encryption materials that match the description, or null if no matching encryption materials found.
-
getEncryptionMaterials
Returns EncryptionMaterials which the caller can use for encryption. Each implementation of EncryptionMaterialsProvider can choose its own strategy for loading encryption material. For example, an implementation might load encryption material from an existing key management system, or load new encryption material when keys are rotated.- Parameters:
context
- Information to assist in selecting a the proper return value. The implementation is free to determine the minimum necessary for successful processing.- Returns:
- EncryptionMaterials which the caller can use to encrypt or decrypt data.
-
refresh
void refresh()Forces this encryption materials provider to refresh its encryption material. For many implementations of encryption materials provider, this may simply be a no-op, such as any encryption materials provider implementation that vends static/non-changing encryption material. For other implementations that vend different encryption material throughout their lifetime, this method should force the encryption materials provider to refresh its encryption material.
-