github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/StrictMultiKeyring/StrictMultiKeyring.go (about) 1 // Package StrictMultiKeyring 2 // Dafny module StrictMultiKeyring compiled into Go 3 4 package StrictMultiKeyring 5 6 import ( 7 os "os" 8 9 m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" 10 m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" 11 m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" 12 m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" 13 m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" 14 m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" 15 m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" 16 m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" 17 m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 18 m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" 19 m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" 20 m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" 21 m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" 22 m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" 23 m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" 24 m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" 25 m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" 26 m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" 27 m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" 28 m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" 29 m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" 30 m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" 31 m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" 32 m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" 33 m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" 34 m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" 35 m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" 36 m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" 37 m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" 38 m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" 39 m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" 40 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 41 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 42 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 43 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 44 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 45 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 46 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 47 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 48 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 49 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 50 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 51 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 52 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 53 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 54 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 55 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 56 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 57 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 58 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 59 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 60 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 61 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 62 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 63 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 64 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 65 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 66 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 67 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 68 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 69 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 70 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 71 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 72 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 73 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 74 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 75 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 76 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 77 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 78 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 79 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 80 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 81 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 82 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 83 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 84 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 85 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 86 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 87 ) 88 89 var _ = os.Args 90 var _ _dafny.Dummy__ 91 var _ m__System.Dummy__ 92 var _ m_Wrappers.Dummy__ 93 var _ m_BoundedInts.Dummy__ 94 var _ m_StandardLibrary_UInt.Dummy__ 95 var _ m_StandardLibrary_Sequence.Dummy__ 96 var _ m_StandardLibrary_String.Dummy__ 97 var _ m_StandardLibrary.Dummy__ 98 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 99 var _ m_Random.Dummy__ 100 var _ m_Digest.Dummy__ 101 var _ m_WrappedHMAC.Dummy__ 102 var _ m_HKDF.Dummy__ 103 var _ m_WrappedHKDF.Dummy__ 104 var _ m_KdfCtr.Dummy__ 105 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 106 var _ m_AtomicPrimitives.Dummy__ 107 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 108 var _ m_ComAmazonawsKmsTypes.Dummy__ 109 var _ m_Relations.Dummy__ 110 var _ m_Seq_MergeSort.Dummy__ 111 var _ m__Math.Dummy__ 112 var _ m_Seq.Dummy__ 113 var _ m__Unicode.Dummy__ 114 var _ m_Functions.Dummy__ 115 var _ m_Utf8EncodingForm.Dummy__ 116 var _ m_Utf16EncodingForm.Dummy__ 117 var _ m_UnicodeStrings.Dummy__ 118 var _ m_FileIO.Dummy__ 119 var _ m_GeneralInternals.Dummy__ 120 var _ m_MulInternalsNonlinear.Dummy__ 121 var _ m_MulInternals.Dummy__ 122 var _ m_Mul.Dummy__ 123 var _ m_ModInternalsNonlinear.Dummy__ 124 var _ m_DivInternalsNonlinear.Dummy__ 125 var _ m_ModInternals.Dummy__ 126 var _ m_DivInternals.Dummy__ 127 var _ m_DivMod.Dummy__ 128 var _ m_Power.Dummy__ 129 var _ m_Logarithm.Dummy__ 130 var _ m_StandardLibraryInterop.Dummy__ 131 var _ m_Streams.Dummy__ 132 var _ m_Sorting.Dummy__ 133 var _ m_HexStrings.Dummy__ 134 var _ m_GetOpt.Dummy__ 135 var _ m_FloatCompare.Dummy__ 136 var _ m_Base64.Dummy__ 137 var _ m_Base64Lemmas.Dummy__ 138 var _ m_Actions.Dummy__ 139 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 140 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 141 var _ m_AwsArnParsing.Dummy__ 142 var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ 143 var _ m_AwsKmsUtils.Dummy__ 144 var _ m_KeyStoreErrorMessages.Dummy__ 145 var _ m_KmsArn.Dummy__ 146 var _ m_Structure.Dummy__ 147 var _ m_KMSKeystoreOperations.Dummy__ 148 var _ m_DDBKeystoreOperations.Dummy__ 149 var _ m_CreateKeys.Dummy__ 150 var _ m_CreateKeyStoreTable.Dummy__ 151 var _ m_GetKeys.Dummy__ 152 var _ m_AwsCryptographyKeyStoreOperations.Dummy__ 153 var _ m_Com_Amazonaws_Kms.Dummy__ 154 var _ m_Com_Amazonaws_Dynamodb.Dummy__ 155 var _ m_KeyStore.Dummy__ 156 var _ m_AlgorithmSuites.Dummy__ 157 var _ m_Materials.Dummy__ 158 var _ m_Keyring.Dummy__ 159 var _ m_MultiKeyring.Dummy__ 160 var _ m_AwsKmsMrkAreUnique.Dummy__ 161 var _ m_Constants.Dummy__ 162 var _ m_MaterialWrapping.Dummy__ 163 var _ m_CanonicalEncryptionContext.Dummy__ 164 var _ m_IntermediateKeyWrapping.Dummy__ 165 var _ m_EdkWrapping.Dummy__ 166 var _ m_ErrorMessages.Dummy__ 167 var _ m_AwsKmsKeyring.Dummy__ 168 169 type Dummy__ struct{} 170 171 // Definition of class Default__ 172 type Default__ struct { 173 dummy byte 174 } 175 176 func New_Default___() *Default__ { 177 _this := Default__{} 178 179 return &_this 180 } 181 182 type CompanionStruct_Default___ struct { 183 } 184 185 var Companion_Default___ = CompanionStruct_Default___{} 186 187 func (_this *Default__) Equals(other *Default__) bool { 188 return _this == other 189 } 190 191 func (_this *Default__) EqualsGeneric(x interface{}) bool { 192 other, ok := x.(*Default__) 193 return ok && _this.Equals(other) 194 } 195 196 func (*Default__) String() string { 197 return "StrictMultiKeyring.Default__" 198 } 199 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 200 return [](*_dafny.TraitID){} 201 } 202 203 var _ _dafny.TraitOffspring = &Default__{} 204 205 func (_static *CompanionStruct_Default___) StrictMultiKeyring(generator m_Wrappers.Option, awsKmsKeys m_Wrappers.Option, clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier, grantTokens m_Wrappers.Option) m_Wrappers.Result { 206 var output m_Wrappers.Result = m_Wrappers.Result{} 207 _ = output 208 var _0_allStrings _dafny.Sequence 209 _ = _0_allStrings 210 var _source0 m_Wrappers.Option = generator 211 _ = _source0 212 { 213 { 214 if _source0.Is_Some() { 215 var _1_g _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) 216 _ = _1_g 217 _0_allStrings = _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(_1_g), (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) 218 goto Lmatch0 219 } 220 } 221 { 222 _0_allStrings = (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) 223 } 224 goto Lmatch0 225 } 226 Lmatch0: 227 var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 228 _ = _2_valueOrError0 229 _2_valueOrError0 = (m_Seq.Companion_Default___.MapWithResult(func(coer59 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { 230 return func(arg60 interface{}) m_Wrappers.Result { 231 return coer59(arg60.(_dafny.Sequence)) 232 } 233 }(m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString), _0_allStrings)).MapFailure(func(coer60 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 234 return func(arg61 interface{}) interface{} { 235 return coer60(arg61.(_dafny.Sequence)) 236 } 237 }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) 238 if (_2_valueOrError0).IsFailure() { 239 output = (_2_valueOrError0).PropagateFailure() 240 return output 241 } 242 var _3_allIdentifiers _dafny.Sequence 243 _ = _3_allIdentifiers 244 _3_allIdentifiers = (_2_valueOrError0).Extract().(_dafny.Sequence) 245 var _4_generatorKeyring m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 246 _ = _4_generatorKeyring 247 var _source1 m_Wrappers.Option = generator 248 _ = _source1 249 { 250 { 251 if _source1.Is_Some() { 252 var _5_generatorIdentifier _dafny.Sequence = _source1.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) 253 _ = _5_generatorIdentifier 254 var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 255 _ = _6_valueOrError1 256 _6_valueOrError1 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_5_generatorIdentifier)).MapFailure(func(coer61 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 257 return func(arg62 interface{}) interface{} { 258 return coer61(arg62.(_dafny.Sequence)) 259 } 260 }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) 261 if (_6_valueOrError1).IsFailure() { 262 output = (_6_valueOrError1).PropagateFailure() 263 return output 264 } 265 var _7_arn m_AwsArnParsing.AwsKmsIdentifier 266 _ = _7_arn 267 _7_arn = (_6_valueOrError1).Extract().(m_AwsArnParsing.AwsKmsIdentifier) 268 var _8_region m_Wrappers.Option 269 _ = _8_region 270 _8_region = m_AwsArnParsing.Companion_Default___.GetRegion(_7_arn) 271 var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} 272 _ = _9_valueOrError2 273 var _out0 m_Wrappers.Result 274 _ = _out0 275 _out0 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_8_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) 276 _9_valueOrError2 = _out0 277 if (_9_valueOrError2).IsFailure() { 278 output = (_9_valueOrError2).PropagateFailure() 279 return output 280 } 281 var _10_client m_ComAmazonawsKmsTypes.IKMSClient 282 _ = _10_client 283 _10_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_9_valueOrError2).Extract()) 284 var _11_g *m_AwsKmsKeyring.AwsKmsKeyring 285 _ = _11_g 286 var _nw0 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() 287 _ = _nw0 288 _nw0.Ctor__(_10_client, _5_generatorIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) 289 _11_g = _nw0 290 _4_generatorKeyring = m_Wrappers.Companion_Option_.Create_Some_(_11_g) 291 goto Lmatch1 292 } 293 } 294 { 295 _4_generatorKeyring = m_Wrappers.Companion_Option_.Create_None_() 296 } 297 goto Lmatch1 298 } 299 Lmatch1: 300 var _12_children _dafny.Sequence 301 _ = _12_children 302 _12_children = _dafny.SeqOf() 303 var _source2 m_Wrappers.Option = awsKmsKeys 304 _ = _source2 305 { 306 { 307 if _source2.Is_Some() { 308 var _13_childIdentifiers _dafny.Sequence = _source2.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) 309 _ = _13_childIdentifiers 310 var _hi0 _dafny.Int = _dafny.IntOfUint32((_13_childIdentifiers).Cardinality()) 311 _ = _hi0 312 for _14_index := _dafny.Zero; _14_index.Cmp(_hi0) < 0; _14_index = _14_index.Plus(_dafny.One) { 313 var _15_childIdentifier _dafny.Sequence 314 _ = _15_childIdentifier 315 _15_childIdentifier = (_13_childIdentifiers).Select((_14_index).Uint32()).(_dafny.Sequence) 316 var _16_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} 317 _ = _16_valueOrError3 318 _16_valueOrError3 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_15_childIdentifier)).MapFailure(func(coer62 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 319 return func(arg63 interface{}) interface{} { 320 return coer62(arg63.(_dafny.Sequence)) 321 } 322 }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) 323 if (_16_valueOrError3).IsFailure() { 324 output = (_16_valueOrError3).PropagateFailure() 325 return output 326 } 327 var _17_info m_AwsArnParsing.AwsKmsIdentifier 328 _ = _17_info 329 _17_info = (_16_valueOrError3).Extract().(m_AwsArnParsing.AwsKmsIdentifier) 330 var _18_region m_Wrappers.Option 331 _ = _18_region 332 _18_region = m_AwsArnParsing.Companion_Default___.GetRegion(_17_info) 333 var _19_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} 334 _ = _19_valueOrError4 335 var _out1 m_Wrappers.Result 336 _ = _out1 337 _out1 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_18_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) 338 _19_valueOrError4 = _out1 339 if (_19_valueOrError4).IsFailure() { 340 output = (_19_valueOrError4).PropagateFailure() 341 return output 342 } 343 var _20_client m_ComAmazonawsKmsTypes.IKMSClient 344 _ = _20_client 345 _20_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_19_valueOrError4).Extract()) 346 var _21_keyring *m_AwsKmsKeyring.AwsKmsKeyring 347 _ = _21_keyring 348 var _nw1 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() 349 _ = _nw1 350 _nw1.Ctor__(_20_client, _15_childIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) 351 _21_keyring = _nw1 352 _12_children = _dafny.Companion_Sequence_.Concatenate(_12_children, _dafny.SeqOf(_21_keyring)) 353 } 354 goto Lmatch2 355 } 356 } 357 { 358 _12_children = _dafny.SeqOf() 359 } 360 goto Lmatch2 361 } 362 Lmatch2: 363 var _22_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 364 _ = _22_valueOrError5 365 _22_valueOrError5 = m_Wrappers.Companion_Default___.Need(((_4_generatorKeyring).Is_Some()) || ((_dafny.IntOfUint32((_12_children).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("generatorKeyring or child Keryings needed to create a multi keyring"))) 366 if (_22_valueOrError5).IsFailure() { 367 output = (_22_valueOrError5).PropagateFailure() 368 return output 369 } 370 var _23_keyring *m_MultiKeyring.MultiKeyring 371 _ = _23_keyring 372 var _nw2 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() 373 _ = _nw2 374 _nw2.Ctor__(_4_generatorKeyring, _12_children) 375 _23_keyring = _nw2 376 output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyring) 377 return output 378 return output 379 } 380 381 // End of class Default__