github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/RequiredEncryptionContextCMM/RequiredEncryptionContextCMM.go (about) 1 // Package RequiredEncryptionContextCMM 2 // Dafny module RequiredEncryptionContextCMM compiled into Go 3 4 package RequiredEncryptionContextCMM 5 6 import ( 7 os "os" 8 9 m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" 10 m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" 11 m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" 12 m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" 13 m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" 14 m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" 15 m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" 16 m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" 17 m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 18 m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" 19 m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" 20 m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" 21 m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" 22 m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" 23 m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" 24 m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" 25 m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" 26 m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" 27 m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" 28 m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" 29 m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" 30 m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" 31 m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" 32 m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" 33 m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" 34 m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" 35 m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" 36 m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" 37 m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" 38 m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" 39 m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" 40 m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" 41 m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" 42 m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" 43 m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" 44 m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" 45 m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" 46 m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" 47 m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" 48 m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" 49 m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" 50 m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" 51 m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" 52 m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" 53 m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" 54 m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" 55 m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" 56 m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" 57 m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" 58 m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" 59 m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" 60 m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" 61 m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" 62 m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" 63 m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" 64 m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" 65 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 66 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 67 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 68 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 69 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 70 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 71 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 72 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 73 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 74 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 75 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 76 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 77 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 78 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 79 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 80 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 81 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 82 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 83 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 84 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 85 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 86 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 87 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 88 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 89 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 90 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 91 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 92 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 93 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 94 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 95 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 96 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 97 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 98 m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" 99 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 100 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 101 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 102 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 103 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 104 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 105 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 106 m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" 107 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 108 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 109 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 110 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 111 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 112 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 113 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 114 ) 115 116 var _ = os.Args 117 var _ _dafny.Dummy__ 118 var _ m__System.Dummy__ 119 var _ m_Wrappers.Dummy__ 120 var _ m_BoundedInts.Dummy__ 121 var _ m_StandardLibrary_UInt.Dummy__ 122 var _ m_StandardLibrary_Sequence.Dummy__ 123 var _ m_StandardLibrary_String.Dummy__ 124 var _ m_StandardLibrary.Dummy__ 125 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 126 var _ m_Random.Dummy__ 127 var _ m_Digest.Dummy__ 128 var _ m_WrappedHMAC.Dummy__ 129 var _ m_HKDF.Dummy__ 130 var _ m_WrappedHKDF.Dummy__ 131 var _ m_KdfCtr.Dummy__ 132 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 133 var _ m_AtomicPrimitives.Dummy__ 134 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 135 var _ m_ComAmazonawsKmsTypes.Dummy__ 136 var _ m_Relations.Dummy__ 137 var _ m_Seq_MergeSort.Dummy__ 138 var _ m__Math.Dummy__ 139 var _ m_Seq.Dummy__ 140 var _ m__Unicode.Dummy__ 141 var _ m_Functions.Dummy__ 142 var _ m_Utf8EncodingForm.Dummy__ 143 var _ m_Utf16EncodingForm.Dummy__ 144 var _ m_UnicodeStrings.Dummy__ 145 var _ m_FileIO.Dummy__ 146 var _ m_GeneralInternals.Dummy__ 147 var _ m_MulInternalsNonlinear.Dummy__ 148 var _ m_MulInternals.Dummy__ 149 var _ m_Mul.Dummy__ 150 var _ m_ModInternalsNonlinear.Dummy__ 151 var _ m_DivInternalsNonlinear.Dummy__ 152 var _ m_ModInternals.Dummy__ 153 var _ m_DivInternals.Dummy__ 154 var _ m_DivMod.Dummy__ 155 var _ m_Power.Dummy__ 156 var _ m_Logarithm.Dummy__ 157 var _ m_StandardLibraryInterop.Dummy__ 158 var _ m_Streams.Dummy__ 159 var _ m_Sorting.Dummy__ 160 var _ m_HexStrings.Dummy__ 161 var _ m_GetOpt.Dummy__ 162 var _ m_FloatCompare.Dummy__ 163 var _ m_Base64.Dummy__ 164 var _ m_Base64Lemmas.Dummy__ 165 var _ m_Actions.Dummy__ 166 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 167 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 168 var _ m_AwsArnParsing.Dummy__ 169 var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ 170 var _ m_AwsKmsUtils.Dummy__ 171 var _ m_KeyStoreErrorMessages.Dummy__ 172 var _ m_KmsArn.Dummy__ 173 var _ m_Structure.Dummy__ 174 var _ m_KMSKeystoreOperations.Dummy__ 175 var _ m_DDBKeystoreOperations.Dummy__ 176 var _ m_CreateKeys.Dummy__ 177 var _ m_CreateKeyStoreTable.Dummy__ 178 var _ m_GetKeys.Dummy__ 179 var _ m_AwsCryptographyKeyStoreOperations.Dummy__ 180 var _ m_Com_Amazonaws_Kms.Dummy__ 181 var _ m_Com_Amazonaws_Dynamodb.Dummy__ 182 var _ m_KeyStore.Dummy__ 183 var _ m_AlgorithmSuites.Dummy__ 184 var _ m_Materials.Dummy__ 185 var _ m_Keyring.Dummy__ 186 var _ m_MultiKeyring.Dummy__ 187 var _ m_AwsKmsMrkAreUnique.Dummy__ 188 var _ m_Constants.Dummy__ 189 var _ m_MaterialWrapping.Dummy__ 190 var _ m_CanonicalEncryptionContext.Dummy__ 191 var _ m_IntermediateKeyWrapping.Dummy__ 192 var _ m_EdkWrapping.Dummy__ 193 var _ m_ErrorMessages.Dummy__ 194 var _ m_AwsKmsKeyring.Dummy__ 195 var _ m_StrictMultiKeyring.Dummy__ 196 var _ m_AwsKmsDiscoveryKeyring.Dummy__ 197 var _ m_DiscoveryMultiKeyring.Dummy__ 198 var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ 199 var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ 200 var _ m_AwsKmsMrkKeyring.Dummy__ 201 var _ m_MrkAwareStrictMultiKeyring.Dummy__ 202 var _ m_LocalCMC.Dummy__ 203 var _ m_SynchronizedLocalCMC.Dummy__ 204 var _ m_StormTracker.Dummy__ 205 var _ m_StormTrackingCMC.Dummy__ 206 var _ m_CacheConstants.Dummy__ 207 var _ m_AwsKmsHierarchicalKeyring.Dummy__ 208 var _ m_AwsKmsRsaKeyring.Dummy__ 209 var _ m_EcdhEdkWrapping.Dummy__ 210 var _ m_RawECDHKeyring.Dummy__ 211 var _ m_AwsKmsEcdhKeyring.Dummy__ 212 var _ m_RawAESKeyring.Dummy__ 213 var _ m_RawRSAKeyring.Dummy__ 214 var _ m_CMM.Dummy__ 215 var _ m_Defaults.Dummy__ 216 var _ m_Commitment.Dummy__ 217 var _ m_DefaultCMM.Dummy__ 218 var _ m_DefaultClientSupplier.Dummy__ 219 var _ m_Utils.Dummy__ 220 221 type Dummy__ struct{} 222 223 // Definition of class RequiredEncryptionContextCMM 224 type RequiredEncryptionContextCMM struct { 225 _underlyingCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager 226 _requiredEncryptionContextKeys _dafny.Sequence 227 } 228 229 func New_RequiredEncryptionContextCMM_() *RequiredEncryptionContextCMM { 230 _this := RequiredEncryptionContextCMM{} 231 232 _this._underlyingCMM = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil) 233 _this._requiredEncryptionContextKeys = _dafny.EmptySeq 234 return &_this 235 } 236 237 type CompanionStruct_RequiredEncryptionContextCMM_ struct { 238 } 239 240 var Companion_RequiredEncryptionContextCMM_ = CompanionStruct_RequiredEncryptionContextCMM_{} 241 242 func (_this *RequiredEncryptionContextCMM) Equals(other *RequiredEncryptionContextCMM) bool { 243 return _this == other 244 } 245 246 func (_this *RequiredEncryptionContextCMM) EqualsGeneric(x interface{}) bool { 247 other, ok := x.(*RequiredEncryptionContextCMM) 248 return ok && _this.Equals(other) 249 } 250 251 func (*RequiredEncryptionContextCMM) String() string { 252 return "RequiredEncryptionContextCMM.RequiredEncryptionContextCMM" 253 } 254 255 func Type_RequiredEncryptionContextCMM_() _dafny.TypeDescriptor { 256 return type_RequiredEncryptionContextCMM_{} 257 } 258 259 type type_RequiredEncryptionContextCMM_ struct { 260 } 261 262 func (_this type_RequiredEncryptionContextCMM_) Default() interface{} { 263 return (*RequiredEncryptionContextCMM)(nil) 264 } 265 266 func (_this type_RequiredEncryptionContextCMM_) String() string { 267 return "RequiredEncryptionContextCMM.RequiredEncryptionContextCMM" 268 } 269 func (_this *RequiredEncryptionContextCMM) ParentTraits_() []*_dafny.TraitID { 270 return [](*_dafny.TraitID){m_CMM.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.TraitID_} 271 } 272 273 var _ m_CMM.VerifiableInterface = &RequiredEncryptionContextCMM{} 274 var _ m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = &RequiredEncryptionContextCMM{} 275 var _ _dafny.TraitOffspring = &RequiredEncryptionContextCMM{} 276 277 func (_this *RequiredEncryptionContextCMM) DecryptMaterials(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { 278 var _out2 m_Wrappers.Result 279 _ = _out2 280 _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.DecryptMaterials(_this, input) 281 return _out2 282 } 283 func (_this *RequiredEncryptionContextCMM) GetEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { 284 var _out2 m_Wrappers.Result 285 _ = _out2 286 _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.GetEncryptionMaterials(_this, input) 287 return _out2 288 } 289 func (_this *RequiredEncryptionContextCMM) Ctor__(inputCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, inputKeys _dafny.Set) { 290 { 291 var _0_keySet _dafny.Set 292 _ = _0_keySet 293 _0_keySet = inputKeys 294 var _1_keySeq _dafny.Sequence 295 _ = _1_keySeq 296 var _out0 _dafny.Sequence 297 _ = _out0 298 _out0 = m_SortedSets.SetToSequence(_0_keySet) 299 _1_keySeq = _out0 300 (_this)._underlyingCMM = inputCMM 301 (_this)._requiredEncryptionContextKeys = _1_keySeq 302 } 303 } 304 func (_this *RequiredEncryptionContextCMM) GetEncryptionMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { 305 { 306 var output m_Wrappers.Result = m_Wrappers.Result{} 307 _ = output 308 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 309 _ = _0_valueOrError0 310 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { 311 var _1_k _dafny.Sequence 312 _1_k = interface{}(_forall_var_0).(_dafny.Sequence) 313 if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_k) { 314 return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _1_k)) || (((input).Dtor_encryptionContext()).Contains(_1_k)) 315 } else { 316 return true 317 } 318 }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not contain required keys."))) 319 if (_0_valueOrError0).IsFailure() { 320 output = (_0_valueOrError0).PropagateFailure() 321 return output 322 } 323 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 324 _ = _2_valueOrError1 325 var _pat_let_tv0 = input 326 _ = _pat_let_tv0 327 var _out0 m_Wrappers.Result 328 _ = _out0 329 _out0 = ((_this).UnderlyingCMM()).GetEncryptionMaterials(func(_pat_let8_0 m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { 330 return func(_3_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { 331 return func(_pat_let9_0 m_Wrappers.Option) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { 332 return func(_4_dt__update_hrequiredEncryptionContextKeys_h0 m_Wrappers.Option) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { 333 return m_AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_((_3_dt__update__tmp_h0).Dtor_encryptionContext(), (_3_dt__update__tmp_h0).Dtor_commitmentPolicy(), (_3_dt__update__tmp_h0).Dtor_algorithmSuiteId(), (_3_dt__update__tmp_h0).Dtor_maxPlaintextLength(), _4_dt__update_hrequiredEncryptionContextKeys_h0) 334 }(_pat_let9_0) 335 }(m_Wrappers.Companion_Option_.Create_Some_(_dafny.Companion_Sequence_.Concatenate(((_pat_let_tv0).Dtor_requiredEncryptionContextKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), (_this).RequiredEncryptionContextKeys()))) 336 }(_pat_let8_0) 337 }(input)) 338 _2_valueOrError1 = _out0 339 if (_2_valueOrError1).IsFailure() { 340 output = (_2_valueOrError1).PropagateFailure() 341 return output 342 } 343 var _5_result m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput 344 _ = _5_result 345 _5_result = (_2_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput) 346 var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 347 _ = _6_valueOrError2 348 _6_valueOrError2 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_1 _dafny.Sequence) bool { 349 var _7_k _dafny.Sequence 350 _7_k = interface{}(_forall_var_1).(_dafny.Sequence) 351 if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_7_k) { 352 return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _7_k)) || (_dafny.Companion_Sequence_.Contains(((_5_result).Dtor_encryptionMaterials()).Dtor_requiredEncryptionContextKeys(), _7_k)) 353 } else { 354 return true 355 } 356 }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Expected encryption context keys do not exist in keys to only authenticate."))) 357 if (_6_valueOrError2).IsFailure() { 358 output = (_6_valueOrError2).PropagateFailure() 359 return output 360 } 361 var _8_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 362 _ = _8_valueOrError3 363 _8_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey((_5_result).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Could not retrieve materials required for encryption"))) 364 if (_8_valueOrError3).IsFailure() { 365 output = (_8_valueOrError3).PropagateFailure() 366 return output 367 } 368 var _9_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 369 _ = _9_valueOrError4 370 _9_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.RequiredEncryptionContextKeys_q((input).Dtor_requiredEncryptionContextKeys(), (_5_result).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring returned an invalid response"))) 371 if (_9_valueOrError4).IsFailure() { 372 output = (_9_valueOrError4).PropagateFailure() 373 return output 374 } 375 output = m_Wrappers.Companion_Result_.Create_Success_(_5_result) 376 return output 377 } 378 } 379 func (_this *RequiredEncryptionContextCMM) DecryptMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { 380 { 381 var output m_Wrappers.Result = m_Wrappers.Result{} 382 _ = output 383 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 384 _ = _0_valueOrError0 385 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((input).Dtor_reproducedEncryptionContext()).Is_Some(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("No reproduced encryption context on decrypt."))) 386 if (_0_valueOrError0).IsFailure() { 387 output = (_0_valueOrError0).PropagateFailure() 388 return output 389 } 390 var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 391 _ = _1_valueOrError1 392 _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.ReproducedEncryptionContext_q(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not match reproduced encryption context."))) 393 if (_1_valueOrError1).IsFailure() { 394 output = (_1_valueOrError1).PropagateFailure() 395 return output 396 } 397 var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 398 _ = _2_valueOrError2 399 _2_valueOrError2 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { 400 var _3_k _dafny.Sequence 401 _3_k = interface{}(_forall_var_0).(_dafny.Sequence) 402 if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_3_k) { 403 return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _3_k)) || ((((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Contains(_3_k)) 404 } else { 405 return true 406 } 407 }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reproduced encryption context missing required keys."))) 408 if (_2_valueOrError2).IsFailure() { 409 output = (_2_valueOrError2).PropagateFailure() 410 return output 411 } 412 var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} 413 _ = _4_valueOrError3 414 var _out0 m_Wrappers.Result 415 _ = _out0 416 _out0 = ((_this).UnderlyingCMM()).DecryptMaterials(input) 417 _4_valueOrError3 = _out0 418 if (_4_valueOrError3).IsFailure() { 419 output = (_4_valueOrError3).PropagateFailure() 420 return output 421 } 422 var _5_result m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput 423 _ = _5_result 424 _5_result = (_4_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput) 425 var _6_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 426 _ = _6_valueOrError4 427 _6_valueOrError4 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_1 _dafny.Sequence) bool { 428 var _7_k _dafny.Sequence 429 _7_k = interface{}(_forall_var_1).(_dafny.Sequence) 430 if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_7_k) { 431 return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _7_k)) || ((((_5_result).Dtor_decryptionMaterials()).Dtor_encryptionContext()).Contains(_7_k)) 432 } else { 433 return true 434 } 435 }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Final encryption context missing required keys."))) 436 if (_6_valueOrError4).IsFailure() { 437 output = (_6_valueOrError4).PropagateFailure() 438 return output 439 } 440 var _8_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 441 _ = _8_valueOrError5 442 _8_valueOrError5 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.EncryptionContextComplete(input, (_5_result).Dtor_decryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reproduced encryption context missing from encryption context."))) 443 if (_8_valueOrError5).IsFailure() { 444 output = (_8_valueOrError5).PropagateFailure() 445 return output 446 } 447 var _9_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 448 _ = _9_valueOrError6 449 _9_valueOrError6 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey((_5_result).Dtor_decryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring.OnDecrypt failed to decrypt the plaintext data key."))) 450 if (_9_valueOrError6).IsFailure() { 451 output = (_9_valueOrError6).PropagateFailure() 452 return output 453 } 454 output = m_Wrappers.Companion_Result_.Create_Success_(_5_result) 455 return output 456 return output 457 } 458 } 459 func (_this *RequiredEncryptionContextCMM) UnderlyingCMM() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { 460 { 461 return _this._underlyingCMM 462 } 463 } 464 func (_this *RequiredEncryptionContextCMM) RequiredEncryptionContextKeys() _dafny.Sequence { 465 { 466 return _this._requiredEncryptionContextKeys 467 } 468 } 469 470 // End of class RequiredEncryptionContextCMM