Features
- Introduces Thread Safe Cryptographic Materials Caches (CMCs):
- Storm Tracking Cache
Safe for use in a multi threaded environment,
tries to prevent redundant or overly parallel backend calls.
See [Spec changes](https://github.com/awslabs/aws-encryption-sdk-specification/blob/ce9a4062124edc5085c66a4f10742e15aa039b34/changes/2023-06-19_thread_safe_cache/change.md) for details.
- Multi Threaded Cache
Safe for use in a multi threaded environment,
but no extra functionality
BREAKING CHANGES
- CMCs:
- Original Cryptographic Materials Cache has been renamed to Single Threaded Cache
- `CreateCryptographicMaterialsCacheInput` now ONLY accepts `CacheType`,
which determines which, if any, of the three implemented CMCs will be returned.
- The `DefaultCache` is `StormTrackingCache`
- `CreateAwsKmsHierarchicalKeyringInput`:
- no longer has a `maxCacheSize` field
- now has an optional `cache` field for a `CacheType`
- Hierarchical Keyring's Key Store:
- The Hierarchical Keyring's Key Store's Data Structure has changed.
As such, entries persisted in the Key Store with prior versions of this library are NOT compatibale.
Instead, we recommend Creating a new DynamoDB Table for this version of the Key Store.
- The Key Store's `CreateKeyInput` now takes:
- An Optional `String branchKeyIdentifier`
- An Optional `EncryptionContext encryptionContext`
- This `encryptionContext` will be added to the Encryption Context sent to KMS prefixed with `aws-crypto-ec:`
- Creating a Key now also calls KMS:ReEncrypt
- `CreateKeyStore` no longer creates a GSI
- The Encryption Context used with KMS' `GenerateDataKeyWithoutPlaintext` no longer include's the discarded GSI's `status`.
- More details about the Key Store's changes are avaible in our Specification:
- [2023-07-12 Update Key Store](https://github.com/awslabs/aws-encryption-sdk-specification/tree/master/changes/2023_7_12_update-keystore-structure)
- [KeyStore Specification](https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/framework/branch-key-store.md)
Maintenance
- A variety of fixes to the libraries CI and testing
Fix
- Fixes Required Encryption Context CMM and UpdateUsageMetadata names in smithy model