github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/Structure/Structure.go (about) 1 // Package Structure 2 // Dafny module Structure compiled into Go 3 4 package Structure 5 6 import ( 7 os "os" 8 9 m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" 10 m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" 11 m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" 12 m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" 13 m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 14 m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" 15 m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" 16 m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" 17 m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" 18 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 19 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 20 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 21 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 22 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 23 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 24 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 25 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 26 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 27 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 28 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 29 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 30 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 31 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 32 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 33 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 34 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 35 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 36 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 37 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 38 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 39 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 40 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 41 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 42 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 43 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 44 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 45 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 46 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 47 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 48 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 49 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 50 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 51 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 52 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 53 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 54 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 55 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 56 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 57 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 58 m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" 59 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 60 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 61 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 62 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 63 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 64 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 65 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 66 ) 67 68 var _ = os.Args 69 var _ _dafny.Dummy__ 70 var _ m__System.Dummy__ 71 var _ m_Wrappers.Dummy__ 72 var _ m_BoundedInts.Dummy__ 73 var _ m_StandardLibrary_UInt.Dummy__ 74 var _ m_StandardLibrary_Sequence.Dummy__ 75 var _ m_StandardLibrary_String.Dummy__ 76 var _ m_StandardLibrary.Dummy__ 77 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 78 var _ m_Random.Dummy__ 79 var _ m_Digest.Dummy__ 80 var _ m_WrappedHMAC.Dummy__ 81 var _ m_HKDF.Dummy__ 82 var _ m_WrappedHKDF.Dummy__ 83 var _ m_KdfCtr.Dummy__ 84 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 85 var _ m_AtomicPrimitives.Dummy__ 86 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 87 var _ m_ComAmazonawsKmsTypes.Dummy__ 88 var _ m_Relations.Dummy__ 89 var _ m_Seq_MergeSort.Dummy__ 90 var _ m__Math.Dummy__ 91 var _ m_Seq.Dummy__ 92 var _ m__Unicode.Dummy__ 93 var _ m_Functions.Dummy__ 94 var _ m_Utf8EncodingForm.Dummy__ 95 var _ m_Utf16EncodingForm.Dummy__ 96 var _ m_UnicodeStrings.Dummy__ 97 var _ m_FileIO.Dummy__ 98 var _ m_GeneralInternals.Dummy__ 99 var _ m_MulInternalsNonlinear.Dummy__ 100 var _ m_MulInternals.Dummy__ 101 var _ m_Mul.Dummy__ 102 var _ m_ModInternalsNonlinear.Dummy__ 103 var _ m_DivInternalsNonlinear.Dummy__ 104 var _ m_ModInternals.Dummy__ 105 var _ m_DivInternals.Dummy__ 106 var _ m_DivMod.Dummy__ 107 var _ m_Power.Dummy__ 108 var _ m_Logarithm.Dummy__ 109 var _ m_StandardLibraryInterop.Dummy__ 110 var _ m_Streams.Dummy__ 111 var _ m_Sorting.Dummy__ 112 var _ m_HexStrings.Dummy__ 113 var _ m_GetOpt.Dummy__ 114 var _ m_FloatCompare.Dummy__ 115 var _ m_Base64.Dummy__ 116 var _ m_Base64Lemmas.Dummy__ 117 var _ m_Actions.Dummy__ 118 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 119 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 120 var _ m_AwsArnParsing.Dummy__ 121 var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ 122 var _ m_AwsKmsUtils.Dummy__ 123 var _ m_KeyStoreErrorMessages.Dummy__ 124 var _ m_KmsArn.Dummy__ 125 126 type Dummy__ struct{} 127 128 // Definition of class Default__ 129 type Default__ struct { 130 dummy byte 131 } 132 133 func New_Default___() *Default__ { 134 _this := Default__{} 135 136 return &_this 137 } 138 139 type CompanionStruct_Default___ struct { 140 } 141 142 var Companion_Default___ = CompanionStruct_Default___{} 143 144 func (_this *Default__) Equals(other *Default__) bool { 145 return _this == other 146 } 147 148 func (_this *Default__) EqualsGeneric(x interface{}) bool { 149 other, ok := x.(*Default__) 150 return ok && _this.Equals(other) 151 } 152 153 func (*Default__) String() string { 154 return "Structure.Default__" 155 } 156 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 157 return [](*_dafny.TraitID){} 158 } 159 160 var _ _dafny.TraitOffspring = &Default__{} 161 162 func (_static *CompanionStruct_Default___) BranchKeyContext_q(m _dafny.Map) bool { 163 return ((((((((((((((m).Contains(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD())) && ((m).Contains(Companion_Default___.TYPE__FIELD()))) && ((m).Contains(Companion_Default___.KEY__CREATE__TIME()))) && ((m).Contains(Companion_Default___.HIERARCHY__VERSION()))) && ((m).Contains(Companion_Default___.TABLE__FIELD()))) && ((m).Contains(Companion_Default___.KMS__FIELD()))) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType((m).Get(Companion_Default___.KMS__FIELD()).(_dafny.Sequence)))) && (!((m).Keys()).Contains(Companion_Default___.BRANCH__KEY__FIELD()))) && ((_dafny.IntOfUint32(((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence)).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence)).Cardinality())).Sign() == 1)) && (_dafny.Quantifier(((m).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { 164 var _0_k _dafny.Sequence 165 _0_k = interface{}(_forall_var_0).(_dafny.Sequence) 166 return !(((m).Keys()).Contains(_0_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_0_k)) 167 }))) && (((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((true) && (_dafny.Companion_Sequence_.Equal((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))))) && (!((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) || ((true) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), (m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(_dafny.Sequence)))))) && ((!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((_dafny.Companion_Sequence_.Equal((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence), Companion_Default___.BEACON__KEY__TYPE__VALUE())) || (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), (m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence))))) 168 } 169 func (_static *CompanionStruct_Default___) ToAttributeMap(encryptionContext _dafny.Map, encryptedKey _dafny.Sequence) _dafny.Map { 170 return func() _dafny.Map { 171 var _coll0 = _dafny.NewMapBuilder() 172 _ = _coll0 173 for _iter2 := _dafny.Iterate(((((encryptionContext).Keys()).Union(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Difference(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Elements()); ; { 174 _compr_0, _ok2 := _iter2() 175 if !_ok2 { 176 break 177 } 178 var _0_k _dafny.Sequence 179 _0_k = interface{}(_compr_0).(_dafny.Sequence) 180 if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_0_k) { 181 if ((((encryptionContext).Keys()).Union(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Difference(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Contains(_0_k) { 182 _coll0.Add(_0_k, (func() m_ComAmazonawsDynamodbTypes.AttributeValue { 183 if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.HIERARCHY__VERSION()) { 184 return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_((encryptionContext).Get(Companion_Default___.HIERARCHY__VERSION()).(_dafny.Sequence)) 185 } 186 return (func() m_ComAmazonawsDynamodbTypes.AttributeValue { 187 if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.BRANCH__KEY__FIELD()) { 188 return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_B_(encryptedKey) 189 } 190 return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_((encryptionContext).Get(_0_k).(_dafny.Sequence)) 191 })() 192 })()) 193 } 194 } 195 } 196 return _coll0.ToMap() 197 }() 198 } 199 func (_static *CompanionStruct_Default___) ToBranchKeyContext(item _dafny.Map, logicalKeyStoreName _dafny.Sequence) _dafny.Map { 200 return func() _dafny.Map { 201 var _coll0 = _dafny.NewMapBuilder() 202 _ = _coll0 203 for _iter3 := _dafny.Iterate(((((item).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Union(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Elements()); ; { 204 _compr_0, _ok3 := _iter3() 205 if !_ok3 { 206 break 207 } 208 var _0_k _dafny.Sequence 209 _0_k = interface{}(_compr_0).(_dafny.Sequence) 210 if ((((item).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Union(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Contains(_0_k) { 211 _coll0.Add(_0_k, (func() _dafny.Sequence { 212 if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.HIERARCHY__VERSION()) { 213 return ((item).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_N() 214 } 215 return (func() _dafny.Sequence { 216 if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.TABLE__FIELD()) { 217 return logicalKeyStoreName 218 } 219 return ((item).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S() 220 })() 221 })()) 222 } 223 } 224 return _coll0.ToMap() 225 }() 226 } 227 func (_static *CompanionStruct_Default___) ToBranchKeyMaterials(encryptionContext _dafny.Map, plaintextKey _dafny.Sequence) m_Wrappers.Result { 228 var _0_versionInformation _dafny.Sequence = (func() _dafny.Sequence { 229 if (encryptionContext).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()) { 230 return (encryptionContext).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(_dafny.Sequence) 231 } 232 return (encryptionContext).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence) 233 })() 234 _ = _0_versionInformation 235 var _1_branchKeyVersion _dafny.Sequence = (_0_versionInformation).Drop((_dafny.IntOfUint32((Companion_Default___.BRANCH__KEY__TYPE__PREFIX()).Cardinality())).Uint32()) 236 _ = _1_branchKeyVersion 237 var _2_valueOrError0 m_Wrappers.Result = (m_UTF8.Encode(_1_branchKeyVersion)).MapFailure(func(coer10 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { 238 return func(arg10 interface{}) interface{} { 239 return coer10(arg10.(_dafny.Sequence)) 240 } 241 }(func(_3_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { 242 return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_3_e) 243 })) 244 _ = _2_valueOrError0 245 if (_2_valueOrError0).IsFailure() { 246 return (_2_valueOrError0).PropagateFailure() 247 } else { 248 var _4_branchKeyVersionUtf8 _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) 249 _ = _4_branchKeyVersionUtf8 250 var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.ExtractCustomEncryptionContext(encryptionContext) 251 _ = _5_valueOrError1 252 if (_5_valueOrError1).IsFailure() { 253 return (_5_valueOrError1).PropagateFailure() 254 } else { 255 var _6_customEncryptionContext _dafny.Map = (_5_valueOrError1).Extract().(_dafny.Map) 256 _ = _6_customEncryptionContext 257 return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_((encryptionContext).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence), _4_branchKeyVersionUtf8, _6_customEncryptionContext, plaintextKey)) 258 } 259 } 260 } 261 func (_static *CompanionStruct_Default___) ToBeaconKeyMaterials(encryptionContext _dafny.Map, plaintextKey _dafny.Sequence) m_Wrappers.Result { 262 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ExtractCustomEncryptionContext(encryptionContext) 263 _ = _0_valueOrError0 264 if (_0_valueOrError0).IsFailure() { 265 return (_0_valueOrError0).PropagateFailure() 266 } else { 267 var _1_customEncryptionContext _dafny.Map = (_0_valueOrError0).Extract().(_dafny.Map) 268 _ = _1_customEncryptionContext 269 return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_((encryptionContext).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence), _1_customEncryptionContext, m_Wrappers.Companion_Option_.Create_Some_(plaintextKey), m_Wrappers.Companion_Option_.Create_None_())) 270 } 271 } 272 func (_static *CompanionStruct_Default___) ExtractCustomEncryptionContext(encryptionContext _dafny.Map) m_Wrappers.Result { 273 var _0_encodedEncryptionContext _dafny.Set = func() _dafny.Set { 274 var _coll0 = _dafny.NewBuilder() 275 _ = _coll0 276 for _iter4 := _dafny.Iterate((encryptionContext).Keys().Elements()); ; { 277 _compr_0, _ok4 := _iter4() 278 if !_ok4 { 279 break 280 } 281 var _1_k _dafny.Sequence 282 _1_k = interface{}(_compr_0).(_dafny.Sequence) 283 if ((encryptionContext).Contains(_1_k)) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.ENCRYPTION__CONTEXT__PREFIX(), _1_k)) { 284 _coll0.Add(_dafny.TupleOf(m_UTF8.Encode((_1_k).Drop((_dafny.IntOfUint32((Companion_Default___.ENCRYPTION__CONTEXT__PREFIX()).Cardinality())).Uint32())), m_UTF8.Encode((encryptionContext).Get(_1_k).(_dafny.Sequence)))) 285 } 286 } 287 return _coll0.ToSet() 288 }() 289 _ = _0_encodedEncryptionContext 290 var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_0_encodedEncryptionContext).Elements(), true, func(_forall_var_0 _dafny.Tuple) bool { 291 var _3_i _dafny.Tuple 292 _3_i = interface{}(_forall_var_0).(_dafny.Tuple) 293 return !((_0_encodedEncryptionContext).Contains(_3_i)) || ((((*(_3_i).IndexInt(0)).(m_Wrappers.Result)).Is_Success()) && (((*(_3_i).IndexInt(1)).(m_Wrappers.Result)).Is_Success())) 294 }), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Unable to encode string"))) 295 _ = _2_valueOrError0 296 if (_2_valueOrError0).IsFailure() { 297 return (_2_valueOrError0).PropagateFailure() 298 } else { 299 return m_Wrappers.Companion_Result_.Create_Success_(func() _dafny.Map { 300 var _coll1 = _dafny.NewMapBuilder() 301 _ = _coll1 302 for _iter5 := _dafny.Iterate((_0_encodedEncryptionContext).Elements()); ; { 303 _compr_1, _ok5 := _iter5() 304 if !_ok5 { 305 break 306 } 307 var _4_i _dafny.Tuple 308 _4_i = interface{}(_compr_1).(_dafny.Tuple) 309 if (_0_encodedEncryptionContext).Contains(_4_i) { 310 _coll1.Add(((*(_4_i).IndexInt(0)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence), ((*(_4_i).IndexInt(1)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence)) 311 } 312 } 313 return _coll1.ToMap() 314 }()) 315 } 316 } 317 func (_static *CompanionStruct_Default___) DecryptOnlyBranchKeyEncryptionContext(branchKeyId _dafny.Sequence, branchKeyVersion _dafny.Sequence, timestamp _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsKeyArn _dafny.Sequence, customEncryptionContext _dafny.Map) _dafny.Map { 318 return (_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), branchKeyId).UpdateUnsafe(Companion_Default___.TYPE__FIELD(), _dafny.Companion_Sequence_.Concatenate(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion)).UpdateUnsafe(Companion_Default___.KEY__CREATE__TIME(), timestamp).UpdateUnsafe(Companion_Default___.TABLE__FIELD(), logicalKeyStoreName).UpdateUnsafe(Companion_Default___.KMS__FIELD(), kmsKeyArn).UpdateUnsafe(Companion_Default___.HIERARCHY__VERSION(), _dafny.SeqOfString("1"))).Merge(func() _dafny.Map { 319 var _coll0 = _dafny.NewMapBuilder() 320 _ = _coll0 321 for _iter6 := _dafny.Iterate((customEncryptionContext).Keys().Elements()); ; { 322 _compr_0, _ok6 := _iter6() 323 if !_ok6 { 324 break 325 } 326 var _0_k _dafny.Sequence 327 _0_k = interface{}(_compr_0).(_dafny.Sequence) 328 if (customEncryptionContext).Contains(_0_k) { 329 _coll0.Add(_dafny.Companion_Sequence_.Concatenate(Companion_Default___.ENCRYPTION__CONTEXT__PREFIX(), _0_k), (customEncryptionContext).Get(_0_k).(_dafny.Sequence)) 330 } 331 } 332 return _coll0.ToMap() 333 }()) 334 } 335 func (_static *CompanionStruct_Default___) ActiveBranchKeyEncryptionContext(decryptOnlyEncryptionContext _dafny.Map) _dafny.Map { 336 return (decryptOnlyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD(), (decryptOnlyEncryptionContext).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence)).UpdateUnsafe(Companion_Default___.TYPE__FIELD(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE())) 337 } 338 func (_static *CompanionStruct_Default___) BeaconKeyEncryptionContext(decryptOnlyEncryptionContext _dafny.Map) _dafny.Map { 339 return (decryptOnlyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.TYPE__FIELD(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) 340 } 341 func (_static *CompanionStruct_Default___) NewVersionFromActiveBranchKeyEncryptionContext(activeBranchKeyEncryptionContext _dafny.Map, branchKeyVersion _dafny.Sequence, timestamp _dafny.Sequence) _dafny.Map { 342 return ((activeBranchKeyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.TYPE__FIELD(), _dafny.Companion_Sequence_.Concatenate(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion)).UpdateUnsafe(Companion_Default___.KEY__CREATE__TIME(), timestamp))).Subtract(_dafny.SetOf(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) 343 } 344 func (_static *CompanionStruct_Default___) BranchKeyItem_q(m _dafny.Map) bool { 345 return (((((((((((((((((((((m).Contains(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD())) && (((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.TYPE__FIELD()))) && (((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.KEY__CREATE__TIME()))) && (((m).Get(Companion_Default___.KEY__CREATE__TIME()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.HIERARCHY__VERSION()))) && (((m).Get(Companion_Default___.HIERARCHY__VERSION()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_N())) && (!(m).Contains(Companion_Default___.TABLE__FIELD()))) && ((m).Contains(Companion_Default___.KMS__FIELD()))) && (((m).Get(Companion_Default___.KMS__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType(((m).Get(Companion_Default___.KMS__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))) && ((m).Contains(Companion_Default___.BRANCH__KEY__FIELD()))) && (((m).Get(Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_B())) && ((_dafny.IntOfUint32((((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32((((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()).Cardinality())).Sign() == 1)) && (_dafny.Quantifier((((m).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD(), Companion_Default___.HIERARCHY__VERSION()))).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { 346 var _0_k _dafny.Sequence 347 _0_k = interface{}(_forall_var_0).(_dafny.Sequence) 348 return !((((m).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD(), Companion_Default___.HIERARCHY__VERSION()))).Contains(_0_k)) || (((m).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S()) 349 }))) && (((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((true) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))))) && (!((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) || ((true) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))))) && ((!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) || (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))))) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType(((m).Get(Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_B())) 350 } 351 func (_static *CompanionStruct_Default___) ActiveBranchKeyItem_q(m _dafny.Map) bool { 352 return ((((Companion_Default___.BranchKeyItem_q(m)) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))) && ((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S())) 353 } 354 func (_static *CompanionStruct_Default___) VersionBranchKeyItem_q(m _dafny.Map) bool { 355 return ((Companion_Default___.BranchKeyItem_q(m)) && (!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S())) 356 } 357 func (_static *CompanionStruct_Default___) BeaconKeyItem_q(m _dafny.Map) bool { 358 return ((Companion_Default___.BranchKeyItem_q(m)) && (!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) 359 } 360 func (_static *CompanionStruct_Default___) BRANCH__KEY__IDENTIFIER__FIELD() _dafny.Sequence { 361 return _dafny.SeqOfString("branch-key-id") 362 } 363 func (_static *CompanionStruct_Default___) TYPE__FIELD() _dafny.Sequence { 364 return _dafny.SeqOfString("type") 365 } 366 func (_static *CompanionStruct_Default___) KEY__CREATE__TIME() _dafny.Sequence { 367 return _dafny.SeqOfString("create-time") 368 } 369 func (_static *CompanionStruct_Default___) HIERARCHY__VERSION() _dafny.Sequence { 370 return _dafny.SeqOfString("hierarchy-version") 371 } 372 func (_static *CompanionStruct_Default___) TABLE__FIELD() _dafny.Sequence { 373 return _dafny.SeqOfString("tablename") 374 } 375 func (_static *CompanionStruct_Default___) KMS__FIELD() _dafny.Sequence { 376 return _dafny.SeqOfString("kms-arn") 377 } 378 func (_static *CompanionStruct_Default___) BRANCH__KEY__FIELD() _dafny.Sequence { 379 return _dafny.SeqOfString("enc") 380 } 381 func (_static *CompanionStruct_Default___) BRANCH__KEY__ACTIVE__VERSION__FIELD() _dafny.Sequence { 382 return _dafny.SeqOfString("version") 383 } 384 func (_static *CompanionStruct_Default___) BRANCH__KEY__ACTIVE__TYPE() _dafny.Sequence { 385 return _dafny.SeqOfString("branch:ACTIVE") 386 } 387 func (_static *CompanionStruct_Default___) BRANCH__KEY__TYPE__PREFIX() _dafny.Sequence { 388 return _dafny.SeqOfString("branch:version:") 389 } 390 func (_static *CompanionStruct_Default___) BEACON__KEY__TYPE__VALUE() _dafny.Sequence { 391 return _dafny.SeqOfString("beacon:ACTIVE") 392 } 393 func (_static *CompanionStruct_Default___) ENCRYPTION__CONTEXT__PREFIX() _dafny.Sequence { 394 return _dafny.SeqOfString("aws-crypto-ec:") 395 } 396 397 // End of class Default__ 398 399 // Definition of class BranchKeyContext 400 type BranchKeyContext struct { 401 } 402 403 func New_BranchKeyContext_() *BranchKeyContext { 404 _this := BranchKeyContext{} 405 406 return &_this 407 } 408 409 type CompanionStruct_BranchKeyContext_ struct { 410 } 411 412 var Companion_BranchKeyContext_ = CompanionStruct_BranchKeyContext_{} 413 414 func (*BranchKeyContext) String() string { 415 return "Structure.BranchKeyContext" 416 } 417 418 // End of class BranchKeyContext 419 420 func Type_BranchKeyContext_() _dafny.TypeDescriptor { 421 return type_BranchKeyContext_{} 422 } 423 424 type type_BranchKeyContext_ struct { 425 } 426 427 func (_this type_BranchKeyContext_) Default() interface{} { 428 return _dafny.EmptyMap 429 } 430 431 func (_this type_BranchKeyContext_) String() string { 432 return "Structure.BranchKeyContext" 433 } 434 func (_this *CompanionStruct_BranchKeyContext_) Is_(__source _dafny.Map) bool { 435 var _0_m _dafny.Map = (__source) 436 _ = _0_m 437 return Companion_Default___.BranchKeyContext_q(_0_m) 438 } 439 440 // Definition of class BranchKeyItem 441 type BranchKeyItem struct { 442 } 443 444 func New_BranchKeyItem_() *BranchKeyItem { 445 _this := BranchKeyItem{} 446 447 return &_this 448 } 449 450 type CompanionStruct_BranchKeyItem_ struct { 451 } 452 453 var Companion_BranchKeyItem_ = CompanionStruct_BranchKeyItem_{} 454 455 func (*BranchKeyItem) String() string { 456 return "Structure.BranchKeyItem" 457 } 458 459 // End of class BranchKeyItem 460 461 func Type_BranchKeyItem_() _dafny.TypeDescriptor { 462 return type_BranchKeyItem_{} 463 } 464 465 type type_BranchKeyItem_ struct { 466 } 467 468 func (_this type_BranchKeyItem_) Default() interface{} { 469 return _dafny.EmptyMap 470 } 471 472 func (_this type_BranchKeyItem_) String() string { 473 return "Structure.BranchKeyItem" 474 } 475 func (_this *CompanionStruct_BranchKeyItem_) Is_(__source _dafny.Map) bool { 476 var _1_m _dafny.Map = (__source) 477 _ = _1_m 478 return Companion_Default___.BranchKeyItem_q(_1_m) 479 } 480 481 // Definition of class ActiveBranchKeyItem 482 type ActiveBranchKeyItem struct { 483 } 484 485 func New_ActiveBranchKeyItem_() *ActiveBranchKeyItem { 486 _this := ActiveBranchKeyItem{} 487 488 return &_this 489 } 490 491 type CompanionStruct_ActiveBranchKeyItem_ struct { 492 } 493 494 var Companion_ActiveBranchKeyItem_ = CompanionStruct_ActiveBranchKeyItem_{} 495 496 func (*ActiveBranchKeyItem) String() string { 497 return "Structure.ActiveBranchKeyItem" 498 } 499 500 // End of class ActiveBranchKeyItem 501 502 func Type_ActiveBranchKeyItem_() _dafny.TypeDescriptor { 503 return type_ActiveBranchKeyItem_{} 504 } 505 506 type type_ActiveBranchKeyItem_ struct { 507 } 508 509 func (_this type_ActiveBranchKeyItem_) Default() interface{} { 510 return _dafny.EmptyMap 511 } 512 513 func (_this type_ActiveBranchKeyItem_) String() string { 514 return "Structure.ActiveBranchKeyItem" 515 } 516 func (_this *CompanionStruct_ActiveBranchKeyItem_) Is_(__source _dafny.Map) bool { 517 var _2_m _dafny.Map = (__source) 518 _ = _2_m 519 return Companion_Default___.ActiveBranchKeyItem_q(_2_m) 520 } 521 522 // Definition of class VersionBranchKeyItem 523 type VersionBranchKeyItem struct { 524 } 525 526 func New_VersionBranchKeyItem_() *VersionBranchKeyItem { 527 _this := VersionBranchKeyItem{} 528 529 return &_this 530 } 531 532 type CompanionStruct_VersionBranchKeyItem_ struct { 533 } 534 535 var Companion_VersionBranchKeyItem_ = CompanionStruct_VersionBranchKeyItem_{} 536 537 func (*VersionBranchKeyItem) String() string { 538 return "Structure.VersionBranchKeyItem" 539 } 540 541 // End of class VersionBranchKeyItem 542 543 func Type_VersionBranchKeyItem_() _dafny.TypeDescriptor { 544 return type_VersionBranchKeyItem_{} 545 } 546 547 type type_VersionBranchKeyItem_ struct { 548 } 549 550 func (_this type_VersionBranchKeyItem_) Default() interface{} { 551 return _dafny.EmptyMap 552 } 553 554 func (_this type_VersionBranchKeyItem_) String() string { 555 return "Structure.VersionBranchKeyItem" 556 } 557 func (_this *CompanionStruct_VersionBranchKeyItem_) Is_(__source _dafny.Map) bool { 558 var _3_m _dafny.Map = (__source) 559 _ = _3_m 560 return Companion_Default___.VersionBranchKeyItem_q(_3_m) 561 } 562 563 // Definition of class BeaconKeyItem 564 type BeaconKeyItem struct { 565 } 566 567 func New_BeaconKeyItem_() *BeaconKeyItem { 568 _this := BeaconKeyItem{} 569 570 return &_this 571 } 572 573 type CompanionStruct_BeaconKeyItem_ struct { 574 } 575 576 var Companion_BeaconKeyItem_ = CompanionStruct_BeaconKeyItem_{} 577 578 func (*BeaconKeyItem) String() string { 579 return "Structure.BeaconKeyItem" 580 } 581 582 // End of class BeaconKeyItem 583 584 func Type_BeaconKeyItem_() _dafny.TypeDescriptor { 585 return type_BeaconKeyItem_{} 586 } 587 588 type type_BeaconKeyItem_ struct { 589 } 590 591 func (_this type_BeaconKeyItem_) Default() interface{} { 592 return _dafny.EmptyMap 593 } 594 595 func (_this type_BeaconKeyItem_) String() string { 596 return "Structure.BeaconKeyItem" 597 } 598 func (_this *CompanionStruct_BeaconKeyItem_) Is_(__source _dafny.Map) bool { 599 var _4_m _dafny.Map = (__source) 600 _ = _4_m 601 return Companion_Default___.BeaconKeyItem_q(_4_m) 602 }