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