github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/KeyStore/KeyStore.go (about) 1 // Package KeyStore 2 // Dafny module KeyStore compiled into Go 3 4 package KeyStore 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_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" 14 m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" 15 m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" 16 m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 17 m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" 18 m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" 19 m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" 20 m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" 21 m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" 22 m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" 23 m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" 24 m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" 25 m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" 26 m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" 27 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 28 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 29 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 30 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 31 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 32 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 33 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 34 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 35 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 36 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 37 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 38 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 39 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 40 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 41 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 42 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 43 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 44 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 45 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 46 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 47 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 48 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 49 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 50 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 51 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 52 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 53 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 54 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 55 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 56 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 57 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 58 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 59 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 60 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 61 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 62 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 63 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 64 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 65 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 66 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 67 m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" 68 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 69 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 70 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 71 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 72 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 73 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 74 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 75 ) 76 77 var _ = os.Args 78 var _ _dafny.Dummy__ 79 var _ m__System.Dummy__ 80 var _ m_Wrappers.Dummy__ 81 var _ m_BoundedInts.Dummy__ 82 var _ m_StandardLibrary_UInt.Dummy__ 83 var _ m_StandardLibrary_Sequence.Dummy__ 84 var _ m_StandardLibrary_String.Dummy__ 85 var _ m_StandardLibrary.Dummy__ 86 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 87 var _ m_Random.Dummy__ 88 var _ m_Digest.Dummy__ 89 var _ m_WrappedHMAC.Dummy__ 90 var _ m_HKDF.Dummy__ 91 var _ m_WrappedHKDF.Dummy__ 92 var _ m_KdfCtr.Dummy__ 93 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 94 var _ m_AtomicPrimitives.Dummy__ 95 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 96 var _ m_ComAmazonawsKmsTypes.Dummy__ 97 var _ m_Relations.Dummy__ 98 var _ m_Seq_MergeSort.Dummy__ 99 var _ m__Math.Dummy__ 100 var _ m_Seq.Dummy__ 101 var _ m__Unicode.Dummy__ 102 var _ m_Functions.Dummy__ 103 var _ m_Utf8EncodingForm.Dummy__ 104 var _ m_Utf16EncodingForm.Dummy__ 105 var _ m_UnicodeStrings.Dummy__ 106 var _ m_FileIO.Dummy__ 107 var _ m_GeneralInternals.Dummy__ 108 var _ m_MulInternalsNonlinear.Dummy__ 109 var _ m_MulInternals.Dummy__ 110 var _ m_Mul.Dummy__ 111 var _ m_ModInternalsNonlinear.Dummy__ 112 var _ m_DivInternalsNonlinear.Dummy__ 113 var _ m_ModInternals.Dummy__ 114 var _ m_DivInternals.Dummy__ 115 var _ m_DivMod.Dummy__ 116 var _ m_Power.Dummy__ 117 var _ m_Logarithm.Dummy__ 118 var _ m_StandardLibraryInterop.Dummy__ 119 var _ m_Streams.Dummy__ 120 var _ m_Sorting.Dummy__ 121 var _ m_HexStrings.Dummy__ 122 var _ m_GetOpt.Dummy__ 123 var _ m_FloatCompare.Dummy__ 124 var _ m_Base64.Dummy__ 125 var _ m_Base64Lemmas.Dummy__ 126 var _ m_Actions.Dummy__ 127 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 128 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 129 var _ m_AwsArnParsing.Dummy__ 130 var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ 131 var _ m_AwsKmsUtils.Dummy__ 132 var _ m_KeyStoreErrorMessages.Dummy__ 133 var _ m_KmsArn.Dummy__ 134 var _ m_Structure.Dummy__ 135 var _ m_KMSKeystoreOperations.Dummy__ 136 var _ m_DDBKeystoreOperations.Dummy__ 137 var _ m_CreateKeys.Dummy__ 138 var _ m_CreateKeyStoreTable.Dummy__ 139 var _ m_GetKeys.Dummy__ 140 var _ m_AwsCryptographyKeyStoreOperations.Dummy__ 141 var _ m_Com_Amazonaws_Kms.Dummy__ 142 var _ m_Com_Amazonaws_Dynamodb.Dummy__ 143 144 type Dummy__ struct{} 145 146 // Definition of class Default__ 147 type Default__ struct { 148 dummy byte 149 } 150 151 func New_Default___() *Default__ { 152 _this := Default__{} 153 154 return &_this 155 } 156 157 type CompanionStruct_Default___ struct { 158 } 159 160 var Companion_Default___ = CompanionStruct_Default___{} 161 162 func (_this *Default__) Equals(other *Default__) bool { 163 return _this == other 164 } 165 166 func (_this *Default__) EqualsGeneric(x interface{}) bool { 167 other, ok := x.(*Default__) 168 return ok && _this.Equals(other) 169 } 170 171 func (*Default__) String() string { 172 return "KeyStore.Default__" 173 } 174 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 175 return [](*_dafny.TraitID){} 176 } 177 178 var _ _dafny.TraitOffspring = &Default__{} 179 180 func (_static *CompanionStruct_Default___) DefaultKeyStoreConfig() m_AwsCryptographyKeyStoreTypes.KeyStoreConfig { 181 return m_AwsCryptographyKeyStoreTypes.Companion_KeyStoreConfig_.Create_KeyStoreConfig_(_dafny.SeqOfString("None"), m_AwsCryptographyKeyStoreTypes.Companion_KMSConfiguration_.Create_kmsKeyArn_(_dafny.SeqOfString("arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab")), _dafny.SeqOfString("None"), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) 182 } 183 func (_static *CompanionStruct_Default___) KeyStore(config m_AwsCryptographyKeyStoreTypes.KeyStoreConfig) m_Wrappers.Result { 184 var res m_Wrappers.Result = m_Wrappers.Result{} 185 _ = res 186 var _0_kmsClient m_ComAmazonawsKmsTypes.IKMSClient = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) 187 _ = _0_kmsClient 188 var _1_ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient = (m_ComAmazonawsDynamodbTypes.IDynamoDBClient)(nil) 189 _ = _1_ddbClient 190 var _2_inferredRegion m_Wrappers.Option 191 _ = _2_inferredRegion 192 _2_inferredRegion = m_Wrappers.Companion_Option_.Create_None_() 193 if m_KMSKeystoreOperations.Companion_Default___.HasKeyId((config).Dtor_kmsConfiguration()) { 194 var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} 195 _ = _3_valueOrError0 196 _3_valueOrError0 = m_KmsArn.Companion_Default___.IsValidKeyArn(m_KMSKeystoreOperations.Companion_Default___.GetKeyId((config).Dtor_kmsConfiguration())) 197 if (_3_valueOrError0).IsFailure() { 198 res = (_3_valueOrError0).PropagateFailure() 199 return res 200 } 201 var _4_parsedArn m_AwsArnParsing.AwsArn 202 _ = _4_parsedArn 203 _4_parsedArn = (_3_valueOrError0).Extract().(m_AwsArnParsing.AwsArn) 204 _2_inferredRegion = m_Wrappers.Companion_Option_.Create_Some_((_4_parsedArn).Dtor_region()) 205 } else if ((config).Dtor_kmsConfiguration()).Is_mrDiscovery() { 206 _2_inferredRegion = m_Wrappers.Companion_Option_.Create_Some_((((config).Dtor_kmsConfiguration()).Dtor_mrDiscovery()).Dtor_region()) 207 } 208 var _5_grantTokens m_Wrappers.Result 209 _ = _5_grantTokens 210 _5_grantTokens = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((config).Dtor_grantTokens()) 211 var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 212 _ = _6_valueOrError1 213 _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((true) && ((_5_grantTokens).Is_Success()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Grant Tokens passed to Key Store configuration are invalid."))) 214 if (_6_valueOrError1).IsFailure() { 215 res = (_6_valueOrError1).PropagateFailure() 216 return res 217 } 218 var _7_keyStoreId _dafny.Sequence = _dafny.EmptySeq.SetString() 219 _ = _7_keyStoreId 220 if ((config).Dtor_id()).Is_Some() { 221 _7_keyStoreId = ((config).Dtor_id()).Dtor_value().(_dafny.Sequence) 222 } else { 223 var _8_maybeUuid m_Wrappers.Result 224 _ = _8_maybeUuid 225 var _out0 m_Wrappers.Result 226 _ = _out0 227 _out0 = m_UUID.GenerateUUID() 228 _8_maybeUuid = _out0 229 var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) 230 _ = _9_valueOrError2 231 _9_valueOrError2 = (_8_maybeUuid).MapFailure(func(coer24 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 232 return func(arg24 interface{}) interface{} { 233 return coer24(arg24.(_dafny.Sequence)) 234 } 235 }(func(_10_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { 236 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_10_e) 237 })) 238 if (_9_valueOrError2).IsFailure() { 239 res = (_9_valueOrError2).PropagateFailure() 240 return res 241 } 242 var _11_uuid _dafny.Sequence 243 _ = _11_uuid 244 _11_uuid = (_9_valueOrError2).Extract().(_dafny.Sequence) 245 _7_keyStoreId = _11_uuid 246 } 247 if ((config).Dtor_kmsClient()).Is_Some() { 248 _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_(((config).Dtor_kmsClient()).Dtor_value()) 249 } else if (((config).Dtor_kmsClient()).Is_None()) && ((_2_inferredRegion).Is_Some()) { 250 var _12_maybeKmsClient m_Wrappers.Result 251 _ = _12_maybeKmsClient 252 var _out1 m_Wrappers.Result 253 _ = _out1 254 _out1 = m_Com_Amazonaws_Kms.Companion_Default___.KMSClientForRegion((_2_inferredRegion).Dtor_value().(_dafny.Sequence)) 255 _12_maybeKmsClient = _out1 256 var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} 257 _ = _13_valueOrError3 258 _13_valueOrError3 = (_12_maybeKmsClient).MapFailure(func(coer25 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 259 return func(arg25 interface{}) interface{} { 260 return coer25(arg25.(m_ComAmazonawsKmsTypes.Error)) 261 } 262 }(func(_14_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { 263 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_14_e) 264 })) 265 if (_13_valueOrError3).IsFailure() { 266 res = (_13_valueOrError3).PropagateFailure() 267 return res 268 } 269 _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_13_valueOrError3).Extract()) 270 } else { 271 var _15_maybeKmsClient m_Wrappers.Result 272 _ = _15_maybeKmsClient 273 var _out2 m_Wrappers.Result 274 _ = _out2 275 _out2 = m_Com_Amazonaws_Kms.Companion_Default___.KMSClient() 276 _15_maybeKmsClient = _out2 277 var _16_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} 278 _ = _16_valueOrError4 279 _16_valueOrError4 = (_15_maybeKmsClient).MapFailure(func(coer26 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 280 return func(arg26 interface{}) interface{} { 281 return coer26(arg26.(m_ComAmazonawsKmsTypes.Error)) 282 } 283 }(func(_17_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { 284 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_17_e) 285 })) 286 if (_16_valueOrError4).IsFailure() { 287 res = (_16_valueOrError4).PropagateFailure() 288 return res 289 } 290 _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_16_valueOrError4).Extract()) 291 } 292 if ((config).Dtor_ddbClient()).Is_Some() { 293 _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_(((config).Dtor_ddbClient()).Dtor_value()) 294 } else if (((config).Dtor_ddbClient()).Is_None()) && ((_2_inferredRegion).Is_Some()) { 295 var _18_maybeDdbClient m_Wrappers.Result 296 _ = _18_maybeDdbClient 297 var _out3 m_Wrappers.Result 298 _ = _out3 299 _out3 = m_Com_Amazonaws_Dynamodb.Companion_Default___.DDBClientForRegion((_2_inferredRegion).Dtor_value().(_dafny.Sequence)) 300 _18_maybeDdbClient = _out3 301 var _19_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} 302 _ = _19_valueOrError5 303 _19_valueOrError5 = (_18_maybeDdbClient).MapFailure(func(coer27 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 304 return func(arg27 interface{}) interface{} { 305 return coer27(arg27.(m_ComAmazonawsDynamodbTypes.Error)) 306 } 307 }(func(_20_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { 308 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_20_e) 309 })) 310 if (_19_valueOrError5).IsFailure() { 311 res = (_19_valueOrError5).PropagateFailure() 312 return res 313 } 314 _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_((_19_valueOrError5).Extract()) 315 } else { 316 var _21_maybeDdbClient m_Wrappers.Result 317 _ = _21_maybeDdbClient 318 var _out4 m_Wrappers.Result 319 _ = _out4 320 _out4 = m_Com_Amazonaws_Dynamodb.Companion_Default___.DynamoDBClient() 321 _21_maybeDdbClient = _out4 322 var _22_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} 323 _ = _22_valueOrError6 324 _22_valueOrError6 = (_21_maybeDdbClient).MapFailure(func(coer28 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 325 return func(arg28 interface{}) interface{} { 326 return coer28(arg28.(m_ComAmazonawsDynamodbTypes.Error)) 327 } 328 }(func(_23_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { 329 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_23_e) 330 })) 331 if (_22_valueOrError6).IsFailure() { 332 res = (_22_valueOrError6).PropagateFailure() 333 return res 334 } 335 _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_((_22_valueOrError6).Extract()) 336 } 337 var _24_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() 338 _ = _24_valueOrError7 339 _24_valueOrError7 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName((config).Dtor_ddbTableName()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid Amazon DynamoDB Table Name"))) 340 if (_24_valueOrError7).IsFailure() { 341 res = (_24_valueOrError7).PropagateFailure() 342 return res 343 } 344 var _25_client *KeyStoreClient 345 _ = _25_client 346 var _nw0 *KeyStoreClient = New_KeyStoreClient_() 347 _ = _nw0 348 _nw0.Ctor__(m_AwsCryptographyKeyStoreOperations.Companion_Config_.Create_Config_(_7_keyStoreId, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (_5_grantTokens).Dtor_value().(_dafny.Sequence), _0_kmsClient, _1_ddbClient)) 349 _25_client = _nw0 350 res = m_Wrappers.Companion_Result_.Create_Success_(_25_client) 351 return res 352 return res 353 } 354 func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyKeyStoreTypes.IKeyStoreClient) m_Wrappers.Result { 355 return m_Wrappers.Companion_Result_.Create_Success_(client) 356 } 357 func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyKeyStoreTypes.Error) m_Wrappers.Result { 358 return m_Wrappers.Companion_Result_.Create_Failure_(error_) 359 } 360 361 // End of class Default__ 362 363 // Definition of class KeyStoreClient 364 type KeyStoreClient struct { 365 _config m_AwsCryptographyKeyStoreOperations.Config 366 } 367 368 func New_KeyStoreClient_() *KeyStoreClient { 369 _this := KeyStoreClient{} 370 371 _this._config = m_AwsCryptographyKeyStoreOperations.Config{} 372 return &_this 373 } 374 375 type CompanionStruct_KeyStoreClient_ struct { 376 } 377 378 var Companion_KeyStoreClient_ = CompanionStruct_KeyStoreClient_{} 379 380 func (_this *KeyStoreClient) Equals(other *KeyStoreClient) bool { 381 return _this == other 382 } 383 384 func (_this *KeyStoreClient) EqualsGeneric(x interface{}) bool { 385 other, ok := x.(*KeyStoreClient) 386 return ok && _this.Equals(other) 387 } 388 389 func (*KeyStoreClient) String() string { 390 return "KeyStore.KeyStoreClient" 391 } 392 393 func Type_KeyStoreClient_() _dafny.TypeDescriptor { 394 return type_KeyStoreClient_{} 395 } 396 397 type type_KeyStoreClient_ struct { 398 } 399 400 func (_this type_KeyStoreClient_) Default() interface{} { 401 return (*KeyStoreClient)(nil) 402 } 403 404 func (_this type_KeyStoreClient_) String() string { 405 return "KeyStore.KeyStoreClient" 406 } 407 func (_this *KeyStoreClient) ParentTraits_() []*_dafny.TraitID { 408 return [](*_dafny.TraitID){m_AwsCryptographyKeyStoreTypes.Companion_IKeyStoreClient_.TraitID_} 409 } 410 411 var _ m_AwsCryptographyKeyStoreTypes.IKeyStoreClient = &KeyStoreClient{} 412 var _ _dafny.TraitOffspring = &KeyStoreClient{} 413 414 func (_this *KeyStoreClient) Ctor__(config m_AwsCryptographyKeyStoreOperations.Config) { 415 { 416 (_this)._config = config 417 } 418 } 419 func (_this *KeyStoreClient) GetKeyStoreInfo() m_Wrappers.Result { 420 { 421 var output m_Wrappers.Result = m_Wrappers.Result{} 422 _ = output 423 var _out0 m_Wrappers.Result 424 _ = _out0 425 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetKeyStoreInfo((_this).Config()) 426 output = _out0 427 return output 428 } 429 } 430 func (_this *KeyStoreClient) CreateKeyStore(input m_AwsCryptographyKeyStoreTypes.CreateKeyStoreInput) m_Wrappers.Result { 431 { 432 var output m_Wrappers.Result = m_Wrappers.Result{} 433 _ = output 434 var _out0 m_Wrappers.Result 435 _ = _out0 436 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.CreateKeyStore((_this).Config(), input) 437 output = _out0 438 return output 439 } 440 } 441 func (_this *KeyStoreClient) CreateKey(input m_AwsCryptographyKeyStoreTypes.CreateKeyInput) m_Wrappers.Result { 442 { 443 var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Default()) 444 _ = output 445 var _out0 m_Wrappers.Result 446 _ = _out0 447 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.CreateKey((_this).Config(), input) 448 output = _out0 449 return output 450 } 451 } 452 func (_this *KeyStoreClient) VersionKey(input m_AwsCryptographyKeyStoreTypes.VersionKeyInput) m_Wrappers.Result { 453 { 454 var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Default()) 455 _ = output 456 var _out0 m_Wrappers.Result 457 _ = _out0 458 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.VersionKey((_this).Config(), input) 459 output = _out0 460 return output 461 } 462 } 463 func (_this *KeyStoreClient) GetActiveBranchKey(input m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput) m_Wrappers.Result { 464 { 465 var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Default()) 466 _ = output 467 var _out0 m_Wrappers.Result 468 _ = _out0 469 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetActiveBranchKey((_this).Config(), input) 470 output = _out0 471 return output 472 } 473 } 474 func (_this *KeyStoreClient) GetBranchKeyVersion(input m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput) m_Wrappers.Result { 475 { 476 var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Default()) 477 _ = output 478 var _out0 m_Wrappers.Result 479 _ = _out0 480 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetBranchKeyVersion((_this).Config(), input) 481 output = _out0 482 return output 483 } 484 } 485 func (_this *KeyStoreClient) GetBeaconKey(input m_AwsCryptographyKeyStoreTypes.GetBeaconKeyInput) m_Wrappers.Result { 486 { 487 var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Default()) 488 _ = output 489 var _out0 m_Wrappers.Result 490 _ = _out0 491 _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetBeaconKey((_this).Config(), input) 492 output = _out0 493 return output 494 } 495 } 496 func (_this *KeyStoreClient) Config() m_AwsCryptographyKeyStoreOperations.Config { 497 { 498 return _this._config 499 } 500 } 501 502 // End of class KeyStoreClient