github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/DefaultCMM/DefaultCMM.go (about)

     1  // Package DefaultCMM
     2  // Dafny module DefaultCMM compiled into Go
     3  
     4  package DefaultCMM
     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_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults"
    37  	m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring"
    38  	m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping"
    39  	m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping"
    40  	m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages"
    41  	m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys"
    42  	m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping"
    43  	m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations"
    44  	m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore"
    45  	m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages"
    46  	m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring"
    47  	m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn"
    48  	m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC"
    49  	m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping"
    50  	m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials"
    51  	m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring"
    52  	m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring"
    53  	m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring"
    54  	m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring"
    55  	m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring"
    56  	m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring"
    57  	m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker"
    58  	m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC"
    59  	m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring"
    60  	m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure"
    61  	m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC"
    62  	m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives"
    63  	m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations"
    64  	m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes"
    65  	m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest"
    66  	m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF"
    67  	m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr"
    68  	m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random"
    69  	m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF"
    70  	m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC"
    71  	m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions"
    72  	m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64"
    73  	m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas"
    74  	m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
    75  	m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
    76  	m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
    77  	m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
    78  	m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
    79  	m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare"
    80  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    81  	m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
    82  	m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt"
    83  	m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings"
    84  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    85  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    86  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    87  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    88  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    89  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    90  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    91  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    92  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    93  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    94  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    95  	m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets"
    96  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    97  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    98  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    99  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
   100  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
   101  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
   102  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
   103  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
   104  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
   105  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
   106  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
   107  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
   108  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
   109  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
   110  )
   111  
   112  var _ = os.Args
   113  var _ _dafny.Dummy__
   114  var _ m__System.Dummy__
   115  var _ m_Wrappers.Dummy__
   116  var _ m_BoundedInts.Dummy__
   117  var _ m_StandardLibrary_UInt.Dummy__
   118  var _ m_StandardLibrary_Sequence.Dummy__
   119  var _ m_StandardLibrary_String.Dummy__
   120  var _ m_StandardLibrary.Dummy__
   121  var _ m_AwsCryptographyPrimitivesTypes.Dummy__
   122  var _ m_Random.Dummy__
   123  var _ m_Digest.Dummy__
   124  var _ m_WrappedHMAC.Dummy__
   125  var _ m_HKDF.Dummy__
   126  var _ m_WrappedHKDF.Dummy__
   127  var _ m_KdfCtr.Dummy__
   128  var _ m_AwsCryptographyPrimitivesOperations.Dummy__
   129  var _ m_AtomicPrimitives.Dummy__
   130  var _ m_ComAmazonawsDynamodbTypes.Dummy__
   131  var _ m_ComAmazonawsKmsTypes.Dummy__
   132  var _ m_Relations.Dummy__
   133  var _ m_Seq_MergeSort.Dummy__
   134  var _ m__Math.Dummy__
   135  var _ m_Seq.Dummy__
   136  var _ m__Unicode.Dummy__
   137  var _ m_Functions.Dummy__
   138  var _ m_Utf8EncodingForm.Dummy__
   139  var _ m_Utf16EncodingForm.Dummy__
   140  var _ m_UnicodeStrings.Dummy__
   141  var _ m_FileIO.Dummy__
   142  var _ m_GeneralInternals.Dummy__
   143  var _ m_MulInternalsNonlinear.Dummy__
   144  var _ m_MulInternals.Dummy__
   145  var _ m_Mul.Dummy__
   146  var _ m_ModInternalsNonlinear.Dummy__
   147  var _ m_DivInternalsNonlinear.Dummy__
   148  var _ m_ModInternals.Dummy__
   149  var _ m_DivInternals.Dummy__
   150  var _ m_DivMod.Dummy__
   151  var _ m_Power.Dummy__
   152  var _ m_Logarithm.Dummy__
   153  var _ m_StandardLibraryInterop.Dummy__
   154  var _ m_Streams.Dummy__
   155  var _ m_Sorting.Dummy__
   156  var _ m_HexStrings.Dummy__
   157  var _ m_GetOpt.Dummy__
   158  var _ m_FloatCompare.Dummy__
   159  var _ m_Base64.Dummy__
   160  var _ m_Base64Lemmas.Dummy__
   161  var _ m_Actions.Dummy__
   162  var _ m_AwsCryptographyKeyStoreTypes.Dummy__
   163  var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__
   164  var _ m_AwsArnParsing.Dummy__
   165  var _ m_AwsKmsMrkMatchForDecrypt.Dummy__
   166  var _ m_AwsKmsUtils.Dummy__
   167  var _ m_KeyStoreErrorMessages.Dummy__
   168  var _ m_KmsArn.Dummy__
   169  var _ m_Structure.Dummy__
   170  var _ m_KMSKeystoreOperations.Dummy__
   171  var _ m_DDBKeystoreOperations.Dummy__
   172  var _ m_CreateKeys.Dummy__
   173  var _ m_CreateKeyStoreTable.Dummy__
   174  var _ m_GetKeys.Dummy__
   175  var _ m_AwsCryptographyKeyStoreOperations.Dummy__
   176  var _ m_Com_Amazonaws_Kms.Dummy__
   177  var _ m_Com_Amazonaws_Dynamodb.Dummy__
   178  var _ m_KeyStore.Dummy__
   179  var _ m_AlgorithmSuites.Dummy__
   180  var _ m_Materials.Dummy__
   181  var _ m_Keyring.Dummy__
   182  var _ m_MultiKeyring.Dummy__
   183  var _ m_AwsKmsMrkAreUnique.Dummy__
   184  var _ m_Constants.Dummy__
   185  var _ m_MaterialWrapping.Dummy__
   186  var _ m_CanonicalEncryptionContext.Dummy__
   187  var _ m_IntermediateKeyWrapping.Dummy__
   188  var _ m_EdkWrapping.Dummy__
   189  var _ m_ErrorMessages.Dummy__
   190  var _ m_AwsKmsKeyring.Dummy__
   191  var _ m_StrictMultiKeyring.Dummy__
   192  var _ m_AwsKmsDiscoveryKeyring.Dummy__
   193  var _ m_DiscoveryMultiKeyring.Dummy__
   194  var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__
   195  var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__
   196  var _ m_AwsKmsMrkKeyring.Dummy__
   197  var _ m_MrkAwareStrictMultiKeyring.Dummy__
   198  var _ m_LocalCMC.Dummy__
   199  var _ m_SynchronizedLocalCMC.Dummy__
   200  var _ m_StormTracker.Dummy__
   201  var _ m_StormTrackingCMC.Dummy__
   202  var _ m_CacheConstants.Dummy__
   203  var _ m_AwsKmsHierarchicalKeyring.Dummy__
   204  var _ m_AwsKmsRsaKeyring.Dummy__
   205  var _ m_EcdhEdkWrapping.Dummy__
   206  var _ m_RawECDHKeyring.Dummy__
   207  var _ m_AwsKmsEcdhKeyring.Dummy__
   208  var _ m_RawAESKeyring.Dummy__
   209  var _ m_RawRSAKeyring.Dummy__
   210  var _ m_CMM.Dummy__
   211  var _ m_Defaults.Dummy__
   212  var _ m_Commitment.Dummy__
   213  
   214  type Dummy__ struct{}
   215  
   216  // Definition of class DefaultCMM
   217  type DefaultCMM struct {
   218  	_keyring          m_AwsCryptographyMaterialProvidersTypes.IKeyring
   219  	_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient
   220  }
   221  
   222  func New_DefaultCMM_() *DefaultCMM {
   223  	_this := DefaultCMM{}
   224  
   225  	_this._keyring = (m_AwsCryptographyMaterialProvidersTypes.IKeyring)(nil)
   226  	_this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil)
   227  	return &_this
   228  }
   229  
   230  type CompanionStruct_DefaultCMM_ struct {
   231  }
   232  
   233  var Companion_DefaultCMM_ = CompanionStruct_DefaultCMM_{}
   234  
   235  func (_this *DefaultCMM) Equals(other *DefaultCMM) bool {
   236  	return _this == other
   237  }
   238  
   239  func (_this *DefaultCMM) EqualsGeneric(x interface{}) bool {
   240  	other, ok := x.(*DefaultCMM)
   241  	return ok && _this.Equals(other)
   242  }
   243  
   244  func (*DefaultCMM) String() string {
   245  	return "DefaultCMM.DefaultCMM"
   246  }
   247  
   248  func Type_DefaultCMM_() _dafny.TypeDescriptor {
   249  	return type_DefaultCMM_{}
   250  }
   251  
   252  type type_DefaultCMM_ struct {
   253  }
   254  
   255  func (_this type_DefaultCMM_) Default() interface{} {
   256  	return (*DefaultCMM)(nil)
   257  }
   258  
   259  func (_this type_DefaultCMM_) String() string {
   260  	return "DefaultCMM.DefaultCMM"
   261  }
   262  func (_this *DefaultCMM) ParentTraits_() []*_dafny.TraitID {
   263  	return [](*_dafny.TraitID){m_CMM.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.TraitID_}
   264  }
   265  
   266  var _ m_CMM.VerifiableInterface = &DefaultCMM{}
   267  var _ m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = &DefaultCMM{}
   268  var _ _dafny.TraitOffspring = &DefaultCMM{}
   269  
   270  func (_this *DefaultCMM) DecryptMaterials(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result {
   271  	var _out1 m_Wrappers.Result
   272  	_ = _out1
   273  	_out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.DecryptMaterials(_this, input)
   274  	return _out1
   275  }
   276  func (_this *DefaultCMM) GetEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result {
   277  	var _out1 m_Wrappers.Result
   278  	_ = _out1
   279  	_out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.GetEncryptionMaterials(_this, input)
   280  	return _out1
   281  }
   282  func (_this *DefaultCMM) OfKeyring(k m_AwsCryptographyMaterialProvidersTypes.IKeyring, c *m_AtomicPrimitives.AtomicPrimitivesClient) {
   283  	{
   284  		(_this)._keyring = k
   285  		(_this)._cryptoPrimitives = c
   286  	}
   287  }
   288  func (_this *DefaultCMM) GetEncryptionMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result {
   289  	{
   290  		var output m_Wrappers.Result = m_Wrappers.Result{}
   291  		_ = output
   292  		var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   293  		_ = _0_valueOrError0
   294  		_0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!((input).Dtor_encryptionContext()).Contains(m_Materials.Companion_Default___.EC__PUBLIC__KEY__FIELD()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reserved Field found in EncryptionContext keys.")))
   295  		if (_0_valueOrError0).IsFailure() {
   296  			output = (_0_valueOrError0).PropagateFailure()
   297  			return output
   298  		}
   299  		var _1_algorithmId m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId
   300  		_ = _1_algorithmId
   301  		if ((input).Dtor_algorithmSuiteId()).Is_Some() {
   302  			_1_algorithmId = ((input).Dtor_algorithmSuiteId()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)
   303  		} else {
   304  			_1_algorithmId = m_Defaults.Companion_Default___.GetAlgorithmSuiteForCommitmentPolicy((input).Dtor_commitmentPolicy())
   305  		}
   306  		var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   307  		_ = _2_valueOrError1
   308  		_2_valueOrError1 = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnEncrypt(_1_algorithmId, (input).Dtor_commitmentPolicy())
   309  		if (_2_valueOrError1).IsFailure() {
   310  			output = (_2_valueOrError1).PropagateFailure()
   311  			return output
   312  		}
   313  		var _3_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo
   314  		_ = _3_suite
   315  		_3_suite = m_AlgorithmSuites.Companion_Default___.GetSuite(_1_algorithmId)
   316  		var _4_signingKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default()
   317  		_ = _4_signingKey
   318  		var _5_verificationKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default()
   319  		_ = _5_verificationKey
   320  		if ((_3_suite).Dtor_signature()).Is_ECDSA() {
   321  			var _6_maybeECDSAPair m_Wrappers.Result
   322  			_ = _6_maybeECDSAPair
   323  			var _out0 m_Wrappers.Result
   324  			_ = _out0
   325  			_out0 = ((_this).CryptoPrimitives()).GenerateECDSASignatureKey(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyInput_.Create_GenerateECDSASignatureKeyInput_((((_3_suite).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()))
   326  			_6_maybeECDSAPair = _out0
   327  			var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Default())
   328  			_ = _7_valueOrError2
   329  			_7_valueOrError2 = (_6_maybeECDSAPair).MapFailure(func(coer129 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} {
   330  				return func(arg130 interface{}) interface{} {
   331  					return coer129(arg130.(m_AwsCryptographyPrimitivesTypes.Error))
   332  				}
   333  			}(func(_8_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error {
   334  				return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_8_e)
   335  			}))
   336  			if (_7_valueOrError2).IsFailure() {
   337  				output = (_7_valueOrError2).PropagateFailure()
   338  				return output
   339  			}
   340  			var _9_pair m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput
   341  			_ = _9_pair
   342  			_9_pair = (_7_valueOrError2).Extract().(m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput)
   343  			_4_signingKey = m_Wrappers.Companion_Option_.Create_Some_((_9_pair).Dtor_signingKey())
   344  			_5_verificationKey = m_Wrappers.Companion_Option_.Create_Some_((_9_pair).Dtor_verificationKey())
   345  		} else {
   346  			_4_signingKey = m_Wrappers.Companion_Option_.Create_None_()
   347  			_5_verificationKey = m_Wrappers.Companion_Option_.Create_None_()
   348  		}
   349  		var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{}
   350  		_ = _10_valueOrError3
   351  		_10_valueOrError3 = m_Materials.Companion_Default___.InitializeEncryptionMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_InitializeEncryptionMaterialsInput_.Create_InitializeEncryptionMaterialsInput_(_1_algorithmId, (input).Dtor_encryptionContext(), ((input).Dtor_requiredEncryptionContextKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), _4_signingKey, _5_verificationKey))
   352  		if (_10_valueOrError3).IsFailure() {
   353  			output = (_10_valueOrError3).PropagateFailure()
   354  			return output
   355  		}
   356  		var _11_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials
   357  		_ = _11_materials
   358  		_11_materials = (_10_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials)
   359  		var _12_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{}
   360  		_ = _12_valueOrError4
   361  		var _out1 m_Wrappers.Result
   362  		_ = _out1
   363  		_out1 = ((_this).Keyring()).OnEncrypt(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptInput_.Create_OnEncryptInput_(_11_materials))
   364  		_12_valueOrError4 = _out1
   365  		if (_12_valueOrError4).IsFailure() {
   366  			output = (_12_valueOrError4).PropagateFailure()
   367  			return output
   368  		}
   369  		var _13_result m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput
   370  		_ = _13_result
   371  		_13_result = (_12_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)
   372  		var _14_encryptionMaterialsOutput m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput
   373  		_ = _14_encryptionMaterialsOutput
   374  		_14_encryptionMaterialsOutput = m_AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_((_13_result).Dtor_materials())
   375  		var _15_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   376  		_ = _15_valueOrError5
   377  		_15_valueOrError5 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey((_14_encryptionMaterialsOutput).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Could not retrieve materials required for encryption")))
   378  		if (_15_valueOrError5).IsFailure() {
   379  			output = (_15_valueOrError5).PropagateFailure()
   380  			return output
   381  		}
   382  		var _16_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   383  		_ = _16_valueOrError6
   384  		_16_valueOrError6 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition(_11_materials, (_14_encryptionMaterialsOutput).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring returned an invalid response")))
   385  		if (_16_valueOrError6).IsFailure() {
   386  			output = (_16_valueOrError6).PropagateFailure()
   387  			return output
   388  		}
   389  		output = m_Wrappers.Companion_Result_.Create_Success_(_14_encryptionMaterialsOutput)
   390  		return output
   391  	}
   392  }
   393  func (_this *DefaultCMM) DecryptMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result {
   394  	{
   395  		var output m_Wrappers.Result = m_Wrappers.Result{}
   396  		_ = output
   397  		var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   398  		_ = _0_valueOrError0
   399  		_0_valueOrError0 = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((input).Dtor_algorithmSuiteId(), (input).Dtor_commitmentPolicy())
   400  		if (_0_valueOrError0).IsFailure() {
   401  			output = (_0_valueOrError0).PropagateFailure()
   402  			return output
   403  		}
   404  		var _1_requiredEncryptionContextKeys _dafny.Sequence
   405  		_ = _1_requiredEncryptionContextKeys
   406  		_1_requiredEncryptionContextKeys = _dafny.SeqOf()
   407  		if ((input).Dtor_reproducedEncryptionContext()).Is_Some() {
   408  			var _2_keysSet _dafny.Set
   409  			_ = _2_keysSet
   410  			_2_keysSet = (((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Keys()
   411  			var _3_keysSeq _dafny.Sequence
   412  			_ = _3_keysSeq
   413  			var _out0 _dafny.Sequence
   414  			_ = _out0
   415  			_out0 = m_SortedSets.SetToSequence(_2_keysSet)
   416  			_3_keysSeq = _out0
   417  			var _4_i _dafny.Int
   418  			_ = _4_i
   419  			_4_i = _dafny.Zero
   420  			for (_4_i).Cmp(_dafny.IntOfUint32((_3_keysSeq).Cardinality())) < 0 {
   421  				var _5_key _dafny.Sequence
   422  				_ = _5_key
   423  				_5_key = (_3_keysSeq).Select((_4_i).Uint32()).(_dafny.Sequence)
   424  				if ((input).Dtor_encryptionContext()).Contains(_5_key) {
   425  					var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   426  					_ = _6_valueOrError1
   427  					_6_valueOrError1 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal((((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Get(_5_key).(_dafny.Sequence), ((input).Dtor_encryptionContext()).Get(_5_key).(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not match reproduced encryption context.")))
   428  					if (_6_valueOrError1).IsFailure() {
   429  						output = (_6_valueOrError1).PropagateFailure()
   430  						return output
   431  					}
   432  				} else {
   433  					_1_requiredEncryptionContextKeys = _dafny.Companion_Sequence_.Concatenate(_1_requiredEncryptionContextKeys, _dafny.SeqOf(_5_key))
   434  				}
   435  				_4_i = (_4_i).Plus(_dafny.One)
   436  			}
   437  		}
   438  		var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{}
   439  		_ = _7_valueOrError2
   440  		_7_valueOrError2 = m_Materials.Companion_Default___.InitializeDecryptionMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_InitializeDecryptionMaterialsInput_.Create_InitializeDecryptionMaterialsInput_((input).Dtor_algorithmSuiteId(), ((input).Dtor_encryptionContext()).Merge(((input).Dtor_reproducedEncryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map)), _1_requiredEncryptionContextKeys))
   441  		if (_7_valueOrError2).IsFailure() {
   442  			output = (_7_valueOrError2).PropagateFailure()
   443  			return output
   444  		}
   445  		var _8_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials
   446  		_ = _8_materials
   447  		_8_materials = (_7_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials)
   448  		var _9_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{}
   449  		_ = _9_valueOrError3
   450  		var _out1 m_Wrappers.Result
   451  		_ = _out1
   452  		_out1 = ((_this).Keyring()).OnDecrypt(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptInput_.Create_OnDecryptInput_(_8_materials, (input).Dtor_encryptedDataKeys()))
   453  		_9_valueOrError3 = _out1
   454  		if (_9_valueOrError3).IsFailure() {
   455  			output = (_9_valueOrError3).PropagateFailure()
   456  			return output
   457  		}
   458  		var _10_result m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput
   459  		_ = _10_result
   460  		_10_result = (_9_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput)
   461  		var _11_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
   462  		_ = _11_valueOrError4
   463  		_11_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsTransitionIsValid(_8_materials, (_10_result).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring.OnDecrypt failed to decrypt the plaintext data key.")))
   464  		if (_11_valueOrError4).IsFailure() {
   465  			output = (_11_valueOrError4).PropagateFailure()
   466  			return output
   467  		}
   468  		output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_((_10_result).Dtor_materials()))
   469  		return output
   470  		return output
   471  	}
   472  }
   473  func (_this *DefaultCMM) Keyring() m_AwsCryptographyMaterialProvidersTypes.IKeyring {
   474  	{
   475  		return _this._keyring
   476  	}
   477  }
   478  func (_this *DefaultCMM) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient {
   479  	{
   480  		return _this._cryptoPrimitives
   481  	}
   482  }
   483  
   484  // End of class DefaultCMM