|
| 1 | +diff --git b/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy a/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy |
| 2 | +index 9a8ed7f4..1ffa8b55 100644 |
| 3 | +--- b/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy |
| 4 | ++++ a/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy |
| 5 | +@@ -759,94 +759,62 @@ abstract module AbstractAwsCryptographyDbEncryptionSdkDynamoDbTransformsService |
| 6 | + var tmps4 := set t4 | t4 in tmp3.search.value.versions; |
| 7 | + forall tmp4 :: tmp4 in tmps4 ==> |
| 8 | + tmp4.keyStore.ValidState() |
| 9 | +- requires var tmps5 := set t5 | t5 in config.tableEncryptionConfigs.Values; |
| 10 | +- forall tmp5 :: tmp5 in tmps5 ==> |
| 11 | +- tmp5.search.Some? ==> |
| 12 | +- var tmps6 := set t6 | t6 in tmp5.search.value.versions; |
| 13 | +- forall tmp6 :: tmp6 in tmps6 ==> |
| 14 | +- tmp6.keySource.multi? ==> |
| 15 | +- tmp6.keySource.multi.cache.Some? ==> |
| 16 | +- tmp6.keySource.multi.cache.value.Shared? ==> |
| 17 | +- tmp6.keySource.multi.cache.value.Shared.ValidState() |
| 18 | ++ modifies set tmps5 <- set t5 <- config.tableEncryptionConfigs.Values | true |
| 19 | ++ && t5.keyring.Some? |
| 20 | ++ :: t5.keyring.value, |
| 21 | ++ obj <- tmps5.Modifies | obj in tmps5.Modifies :: obj |
| 22 | ++ modifies set tmps6 <- set t6 <- config.tableEncryptionConfigs.Values | true |
| 23 | ++ && t6.cmm.Some? |
| 24 | ++ :: t6.cmm.value, |
| 25 | ++ obj <- tmps6.Modifies | obj in tmps6.Modifies :: obj |
| 26 | + modifies set tmps7 <- set t7 <- config.tableEncryptionConfigs.Values | true |
| 27 | +- && t7.keyring.Some? |
| 28 | +- :: t7.keyring.value, |
| 29 | ++ && t7.legacyOverride.Some? |
| 30 | ++ :: t7.legacyOverride.value.encryptor, |
| 31 | + obj <- tmps7.Modifies | obj in tmps7.Modifies :: obj |
| 32 | + modifies set tmps8 <- set t8 <- config.tableEncryptionConfigs.Values | true |
| 33 | +- && t8.cmm.Some? |
| 34 | +- :: t8.cmm.value, |
| 35 | ++ && t8.search.Some? |
| 36 | ++ , t9 <- t8.search.value.versions :: t9.keyStore, |
| 37 | + obj <- tmps8.Modifies | obj in tmps8.Modifies :: obj |
| 38 | +- modifies set tmps9 <- set t9 <- config.tableEncryptionConfigs.Values | true |
| 39 | +- && t9.legacyOverride.Some? |
| 40 | +- :: t9.legacyOverride.value.encryptor, |
| 41 | +- obj <- tmps9.Modifies | obj in tmps9.Modifies :: obj |
| 42 | +- modifies set tmps10 <- set t10 <- config.tableEncryptionConfigs.Values | true |
| 43 | +- && t10.search.Some? |
| 44 | +- , t11 <- t10.search.value.versions :: t11.keyStore, |
| 45 | +- obj <- tmps10.Modifies | obj in tmps10.Modifies :: obj |
| 46 | +- modifies set tmps12 <- set t12 <- config.tableEncryptionConfigs.Values | true |
| 47 | +- && t12.search.Some? |
| 48 | +- , t13 <- t12.search.value.versions && t13.keySource.multi? |
| 49 | +- && t13.keySource.multi.cache.Some? |
| 50 | +- && t13.keySource.multi.cache.value.Shared? |
| 51 | +- :: t13.keySource.multi.cache.value.Shared, |
| 52 | +- obj <- tmps12.Modifies | obj in tmps12.Modifies :: obj |
| 53 | + ensures res.Success? ==> |
| 54 | + && fresh(res.value) |
| 55 | + && fresh(res.value.Modifies |
| 56 | +- - ( set tmps14 <- set t14 <- config.tableEncryptionConfigs.Values | true |
| 57 | +- && t14.keyring.Some? |
| 58 | +- :: t14.keyring.value, |
| 59 | +- obj <- tmps14.Modifies | obj in tmps14.Modifies :: obj |
| 60 | +- ) - ( set tmps15 <- set t15 <- config.tableEncryptionConfigs.Values | true |
| 61 | +- && t15.cmm.Some? |
| 62 | +- :: t15.cmm.value, |
| 63 | +- obj <- tmps15.Modifies | obj in tmps15.Modifies :: obj |
| 64 | +- ) - ( set tmps16 <- set t16 <- config.tableEncryptionConfigs.Values | true |
| 65 | +- && t16.legacyOverride.Some? |
| 66 | +- :: t16.legacyOverride.value.encryptor, |
| 67 | +- obj <- tmps16.Modifies | obj in tmps16.Modifies :: obj |
| 68 | +- ) - ( set tmps17 <- set t17 <- config.tableEncryptionConfigs.Values | true |
| 69 | +- && t17.search.Some? |
| 70 | +- , t18 <- t17.search.value.versions :: t18.keyStore, |
| 71 | +- obj <- tmps17.Modifies | obj in tmps17.Modifies :: obj |
| 72 | +- ) - ( set tmps19 <- set t19 <- config.tableEncryptionConfigs.Values | true |
| 73 | +- && t19.search.Some? |
| 74 | +- , t20 <- t19.search.value.versions && t20.keySource.multi? |
| 75 | +- && t20.keySource.multi.cache.Some? |
| 76 | +- && t20.keySource.multi.cache.value.Shared? |
| 77 | +- :: t20.keySource.multi.cache.value.Shared, |
| 78 | +- obj <- tmps19.Modifies | obj in tmps19.Modifies :: obj |
| 79 | ++ - ( set tmps10 <- set t10 <- config.tableEncryptionConfigs.Values | true |
| 80 | ++ && t10.keyring.Some? |
| 81 | ++ :: t10.keyring.value, |
| 82 | ++ obj <- tmps10.Modifies | obj in tmps10.Modifies :: obj |
| 83 | ++ ) - ( set tmps11 <- set t11 <- config.tableEncryptionConfigs.Values | true |
| 84 | ++ && t11.cmm.Some? |
| 85 | ++ :: t11.cmm.value, |
| 86 | ++ obj <- tmps11.Modifies | obj in tmps11.Modifies :: obj |
| 87 | ++ ) - ( set tmps12 <- set t12 <- config.tableEncryptionConfigs.Values | true |
| 88 | ++ && t12.legacyOverride.Some? |
| 89 | ++ :: t12.legacyOverride.value.encryptor, |
| 90 | ++ obj <- tmps12.Modifies | obj in tmps12.Modifies :: obj |
| 91 | ++ ) - ( set tmps13 <- set t13 <- config.tableEncryptionConfigs.Values | true |
| 92 | ++ && t13.search.Some? |
| 93 | ++ , t14 <- t13.search.value.versions :: t14.keyStore, |
| 94 | ++ obj <- tmps13.Modifies | obj in tmps13.Modifies :: obj |
| 95 | + ) ) |
| 96 | + && fresh(res.value.History) |
| 97 | + && res.value.ValidState() |
| 98 | +- ensures var tmps21 := set t21 | t21 in config.tableEncryptionConfigs.Values; |
| 99 | +- forall tmp21 :: tmp21 in tmps21 ==> |
| 100 | +- tmp21.keyring.Some? ==> |
| 101 | +- tmp21.keyring.value.ValidState() |
| 102 | +- ensures var tmps22 := set t22 | t22 in config.tableEncryptionConfigs.Values; |
| 103 | +- forall tmp22 :: tmp22 in tmps22 ==> |
| 104 | +- tmp22.cmm.Some? ==> |
| 105 | +- tmp22.cmm.value.ValidState() |
| 106 | +- ensures var tmps23 := set t23 | t23 in config.tableEncryptionConfigs.Values; |
| 107 | +- forall tmp23 :: tmp23 in tmps23 ==> |
| 108 | +- tmp23.legacyOverride.Some? ==> |
| 109 | +- tmp23.legacyOverride.value.encryptor.ValidState() |
| 110 | +- ensures var tmps24 := set t24 | t24 in config.tableEncryptionConfigs.Values; |
| 111 | +- forall tmp24 :: tmp24 in tmps24 ==> |
| 112 | +- tmp24.search.Some? ==> |
| 113 | +- var tmps25 := set t25 | t25 in tmp24.search.value.versions; |
| 114 | +- forall tmp25 :: tmp25 in tmps25 ==> |
| 115 | +- tmp25.keyStore.ValidState() |
| 116 | +- ensures var tmps26 := set t26 | t26 in config.tableEncryptionConfigs.Values; |
| 117 | +- forall tmp26 :: tmp26 in tmps26 ==> |
| 118 | +- tmp26.search.Some? ==> |
| 119 | +- var tmps27 := set t27 | t27 in tmp26.search.value.versions; |
| 120 | +- forall tmp27 :: tmp27 in tmps27 ==> |
| 121 | +- tmp27.keySource.multi? ==> |
| 122 | +- tmp27.keySource.multi.cache.Some? ==> |
| 123 | +- tmp27.keySource.multi.cache.value.Shared? ==> |
| 124 | +- tmp27.keySource.multi.cache.value.Shared.ValidState() |
| 125 | ++ ensures var tmps15 := set t15 | t15 in config.tableEncryptionConfigs.Values; |
| 126 | ++ forall tmp15 :: tmp15 in tmps15 ==> |
| 127 | ++ tmp15.keyring.Some? ==> |
| 128 | ++ tmp15.keyring.value.ValidState() |
| 129 | ++ ensures var tmps16 := set t16 | t16 in config.tableEncryptionConfigs.Values; |
| 130 | ++ forall tmp16 :: tmp16 in tmps16 ==> |
| 131 | ++ tmp16.cmm.Some? ==> |
| 132 | ++ tmp16.cmm.value.ValidState() |
| 133 | ++ ensures var tmps17 := set t17 | t17 in config.tableEncryptionConfigs.Values; |
| 134 | ++ forall tmp17 :: tmp17 in tmps17 ==> |
| 135 | ++ tmp17.legacyOverride.Some? ==> |
| 136 | ++ tmp17.legacyOverride.value.encryptor.ValidState() |
| 137 | ++ ensures var tmps18 := set t18 | t18 in config.tableEncryptionConfigs.Values; |
| 138 | ++ forall tmp18 :: tmp18 in tmps18 ==> |
| 139 | ++ tmp18.search.Some? ==> |
| 140 | ++ var tmps19 := set t19 | t19 in tmp18.search.value.versions; |
| 141 | ++ forall tmp19 :: tmp19 in tmps19 ==> |
| 142 | ++ tmp19.keyStore.ValidState() |
| 143 | + |
| 144 | + // Helper functions for the benefit of native code to create a Success(client) without referring to Dafny internals |
| 145 | + function method CreateSuccessOfClient(client: IDynamoDbEncryptionTransformsClient): Result<IDynamoDbEncryptionTransformsClient, Error> { |
0 commit comments