releases/go/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go (1,744 lines of code) (raw):

// Package AwsCryptographyMaterialProvidersOperations // Dafny module AwsCryptographyMaterialProvidersOperations compiled into Go package AwsCryptographyMaterialProvidersOperations import ( os "os" m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" ) var _ = os.Args var _ _dafny.Dummy__ var _ m__System.Dummy__ var _ m_Wrappers.Dummy__ var _ m_BoundedInts.Dummy__ var _ m_StandardLibrary_UInt.Dummy__ var _ m_StandardLibrary_Sequence.Dummy__ var _ m_StandardLibrary_String.Dummy__ var _ m_StandardLibrary.Dummy__ var _ m_AwsCryptographyPrimitivesTypes.Dummy__ var _ m_Random.Dummy__ var _ m_Digest.Dummy__ var _ m_WrappedHMAC.Dummy__ var _ m_HKDF.Dummy__ var _ m_WrappedHKDF.Dummy__ var _ m_KdfCtr.Dummy__ var _ m_AwsCryptographyPrimitivesOperations.Dummy__ var _ m_AtomicPrimitives.Dummy__ var _ m_ComAmazonawsDynamodbTypes.Dummy__ var _ m_ComAmazonawsKmsTypes.Dummy__ var _ m_Relations.Dummy__ var _ m_Seq_MergeSort.Dummy__ var _ m__Math.Dummy__ var _ m_Seq.Dummy__ var _ m__Unicode.Dummy__ var _ m_Functions.Dummy__ var _ m_Utf8EncodingForm.Dummy__ var _ m_Utf16EncodingForm.Dummy__ var _ m_UnicodeStrings.Dummy__ var _ m_FileIO.Dummy__ var _ m_GeneralInternals.Dummy__ var _ m_MulInternalsNonlinear.Dummy__ var _ m_MulInternals.Dummy__ var _ m_Mul.Dummy__ var _ m_ModInternalsNonlinear.Dummy__ var _ m_DivInternalsNonlinear.Dummy__ var _ m_ModInternals.Dummy__ var _ m_DivInternals.Dummy__ var _ m_DivMod.Dummy__ var _ m_Power.Dummy__ var _ m_Logarithm.Dummy__ var _ m_StandardLibraryInterop.Dummy__ var _ m_Streams.Dummy__ var _ m_Sorting.Dummy__ var _ m_HexStrings.Dummy__ var _ m_GetOpt.Dummy__ var _ m_FloatCompare.Dummy__ var _ m_Base64.Dummy__ var _ m_Base64Lemmas.Dummy__ var _ m_Actions.Dummy__ var _ m_AwsCryptographyKeyStoreTypes.Dummy__ var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ var _ m_AwsArnParsing.Dummy__ var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ var _ m_AwsKmsUtils.Dummy__ var _ m_KeyStoreErrorMessages.Dummy__ var _ m_KmsArn.Dummy__ var _ m_Structure.Dummy__ var _ m_KMSKeystoreOperations.Dummy__ var _ m_DDBKeystoreOperations.Dummy__ var _ m_CreateKeys.Dummy__ var _ m_CreateKeyStoreTable.Dummy__ var _ m_GetKeys.Dummy__ var _ m_AwsCryptographyKeyStoreOperations.Dummy__ var _ m_Com_Amazonaws_Kms.Dummy__ var _ m_Com_Amazonaws_Dynamodb.Dummy__ var _ m_KeyStore.Dummy__ var _ m_AlgorithmSuites.Dummy__ var _ m_Materials.Dummy__ var _ m_Keyring.Dummy__ var _ m_MultiKeyring.Dummy__ var _ m_AwsKmsMrkAreUnique.Dummy__ var _ m_Constants.Dummy__ var _ m_MaterialWrapping.Dummy__ var _ m_CanonicalEncryptionContext.Dummy__ var _ m_IntermediateKeyWrapping.Dummy__ var _ m_EdkWrapping.Dummy__ var _ m_ErrorMessages.Dummy__ var _ m_AwsKmsKeyring.Dummy__ var _ m_StrictMultiKeyring.Dummy__ var _ m_AwsKmsDiscoveryKeyring.Dummy__ var _ m_DiscoveryMultiKeyring.Dummy__ var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ var _ m_AwsKmsMrkKeyring.Dummy__ var _ m_MrkAwareStrictMultiKeyring.Dummy__ var _ m_LocalCMC.Dummy__ var _ m_SynchronizedLocalCMC.Dummy__ var _ m_StormTracker.Dummy__ var _ m_StormTrackingCMC.Dummy__ var _ m_CacheConstants.Dummy__ var _ m_AwsKmsHierarchicalKeyring.Dummy__ var _ m_AwsKmsRsaKeyring.Dummy__ var _ m_EcdhEdkWrapping.Dummy__ var _ m_RawECDHKeyring.Dummy__ var _ m_AwsKmsEcdhKeyring.Dummy__ var _ m_RawAESKeyring.Dummy__ var _ m_RawRSAKeyring.Dummy__ var _ m_CMM.Dummy__ var _ m_Defaults.Dummy__ var _ m_Commitment.Dummy__ var _ m_DefaultCMM.Dummy__ var _ m_DefaultClientSupplier.Dummy__ var _ m_Utils.Dummy__ var _ m_RequiredEncryptionContextCMM.Dummy__ type Dummy__ struct{} // Definition of class Default__ type Default__ struct { dummy byte } func New_Default___() *Default__ { _this := Default__{} return &_this } type CompanionStruct_Default___ struct { } var Companion_Default___ = CompanionStruct_Default___{} func (_this *Default__) Equals(other *Default__) bool { return _this == other } func (_this *Default__) EqualsGeneric(x interface{}) bool { other, ok := x.(*Default__) return ok && _this.Equals(other) } func (*Default__) String() string { return "AwsCryptographyMaterialProvidersOperations.Default__" } func (_this *Default__) ParentTraits_() []*_dafny.TraitID { return [](*_dafny.TraitID){} } var _ _dafny.TraitOffspring = &Default__{} func (_static *CompanionStruct_Default___) CreateAwsKmsKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1___v0 _dafny.Tuple _ = _1___v0 _1___v0 = (_0_valueOrError0).Extract().(_dafny.Tuple) var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _2_valueOrError1 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_2_valueOrError1).IsFailure() { output = (_2_valueOrError1).PropagateFailure() return output } var _3_grantTokens _dafny.Sequence _ = _3_grantTokens _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) var _4_keyring *m_AwsKmsKeyring.AwsKmsKeyring _ = _4_keyring var _nw0 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) _4_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output if ((input).Dtor_discoveryFilter()).Is_Some() { var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1___v1 _dafny.Tuple _ = _1___v1 _1___v1 = (_0_valueOrError0).Extract().(_dafny.Tuple) } var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _2_valueOrError1 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_2_valueOrError1).IsFailure() { output = (_2_valueOrError1).PropagateFailure() return output } var _3_grantTokens _dafny.Sequence _ = _3_grantTokens _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) var _4_keyring *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring _ = _4_keyring var _nw0 *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring = m_AwsKmsDiscoveryKeyring.New_AwsKmsDiscoveryKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_discoveryFilter(), _3_grantTokens) _4_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_grantTokens _dafny.Sequence _ = _1_grantTokens _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) if ((input).Dtor_clientSupplier()).Is_Some() { var _out0 m_Wrappers.Result _ = _out0 _out0 = m_StrictMultiKeyring.Companion_Default___.StrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()), m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) output = _out0 } else { var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} _ = _2_valueOrError1 var _out1 m_Wrappers.Result _ = _out1 _out1 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) _2_valueOrError1 = _out1 if (_2_valueOrError1).IsFailure() { output = (_2_valueOrError1).PropagateFailure() return output } var _3_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier _ = _3_clientSupplier _3_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_2_valueOrError1).Extract()) var _out2 m_Wrappers.Result _ = _out2 _out2 = m_StrictMultiKeyring.Companion_Default___.StrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _3_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) output = _out2 } return output } func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_grantTokens _dafny.Sequence _ = _1_grantTokens _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) _ = _2_clientSupplier if ((input).Dtor_clientSupplier()).Is_None() { var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} _ = _3_valueOrError1 var _out0 m_Wrappers.Result _ = _out0 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) _3_valueOrError1 = _out0 if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) } else { _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) } var _out1 m_Wrappers.Result _ = _out1 _out1 = m_DiscoveryMultiKeyring.Companion_Default___.DiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) output = _out1 return output } func (_static *CompanionStruct_Default___) CreateAwsKmsMrkKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1___v2 _dafny.Tuple _ = _1___v2 _1___v2 = (_0_valueOrError0).Extract().(_dafny.Tuple) var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _2_valueOrError1 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_2_valueOrError1).IsFailure() { output = (_2_valueOrError1).PropagateFailure() return output } var _3_grantTokens _dafny.Sequence _ = _3_grantTokens _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) var _4_keyring *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring _ = _4_keyring var _nw0 *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring = m_AwsKmsMrkKeyring.New_AwsKmsMrkKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) _4_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsMrkMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_grantTokens _dafny.Sequence _ = _1_grantTokens _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) _ = _2_clientSupplier if ((input).Dtor_clientSupplier()).Is_None() { var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} _ = _3_valueOrError1 var _out0 m_Wrappers.Result _ = _out0 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) _3_valueOrError1 = _out0 if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) } else { _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) } var _out1 m_Wrappers.Result _ = _out1 _out1 = m_MrkAwareStrictMultiKeyring.Companion_Default___.MrkAwareStrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) output = _out1 return output } func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output if ((input).Dtor_discoveryFilter()).Is_Some() { var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1___v3 _dafny.Tuple _ = _1___v3 _1___v3 = (_0_valueOrError0).Extract().(_dafny.Tuple) } var _2_regionMatch m_Wrappers.Option _ = _2_regionMatch _2_regionMatch = m_Com_Amazonaws_Kms.Companion_Default___.RegionMatch((input).Dtor_kmsClient(), (input).Dtor_region()) var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _3_valueOrError1 _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(!(_2_regionMatch).Equals(m_Wrappers.Companion_Option_.Create_Some_(false)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Provided client and region do not match"))) if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _4_valueOrError2 _4_valueOrError2 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_4_valueOrError2).IsFailure() { output = (_4_valueOrError2).PropagateFailure() return output } var _5_grantTokens _dafny.Sequence _ = _5_grantTokens _5_grantTokens = (_4_valueOrError2).Extract().(_dafny.Sequence) var _6_keyring *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring _ = _6_keyring var _nw0 *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring = m_AwsKmsMrkDiscoveryKeyring.New_AwsKmsMrkDiscoveryKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_region(), (input).Dtor_discoveryFilter(), _5_grantTokens) _6_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_6_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_grantTokens _dafny.Sequence _ = _1_grantTokens _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) _ = _2_clientSupplier if ((input).Dtor_clientSupplier()).Is_None() { var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} _ = _3_valueOrError1 var _out0 m_Wrappers.Result _ = _out0 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) _3_valueOrError1 = _out0 if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) } else { _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) } var _out1 m_Wrappers.Result _ = _out1 _out1 = m_MrkAwareDiscoveryMultiKeyring.Companion_Default___.MrkAwareDiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) output = _out1 return output } func (_static *CompanionStruct_Default___) N(n int64) _dafny.Sequence { return m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfInt64(n)) } func (_static *CompanionStruct_Default___) CheckCache(cache m_AwsCryptographyMaterialProvidersTypes.CacheType, ttlSeconds int64) m_Wrappers.Outcome { var output m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = output if (cache).Is_StormTracking() { var _0_gracePeriod int64 _ = _0_gracePeriod if ((((cache).Dtor_StormTracking()).Dtor_timeUnits()).UnwrapOr(m_AwsCryptographyMaterialProvidersTypes.Companion_TimeUnits_.Create_Seconds_()).(m_AwsCryptographyMaterialProvidersTypes.TimeUnits)).Is_Seconds() { _0_gracePeriod = int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()) } else { _0_gracePeriod = _dafny.DivInt64(int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()), int64(1000)) } var _1_storm m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache _ = _1_storm _1_storm = (cache).Dtor_StormTracking() if (ttlSeconds) <= (_0_gracePeriod) { var _2_msg _dafny.Sequence _ = _2_msg _2_msg = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("When creating an AwsKmsHierarchicalKeyring with a StormCache, "), _dafny.SeqOfString("the ttlSeconds of the KeyRing must be greater than the gracePeriod of the StormCache ")), _dafny.SeqOfString("yet the ttlSeconds is ")), Companion_Default___.N(ttlSeconds)), _dafny.SeqOfString(" and the gracePeriod is ")), Companion_Default___.N(_0_gracePeriod)), _dafny.SeqOfString(".")) output = m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_msg)) return output } output = m_Wrappers.Companion_Outcome_.Create_Pass_() return output } else { output = m_Wrappers.Companion_Outcome_.Create_Pass_() return output } return output } func (_static *CompanionStruct_Default___) CreateAwsKmsHierarchicalKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_cmc m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) _ = _0_cmc if ((input).Dtor_cache()).Is_Some() { var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _1_valueOrError0 var _out0 m_Wrappers.Outcome _ = _out0 _out0 = Companion_Default___.CheckCache(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType), (input).Dtor_ttlSeconds()) _1_valueOrError0 = _out0 if (_1_valueOrError0).IsFailure() { output = (_1_valueOrError0).PropagateFailure() return output } var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = ((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType) _ = _source0 { { if _source0.Is_Shared() { var _2_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared _ = _2_c _0_cmc = _2_c goto Lmatch0 } } { var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} _ = _3_valueOrError1 var _out1 m_Wrappers.Result _ = _out1 _out1 = Companion_Default___.CreateCryptographicMaterialsCache(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType))) _3_valueOrError1 = _out1 if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_3_valueOrError1).Extract()) } goto Lmatch0 } Lmatch0: } else { var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _4_valueOrError2 var _out2 m_Wrappers.Outcome _ = _out2 _out2 = Companion_Default___.CheckCache(m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_StormTracking_(m_StormTracker.Companion_Default___.DefaultStorm()), (input).Dtor_ttlSeconds()) _4_valueOrError2 = _out2 if (_4_valueOrError2).IsFailure() { output = (_4_valueOrError2).PropagateFailure() return output } var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} _ = _5_valueOrError3 var _out3 m_Wrappers.Result _ = _out3 _out3 = Companion_Default___.CreateCryptographicMaterialsCache(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_Default_(m_AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(int32(1000))))) _5_valueOrError3 = _out3 if (_5_valueOrError3).IsFailure() { output = (_5_valueOrError3).PropagateFailure() return output } _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_5_valueOrError3).Extract()) } var _6_partitionIdBytes _dafny.Sequence = _dafny.EmptySeq _ = _6_partitionIdBytes if ((input).Dtor_partitionId()).Is_Some() { var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) _ = _7_valueOrError4 _7_valueOrError4 = (m_UTF8.Encode(((input).Dtor_partitionId()).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer132 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg133 interface{}) interface{} { return coer132(arg133.(_dafny.Sequence)) } }(func(_8_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Partition ID: "), _8_e)) })) if (_7_valueOrError4).IsFailure() { output = (_7_valueOrError4).PropagateFailure() return output } _6_partitionIdBytes = (_7_valueOrError4).Extract().(_dafny.Sequence) } else { var _9_uuid_q m_Wrappers.Result _ = _9_uuid_q var _out4 m_Wrappers.Result _ = _out4 _out4 = m_UUID.GenerateUUID() _9_uuid_q = _out4 var _10_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) _ = _10_valueOrError5 _10_valueOrError5 = (_9_uuid_q).MapFailure(func(coer133 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg134 interface{}) interface{} { return coer133(arg134.(_dafny.Sequence)) } }(func(_11_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_11_e) })) if (_10_valueOrError5).IsFailure() { output = (_10_valueOrError5).PropagateFailure() return output } var _12_uuid _dafny.Sequence _ = _12_uuid _12_uuid = (_10_valueOrError5).Extract().(_dafny.Sequence) var _13_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _13_valueOrError6 _13_valueOrError6 = (m_UUID.ToByteArray(_12_uuid)).MapFailure(func(coer134 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg135 interface{}) interface{} { return coer134(arg135.(_dafny.Sequence)) } }(func(_14_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_14_e) })) if (_13_valueOrError6).IsFailure() { output = (_13_valueOrError6).PropagateFailure() return output } _6_partitionIdBytes = (_13_valueOrError6).Extract().(_dafny.Sequence) } var _15_getKeyStoreInfoOutput_q m_Wrappers.Result _ = _15_getKeyStoreInfoOutput_q var _out5 m_Wrappers.Result _ = _out5 _out5 = ((input).Dtor_keyStore()).GetKeyStoreInfo() _15_getKeyStoreInfoOutput_q = _out5 var _16_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} _ = _16_valueOrError7 _16_valueOrError7 = (_15_getKeyStoreInfoOutput_q).MapFailure(func(coer135 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg136 interface{}) interface{} { return coer135(arg136.(m_AwsCryptographyKeyStoreTypes.Error)) } }(func(_17_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_17_e) })) if (_16_valueOrError7).IsFailure() { output = (_16_valueOrError7).PropagateFailure() return output } var _18_getKeyStoreInfoOutput m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput _ = _18_getKeyStoreInfoOutput _18_getKeyStoreInfoOutput = (_16_valueOrError7).Extract().(m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput) var _19_logicalKeyStoreName _dafny.Sequence _ = _19_logicalKeyStoreName _19_logicalKeyStoreName = (_18_getKeyStoreInfoOutput).Dtor_logicalKeyStoreName() var _20_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) _ = _20_valueOrError8 _20_valueOrError8 = (m_UTF8.Encode(_19_logicalKeyStoreName)).MapFailure(func(coer136 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg137 interface{}) interface{} { return coer136(arg137.(_dafny.Sequence)) } }(func(_21_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Logical Key Store Name: "), _21_e)) })) if (_20_valueOrError8).IsFailure() { output = (_20_valueOrError8).PropagateFailure() return output } var _22_logicalKeyStoreNameBytes _dafny.Sequence _ = _22_logicalKeyStoreNameBytes _22_logicalKeyStoreNameBytes = (_20_valueOrError8).Extract().(_dafny.Sequence) var _23_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _23_valueOrError9 _23_valueOrError9 = m_Wrappers.Companion_Default___.Need((((input).Dtor_branchKeyId()).Is_None()) || (((input).Dtor_branchKeyIdSupplier()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Cannot initialize keyring with both a branchKeyId and BranchKeyIdSupplier."))) if (_23_valueOrError9).IsFailure() { output = (_23_valueOrError9).PropagateFailure() return output } var _24_valueOrError10 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _24_valueOrError10 _24_valueOrError10 = m_Wrappers.Companion_Default___.Need((((input).Dtor_branchKeyId()).Is_Some()) || (((input).Dtor_branchKeyIdSupplier()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Must initialize keyring with either branchKeyId or BranchKeyIdSupplier."))) if (_24_valueOrError10).IsFailure() { output = (_24_valueOrError10).PropagateFailure() return output } var _25_keyring *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring _ = _25_keyring var _nw0 *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring = m_AwsKmsHierarchicalKeyring.New_AwsKmsHierarchicalKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_keyStore(), (input).Dtor_branchKeyId(), (input).Dtor_branchKeyIdSupplier(), (input).Dtor_ttlSeconds(), _0_cmc, _6_partitionIdBytes, _22_logicalKeyStoreNameBytes, (config).Dtor_crypto()) _25_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_25_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _0_valueOrError0 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_grantTokens _dafny.Sequence _ = _1_grantTokens _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) var _2_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq _ = _2_recipientPublicKey var _3_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() _ = _3_senderPublicKey var _4_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() _ = _4_compressedSenderPublicKey var _source0 m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() _ = _source0 { { if _source0.Is_KmsPublicKeyDiscovery() { var _5_kmsPublicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery _ = _5_kmsPublicKeyDiscovery { var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _6_valueOrError1 _6_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) if (_6_valueOrError1).IsFailure() { output = (_6_valueOrError1).PropagateFailure() return output } var _7___v5 _dafny.Tuple _ = _7___v5 _7___v5 = (_6_valueOrError1).Extract().(_dafny.Tuple) var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} _ = _8_valueOrError2 var _out0 m_Wrappers.Result _ = _out0 _out0 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) _8_valueOrError2 = _out0 if (_8_valueOrError2).IsFailure() { output = (_8_valueOrError2).PropagateFailure() return output } _2_recipientPublicKey = (_8_valueOrError2).Extract().(_dafny.Sequence) _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() } goto Lmatch0 } } { var _9_kmsPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey _ = _9_kmsPrivateKeyToStaticPublicKey { if ((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Is_Some() { var _10_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _10_valueOrError3 _10_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType(((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid SenderPublicKey length."))) if (_10_valueOrError3).IsFailure() { output = (_10_valueOrError3).PropagateFailure() return output } _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Dtor_value().(_dafny.Sequence)) var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _11_valueOrError4 var _out1 m_Wrappers.Result _ = _out1 _out1 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((_3_senderPublicKey).Dtor_value().(_dafny.Sequence)), (input).Dtor_curveSpec(), (config).Dtor_crypto()) _11_valueOrError4 = _out1 if (_11_valueOrError4).IsFailure() { output = (_11_valueOrError4).PropagateFailure() return output } var _12_compressedPKU _dafny.Sequence _ = _12_compressedPKU _12_compressedPKU = (_11_valueOrError4).Extract().(_dafny.Sequence) _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_12_compressedPKU) } else { var _13_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _13_valueOrError5 _13_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) if (_13_valueOrError5).IsFailure() { output = (_13_valueOrError5).PropagateFailure() return output } var _14___v6 _dafny.Tuple _ = _14___v6 _14___v6 = (_13_valueOrError5).Extract().(_dafny.Tuple) var _15_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} _ = _15_valueOrError6 var _out2 m_Wrappers.Result _ = _out2 _out2 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) _15_valueOrError6 = _out2 if (_15_valueOrError6).IsFailure() { output = (_15_valueOrError6).PropagateFailure() return output } var _16_senderPublicKeyResponse _dafny.Sequence _ = _16_senderPublicKeyResponse _16_senderPublicKeyResponse = (_15_valueOrError6).Extract().(_dafny.Sequence) var _17_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _17_valueOrError7 var _out3 m_Wrappers.Result _ = _out3 _out3 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_16_senderPublicKeyResponse), (input).Dtor_curveSpec(), (config).Dtor_crypto()) _17_valueOrError7 = _out3 if (_17_valueOrError7).IsFailure() { output = (_17_valueOrError7).PropagateFailure() return output } var _18_compressedPKU _dafny.Sequence _ = _18_compressedPKU _18_compressedPKU = (_17_valueOrError7).Extract().(_dafny.Sequence) _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_16_senderPublicKeyResponse) _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_18_compressedPKU) } var _19_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _19_valueOrError8 _19_valueOrError8 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType((_9_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid RecipientPublicKey length."))) if (_19_valueOrError8).IsFailure() { output = (_19_valueOrError8).PropagateFailure() return output } _2_recipientPublicKey = (_9_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() } } goto Lmatch0 } Lmatch0: var _20_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) _ = _20_valueOrError9 var _out4 m_Wrappers.Result _ = _out4 _out4 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _2_recipientPublicKey) _20_valueOrError9 = _out4 if (_20_valueOrError9).IsFailure() { output = (_20_valueOrError9).PropagateFailure() return output } var _21___v7 bool _ = _21___v7 _21___v7 = (_20_valueOrError9).Extract().(bool) var _22_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _22_valueOrError10 var _out5 m_Wrappers.Result _ = _out5 _out5 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_2_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) _22_valueOrError10 = _out5 if (_22_valueOrError10).IsFailure() { output = (_22_valueOrError10).PropagateFailure() return output } var _23_compressedRecipientPublicKey _dafny.Sequence _ = _23_compressedRecipientPublicKey _23_compressedRecipientPublicKey = (_22_valueOrError10).Extract().(_dafny.Sequence) var _24_senderKmsKeyId m_Wrappers.Option _ = _24_senderKmsKeyId if ((input).Dtor_KeyAgreementScheme()).Is_KmsPublicKeyDiscovery() { _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_None_() } else { _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_Some_((((input).Dtor_KeyAgreementScheme()).Dtor_KmsPrivateKeyToStaticPublicKey()).Dtor_senderKmsIdentifier()) } if (_24_senderKmsKeyId).Is_Some() { var _25_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _25_valueOrError11 _25_valueOrError11 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_24_senderKmsKeyId).Dtor_value().(_dafny.Sequence)) if (_25_valueOrError11).IsFailure() { output = (_25_valueOrError11).PropagateFailure() return output } var _26___v8 _dafny.Tuple _ = _26___v8 _26___v8 = (_25_valueOrError11).Extract().(_dafny.Tuple) } if (_3_senderPublicKey).Is_Some() { var _27_valueOrError12 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) _ = _27_valueOrError12 var _out6 m_Wrappers.Result _ = _out6 _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_3_senderPublicKey).Dtor_value().(_dafny.Sequence)) _27_valueOrError12 = _out6 if (_27_valueOrError12).IsFailure() { output = (_27_valueOrError12).PropagateFailure() return output } var _28___v9 bool _ = _28___v9 _28___v9 = (_27_valueOrError12).Extract().(bool) } var _29_keyring *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring _ = _29_keyring var _nw0 *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring = m_AwsKmsEcdhKeyring.New_AwsKmsEcdhKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_KeyAgreementScheme(), (input).Dtor_curveSpec(), (input).Dtor_kmsClient(), _1_grantTokens, _24_senderKmsKeyId, _3_senderPublicKey, _2_recipientPublicKey, _4_compressedSenderPublicKey, _23_compressedRecipientPublicKey, (config).Dtor_crypto()) _29_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_29_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _0_valueOrError0 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_generator()).Is_Some()) || ((_dafny.IntOfUint32(((input).Dtor_childKeyrings()).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Must include a generator keyring and/or at least one child keyring"))) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_keyring *m_MultiKeyring.MultiKeyring _ = _1_keyring var _nw0 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_generator(), (input).Dtor_childKeyrings()) _1_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_1_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateRawAesKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _0_valueOrError0 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((input).Dtor_keyNamespace(), _dafny.SeqOfString("aws-kms")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("keyNamespace must not be `aws-kms`"))) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_wrappingAlg m_AwsCryptographyPrimitivesTypes.AES__GCM _ = _1_wrappingAlg var _source0 m_AwsCryptographyMaterialProvidersTypes.AesWrappingAlg = (input).Dtor_wrappingAlg() _ = _source0 { { if _source0.Is_ALG__AES128__GCM__IV12__TAG16() { _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(16), int32(16), int32(12)) goto Lmatch0 } } { if _source0.Is_ALG__AES192__GCM__IV12__TAG16() { _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(24), int32(16), int32(12)) goto Lmatch0 } } { _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(32), int32(16), int32(12)) } goto Lmatch0 } Lmatch0: var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) _ = _2_valueOrError1 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) if (_2_valueOrError1).IsFailure() { output = (_2_valueOrError1).PropagateFailure() return output } var _3_namespaceAndName _dafny.Tuple _ = _3_namespaceAndName _3_namespaceAndName = (_2_valueOrError1).Extract().(_dafny.Tuple) var _let_tmp_rhs0 _dafny.Tuple = _3_namespaceAndName _ = _let_tmp_rhs0 var _4_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) _ = _4_namespace var _5_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) _ = _5_name var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _6_valueOrError2 _6_valueOrError2 = m_Wrappers.Companion_Default___.Need((((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(16)) == 0) || ((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(24)) == 0)) || ((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(32)) == 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid wrapping key length"))) if (_6_valueOrError2).IsFailure() { output = (_6_valueOrError2).PropagateFailure() return output } var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _7_valueOrError3 _7_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt32((_1_wrappingAlg).Dtor_keyLength())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Wrapping key length does not match specified wrapping algorithm"))) if (_7_valueOrError3).IsFailure() { output = (_7_valueOrError3).PropagateFailure() return output } var _8_keyring *m_RawAESKeyring.RawAESKeyring _ = _8_keyring var _nw0 *m_RawAESKeyring.RawAESKeyring = m_RawAESKeyring.New_RawAESKeyring_() _ = _nw0 _nw0.Ctor__(_4_namespace, _5_name, (input).Dtor_wrappingKey(), _1_wrappingAlg, (config).Dtor_crypto()) _8_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_8_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateRawRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _0_valueOrError0 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((input).Dtor_keyNamespace(), _dafny.SeqOfString("aws-kms")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("keyNamespace must not be `aws-kms`"))) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _1_valueOrError1 _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_publicKey()).Is_Some()) || (((input).Dtor_privateKey()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A publicKey or a privateKey is required"))) if (_1_valueOrError1).IsFailure() { output = (_1_valueOrError1).PropagateFailure() return output } var _2_padding m_AwsCryptographyPrimitivesTypes.RSAPaddingMode _ = _2_padding var _source0 m_AwsCryptographyMaterialProvidersTypes.PaddingScheme = (input).Dtor_paddingScheme() _ = _source0 { { if _source0.Is_PKCS1() { _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_PKCS1_() goto Lmatch0 } } { if _source0.Is_OAEP__SHA1__MGF1() { _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA1_() goto Lmatch0 } } { if _source0.Is_OAEP__SHA256__MGF1() { _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA256_() goto Lmatch0 } } { if _source0.Is_OAEP__SHA384__MGF1() { _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA384_() goto Lmatch0 } } { _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA512_() } goto Lmatch0 } Lmatch0: var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) _ = _3_valueOrError2 _3_valueOrError2 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) if (_3_valueOrError2).IsFailure() { output = (_3_valueOrError2).PropagateFailure() return output } var _4_namespaceAndName _dafny.Tuple _ = _4_namespaceAndName _4_namespaceAndName = (_3_valueOrError2).Extract().(_dafny.Tuple) var _let_tmp_rhs0 _dafny.Tuple = _4_namespaceAndName _ = _let_tmp_rhs0 var _5_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) _ = _5_namespace var _6_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) _ = _6_name var _7_keyring *m_RawRSAKeyring.RawRSAKeyring _ = _7_keyring var _nw0 *m_RawRSAKeyring.RawRSAKeyring = m_RawRSAKeyring.New_RawRSAKeyring_() _ = _nw0 _nw0.Ctor__(_5_namespace, _6_name, (input).Dtor_publicKey(), (input).Dtor_privateKey(), _2_padding, (config).Dtor_crypto()) _7_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_7_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateRawEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq _ = _0_recipientPublicKey var _1_senderPrivateKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() _ = _1_senderPrivateKey var _2_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() _ = _2_senderPublicKey var _3_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() _ = _3_compressedSenderPublicKey var _source0 m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() _ = _source0 { { if _source0.Is_RawPrivateKeyToStaticPublicKey() { var _4_rawPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey _ = _4_rawPrivateKeyToStaticPublicKey { _0_recipientPublicKey = (_4_rawPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_Some_((_4_rawPrivateKeyToStaticPublicKey).Dtor_senderStaticPrivateKey()) var _5_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _5_valueOrError0 var _out0 m_Wrappers.Result _ = _out0 _out0 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_1_senderPrivateKey).Dtor_value().(_dafny.Sequence)), (config).Dtor_crypto()) _5_valueOrError0 = _out0 if (_5_valueOrError0).IsFailure() { output = (_5_valueOrError0).PropagateFailure() return output } var _6_reproducedPublicKey _dafny.Sequence _ = _6_reproducedPublicKey _6_reproducedPublicKey = (_5_valueOrError0).Extract().(_dafny.Sequence) var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) _ = _7_valueOrError1 var _out1 m_Wrappers.Result _ = _out1 _out1 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _6_reproducedPublicKey) _7_valueOrError1 = _out1 if (_7_valueOrError1).IsFailure() { output = (_7_valueOrError1).PropagateFailure() return output } var _8___v10 bool _ = _8___v10 _8___v10 = (_7_valueOrError1).Extract().(bool) _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_6_reproducedPublicKey) var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _9_valueOrError2 var _out2 m_Wrappers.Result _ = _out2 _out2 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_6_reproducedPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) _9_valueOrError2 = _out2 if (_9_valueOrError2).IsFailure() { output = (_9_valueOrError2).PropagateFailure() return output } var _10_compressedSenderPublicKey_q _dafny.Sequence _ = _10_compressedSenderPublicKey_q _10_compressedSenderPublicKey_q = (_9_valueOrError2).Extract().(_dafny.Sequence) _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_10_compressedSenderPublicKey_q) } goto Lmatch0 } } { if _source0.Is_EphemeralPrivateKeyToStaticPublicKey() { var _11_ephemeralPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey).EphemeralPrivateKeyToStaticPublicKey _ = _11_ephemeralPrivateKeyToStaticPublicKey { _0_recipientPublicKey = (_11_ephemeralPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() } goto Lmatch0 } } { var _12_publicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery _ = _12_publicKeyDiscovery { var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _13_valueOrError3 var _out3 m_Wrappers.Result _ = _out3 _out3 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_12_publicKeyDiscovery).Dtor_recipientStaticPrivateKey()), (config).Dtor_crypto()) _13_valueOrError3 = _out3 if (_13_valueOrError3).IsFailure() { output = (_13_valueOrError3).PropagateFailure() return output } var _14_reproducedPublicKey _dafny.Sequence _ = _14_reproducedPublicKey _14_reproducedPublicKey = (_13_valueOrError3).Extract().(_dafny.Sequence) _0_recipientPublicKey = _14_reproducedPublicKey _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() } } goto Lmatch0 } Lmatch0: var _15_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _15_valueOrError4 var _out4 m_Wrappers.Result _ = _out4 _out4 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_0_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) _15_valueOrError4 = _out4 if (_15_valueOrError4).IsFailure() { output = (_15_valueOrError4).PropagateFailure() return output } var _16_compressedRecipientPublicKey _dafny.Sequence _ = _16_compressedRecipientPublicKey _16_compressedRecipientPublicKey = (_15_valueOrError4).Extract().(_dafny.Sequence) var _17_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) _ = _17_valueOrError5 var _out5 m_Wrappers.Result _ = _out5 _out5 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _0_recipientPublicKey) _17_valueOrError5 = _out5 if (_17_valueOrError5).IsFailure() { output = (_17_valueOrError5).PropagateFailure() return output } var _18___v11 bool _ = _18___v11 _18___v11 = (_17_valueOrError5).Extract().(bool) if (_2_senderPublicKey).Is_Some() { var _19_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) _ = _19_valueOrError6 var _out6 m_Wrappers.Result _ = _out6 _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_2_senderPublicKey).Dtor_value().(_dafny.Sequence)) _19_valueOrError6 = _out6 if (_19_valueOrError6).IsFailure() { output = (_19_valueOrError6).PropagateFailure() return output } var _20___v12 bool _ = _20___v12 _20___v12 = (_19_valueOrError6).Extract().(bool) var _21_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _21_valueOrError7 _21_valueOrError7 = m_Wrappers.Companion_Default___.Need(m_RawECDHKeyring.Companion_Default___.ValidPublicKeyLength((_2_senderPublicKey).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid sender public key length"))) if (_21_valueOrError7).IsFailure() { output = (_21_valueOrError7).PropagateFailure() return output } } var _22_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _22_valueOrError8 _22_valueOrError8 = m_Wrappers.Companion_Default___.Need(m_RawECDHKeyring.Companion_Default___.ValidPublicKeyLength(_0_recipientPublicKey), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid recipient public key length"))) if (_22_valueOrError8).IsFailure() { output = (_22_valueOrError8).PropagateFailure() return output } var _23_keyring *m_RawECDHKeyring.RawEcdhKeyring _ = _23_keyring var _nw0 *m_RawECDHKeyring.RawEcdhKeyring = m_RawECDHKeyring.New_RawEcdhKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_KeyAgreementScheme(), (input).Dtor_curveSpec(), _1_senderPrivateKey, _2_senderPublicKey, _0_recipientPublicKey, _3_compressedSenderPublicKey, _16_compressedRecipientPublicKey, (config).Dtor_crypto()) _23_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateAwsKmsRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _0_valueOrError0 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_publicKey()).Is_Some()) || (((input).Dtor_kmsClient()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A publicKey or a kmsClient is required"))) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _1_valueOrError1 _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_encryptionAlgorithm()).Is_RSAES__OAEP__SHA__1()) || (((input).Dtor_encryptionAlgorithm()).Is_RSAES__OAEP__SHA__256()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unsupported EncryptionAlgorithmSpec"))) if (_1_valueOrError1).IsFailure() { output = (_1_valueOrError1).PropagateFailure() return output } var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _2_valueOrError2 _2_valueOrError2 = m_Wrappers.Companion_Default___.Need((m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType((input).Dtor_kmsKeyId())) && ((m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn((input).Dtor_kmsKeyId())).Is_Success()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Kms Key ID must be a KMS Key ARN"))) if (_2_valueOrError2).IsFailure() { output = (_2_valueOrError2).PropagateFailure() return output } if ((input).Dtor_publicKey()).Is_Some() { var _3_lengthOutputRes m_Wrappers.Result _ = _3_lengthOutputRes _3_lengthOutputRes = ((config).Dtor_crypto()).GetRSAKeyModulusLength(m_AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthInput_.Create_GetRSAKeyModulusLengthInput_(((input).Dtor_publicKey()).Dtor_value().(_dafny.Sequence))) var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} _ = _4_valueOrError3 _4_valueOrError3 = (_3_lengthOutputRes).MapFailure(func(coer137 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { return func(arg138 interface{}) interface{} { return coer137(arg138.(m_AwsCryptographyPrimitivesTypes.Error)) } }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) })) if (_4_valueOrError3).IsFailure() { output = (_4_valueOrError3).PropagateFailure() return output } var _6_lengthOutput m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput _ = _6_lengthOutput _6_lengthOutput = (_4_valueOrError3).Extract().(m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput) var _7_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _7_valueOrError4 _7_valueOrError4 = m_Wrappers.Companion_Default___.Need(((_6_lengthOutput).Dtor_length()) >= (m_AwsKmsRsaKeyring.Companion_Default___.MIN__KMS__RSA__KEY__LEN()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid public key length"))) if (_7_valueOrError4).IsFailure() { output = (_7_valueOrError4).PropagateFailure() return output } } var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) _ = _8_valueOrError5 _8_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) if (_8_valueOrError5).IsFailure() { output = (_8_valueOrError5).PropagateFailure() return output } var _9___v13 _dafny.Tuple _ = _9___v13 _9___v13 = (_8_valueOrError5).Extract().(_dafny.Tuple) var _10_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) _ = _10_valueOrError6 _10_valueOrError6 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) if (_10_valueOrError6).IsFailure() { output = (_10_valueOrError6).PropagateFailure() return output } var _11_grantTokens _dafny.Sequence _ = _11_grantTokens _11_grantTokens = (_10_valueOrError6).Extract().(_dafny.Sequence) var _12_keyring *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring _ = _12_keyring var _nw0 *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring = m_AwsKmsRsaKeyring.New_AwsKmsRsaKeyring_() _ = _nw0 _nw0.Ctor__((input).Dtor_publicKey(), (input).Dtor_kmsKeyId(), (input).Dtor_encryptionAlgorithm(), (input).Dtor_kmsClient(), (config).Dtor_crypto(), _11_grantTokens) _12_keyring = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_12_keyring) return output return output } func (_static *CompanionStruct_Default___) CreateDefaultCryptographicMaterialsManager(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_cmm *m_DefaultCMM.DefaultCMM _ = _0_cmm var _nw0 *m_DefaultCMM.DefaultCMM = m_DefaultCMM.New_DefaultCMM_() _ = _nw0 _nw0.OfKeyring((input).Dtor_keyring(), (config).Dtor_crypto()) _0_cmm = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_0_cmm) return output return output } func (_static *CompanionStruct_Default___) CmpError(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) } func (_static *CompanionStruct_Default___) CreateRequiredEncryptionContextCMM(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _0_valueOrError0 _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_underlyingCMM()).Is_Some()) && (((input).Dtor_keyring()).Is_None()), Companion_Default___.CmpError(_dafny.SeqOfString("CreateRequiredEncryptionContextCMM currently only supports cmm."))) if (_0_valueOrError0).IsFailure() { output = (_0_valueOrError0).PropagateFailure() return output } var _1_keySet _dafny.Set _ = _1_keySet _1_keySet = func() _dafny.Set { var _coll0 = _dafny.NewBuilder() _ = _coll0 for _iter10 := _dafny.Iterate(((input).Dtor_requiredEncryptionContextKeys()).Elements()); ; { _compr_0, _ok10 := _iter10() if !_ok10 { break } var _2_k _dafny.Sequence _2_k = interface{}(_compr_0).(_dafny.Sequence) if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_2_k) { if _dafny.Companion_Sequence_.Contains((input).Dtor_requiredEncryptionContextKeys(), _2_k) { _coll0.Add(_2_k) } } } return _coll0.ToSet() }() var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _3_valueOrError1 _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_1_keySet).Cardinality()).Sign() == 1, Companion_Default___.CmpError(_dafny.SeqOfString("RequiredEncryptionContextCMM needs at least one requiredEncryptionContextKey."))) if (_3_valueOrError1).IsFailure() { output = (_3_valueOrError1).PropagateFailure() return output } var _4_cmm *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM _ = _4_cmm var _nw0 *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM = m_RequiredEncryptionContextCMM.New_RequiredEncryptionContextCMM_() _ = _nw0 _nw0.Ctor__(m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_(((input).Dtor_underlyingCMM()).Dtor_value()), _1_keySet) _4_cmm = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_4_cmm) return output return output } func (_static *CompanionStruct_Default___) CreateCryptographicMaterialsCache(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = (input).Dtor_cache() _ = _source0 { { if _source0.Is_Default() { var _0_c m_AwsCryptographyMaterialProvidersTypes.DefaultCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Default).Default _ = _0_c var _1_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache _ = _1_cache var _2_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = m_StormTracker.Companion_Default___.DefaultStorm() _ = _2_dt__update__tmp_h0 var _3_dt__update_hentryCapacity_h0 int32 = (_0_c).Dtor_entryCapacity() _ = _3_dt__update_hentryCapacity_h0 _1_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(_3_dt__update_hentryCapacity_h0, (_2_dt__update__tmp_h0).Dtor_entryPruningTailSize(), (_2_dt__update__tmp_h0).Dtor_gracePeriod(), (_2_dt__update__tmp_h0).Dtor_graceInterval(), (_2_dt__update__tmp_h0).Dtor_fanOut(), (_2_dt__update__tmp_h0).Dtor_inFlightTTL(), (_2_dt__update__tmp_h0).Dtor_sleepMilli(), (_2_dt__update__tmp_h0).Dtor_timeUnits()) var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _4_valueOrError0 _4_valueOrError0 = m_StormTracker.Companion_Default___.CheckSettings(_1_cache) if (_4_valueOrError0).IsFailure() { output = (_4_valueOrError0).PropagateFailure() return output } var _5_cmc *m_StormTracker.StormTracker _ = _5_cmc var _nw0 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() _ = _nw0 _nw0.Ctor__(_1_cache) _5_cmc = _nw0 var _6_synCmc *m_StormTrackingCMC.StormTrackingCMC _ = _6_synCmc var _nw1 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_5_cmc) _ = _nw1 _6_synCmc = _nw1 output = m_Wrappers.Companion_Result_.Create_Success_(_6_synCmc) return output goto Lmatch0 } } { if _source0.Is_No() { var _7_cmc *m_LocalCMC.LocalCMC _ = _7_cmc var _nw2 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() _ = _nw2 _nw2.Ctor__(_dafny.Zero, _dafny.One) _7_cmc = _nw2 output = m_Wrappers.Companion_Result_.Create_Success_(_7_cmc) return output goto Lmatch0 } } { if _source0.Is_SingleThreaded() { var _8_c m_AwsCryptographyMaterialProvidersTypes.SingleThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_SingleThreaded).SingleThreaded _ = _8_c var _9_cmc *m_LocalCMC.LocalCMC _ = _9_cmc var _nw3 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() _ = _nw3 _nw3.Ctor__(_dafny.IntOfInt32((_8_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_8_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) _9_cmc = _nw3 output = m_Wrappers.Companion_Result_.Create_Success_(_9_cmc) return output goto Lmatch0 } } { if _source0.Is_MultiThreaded() { var _10_c m_AwsCryptographyMaterialProvidersTypes.MultiThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_MultiThreaded).MultiThreaded _ = _10_c var _11_cmc *m_LocalCMC.LocalCMC _ = _11_cmc var _nw4 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() _ = _nw4 _nw4.Ctor__(_dafny.IntOfInt32((_10_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_10_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) _11_cmc = _nw4 var _12_synCmc *m_SynchronizedLocalCMC.SynchronizedLocalCMC _ = _12_synCmc var _nw5 *m_SynchronizedLocalCMC.SynchronizedLocalCMC = m_SynchronizedLocalCMC.New_SynchronizedLocalCMC_(_11_cmc) _ = _nw5 _12_synCmc = _nw5 output = m_Wrappers.Companion_Result_.Create_Success_(_12_synCmc) return output goto Lmatch0 } } { if _source0.Is_StormTracking() { var _13_c m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_StormTracking).StormTracking _ = _13_c var _14_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache _ = _14_cache var _15_dt__update__tmp_h1 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _13_c _ = _15_dt__update__tmp_h1 var _16_dt__update_hentryPruningTailSize_h0 m_Wrappers.Option = Companion_Default___.OptionalCountingNumber((_13_c).Dtor_entryPruningTailSize()) _ = _16_dt__update_hentryPruningTailSize_h0 _14_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_((_15_dt__update__tmp_h1).Dtor_entryCapacity(), _16_dt__update_hentryPruningTailSize_h0, (_15_dt__update__tmp_h1).Dtor_gracePeriod(), (_15_dt__update__tmp_h1).Dtor_graceInterval(), (_15_dt__update__tmp_h1).Dtor_fanOut(), (_15_dt__update__tmp_h1).Dtor_inFlightTTL(), (_15_dt__update__tmp_h1).Dtor_sleepMilli(), (_15_dt__update__tmp_h1).Dtor_timeUnits()) var _17_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() _ = _17_valueOrError1 _17_valueOrError1 = m_StormTracker.Companion_Default___.CheckSettings(_14_cache) if (_17_valueOrError1).IsFailure() { output = (_17_valueOrError1).PropagateFailure() return output } var _18_cmc *m_StormTracker.StormTracker _ = _18_cmc var _nw6 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() _ = _nw6 _nw6.Ctor__(_14_cache) _18_cmc = _nw6 var _19_synCmc *m_StormTrackingCMC.StormTrackingCMC _ = _19_synCmc var _nw7 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_18_cmc) _ = _nw7 _19_synCmc = _nw7 output = m_Wrappers.Companion_Result_.Create_Success_(_19_synCmc) return output goto Lmatch0 } } { var _20_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared _ = _20_c var _21_exception m_AwsCryptographyMaterialProvidersTypes.Error _ = _21_exception _21_exception = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("CreateCryptographicMaterialsCache should never be called with Shared CacheType.")) output = m_Wrappers.Companion_Result_.Create_Failure_(_21_exception) return output } goto Lmatch0 } Lmatch0: return output } func (_static *CompanionStruct_Default___) OptionalCountingNumber(c m_Wrappers.Option) m_Wrappers.Option { if ((c).Is_Some()) && (((c).Dtor_value().(int32)) <= (int32(0))) { return m_Wrappers.Companion_Option_.Create_None_() } else { return c } } func (_static *CompanionStruct_Default___) CreateDefaultClientSupplier(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput) m_Wrappers.Result { var output m_Wrappers.Result = m_Wrappers.Result{} _ = output var _0_clientSupplier *m_DefaultClientSupplier.DefaultClientSupplier _ = _0_clientSupplier var _nw0 *m_DefaultClientSupplier.DefaultClientSupplier = m_DefaultClientSupplier.New_DefaultClientSupplier_() _ = _nw0 _nw0.Ctor__() _0_clientSupplier = _nw0 output = m_Wrappers.Companion_Result_.Create_Success_(_0_clientSupplier) return output return output } func (_static *CompanionStruct_Default___) InitializeEncryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) m_Wrappers.Result { return m_Materials.Companion_Default___.InitializeEncryptionMaterials(input) } func (_static *CompanionStruct_Default___) InitializeDecryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) m_Wrappers.Result { return m_Materials.Companion_Default___.InitializeDecryptionMaterials(input) } func (_static *CompanionStruct_Default___) ValidEncryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition((input).Dtor_start(), (input).Dtor_stop()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Invalid Encryption Materials Transition"))) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) ValidDecryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsTransitionIsValid((input).Dtor_start(), (input).Dtor_stop()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("Invalid Decryption Materials Transition"))) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) EncryptionMaterialsHasPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(_dafny.SeqOfString("Invalid Encryption Materials"))) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) DecryptionMaterialsWithPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(_dafny.SeqOfString("Invalid Decryption Materials"))) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) GetAlgorithmSuiteInfo(config Config, input _dafny.Sequence) m_Wrappers.Result { return m_AlgorithmSuites.Companion_Default___.GetAlgorithmSuiteInfo(input) } func (_static *CompanionStruct_Default___) ValidAlgorithmSuiteInfo(config Config, input m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_AlgorithmSuites.Companion_Default___.AlgorithmSuite_q(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfo_(_dafny.SeqOfString("Invalid AlgorithmSuiteInfo"))) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnEncrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnEncrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnDecrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) } } // End of class Default__ // Definition of datatype Config type Config struct { Data_Config_ } func (_this Config) Get_() Data_Config_ { return _this.Data_Config_ } type Data_Config_ interface { isConfig() } type CompanionStruct_Config_ struct { } var Companion_Config_ = CompanionStruct_Config_{} type Config_Config struct { Crypto *m_AtomicPrimitives.AtomicPrimitivesClient } func (Config_Config) isConfig() {} func (CompanionStruct_Config_) Create_Config_(Crypto *m_AtomicPrimitives.AtomicPrimitivesClient) Config { return Config{Config_Config{Crypto}} } func (_this Config) Is_Config() bool { _, ok := _this.Get_().(Config_Config) return ok } func (CompanionStruct_Config_) Default() Config { return Companion_Config_.Create_Config_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil)) } func (_this Config) Dtor_crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { return _this.Get_().(Config_Config).Crypto } func (_this Config) String() string { switch data := _this.Get_().(type) { case nil: return "null" case Config_Config: { return "AwsCryptographyMaterialProvidersOperations.Config.Config" + "(" + _dafny.String(data.Crypto) + ")" } default: { return "<unexpected>" } } } func (_this Config) Equals(other Config) bool { switch data1 := _this.Get_().(type) { case Config_Config: { data2, ok := other.Get_().(Config_Config) return ok && data1.Crypto == data2.Crypto } default: { return false // unexpected } } } func (_this Config) EqualsGeneric(other interface{}) bool { typed, ok := other.(Config) return ok && _this.Equals(typed) } func Type_Config_() _dafny.TypeDescriptor { return type_Config_{} } type type_Config_ struct { } func (_this type_Config_) Default() interface{} { return Companion_Config_.Default() } func (_this type_Config_) String() string { return "AwsCryptographyMaterialProvidersOperations.Config" } func (_this Config) ParentTraits_() []*_dafny.TraitID { return [](*_dafny.TraitID){} } var _ _dafny.TraitOffspring = Config{} // End of datatype Config