Skip to content

Commit bd49ea1

Browse files
committed
test(SearchableEncryption): test disable shared cache via formal verificaiton
1 parent ff7b6f0 commit bd49ea1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

DynamoDbEncryption/dafny/DynamoDbEncryption/src/ConfigToInfo.dfy

+15-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,21 @@ module SearchConfigToInfo {
119119
&& config.multi.keyFieldName in outer.attributeActionsOnEncrypt
120120
&& outer.attributeActionsOnEncrypt[config.multi.keyFieldName] == SE.ENCRYPT_AND_SIGN
121121
==> output.Failure?
122+
// Not in Spec, but for now, SE does not support the Shared Cache Type
123+
ensures
124+
&& config.multi?
125+
&& config.multi.cache.Some?
126+
&& config.multi.cache.value.Shared?
127+
&& output.Failure?
128+
// If the failure was NOT caused by booting up the MPL
129+
&& !output.error.AwsCryptographyMaterialProviders?
130+
==>
131+
&& output.error.DynamoDbEncryptionException?
132+
&& output.error.message == "Searchable Encryption does not support the Shared Cache type at this time."
122133
{
134+
// TODO-FutureCleanUp : It is not-good that the MPL is initialized here;
135+
// The MPL has a config object that could hold customer intent that affects behavior.
136+
// Today, it does not. But tomorrow?
123137
var mplR := MaterialProviders.MaterialProviders();
124138
var mpl :- mplR.MapFailure(e => AwsCryptographyMaterialProviders(e));
125139

@@ -139,7 +153,7 @@ module SearchConfigToInfo {
139153

140154
var cache;
141155
if cacheType.Shared? {
142-
return Failure(DynamoDbEncryptionException(message:="Searchable Encryption does not support shared caches"));
156+
return Failure(DynamoDbEncryptionException(message:="Searchable Encryption does not support the Shared Cache type at this time."));
143157
// cache := cacheType.Shared;
144158
} else {
145159
//= specification/searchable-encryption/search-config.md#key-store-cache

0 commit comments

Comments
 (0)