github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go (about) 1 // Package AwsCryptographyMaterialProvidersOperations 2 // Dafny module AwsCryptographyMaterialProvidersOperations compiled into Go 3 4 package AwsCryptographyMaterialProvidersOperations 5 6 import ( 7 os "os" 8 9 m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" 10 m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" 11 m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" 12 m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" 13 m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" 14 m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" 15 m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" 16 m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" 17 m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 18 m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" 19 m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" 20 m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" 21 m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" 22 m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" 23 m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" 24 m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" 25 m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" 26 m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" 27 m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" 28 m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" 29 m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" 30 m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" 31 m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" 32 m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" 33 m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" 34 m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" 35 m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" 36 m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" 37 m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" 38 m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" 39 m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" 40 m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" 41 m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" 42 m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" 43 m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" 44 m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" 45 m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" 46 m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" 47 m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" 48 m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" 49 m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" 50 m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" 51 m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" 52 m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" 53 m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" 54 m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" 55 m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" 56 m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" 57 m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" 58 m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" 59 m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" 60 m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" 61 m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" 62 m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" 63 m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" 64 m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" 65 m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" 66 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 67 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 68 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 69 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 70 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 71 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 72 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 73 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 74 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 75 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 76 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 77 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 78 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 79 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 80 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 81 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 82 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 83 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 84 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 85 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 86 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 87 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 88 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 89 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 90 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 91 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 92 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 93 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 94 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 95 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 96 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 97 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 98 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 99 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 100 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 101 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 102 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 103 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 104 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 105 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 106 m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" 107 m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" 108 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 109 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 110 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 111 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 112 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 113 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 114 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 115 ) 116 117 var _ = os.Args 118 var _ _dafny.Dummy__ 119 var _ m__System.Dummy__ 120 var _ m_Wrappers.Dummy__ 121 var _ m_BoundedInts.Dummy__ 122 var _ m_StandardLibrary_UInt.Dummy__ 123 var _ m_StandardLibrary_Sequence.Dummy__ 124 var _ m_StandardLibrary_String.Dummy__ 125 var _ m_StandardLibrary.Dummy__ 126 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 127 var _ m_Random.Dummy__ 128 var _ m_Digest.Dummy__ 129 var _ m_WrappedHMAC.Dummy__ 130 var _ m_HKDF.Dummy__ 131 var _ m_WrappedHKDF.Dummy__ 132 var _ m_KdfCtr.Dummy__ 133 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 134 var _ m_AtomicPrimitives.Dummy__ 135 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 136 var _ m_ComAmazonawsKmsTypes.Dummy__ 137 var _ m_Relations.Dummy__ 138 var _ m_Seq_MergeSort.Dummy__ 139 var _ m__Math.Dummy__ 140 var _ m_Seq.Dummy__ 141 var _ m__Unicode.Dummy__ 142 var _ m_Functions.Dummy__ 143 var _ m_Utf8EncodingForm.Dummy__ 144 var _ m_Utf16EncodingForm.Dummy__ 145 var _ m_UnicodeStrings.Dummy__ 146 var _ m_FileIO.Dummy__ 147 var _ m_GeneralInternals.Dummy__ 148 var _ m_MulInternalsNonlinear.Dummy__ 149 var _ m_MulInternals.Dummy__ 150 var _ m_Mul.Dummy__ 151 var _ m_ModInternalsNonlinear.Dummy__ 152 var _ m_DivInternalsNonlinear.Dummy__ 153 var _ m_ModInternals.Dummy__ 154 var _ m_DivInternals.Dummy__ 155 var _ m_DivMod.Dummy__ 156 var _ m_Power.Dummy__ 157 var _ m_Logarithm.Dummy__ 158 var _ m_StandardLibraryInterop.Dummy__ 159 var _ m_Streams.Dummy__ 160 var _ m_Sorting.Dummy__ 161 var _ m_HexStrings.Dummy__ 162 var _ m_GetOpt.Dummy__ 163 var _ m_FloatCompare.Dummy__ 164 var _ m_Base64.Dummy__ 165 var _ m_Base64Lemmas.Dummy__ 166 var _ m_Actions.Dummy__ 167 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 168 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 169 var _ m_AwsArnParsing.Dummy__ 170 var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ 171 var _ m_AwsKmsUtils.Dummy__ 172 var _ m_KeyStoreErrorMessages.Dummy__ 173 var _ m_KmsArn.Dummy__ 174 var _ m_Structure.Dummy__ 175 var _ m_KMSKeystoreOperations.Dummy__ 176 var _ m_DDBKeystoreOperations.Dummy__ 177 var _ m_CreateKeys.Dummy__ 178 var _ m_CreateKeyStoreTable.Dummy__ 179 var _ m_GetKeys.Dummy__ 180 var _ m_AwsCryptographyKeyStoreOperations.Dummy__ 181 var _ m_Com_Amazonaws_Kms.Dummy__ 182 var _ m_Com_Amazonaws_Dynamodb.Dummy__ 183 var _ m_KeyStore.Dummy__ 184 var _ m_AlgorithmSuites.Dummy__ 185 var _ m_Materials.Dummy__ 186 var _ m_Keyring.Dummy__ 187 var _ m_MultiKeyring.Dummy__ 188 var _ m_AwsKmsMrkAreUnique.Dummy__ 189 var _ m_Constants.Dummy__ 190 var _ m_MaterialWrapping.Dummy__ 191 var _ m_CanonicalEncryptionContext.Dummy__ 192 var _ m_IntermediateKeyWrapping.Dummy__ 193 var _ m_EdkWrapping.Dummy__ 194 var _ m_ErrorMessages.Dummy__ 195 var _ m_AwsKmsKeyring.Dummy__ 196 var _ m_StrictMultiKeyring.Dummy__ 197 var _ m_AwsKmsDiscoveryKeyring.Dummy__ 198 var _ m_DiscoveryMultiKeyring.Dummy__ 199 var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ 200 var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ 201 var _ m_AwsKmsMrkKeyring.Dummy__ 202 var _ m_MrkAwareStrictMultiKeyring.Dummy__ 203 var _ m_LocalCMC.Dummy__ 204 var _ m_SynchronizedLocalCMC.Dummy__ 205 var _ m_StormTracker.Dummy__ 206 var _ m_StormTrackingCMC.Dummy__ 207 var _ m_CacheConstants.Dummy__ 208 var _ m_AwsKmsHierarchicalKeyring.Dummy__ 209 var _ m_AwsKmsRsaKeyring.Dummy__ 210 var _ m_EcdhEdkWrapping.Dummy__ 211 var _ m_RawECDHKeyring.Dummy__ 212 var _ m_AwsKmsEcdhKeyring.Dummy__ 213 var _ m_RawAESKeyring.Dummy__ 214 var _ m_RawRSAKeyring.Dummy__ 215 var _ m_CMM.Dummy__ 216 var _ m_Defaults.Dummy__ 217 var _ m_Commitment.Dummy__ 218 var _ m_DefaultCMM.Dummy__ 219 var _ m_DefaultClientSupplier.Dummy__ 220 var _ m_Utils.Dummy__ 221 var _ m_RequiredEncryptionContextCMM.Dummy__ 222 223 type Dummy__ struct{} 224 225 // Definition of class Default__ 226 type Default__ struct { 227 dummy byte 228 } 229 230 func New_Default___() *Default__ { 231 _this := Default__{} 232 233 return &_this 234 } 235 236 type CompanionStruct_Default___ struct { 237 } 238 239 var Companion_Default___ = CompanionStruct_Default___{} 240 241 func (_this *Default__) Equals(other *Default__) bool { 242 return _this == other 243 } 244 245 func (_this *Default__) EqualsGeneric(x interface{}) bool { 246 other, ok := x.(*Default__) 247 return ok && _this.Equals(other) 248 } 249 250 func (*Default__) String() string { 251 return "AwsCryptographyMaterialProvidersOperations.Default__" 252 } 253 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 254 return [](*_dafny.TraitID){} 255 } 256 257 var _ _dafny.TraitOffspring = &Default__{} 258 259 func (_static *CompanionStruct_Default___) CreateAwsKmsKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput) m_Wrappers.Result { 260 var output m_Wrappers.Result = m_Wrappers.Result{} 261 _ = output 262 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 263 _ = _0_valueOrError0 264 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) 265 if (_0_valueOrError0).IsFailure() { 266 output = (_0_valueOrError0).PropagateFailure() 267 return output 268 } 269 var _1___v0 _dafny.Tuple 270 _ = _1___v0 271 _1___v0 = (_0_valueOrError0).Extract().(_dafny.Tuple) 272 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 273 _ = _2_valueOrError1 274 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 275 if (_2_valueOrError1).IsFailure() { 276 output = (_2_valueOrError1).PropagateFailure() 277 return output 278 } 279 var _3_grantTokens _dafny.Sequence 280 _ = _3_grantTokens 281 _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) 282 var _4_keyring *m_AwsKmsKeyring.AwsKmsKeyring 283 _ = _4_keyring 284 var _nw0 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() 285 _ = _nw0 286 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) 287 _4_keyring = _nw0 288 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) 289 return output 290 return output 291 } 292 func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result { 293 var output m_Wrappers.Result = m_Wrappers.Result{} 294 _ = output 295 if ((input).Dtor_discoveryFilter()).Is_Some() { 296 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 297 _ = _0_valueOrError0 298 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) 299 if (_0_valueOrError0).IsFailure() { 300 output = (_0_valueOrError0).PropagateFailure() 301 return output 302 } 303 var _1___v1 _dafny.Tuple 304 _ = _1___v1 305 _1___v1 = (_0_valueOrError0).Extract().(_dafny.Tuple) 306 } 307 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 308 _ = _2_valueOrError1 309 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 310 if (_2_valueOrError1).IsFailure() { 311 output = (_2_valueOrError1).PropagateFailure() 312 return output 313 } 314 var _3_grantTokens _dafny.Sequence 315 _ = _3_grantTokens 316 _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) 317 var _4_keyring *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring 318 _ = _4_keyring 319 var _nw0 *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring = m_AwsKmsDiscoveryKeyring.New_AwsKmsDiscoveryKeyring_() 320 _ = _nw0 321 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_discoveryFilter(), _3_grantTokens) 322 _4_keyring = _nw0 323 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) 324 return output 325 return output 326 } 327 func (_static *CompanionStruct_Default___) CreateAwsKmsMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput) m_Wrappers.Result { 328 var output m_Wrappers.Result = m_Wrappers.Result{} 329 _ = output 330 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 331 _ = _0_valueOrError0 332 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 333 if (_0_valueOrError0).IsFailure() { 334 output = (_0_valueOrError0).PropagateFailure() 335 return output 336 } 337 var _1_grantTokens _dafny.Sequence 338 _ = _1_grantTokens 339 _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) 340 if ((input).Dtor_clientSupplier()).Is_Some() { 341 var _out0 m_Wrappers.Result 342 _ = _out0 343 _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)) 344 output = _out0 345 } else { 346 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 347 _ = _2_valueOrError1 348 var _out1 m_Wrappers.Result 349 _ = _out1 350 _out1 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) 351 _2_valueOrError1 = _out1 352 if (_2_valueOrError1).IsFailure() { 353 output = (_2_valueOrError1).PropagateFailure() 354 return output 355 } 356 var _3_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier 357 _ = _3_clientSupplier 358 _3_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_2_valueOrError1).Extract()) 359 var _out2 m_Wrappers.Result 360 _ = _out2 361 _out2 = m_StrictMultiKeyring.Companion_Default___.StrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _3_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) 362 output = _out2 363 } 364 return output 365 } 366 func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result { 367 var output m_Wrappers.Result = m_Wrappers.Result{} 368 _ = output 369 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 370 _ = _0_valueOrError0 371 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 372 if (_0_valueOrError0).IsFailure() { 373 output = (_0_valueOrError0).PropagateFailure() 374 return output 375 } 376 var _1_grantTokens _dafny.Sequence 377 _ = _1_grantTokens 378 _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) 379 var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) 380 _ = _2_clientSupplier 381 if ((input).Dtor_clientSupplier()).Is_None() { 382 var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 383 _ = _3_valueOrError1 384 var _out0 m_Wrappers.Result 385 _ = _out0 386 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) 387 _3_valueOrError1 = _out0 388 if (_3_valueOrError1).IsFailure() { 389 output = (_3_valueOrError1).PropagateFailure() 390 return output 391 } 392 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) 393 } else { 394 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) 395 } 396 var _out1 m_Wrappers.Result 397 _ = _out1 398 _out1 = m_DiscoveryMultiKeyring.Companion_Default___.DiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) 399 output = _out1 400 return output 401 } 402 func (_static *CompanionStruct_Default___) CreateAwsKmsMrkKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput) m_Wrappers.Result { 403 var output m_Wrappers.Result = m_Wrappers.Result{} 404 _ = output 405 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 406 _ = _0_valueOrError0 407 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) 408 if (_0_valueOrError0).IsFailure() { 409 output = (_0_valueOrError0).PropagateFailure() 410 return output 411 } 412 var _1___v2 _dafny.Tuple 413 _ = _1___v2 414 _1___v2 = (_0_valueOrError0).Extract().(_dafny.Tuple) 415 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 416 _ = _2_valueOrError1 417 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 418 if (_2_valueOrError1).IsFailure() { 419 output = (_2_valueOrError1).PropagateFailure() 420 return output 421 } 422 var _3_grantTokens _dafny.Sequence 423 _ = _3_grantTokens 424 _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) 425 var _4_keyring *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring 426 _ = _4_keyring 427 var _nw0 *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring = m_AwsKmsMrkKeyring.New_AwsKmsMrkKeyring_() 428 _ = _nw0 429 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) 430 _4_keyring = _nw0 431 output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) 432 return output 433 return output 434 } 435 func (_static *CompanionStruct_Default___) CreateAwsKmsMrkMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result { 436 var output m_Wrappers.Result = m_Wrappers.Result{} 437 _ = output 438 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 439 _ = _0_valueOrError0 440 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 441 if (_0_valueOrError0).IsFailure() { 442 output = (_0_valueOrError0).PropagateFailure() 443 return output 444 } 445 var _1_grantTokens _dafny.Sequence 446 _ = _1_grantTokens 447 _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) 448 var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) 449 _ = _2_clientSupplier 450 if ((input).Dtor_clientSupplier()).Is_None() { 451 var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 452 _ = _3_valueOrError1 453 var _out0 m_Wrappers.Result 454 _ = _out0 455 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) 456 _3_valueOrError1 = _out0 457 if (_3_valueOrError1).IsFailure() { 458 output = (_3_valueOrError1).PropagateFailure() 459 return output 460 } 461 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) 462 } else { 463 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) 464 } 465 var _out1 m_Wrappers.Result 466 _ = _out1 467 _out1 = m_MrkAwareStrictMultiKeyring.Companion_Default___.MrkAwareStrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) 468 output = _out1 469 return output 470 } 471 func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result { 472 var output m_Wrappers.Result = m_Wrappers.Result{} 473 _ = output 474 if ((input).Dtor_discoveryFilter()).Is_Some() { 475 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 476 _ = _0_valueOrError0 477 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) 478 if (_0_valueOrError0).IsFailure() { 479 output = (_0_valueOrError0).PropagateFailure() 480 return output 481 } 482 var _1___v3 _dafny.Tuple 483 _ = _1___v3 484 _1___v3 = (_0_valueOrError0).Extract().(_dafny.Tuple) 485 } 486 var _2_regionMatch m_Wrappers.Option 487 _ = _2_regionMatch 488 _2_regionMatch = m_Com_Amazonaws_Kms.Companion_Default___.RegionMatch((input).Dtor_kmsClient(), (input).Dtor_region()) 489 var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 490 _ = _3_valueOrError1 491 _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"))) 492 if (_3_valueOrError1).IsFailure() { 493 output = (_3_valueOrError1).PropagateFailure() 494 return output 495 } 496 var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 497 _ = _4_valueOrError2 498 _4_valueOrError2 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 499 if (_4_valueOrError2).IsFailure() { 500 output = (_4_valueOrError2).PropagateFailure() 501 return output 502 } 503 var _5_grantTokens _dafny.Sequence 504 _ = _5_grantTokens 505 _5_grantTokens = (_4_valueOrError2).Extract().(_dafny.Sequence) 506 var _6_keyring *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring 507 _ = _6_keyring 508 var _nw0 *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring = m_AwsKmsMrkDiscoveryKeyring.New_AwsKmsMrkDiscoveryKeyring_() 509 _ = _nw0 510 _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_region(), (input).Dtor_discoveryFilter(), _5_grantTokens) 511 _6_keyring = _nw0 512 output = m_Wrappers.Companion_Result_.Create_Success_(_6_keyring) 513 return output 514 return output 515 } 516 func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result { 517 var output m_Wrappers.Result = m_Wrappers.Result{} 518 _ = output 519 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 520 _ = _0_valueOrError0 521 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 522 if (_0_valueOrError0).IsFailure() { 523 output = (_0_valueOrError0).PropagateFailure() 524 return output 525 } 526 var _1_grantTokens _dafny.Sequence 527 _ = _1_grantTokens 528 _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) 529 var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) 530 _ = _2_clientSupplier 531 if ((input).Dtor_clientSupplier()).Is_None() { 532 var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 533 _ = _3_valueOrError1 534 var _out0 m_Wrappers.Result 535 _ = _out0 536 _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) 537 _3_valueOrError1 = _out0 538 if (_3_valueOrError1).IsFailure() { 539 output = (_3_valueOrError1).PropagateFailure() 540 return output 541 } 542 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) 543 } else { 544 _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) 545 } 546 var _out1 m_Wrappers.Result 547 _ = _out1 548 _out1 = m_MrkAwareDiscoveryMultiKeyring.Companion_Default___.MrkAwareDiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) 549 output = _out1 550 return output 551 } 552 func (_static *CompanionStruct_Default___) N(n int64) _dafny.Sequence { 553 return m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfInt64(n)) 554 } 555 func (_static *CompanionStruct_Default___) CheckCache(cache m_AwsCryptographyMaterialProvidersTypes.CacheType, ttlSeconds int64) m_Wrappers.Outcome { 556 var output m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 557 _ = output 558 if (cache).Is_StormTracking() { 559 var _0_gracePeriod int64 560 _ = _0_gracePeriod 561 if ((((cache).Dtor_StormTracking()).Dtor_timeUnits()).UnwrapOr(m_AwsCryptographyMaterialProvidersTypes.Companion_TimeUnits_.Create_Seconds_()).(m_AwsCryptographyMaterialProvidersTypes.TimeUnits)).Is_Seconds() { 562 _0_gracePeriod = int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()) 563 } else { 564 _0_gracePeriod = _dafny.DivInt64(int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()), int64(1000)) 565 } 566 var _1_storm m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache 567 _ = _1_storm 568 _1_storm = (cache).Dtor_StormTracking() 569 if (ttlSeconds) <= (_0_gracePeriod) { 570 var _2_msg _dafny.Sequence 571 _ = _2_msg 572 _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(".")) 573 output = m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_msg)) 574 return output 575 } 576 output = m_Wrappers.Companion_Outcome_.Create_Pass_() 577 return output 578 } else { 579 output = m_Wrappers.Companion_Outcome_.Create_Pass_() 580 return output 581 } 582 return output 583 } 584 func (_static *CompanionStruct_Default___) CreateAwsKmsHierarchicalKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result { 585 var output m_Wrappers.Result = m_Wrappers.Result{} 586 _ = output 587 var _0_cmc m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) 588 _ = _0_cmc 589 if ((input).Dtor_cache()).Is_Some() { 590 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 591 _ = _1_valueOrError0 592 var _out0 m_Wrappers.Outcome 593 _ = _out0 594 _out0 = Companion_Default___.CheckCache(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType), (input).Dtor_ttlSeconds()) 595 _1_valueOrError0 = _out0 596 if (_1_valueOrError0).IsFailure() { 597 output = (_1_valueOrError0).PropagateFailure() 598 return output 599 } 600 var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = ((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType) 601 _ = _source0 602 { 603 { 604 if _source0.Is_Shared() { 605 var _2_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared 606 _ = _2_c 607 _0_cmc = _2_c 608 goto Lmatch0 609 } 610 } 611 { 612 var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} 613 _ = _3_valueOrError1 614 var _out1 m_Wrappers.Result 615 _ = _out1 616 _out1 = Companion_Default___.CreateCryptographicMaterialsCache(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType))) 617 _3_valueOrError1 = _out1 618 if (_3_valueOrError1).IsFailure() { 619 output = (_3_valueOrError1).PropagateFailure() 620 return output 621 } 622 _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_3_valueOrError1).Extract()) 623 } 624 goto Lmatch0 625 } 626 Lmatch0: 627 } else { 628 var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 629 _ = _4_valueOrError2 630 var _out2 m_Wrappers.Outcome 631 _ = _out2 632 _out2 = Companion_Default___.CheckCache(m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_StormTracking_(m_StormTracker.Companion_Default___.DefaultStorm()), (input).Dtor_ttlSeconds()) 633 _4_valueOrError2 = _out2 634 if (_4_valueOrError2).IsFailure() { 635 output = (_4_valueOrError2).PropagateFailure() 636 return output 637 } 638 var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} 639 _ = _5_valueOrError3 640 var _out3 m_Wrappers.Result 641 _ = _out3 642 _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))))) 643 _5_valueOrError3 = _out3 644 if (_5_valueOrError3).IsFailure() { 645 output = (_5_valueOrError3).PropagateFailure() 646 return output 647 } 648 _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_5_valueOrError3).Extract()) 649 } 650 var _6_partitionIdBytes _dafny.Sequence = _dafny.EmptySeq 651 _ = _6_partitionIdBytes 652 if ((input).Dtor_partitionId()).Is_Some() { 653 var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) 654 _ = _7_valueOrError4 655 _7_valueOrError4 = (m_UTF8.Encode(((input).Dtor_partitionId()).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer132 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 656 return func(arg133 interface{}) interface{} { 657 return coer132(arg133.(_dafny.Sequence)) 658 } 659 }(func(_8_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 660 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Partition ID: "), _8_e)) 661 })) 662 if (_7_valueOrError4).IsFailure() { 663 output = (_7_valueOrError4).PropagateFailure() 664 return output 665 } 666 _6_partitionIdBytes = (_7_valueOrError4).Extract().(_dafny.Sequence) 667 } else { 668 var _9_uuid_q m_Wrappers.Result 669 _ = _9_uuid_q 670 var _out4 m_Wrappers.Result 671 _ = _out4 672 _out4 = m_UUID.GenerateUUID() 673 _9_uuid_q = _out4 674 var _10_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) 675 _ = _10_valueOrError5 676 _10_valueOrError5 = (_9_uuid_q).MapFailure(func(coer133 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 677 return func(arg134 interface{}) interface{} { 678 return coer133(arg134.(_dafny.Sequence)) 679 } 680 }(func(_11_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 681 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_11_e) 682 })) 683 if (_10_valueOrError5).IsFailure() { 684 output = (_10_valueOrError5).PropagateFailure() 685 return output 686 } 687 var _12_uuid _dafny.Sequence 688 _ = _12_uuid 689 _12_uuid = (_10_valueOrError5).Extract().(_dafny.Sequence) 690 var _13_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 691 _ = _13_valueOrError6 692 _13_valueOrError6 = (m_UUID.ToByteArray(_12_uuid)).MapFailure(func(coer134 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 693 return func(arg135 interface{}) interface{} { 694 return coer134(arg135.(_dafny.Sequence)) 695 } 696 }(func(_14_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 697 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_14_e) 698 })) 699 if (_13_valueOrError6).IsFailure() { 700 output = (_13_valueOrError6).PropagateFailure() 701 return output 702 } 703 _6_partitionIdBytes = (_13_valueOrError6).Extract().(_dafny.Sequence) 704 } 705 var _15_getKeyStoreInfoOutput_q m_Wrappers.Result 706 _ = _15_getKeyStoreInfoOutput_q 707 var _out5 m_Wrappers.Result 708 _ = _out5 709 _out5 = ((input).Dtor_keyStore()).GetKeyStoreInfo() 710 _15_getKeyStoreInfoOutput_q = _out5 711 var _16_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} 712 _ = _16_valueOrError7 713 _16_valueOrError7 = (_15_getKeyStoreInfoOutput_q).MapFailure(func(coer135 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 714 return func(arg136 interface{}) interface{} { 715 return coer135(arg136.(m_AwsCryptographyKeyStoreTypes.Error)) 716 } 717 }(func(_17_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { 718 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_17_e) 719 })) 720 if (_16_valueOrError7).IsFailure() { 721 output = (_16_valueOrError7).PropagateFailure() 722 return output 723 } 724 var _18_getKeyStoreInfoOutput m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput 725 _ = _18_getKeyStoreInfoOutput 726 _18_getKeyStoreInfoOutput = (_16_valueOrError7).Extract().(m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput) 727 var _19_logicalKeyStoreName _dafny.Sequence 728 _ = _19_logicalKeyStoreName 729 _19_logicalKeyStoreName = (_18_getKeyStoreInfoOutput).Dtor_logicalKeyStoreName() 730 var _20_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) 731 _ = _20_valueOrError8 732 _20_valueOrError8 = (m_UTF8.Encode(_19_logicalKeyStoreName)).MapFailure(func(coer136 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 733 return func(arg137 interface{}) interface{} { 734 return coer136(arg137.(_dafny.Sequence)) 735 } 736 }(func(_21_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 737 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Logical Key Store Name: "), _21_e)) 738 })) 739 if (_20_valueOrError8).IsFailure() { 740 output = (_20_valueOrError8).PropagateFailure() 741 return output 742 } 743 var _22_logicalKeyStoreNameBytes _dafny.Sequence 744 _ = _22_logicalKeyStoreNameBytes 745 _22_logicalKeyStoreNameBytes = (_20_valueOrError8).Extract().(_dafny.Sequence) 746 var _23_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 747 _ = _23_valueOrError9 748 _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."))) 749 if (_23_valueOrError9).IsFailure() { 750 output = (_23_valueOrError9).PropagateFailure() 751 return output 752 } 753 var _24_valueOrError10 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 754 _ = _24_valueOrError10 755 _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."))) 756 if (_24_valueOrError10).IsFailure() { 757 output = (_24_valueOrError10).PropagateFailure() 758 return output 759 } 760 var _25_keyring *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring 761 _ = _25_keyring 762 var _nw0 *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring = m_AwsKmsHierarchicalKeyring.New_AwsKmsHierarchicalKeyring_() 763 _ = _nw0 764 _nw0.Ctor__((input).Dtor_keyStore(), (input).Dtor_branchKeyId(), (input).Dtor_branchKeyIdSupplier(), (input).Dtor_ttlSeconds(), _0_cmc, _6_partitionIdBytes, _22_logicalKeyStoreNameBytes, (config).Dtor_crypto()) 765 _25_keyring = _nw0 766 output = m_Wrappers.Companion_Result_.Create_Success_(_25_keyring) 767 return output 768 return output 769 } 770 func (_static *CompanionStruct_Default___) CreateAwsKmsEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result { 771 var output m_Wrappers.Result = m_Wrappers.Result{} 772 _ = output 773 var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 774 _ = _0_valueOrError0 775 _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 776 if (_0_valueOrError0).IsFailure() { 777 output = (_0_valueOrError0).PropagateFailure() 778 return output 779 } 780 var _1_grantTokens _dafny.Sequence 781 _ = _1_grantTokens 782 _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) 783 var _2_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq 784 _ = _2_recipientPublicKey 785 var _3_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 786 _ = _3_senderPublicKey 787 var _4_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 788 _ = _4_compressedSenderPublicKey 789 var _source0 m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() 790 _ = _source0 791 { 792 { 793 if _source0.Is_KmsPublicKeyDiscovery() { 794 var _5_kmsPublicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery 795 _ = _5_kmsPublicKeyDiscovery 796 { 797 var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 798 _ = _6_valueOrError1 799 _6_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) 800 if (_6_valueOrError1).IsFailure() { 801 output = (_6_valueOrError1).PropagateFailure() 802 return output 803 } 804 var _7___v5 _dafny.Tuple 805 _ = _7___v5 806 _7___v5 = (_6_valueOrError1).Extract().(_dafny.Tuple) 807 var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} 808 _ = _8_valueOrError2 809 var _out0 m_Wrappers.Result 810 _ = _out0 811 _out0 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) 812 _8_valueOrError2 = _out0 813 if (_8_valueOrError2).IsFailure() { 814 output = (_8_valueOrError2).PropagateFailure() 815 return output 816 } 817 _2_recipientPublicKey = (_8_valueOrError2).Extract().(_dafny.Sequence) 818 _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 819 _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 820 } 821 goto Lmatch0 822 } 823 } 824 { 825 var _9_kmsPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey 826 _ = _9_kmsPrivateKeyToStaticPublicKey 827 { 828 if ((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Is_Some() { 829 var _10_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 830 _ = _10_valueOrError3 831 _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."))) 832 if (_10_valueOrError3).IsFailure() { 833 output = (_10_valueOrError3).PropagateFailure() 834 return output 835 } 836 _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Dtor_value().(_dafny.Sequence)) 837 var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 838 _ = _11_valueOrError4 839 var _out1 m_Wrappers.Result 840 _ = _out1 841 _out1 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((_3_senderPublicKey).Dtor_value().(_dafny.Sequence)), (input).Dtor_curveSpec(), (config).Dtor_crypto()) 842 _11_valueOrError4 = _out1 843 if (_11_valueOrError4).IsFailure() { 844 output = (_11_valueOrError4).PropagateFailure() 845 return output 846 } 847 var _12_compressedPKU _dafny.Sequence 848 _ = _12_compressedPKU 849 _12_compressedPKU = (_11_valueOrError4).Extract().(_dafny.Sequence) 850 _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_12_compressedPKU) 851 } else { 852 var _13_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 853 _ = _13_valueOrError5 854 _13_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) 855 if (_13_valueOrError5).IsFailure() { 856 output = (_13_valueOrError5).PropagateFailure() 857 return output 858 } 859 var _14___v6 _dafny.Tuple 860 _ = _14___v6 861 _14___v6 = (_13_valueOrError5).Extract().(_dafny.Tuple) 862 var _15_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} 863 _ = _15_valueOrError6 864 var _out2 m_Wrappers.Result 865 _ = _out2 866 _out2 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) 867 _15_valueOrError6 = _out2 868 if (_15_valueOrError6).IsFailure() { 869 output = (_15_valueOrError6).PropagateFailure() 870 return output 871 } 872 var _16_senderPublicKeyResponse _dafny.Sequence 873 _ = _16_senderPublicKeyResponse 874 _16_senderPublicKeyResponse = (_15_valueOrError6).Extract().(_dafny.Sequence) 875 var _17_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 876 _ = _17_valueOrError7 877 var _out3 m_Wrappers.Result 878 _ = _out3 879 _out3 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_16_senderPublicKeyResponse), (input).Dtor_curveSpec(), (config).Dtor_crypto()) 880 _17_valueOrError7 = _out3 881 if (_17_valueOrError7).IsFailure() { 882 output = (_17_valueOrError7).PropagateFailure() 883 return output 884 } 885 var _18_compressedPKU _dafny.Sequence 886 _ = _18_compressedPKU 887 _18_compressedPKU = (_17_valueOrError7).Extract().(_dafny.Sequence) 888 _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_16_senderPublicKeyResponse) 889 _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_18_compressedPKU) 890 } 891 var _19_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 892 _ = _19_valueOrError8 893 _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."))) 894 if (_19_valueOrError8).IsFailure() { 895 output = (_19_valueOrError8).PropagateFailure() 896 return output 897 } 898 _2_recipientPublicKey = (_9_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() 899 } 900 } 901 goto Lmatch0 902 } 903 Lmatch0: 904 var _20_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) 905 _ = _20_valueOrError9 906 var _out4 m_Wrappers.Result 907 _ = _out4 908 _out4 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _2_recipientPublicKey) 909 _20_valueOrError9 = _out4 910 if (_20_valueOrError9).IsFailure() { 911 output = (_20_valueOrError9).PropagateFailure() 912 return output 913 } 914 var _21___v7 bool 915 _ = _21___v7 916 _21___v7 = (_20_valueOrError9).Extract().(bool) 917 var _22_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 918 _ = _22_valueOrError10 919 var _out5 m_Wrappers.Result 920 _ = _out5 921 _out5 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_2_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) 922 _22_valueOrError10 = _out5 923 if (_22_valueOrError10).IsFailure() { 924 output = (_22_valueOrError10).PropagateFailure() 925 return output 926 } 927 var _23_compressedRecipientPublicKey _dafny.Sequence 928 _ = _23_compressedRecipientPublicKey 929 _23_compressedRecipientPublicKey = (_22_valueOrError10).Extract().(_dafny.Sequence) 930 var _24_senderKmsKeyId m_Wrappers.Option 931 _ = _24_senderKmsKeyId 932 if ((input).Dtor_KeyAgreementScheme()).Is_KmsPublicKeyDiscovery() { 933 _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_None_() 934 } else { 935 _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_Some_((((input).Dtor_KeyAgreementScheme()).Dtor_KmsPrivateKeyToStaticPublicKey()).Dtor_senderKmsIdentifier()) 936 } 937 if (_24_senderKmsKeyId).Is_Some() { 938 var _25_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 939 _ = _25_valueOrError11 940 _25_valueOrError11 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_24_senderKmsKeyId).Dtor_value().(_dafny.Sequence)) 941 if (_25_valueOrError11).IsFailure() { 942 output = (_25_valueOrError11).PropagateFailure() 943 return output 944 } 945 var _26___v8 _dafny.Tuple 946 _ = _26___v8 947 _26___v8 = (_25_valueOrError11).Extract().(_dafny.Tuple) 948 } 949 if (_3_senderPublicKey).Is_Some() { 950 var _27_valueOrError12 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) 951 _ = _27_valueOrError12 952 var _out6 m_Wrappers.Result 953 _ = _out6 954 _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_3_senderPublicKey).Dtor_value().(_dafny.Sequence)) 955 _27_valueOrError12 = _out6 956 if (_27_valueOrError12).IsFailure() { 957 output = (_27_valueOrError12).PropagateFailure() 958 return output 959 } 960 var _28___v9 bool 961 _ = _28___v9 962 _28___v9 = (_27_valueOrError12).Extract().(bool) 963 } 964 var _29_keyring *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring 965 _ = _29_keyring 966 var _nw0 *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring = m_AwsKmsEcdhKeyring.New_AwsKmsEcdhKeyring_() 967 _ = _nw0 968 _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()) 969 _29_keyring = _nw0 970 output = m_Wrappers.Companion_Result_.Create_Success_(_29_keyring) 971 return output 972 return output 973 } 974 func (_static *CompanionStruct_Default___) CreateMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput) m_Wrappers.Result { 975 var output m_Wrappers.Result = m_Wrappers.Result{} 976 _ = output 977 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 978 _ = _0_valueOrError0 979 _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"))) 980 if (_0_valueOrError0).IsFailure() { 981 output = (_0_valueOrError0).PropagateFailure() 982 return output 983 } 984 var _1_keyring *m_MultiKeyring.MultiKeyring 985 _ = _1_keyring 986 var _nw0 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() 987 _ = _nw0 988 _nw0.Ctor__((input).Dtor_generator(), (input).Dtor_childKeyrings()) 989 _1_keyring = _nw0 990 output = m_Wrappers.Companion_Result_.Create_Success_(_1_keyring) 991 return output 992 return output 993 } 994 func (_static *CompanionStruct_Default___) CreateRawAesKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput) m_Wrappers.Result { 995 var output m_Wrappers.Result = m_Wrappers.Result{} 996 _ = output 997 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 998 _ = _0_valueOrError0 999 _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`"))) 1000 if (_0_valueOrError0).IsFailure() { 1001 output = (_0_valueOrError0).PropagateFailure() 1002 return output 1003 } 1004 var _1_wrappingAlg m_AwsCryptographyPrimitivesTypes.AES__GCM 1005 _ = _1_wrappingAlg 1006 var _source0 m_AwsCryptographyMaterialProvidersTypes.AesWrappingAlg = (input).Dtor_wrappingAlg() 1007 _ = _source0 1008 { 1009 { 1010 if _source0.Is_ALG__AES128__GCM__IV12__TAG16() { 1011 _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(16), int32(16), int32(12)) 1012 goto Lmatch0 1013 } 1014 } 1015 { 1016 if _source0.Is_ALG__AES192__GCM__IV12__TAG16() { 1017 _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(24), int32(16), int32(12)) 1018 goto Lmatch0 1019 } 1020 } 1021 { 1022 _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(32), int32(16), int32(12)) 1023 } 1024 goto Lmatch0 1025 } 1026 Lmatch0: 1027 var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) 1028 _ = _2_valueOrError1 1029 _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) 1030 if (_2_valueOrError1).IsFailure() { 1031 output = (_2_valueOrError1).PropagateFailure() 1032 return output 1033 } 1034 var _3_namespaceAndName _dafny.Tuple 1035 _ = _3_namespaceAndName 1036 _3_namespaceAndName = (_2_valueOrError1).Extract().(_dafny.Tuple) 1037 var _let_tmp_rhs0 _dafny.Tuple = _3_namespaceAndName 1038 _ = _let_tmp_rhs0 1039 var _4_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) 1040 _ = _4_namespace 1041 var _5_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) 1042 _ = _5_name 1043 var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1044 _ = _6_valueOrError2 1045 _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"))) 1046 if (_6_valueOrError2).IsFailure() { 1047 output = (_6_valueOrError2).PropagateFailure() 1048 return output 1049 } 1050 var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1051 _ = _7_valueOrError3 1052 _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"))) 1053 if (_7_valueOrError3).IsFailure() { 1054 output = (_7_valueOrError3).PropagateFailure() 1055 return output 1056 } 1057 var _8_keyring *m_RawAESKeyring.RawAESKeyring 1058 _ = _8_keyring 1059 var _nw0 *m_RawAESKeyring.RawAESKeyring = m_RawAESKeyring.New_RawAESKeyring_() 1060 _ = _nw0 1061 _nw0.Ctor__(_4_namespace, _5_name, (input).Dtor_wrappingKey(), _1_wrappingAlg, (config).Dtor_crypto()) 1062 _8_keyring = _nw0 1063 output = m_Wrappers.Companion_Result_.Create_Success_(_8_keyring) 1064 return output 1065 return output 1066 } 1067 func (_static *CompanionStruct_Default___) CreateRawRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput) m_Wrappers.Result { 1068 var output m_Wrappers.Result = m_Wrappers.Result{} 1069 _ = output 1070 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1071 _ = _0_valueOrError0 1072 _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`"))) 1073 if (_0_valueOrError0).IsFailure() { 1074 output = (_0_valueOrError0).PropagateFailure() 1075 return output 1076 } 1077 var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1078 _ = _1_valueOrError1 1079 _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"))) 1080 if (_1_valueOrError1).IsFailure() { 1081 output = (_1_valueOrError1).PropagateFailure() 1082 return output 1083 } 1084 var _2_padding m_AwsCryptographyPrimitivesTypes.RSAPaddingMode 1085 _ = _2_padding 1086 var _source0 m_AwsCryptographyMaterialProvidersTypes.PaddingScheme = (input).Dtor_paddingScheme() 1087 _ = _source0 1088 { 1089 { 1090 if _source0.Is_PKCS1() { 1091 _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_PKCS1_() 1092 goto Lmatch0 1093 } 1094 } 1095 { 1096 if _source0.Is_OAEP__SHA1__MGF1() { 1097 _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA1_() 1098 goto Lmatch0 1099 } 1100 } 1101 { 1102 if _source0.Is_OAEP__SHA256__MGF1() { 1103 _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA256_() 1104 goto Lmatch0 1105 } 1106 } 1107 { 1108 if _source0.Is_OAEP__SHA384__MGF1() { 1109 _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA384_() 1110 goto Lmatch0 1111 } 1112 } 1113 { 1114 _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA512_() 1115 } 1116 goto Lmatch0 1117 } 1118 Lmatch0: 1119 var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) 1120 _ = _3_valueOrError2 1121 _3_valueOrError2 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) 1122 if (_3_valueOrError2).IsFailure() { 1123 output = (_3_valueOrError2).PropagateFailure() 1124 return output 1125 } 1126 var _4_namespaceAndName _dafny.Tuple 1127 _ = _4_namespaceAndName 1128 _4_namespaceAndName = (_3_valueOrError2).Extract().(_dafny.Tuple) 1129 var _let_tmp_rhs0 _dafny.Tuple = _4_namespaceAndName 1130 _ = _let_tmp_rhs0 1131 var _5_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) 1132 _ = _5_namespace 1133 var _6_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) 1134 _ = _6_name 1135 var _7_keyring *m_RawRSAKeyring.RawRSAKeyring 1136 _ = _7_keyring 1137 var _nw0 *m_RawRSAKeyring.RawRSAKeyring = m_RawRSAKeyring.New_RawRSAKeyring_() 1138 _ = _nw0 1139 _nw0.Ctor__(_5_namespace, _6_name, (input).Dtor_publicKey(), (input).Dtor_privateKey(), _2_padding, (config).Dtor_crypto()) 1140 _7_keyring = _nw0 1141 output = m_Wrappers.Companion_Result_.Create_Success_(_7_keyring) 1142 return output 1143 return output 1144 } 1145 func (_static *CompanionStruct_Default___) CreateRawEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput) m_Wrappers.Result { 1146 var output m_Wrappers.Result = m_Wrappers.Result{} 1147 _ = output 1148 var _0_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq 1149 _ = _0_recipientPublicKey 1150 var _1_senderPrivateKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 1151 _ = _1_senderPrivateKey 1152 var _2_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 1153 _ = _2_senderPublicKey 1154 var _3_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() 1155 _ = _3_compressedSenderPublicKey 1156 var _source0 m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() 1157 _ = _source0 1158 { 1159 { 1160 if _source0.Is_RawPrivateKeyToStaticPublicKey() { 1161 var _4_rawPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey 1162 _ = _4_rawPrivateKeyToStaticPublicKey 1163 { 1164 _0_recipientPublicKey = (_4_rawPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() 1165 _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_Some_((_4_rawPrivateKeyToStaticPublicKey).Dtor_senderStaticPrivateKey()) 1166 var _5_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 1167 _ = _5_valueOrError0 1168 var _out0 m_Wrappers.Result 1169 _ = _out0 1170 _out0 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_1_senderPrivateKey).Dtor_value().(_dafny.Sequence)), (config).Dtor_crypto()) 1171 _5_valueOrError0 = _out0 1172 if (_5_valueOrError0).IsFailure() { 1173 output = (_5_valueOrError0).PropagateFailure() 1174 return output 1175 } 1176 var _6_reproducedPublicKey _dafny.Sequence 1177 _ = _6_reproducedPublicKey 1178 _6_reproducedPublicKey = (_5_valueOrError0).Extract().(_dafny.Sequence) 1179 var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) 1180 _ = _7_valueOrError1 1181 var _out1 m_Wrappers.Result 1182 _ = _out1 1183 _out1 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _6_reproducedPublicKey) 1184 _7_valueOrError1 = _out1 1185 if (_7_valueOrError1).IsFailure() { 1186 output = (_7_valueOrError1).PropagateFailure() 1187 return output 1188 } 1189 var _8___v10 bool 1190 _ = _8___v10 1191 _8___v10 = (_7_valueOrError1).Extract().(bool) 1192 _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_6_reproducedPublicKey) 1193 var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 1194 _ = _9_valueOrError2 1195 var _out2 m_Wrappers.Result 1196 _ = _out2 1197 _out2 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_6_reproducedPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) 1198 _9_valueOrError2 = _out2 1199 if (_9_valueOrError2).IsFailure() { 1200 output = (_9_valueOrError2).PropagateFailure() 1201 return output 1202 } 1203 var _10_compressedSenderPublicKey_q _dafny.Sequence 1204 _ = _10_compressedSenderPublicKey_q 1205 _10_compressedSenderPublicKey_q = (_9_valueOrError2).Extract().(_dafny.Sequence) 1206 _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_10_compressedSenderPublicKey_q) 1207 } 1208 goto Lmatch0 1209 } 1210 } 1211 { 1212 if _source0.Is_EphemeralPrivateKeyToStaticPublicKey() { 1213 var _11_ephemeralPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey).EphemeralPrivateKeyToStaticPublicKey 1214 _ = _11_ephemeralPrivateKeyToStaticPublicKey 1215 { 1216 _0_recipientPublicKey = (_11_ephemeralPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() 1217 _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() 1218 _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 1219 _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 1220 } 1221 goto Lmatch0 1222 } 1223 } 1224 { 1225 var _12_publicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery 1226 _ = _12_publicKeyDiscovery 1227 { 1228 var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 1229 _ = _13_valueOrError3 1230 var _out3 m_Wrappers.Result 1231 _ = _out3 1232 _out3 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_12_publicKeyDiscovery).Dtor_recipientStaticPrivateKey()), (config).Dtor_crypto()) 1233 _13_valueOrError3 = _out3 1234 if (_13_valueOrError3).IsFailure() { 1235 output = (_13_valueOrError3).PropagateFailure() 1236 return output 1237 } 1238 var _14_reproducedPublicKey _dafny.Sequence 1239 _ = _14_reproducedPublicKey 1240 _14_reproducedPublicKey = (_13_valueOrError3).Extract().(_dafny.Sequence) 1241 _0_recipientPublicKey = _14_reproducedPublicKey 1242 _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() 1243 _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 1244 _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() 1245 } 1246 } 1247 goto Lmatch0 1248 } 1249 Lmatch0: 1250 var _15_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 1251 _ = _15_valueOrError4 1252 var _out4 m_Wrappers.Result 1253 _ = _out4 1254 _out4 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_0_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) 1255 _15_valueOrError4 = _out4 1256 if (_15_valueOrError4).IsFailure() { 1257 output = (_15_valueOrError4).PropagateFailure() 1258 return output 1259 } 1260 var _16_compressedRecipientPublicKey _dafny.Sequence 1261 _ = _16_compressedRecipientPublicKey 1262 _16_compressedRecipientPublicKey = (_15_valueOrError4).Extract().(_dafny.Sequence) 1263 var _17_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) 1264 _ = _17_valueOrError5 1265 var _out5 m_Wrappers.Result 1266 _ = _out5 1267 _out5 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _0_recipientPublicKey) 1268 _17_valueOrError5 = _out5 1269 if (_17_valueOrError5).IsFailure() { 1270 output = (_17_valueOrError5).PropagateFailure() 1271 return output 1272 } 1273 var _18___v11 bool 1274 _ = _18___v11 1275 _18___v11 = (_17_valueOrError5).Extract().(bool) 1276 if (_2_senderPublicKey).Is_Some() { 1277 var _19_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) 1278 _ = _19_valueOrError6 1279 var _out6 m_Wrappers.Result 1280 _ = _out6 1281 _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_2_senderPublicKey).Dtor_value().(_dafny.Sequence)) 1282 _19_valueOrError6 = _out6 1283 if (_19_valueOrError6).IsFailure() { 1284 output = (_19_valueOrError6).PropagateFailure() 1285 return output 1286 } 1287 var _20___v12 bool 1288 _ = _20___v12 1289 _20___v12 = (_19_valueOrError6).Extract().(bool) 1290 var _21_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1291 _ = _21_valueOrError7 1292 _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"))) 1293 if (_21_valueOrError7).IsFailure() { 1294 output = (_21_valueOrError7).PropagateFailure() 1295 return output 1296 } 1297 } 1298 var _22_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1299 _ = _22_valueOrError8 1300 _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"))) 1301 if (_22_valueOrError8).IsFailure() { 1302 output = (_22_valueOrError8).PropagateFailure() 1303 return output 1304 } 1305 var _23_keyring *m_RawECDHKeyring.RawEcdhKeyring 1306 _ = _23_keyring 1307 var _nw0 *m_RawECDHKeyring.RawEcdhKeyring = m_RawECDHKeyring.New_RawEcdhKeyring_() 1308 _ = _nw0 1309 _nw0.Ctor__((input).Dtor_KeyAgreementScheme(), (input).Dtor_curveSpec(), _1_senderPrivateKey, _2_senderPublicKey, _0_recipientPublicKey, _3_compressedSenderPublicKey, _16_compressedRecipientPublicKey, (config).Dtor_crypto()) 1310 _23_keyring = _nw0 1311 output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyring) 1312 return output 1313 return output 1314 } 1315 func (_static *CompanionStruct_Default___) CreateAwsKmsRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput) m_Wrappers.Result { 1316 var output m_Wrappers.Result = m_Wrappers.Result{} 1317 _ = output 1318 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1319 _ = _0_valueOrError0 1320 _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"))) 1321 if (_0_valueOrError0).IsFailure() { 1322 output = (_0_valueOrError0).PropagateFailure() 1323 return output 1324 } 1325 var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1326 _ = _1_valueOrError1 1327 _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"))) 1328 if (_1_valueOrError1).IsFailure() { 1329 output = (_1_valueOrError1).PropagateFailure() 1330 return output 1331 } 1332 var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1333 _ = _2_valueOrError2 1334 _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"))) 1335 if (_2_valueOrError2).IsFailure() { 1336 output = (_2_valueOrError2).PropagateFailure() 1337 return output 1338 } 1339 if ((input).Dtor_publicKey()).Is_Some() { 1340 var _3_lengthOutputRes m_Wrappers.Result 1341 _ = _3_lengthOutputRes 1342 _3_lengthOutputRes = ((config).Dtor_crypto()).GetRSAKeyModulusLength(m_AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthInput_.Create_GetRSAKeyModulusLengthInput_(((input).Dtor_publicKey()).Dtor_value().(_dafny.Sequence))) 1343 var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} 1344 _ = _4_valueOrError3 1345 _4_valueOrError3 = (_3_lengthOutputRes).MapFailure(func(coer137 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 1346 return func(arg138 interface{}) interface{} { 1347 return coer137(arg138.(m_AwsCryptographyPrimitivesTypes.Error)) 1348 } 1349 }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { 1350 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) 1351 })) 1352 if (_4_valueOrError3).IsFailure() { 1353 output = (_4_valueOrError3).PropagateFailure() 1354 return output 1355 } 1356 var _6_lengthOutput m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput 1357 _ = _6_lengthOutput 1358 _6_lengthOutput = (_4_valueOrError3).Extract().(m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput) 1359 var _7_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1360 _ = _7_valueOrError4 1361 _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"))) 1362 if (_7_valueOrError4).IsFailure() { 1363 output = (_7_valueOrError4).PropagateFailure() 1364 return output 1365 } 1366 } 1367 var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) 1368 _ = _8_valueOrError5 1369 _8_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) 1370 if (_8_valueOrError5).IsFailure() { 1371 output = (_8_valueOrError5).PropagateFailure() 1372 return output 1373 } 1374 var _9___v13 _dafny.Tuple 1375 _ = _9___v13 1376 _9___v13 = (_8_valueOrError5).Extract().(_dafny.Tuple) 1377 var _10_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) 1378 _ = _10_valueOrError6 1379 _10_valueOrError6 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) 1380 if (_10_valueOrError6).IsFailure() { 1381 output = (_10_valueOrError6).PropagateFailure() 1382 return output 1383 } 1384 var _11_grantTokens _dafny.Sequence 1385 _ = _11_grantTokens 1386 _11_grantTokens = (_10_valueOrError6).Extract().(_dafny.Sequence) 1387 var _12_keyring *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring 1388 _ = _12_keyring 1389 var _nw0 *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring = m_AwsKmsRsaKeyring.New_AwsKmsRsaKeyring_() 1390 _ = _nw0 1391 _nw0.Ctor__((input).Dtor_publicKey(), (input).Dtor_kmsKeyId(), (input).Dtor_encryptionAlgorithm(), (input).Dtor_kmsClient(), (config).Dtor_crypto(), _11_grantTokens) 1392 _12_keyring = _nw0 1393 output = m_Wrappers.Companion_Result_.Create_Success_(_12_keyring) 1394 return output 1395 return output 1396 } 1397 func (_static *CompanionStruct_Default___) CreateDefaultCryptographicMaterialsManager(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result { 1398 var output m_Wrappers.Result = m_Wrappers.Result{} 1399 _ = output 1400 var _0_cmm *m_DefaultCMM.DefaultCMM 1401 _ = _0_cmm 1402 var _nw0 *m_DefaultCMM.DefaultCMM = m_DefaultCMM.New_DefaultCMM_() 1403 _ = _nw0 1404 _nw0.OfKeyring((input).Dtor_keyring(), (config).Dtor_crypto()) 1405 _0_cmm = _nw0 1406 output = m_Wrappers.Companion_Result_.Create_Success_(_0_cmm) 1407 return output 1408 return output 1409 } 1410 func (_static *CompanionStruct_Default___) CmpError(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 1411 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) 1412 } 1413 func (_static *CompanionStruct_Default___) CreateRequiredEncryptionContextCMM(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result { 1414 var output m_Wrappers.Result = m_Wrappers.Result{} 1415 _ = output 1416 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1417 _ = _0_valueOrError0 1418 _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."))) 1419 if (_0_valueOrError0).IsFailure() { 1420 output = (_0_valueOrError0).PropagateFailure() 1421 return output 1422 } 1423 var _1_keySet _dafny.Set 1424 _ = _1_keySet 1425 _1_keySet = func() _dafny.Set { 1426 var _coll0 = _dafny.NewBuilder() 1427 _ = _coll0 1428 for _iter10 := _dafny.Iterate(((input).Dtor_requiredEncryptionContextKeys()).Elements()); ; { 1429 _compr_0, _ok10 := _iter10() 1430 if !_ok10 { 1431 break 1432 } 1433 var _2_k _dafny.Sequence 1434 _2_k = interface{}(_compr_0).(_dafny.Sequence) 1435 if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_2_k) { 1436 if _dafny.Companion_Sequence_.Contains((input).Dtor_requiredEncryptionContextKeys(), _2_k) { 1437 _coll0.Add(_2_k) 1438 } 1439 } 1440 } 1441 return _coll0.ToSet() 1442 }() 1443 var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1444 _ = _3_valueOrError1 1445 _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_1_keySet).Cardinality()).Sign() == 1, Companion_Default___.CmpError(_dafny.SeqOfString("RequiredEncryptionContextCMM needs at least one requiredEncryptionContextKey."))) 1446 if (_3_valueOrError1).IsFailure() { 1447 output = (_3_valueOrError1).PropagateFailure() 1448 return output 1449 } 1450 var _4_cmm *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM 1451 _ = _4_cmm 1452 var _nw0 *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM = m_RequiredEncryptionContextCMM.New_RequiredEncryptionContextCMM_() 1453 _ = _nw0 1454 _nw0.Ctor__(m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_(((input).Dtor_underlyingCMM()).Dtor_value()), _1_keySet) 1455 _4_cmm = _nw0 1456 output = m_Wrappers.Companion_Result_.Create_Success_(_4_cmm) 1457 return output 1458 return output 1459 } 1460 func (_static *CompanionStruct_Default___) CreateCryptographicMaterialsCache(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result { 1461 var output m_Wrappers.Result = m_Wrappers.Result{} 1462 _ = output 1463 var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = (input).Dtor_cache() 1464 _ = _source0 1465 { 1466 { 1467 if _source0.Is_Default() { 1468 var _0_c m_AwsCryptographyMaterialProvidersTypes.DefaultCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Default).Default 1469 _ = _0_c 1470 var _1_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache 1471 _ = _1_cache 1472 var _2_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = m_StormTracker.Companion_Default___.DefaultStorm() 1473 _ = _2_dt__update__tmp_h0 1474 var _3_dt__update_hentryCapacity_h0 int32 = (_0_c).Dtor_entryCapacity() 1475 _ = _3_dt__update_hentryCapacity_h0 1476 _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()) 1477 var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1478 _ = _4_valueOrError0 1479 _4_valueOrError0 = m_StormTracker.Companion_Default___.CheckSettings(_1_cache) 1480 if (_4_valueOrError0).IsFailure() { 1481 output = (_4_valueOrError0).PropagateFailure() 1482 return output 1483 } 1484 var _5_cmc *m_StormTracker.StormTracker 1485 _ = _5_cmc 1486 var _nw0 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() 1487 _ = _nw0 1488 _nw0.Ctor__(_1_cache) 1489 _5_cmc = _nw0 1490 var _6_synCmc *m_StormTrackingCMC.StormTrackingCMC 1491 _ = _6_synCmc 1492 var _nw1 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_5_cmc) 1493 _ = _nw1 1494 _6_synCmc = _nw1 1495 output = m_Wrappers.Companion_Result_.Create_Success_(_6_synCmc) 1496 return output 1497 goto Lmatch0 1498 } 1499 } 1500 { 1501 if _source0.Is_No() { 1502 var _7_cmc *m_LocalCMC.LocalCMC 1503 _ = _7_cmc 1504 var _nw2 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() 1505 _ = _nw2 1506 _nw2.Ctor__(_dafny.Zero, _dafny.One) 1507 _7_cmc = _nw2 1508 output = m_Wrappers.Companion_Result_.Create_Success_(_7_cmc) 1509 return output 1510 goto Lmatch0 1511 } 1512 } 1513 { 1514 if _source0.Is_SingleThreaded() { 1515 var _8_c m_AwsCryptographyMaterialProvidersTypes.SingleThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_SingleThreaded).SingleThreaded 1516 _ = _8_c 1517 var _9_cmc *m_LocalCMC.LocalCMC 1518 _ = _9_cmc 1519 var _nw3 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() 1520 _ = _nw3 1521 _nw3.Ctor__(_dafny.IntOfInt32((_8_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_8_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) 1522 _9_cmc = _nw3 1523 output = m_Wrappers.Companion_Result_.Create_Success_(_9_cmc) 1524 return output 1525 goto Lmatch0 1526 } 1527 } 1528 { 1529 if _source0.Is_MultiThreaded() { 1530 var _10_c m_AwsCryptographyMaterialProvidersTypes.MultiThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_MultiThreaded).MultiThreaded 1531 _ = _10_c 1532 var _11_cmc *m_LocalCMC.LocalCMC 1533 _ = _11_cmc 1534 var _nw4 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() 1535 _ = _nw4 1536 _nw4.Ctor__(_dafny.IntOfInt32((_10_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_10_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) 1537 _11_cmc = _nw4 1538 var _12_synCmc *m_SynchronizedLocalCMC.SynchronizedLocalCMC 1539 _ = _12_synCmc 1540 var _nw5 *m_SynchronizedLocalCMC.SynchronizedLocalCMC = m_SynchronizedLocalCMC.New_SynchronizedLocalCMC_(_11_cmc) 1541 _ = _nw5 1542 _12_synCmc = _nw5 1543 output = m_Wrappers.Companion_Result_.Create_Success_(_12_synCmc) 1544 return output 1545 goto Lmatch0 1546 } 1547 } 1548 { 1549 if _source0.Is_StormTracking() { 1550 var _13_c m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_StormTracking).StormTracking 1551 _ = _13_c 1552 var _14_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache 1553 _ = _14_cache 1554 var _15_dt__update__tmp_h1 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _13_c 1555 _ = _15_dt__update__tmp_h1 1556 var _16_dt__update_hentryPruningTailSize_h0 m_Wrappers.Option = Companion_Default___.OptionalCountingNumber((_13_c).Dtor_entryPruningTailSize()) 1557 _ = _16_dt__update_hentryPruningTailSize_h0 1558 _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()) 1559 var _17_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 1560 _ = _17_valueOrError1 1561 _17_valueOrError1 = m_StormTracker.Companion_Default___.CheckSettings(_14_cache) 1562 if (_17_valueOrError1).IsFailure() { 1563 output = (_17_valueOrError1).PropagateFailure() 1564 return output 1565 } 1566 var _18_cmc *m_StormTracker.StormTracker 1567 _ = _18_cmc 1568 var _nw6 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() 1569 _ = _nw6 1570 _nw6.Ctor__(_14_cache) 1571 _18_cmc = _nw6 1572 var _19_synCmc *m_StormTrackingCMC.StormTrackingCMC 1573 _ = _19_synCmc 1574 var _nw7 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_18_cmc) 1575 _ = _nw7 1576 _19_synCmc = _nw7 1577 output = m_Wrappers.Companion_Result_.Create_Success_(_19_synCmc) 1578 return output 1579 goto Lmatch0 1580 } 1581 } 1582 { 1583 var _20_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared 1584 _ = _20_c 1585 var _21_exception m_AwsCryptographyMaterialProvidersTypes.Error 1586 _ = _21_exception 1587 _21_exception = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("CreateCryptographicMaterialsCache should never be called with Shared CacheType.")) 1588 output = m_Wrappers.Companion_Result_.Create_Failure_(_21_exception) 1589 return output 1590 } 1591 goto Lmatch0 1592 } 1593 Lmatch0: 1594 return output 1595 } 1596 func (_static *CompanionStruct_Default___) OptionalCountingNumber(c m_Wrappers.Option) m_Wrappers.Option { 1597 if ((c).Is_Some()) && (((c).Dtor_value().(int32)) <= (int32(0))) { 1598 return m_Wrappers.Companion_Option_.Create_None_() 1599 } else { 1600 return c 1601 } 1602 } 1603 func (_static *CompanionStruct_Default___) CreateDefaultClientSupplier(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput) m_Wrappers.Result { 1604 var output m_Wrappers.Result = m_Wrappers.Result{} 1605 _ = output 1606 var _0_clientSupplier *m_DefaultClientSupplier.DefaultClientSupplier 1607 _ = _0_clientSupplier 1608 var _nw0 *m_DefaultClientSupplier.DefaultClientSupplier = m_DefaultClientSupplier.New_DefaultClientSupplier_() 1609 _ = _nw0 1610 _nw0.Ctor__() 1611 _0_clientSupplier = _nw0 1612 output = m_Wrappers.Companion_Result_.Create_Success_(_0_clientSupplier) 1613 return output 1614 return output 1615 } 1616 func (_static *CompanionStruct_Default___) InitializeEncryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) m_Wrappers.Result { 1617 return m_Materials.Companion_Default___.InitializeEncryptionMaterials(input) 1618 } 1619 func (_static *CompanionStruct_Default___) InitializeDecryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) m_Wrappers.Result { 1620 return m_Materials.Companion_Default___.InitializeDecryptionMaterials(input) 1621 } 1622 func (_static *CompanionStruct_Default___) ValidEncryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result { 1623 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"))) 1624 _ = _0_valueOrError0 1625 if (_0_valueOrError0).IsFailure() { 1626 return (_0_valueOrError0).PropagateFailure() 1627 } else { 1628 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1629 } 1630 } 1631 func (_static *CompanionStruct_Default___) ValidDecryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result { 1632 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"))) 1633 _ = _0_valueOrError0 1634 if (_0_valueOrError0).IsFailure() { 1635 return (_0_valueOrError0).PropagateFailure() 1636 } else { 1637 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1638 } 1639 } 1640 func (_static *CompanionStruct_Default___) EncryptionMaterialsHasPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) m_Wrappers.Result { 1641 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"))) 1642 _ = _0_valueOrError0 1643 if (_0_valueOrError0).IsFailure() { 1644 return (_0_valueOrError0).PropagateFailure() 1645 } else { 1646 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1647 } 1648 } 1649 func (_static *CompanionStruct_Default___) DecryptionMaterialsWithPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) m_Wrappers.Result { 1650 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"))) 1651 _ = _0_valueOrError0 1652 if (_0_valueOrError0).IsFailure() { 1653 return (_0_valueOrError0).PropagateFailure() 1654 } else { 1655 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1656 } 1657 } 1658 func (_static *CompanionStruct_Default___) GetAlgorithmSuiteInfo(config Config, input _dafny.Sequence) m_Wrappers.Result { 1659 return m_AlgorithmSuites.Companion_Default___.GetAlgorithmSuiteInfo(input) 1660 } 1661 func (_static *CompanionStruct_Default___) ValidAlgorithmSuiteInfo(config Config, input m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { 1662 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"))) 1663 _ = _0_valueOrError0 1664 if (_0_valueOrError0).IsFailure() { 1665 return (_0_valueOrError0).PropagateFailure() 1666 } else { 1667 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1668 } 1669 } 1670 func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnEncrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result { 1671 var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnEncrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) 1672 _ = _0_valueOrError0 1673 if (_0_valueOrError0).IsFailure() { 1674 return (_0_valueOrError0).PropagateFailure() 1675 } else { 1676 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1677 } 1678 } 1679 func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnDecrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result { 1680 var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) 1681 _ = _0_valueOrError0 1682 if (_0_valueOrError0).IsFailure() { 1683 return (_0_valueOrError0).PropagateFailure() 1684 } else { 1685 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 1686 } 1687 } 1688 1689 // End of class Default__ 1690 1691 // Definition of datatype Config 1692 type Config struct { 1693 Data_Config_ 1694 } 1695 1696 func (_this Config) Get_() Data_Config_ { 1697 return _this.Data_Config_ 1698 } 1699 1700 type Data_Config_ interface { 1701 isConfig() 1702 } 1703 1704 type CompanionStruct_Config_ struct { 1705 } 1706 1707 var Companion_Config_ = CompanionStruct_Config_{} 1708 1709 type Config_Config struct { 1710 Crypto *m_AtomicPrimitives.AtomicPrimitivesClient 1711 } 1712 1713 func (Config_Config) isConfig() {} 1714 1715 func (CompanionStruct_Config_) Create_Config_(Crypto *m_AtomicPrimitives.AtomicPrimitivesClient) Config { 1716 return Config{Config_Config{Crypto}} 1717 } 1718 1719 func (_this Config) Is_Config() bool { 1720 _, ok := _this.Get_().(Config_Config) 1721 return ok 1722 } 1723 1724 func (CompanionStruct_Config_) Default() Config { 1725 return Companion_Config_.Create_Config_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil)) 1726 } 1727 1728 func (_this Config) Dtor_crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { 1729 return _this.Get_().(Config_Config).Crypto 1730 } 1731 1732 func (_this Config) String() string { 1733 switch data := _this.Get_().(type) { 1734 case nil: 1735 return "null" 1736 case Config_Config: 1737 { 1738 return "AwsCryptographyMaterialProvidersOperations.Config.Config" + "(" + _dafny.String(data.Crypto) + ")" 1739 } 1740 default: 1741 { 1742 return "<unexpected>" 1743 } 1744 } 1745 } 1746 1747 func (_this Config) Equals(other Config) bool { 1748 switch data1 := _this.Get_().(type) { 1749 case Config_Config: 1750 { 1751 data2, ok := other.Get_().(Config_Config) 1752 return ok && data1.Crypto == data2.Crypto 1753 } 1754 default: 1755 { 1756 return false // unexpected 1757 } 1758 } 1759 } 1760 1761 func (_this Config) EqualsGeneric(other interface{}) bool { 1762 typed, ok := other.(Config) 1763 return ok && _this.Equals(typed) 1764 } 1765 1766 func Type_Config_() _dafny.TypeDescriptor { 1767 return type_Config_{} 1768 } 1769 1770 type type_Config_ struct { 1771 } 1772 1773 func (_this type_Config_) Default() interface{} { 1774 return Companion_Config_.Default() 1775 } 1776 1777 func (_this type_Config_) String() string { 1778 return "AwsCryptographyMaterialProvidersOperations.Config" 1779 } 1780 func (_this Config) ParentTraits_() []*_dafny.TraitID { 1781 return [](*_dafny.TraitID){} 1782 } 1783 1784 var _ _dafny.TraitOffspring = Config{} 1785 1786 // End of datatype Config