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