Skip to content

Commit dac6f94

Browse files
Merge branch 'main' into primitives-name
2 parents 4369a3c + 1abcc6d commit dac6f94

File tree

11 files changed

+67
-230
lines changed

11 files changed

+67
-230
lines changed

.github/workflows/mpl-head.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: CI MPL HEAD
33

44
on:
5+
workflow_dispatch:
56
schedule:
67
- cron: "00 14 * * 1-5"
78

@@ -17,7 +18,7 @@ jobs:
1718
if: github.event_name != 'schedule' || github.repository_owner == 'aws'
1819
uses: ./.github/workflows/mpl_head_version.yml
1920
with:
20-
mpl-head: true
21+
mpl-head: main
2122
mpl-head-ci-format:
2223
needs: getVersion
2324
if: github.event_name != 'schedule' || github.repository_owner == 'aws'

.github/workflows/nightly.yml

-34
Original file line numberDiff line numberDiff line change
@@ -59,40 +59,6 @@ jobs:
5959
dafny: "nightly-latest"
6060
regenerate-code: true
6161

62-
# Interop nightly tests use nighly tests and the current dafnyversion for the DBESDK.
63-
dafny-nightly-java-interop:
64-
if: github.event_name != 'schedule' || github.repository_owner == 'aws'
65-
needs: getVersion
66-
uses: ./.github/workflows/dafny_interop_java.yml
67-
with:
68-
mpl-dafny: "nightly-latest"
69-
mpl-commit: main
70-
dbesdk-dafny: ${{needs.getVersion.outputs.version}}
71-
dafny-nightly-test-vectors-java-interop:
72-
if: github.event_name != 'schedule' || github.repository_owner == 'aws'
73-
needs: getVersion
74-
uses: ./.github/workflows/dafny_interop_test_vector_java.yml
75-
with:
76-
mpl-dafny: "nightly-latest"
77-
mpl-commit: main
78-
dbesdk-dafny: ${{needs.getVersion.outputs.version}}
79-
dafny-nightly-net-interop:
80-
if: github.event_name != 'schedule' || github.repository_owner == 'aws'
81-
needs: getVersion
82-
uses: ./.github/workflows/dafny_interop_test_net.yml
83-
with:
84-
mpl-dafny: "nightly-latest"
85-
mpl-commit: main
86-
dbesdk-dafny: ${{needs.getVersion.outputs.version}}
87-
dafny-nightly-test-vectors-net-interop:
88-
if: github.event_name != 'schedule' || github.repository_owner == 'aws'
89-
needs: getVersion
90-
uses: ./.github/workflows/dafny_interop_test_vector_net.yml
91-
with:
92-
mpl-dafny: "nightly-latest"
93-
mpl-commit: main
94-
dbesdk-dafny: ${{needs.getVersion.outputs.version}}
95-
9662
cut-issue-on-failure:
9763
runs-on: ubuntu-latest
9864
permissions:

CHANGELOG.md

+20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## [3.6.2](https://github.com/aws/aws-database-encryption-sdk-dynamodb/compare/v3.6.1...v3.6.2) (2024-08-22)
4+
5+
### Fixes
6+
7+
- revert change in error type ([#1304](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1304)) ([33d7ee4](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/33d7ee4ad73f621a5fb247693981af0d35f40d54))
8+
9+
### Maintenance
10+
11+
- ...the nightly build. Again. ([#1297](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1297)) ([b7a91c9](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/b7a91c91fe5b52cbd9dbec9c3953770ed02fd0bf))
12+
- add timing output to test vectors ([#1298](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1298)) ([30dfaa8](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/30dfaa8dad218c48b115f6244b8125dbc4dad1ea))
13+
- Enable local testing ([#1278](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1278)) ([7093266](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/709326688b84e5255ad8758e7e5c6c25db976e12))
14+
- fix ci mpl head gha ([#1306](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1306)) ([c572d6a](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/c572d6adbebe23ceca2097f1080940583535d286))
15+
- fix dafny interop build steps ([#1293](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1293)) ([c6ce809](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/c6ce809e40032a864e3596ca640ef9225177f98d))
16+
- fix nightly ([#1300](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1300)) ([a445eff](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/a445eff3ac39c4221ef60f59b6386950c06f77a7))
17+
- **GHA:** add backwards interop dafny tests ([#1279](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1279)) ([1e6be80](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/1e6be8056083eb943830729498d55251a2ffde4b))
18+
- **GHA:** another gha fix ([#1292](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1292)) ([df64b30](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/df64b3036d02491801cefd8950d4eda313f3e37a))
19+
- **GHA:** fix dafny_interop_java ([#1283](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1283)) ([5a1c921](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/5a1c92180d24949932f97e9acc0bbe6797306e6e))
20+
- **GHA:** fix test vector dafny interop ([#1291](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1291)) ([fdefaff](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/fdefaff8a66eaf134f9369f9726b4c59ab19364d))
21+
- **GHA:** update nightlies for interop and interop action ([#1287](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues/1287)) ([8bec538](https://github.com/aws/aws-database-encryption-sdk-dynamodb/commit/8bec538da1472aca11e06926043919a947b47dcc))
22+
323
## [3.6.1](https://github.com/aws/aws-database-encryption-sdk-dynamodb/compare/v3.6.0...v3.6.1) (2024-08-12)
424

525
### Fixes

DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/QueryTransform.dfy

+4-19
Original file line numberDiff line numberDiff line change
@@ -81,29 +81,16 @@ module QueryTransform {
8181
if keyId.KeyId? {
8282
keyIdUtf8 :- UTF8.Encode(keyId.value).MapFailure(e => E(e));
8383
}
84-
85-
var decryptErrors : seq<Error> := [];
86-
var lastRealError := -1;
87-
84+
ghost var originalHistory := tableConfig.itemEncryptor.History.DecryptItem;
85+
ghost var historySize := |originalHistory|;
8886
for x := 0 to |encryptedItems|
89-
invariant lastRealError == -1 || lastRealError < |decryptErrors|
9087
{
9188
//= specification/dynamodb-encryption-client/ddb-sdk-integration.md#decrypt-after-query
9289
//# Each of these entries on the original response MUST be replaced
9390
//# with the resulting decrypted [DynamoDB Item](./decrypt-item.md#dynamodb-item-1).
9491
var decryptInput := EncTypes.DecryptItemInput(encryptedItem := encryptedItems[x]);
9592
var decryptRes := tableConfig.itemEncryptor.DecryptItem(decryptInput);
96-
if decryptRes.Failure? {
97-
var error := AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor(decryptRes.error);
98-
var context := E(KeyString(tableConfig, encryptedItems[x]));
99-
if lastRealError == -1 || error != decryptErrors[lastRealError] {
100-
lastRealError := |decryptErrors|;
101-
decryptErrors := decryptErrors + [error];
102-
}
103-
decryptErrors := decryptErrors + [context];
104-
continue;
105-
}
106-
var decrypted := decryptRes.value;
93+
var decrypted :- MapError(decryptRes);
10794

10895
// If the decrypted result was plaintext, i.e. has no parsedHeader
10996
// then this is expected IFF the table config allows plaintext read
@@ -124,9 +111,7 @@ module QueryTransform {
124111
decryptedItems := decryptedItems + [decrypted.plaintextItem];
125112
}
126113
}
127-
if |decryptErrors| != 0 {
128-
return Failure(CollectionOfErrors(decryptErrors, message := "Error(s) found decrypting Query results."));
129-
}
114+
130115
//= specification/dynamodb-encryption-client/ddb-sdk-integration.md#decrypt-after-query
131116
//# The resulting decrypted response MUST be [filtered](ddb-support.md#queryoutputforbeacons) from the result.
132117
var decryptedOutput := input.sdkOutput.(Items := Some(decryptedItems));

DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/ScanTransform.dfy

+1-18
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,7 @@ module ScanTransform {
7979
if keyId.KeyId? {
8080
keyIdUtf8 :- UTF8.Encode(keyId.value).MapFailure(e => E(e));
8181
}
82-
var decryptErrors : seq<Error> := [];
83-
var lastRealError := -1;
84-
8582
for x := 0 to |encryptedItems|
86-
invariant lastRealError == -1 || lastRealError < |decryptErrors|
8783
{
8884
//= specification/dynamodb-encryption-client/ddb-sdk-integration.md#decrypt-after-scan
8985
//# Each of these entries on the original response MUST be replaced
@@ -92,17 +88,7 @@ module ScanTransform {
9288

9389
var decryptInput := EncTypes.DecryptItemInput(encryptedItem := encryptedItems[x]);
9490
var decryptRes := tableConfig.itemEncryptor.DecryptItem(decryptInput);
95-
if decryptRes.Failure? {
96-
var error := AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor(decryptRes.error);
97-
var context := E(KeyString(tableConfig, encryptedItems[x]));
98-
if lastRealError == -1 || error != decryptErrors[lastRealError] {
99-
lastRealError := |decryptErrors|;
100-
decryptErrors := decryptErrors + [error];
101-
}
102-
decryptErrors := decryptErrors + [context];
103-
continue;
104-
}
105-
var decrypted := decryptRes.value;
91+
var decrypted :- MapError(decryptRes);
10692

10793
// If the decrypted result was plaintext, i.e. has no parsedHeader
10894
// then this is expected IFF the table config allows plaintext read
@@ -123,9 +109,6 @@ module ScanTransform {
123109
decryptedItems := decryptedItems + [decrypted.plaintextItem];
124110
}
125111
}
126-
if |decryptErrors| != 0 {
127-
return Failure(CollectionOfErrors(decryptErrors, message := "Error(s) found decrypting Scan results."));
128-
}
129112

130113
//= specification/dynamodb-encryption-client/ddb-sdk-integration.md#decrypt-after-scan
131114
//# The resulting decrypted response MUST be [filtered](ddb-support.md#scanoutputforbeacons) from the result.

DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/test/QueryTransform.dfy

+18-153
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ module QueryTransformTest {
88
import opened DynamoDbEncryptionTransforms
99
import opened TestFixtures
1010
import DDB = ComAmazonawsDynamodbTypes
11-
import DBT = AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes
12-
import DBE = AwsCryptographyDbEncryptionSdkDynamoDbTypes
13-
import Types = AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes
14-
import AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes
11+
import AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes
1512

1613
method {:test} TestQueryInputPassthrough() {
1714
var middlewareUnderTest := TestFixtures.GetDynamoDbEncryptionTransforms();
@@ -56,7 +53,23 @@ module QueryTransformTest {
5653
);
5754
var tableName := GetTableName("no_such_table");
5855
var input := DDB.QueryInput(
59-
TableName := tableName
56+
TableName := tableName,
57+
IndexName := None(),
58+
Select := None(),
59+
AttributesToGet := None(),
60+
Limit := None(),
61+
ConsistentRead := None(),
62+
KeyConditions := None(),
63+
QueryFilter := None(),
64+
ConditionalOperator := None(),
65+
ScanIndexForward := None(),
66+
ExclusiveStartKey := None(),
67+
ReturnConsumedCapacity := None(),
68+
ProjectionExpression := None(),
69+
FilterExpression := None(),
70+
KeyConditionExpression := None(),
71+
ExpressionAttributeNames := None(),
72+
ExpressionAttributeValues := None()
6073
);
6174
var transformed := middlewareUnderTest.QueryOutputTransform(
6275
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput(
@@ -68,152 +81,4 @@ module QueryTransformTest {
6881
expect_ok("QueryOutput", transformed);
6982
expect_equal("QueryOutput", transformed.value.transformedOutput, output);
7083
}
71-
72-
function method DDBS(x : string) : DDB.AttributeValue {
73-
DDB.AttributeValue.S(x)
74-
}
75-
76-
const Actions1 : DBE.AttributeActions := map[
77-
GetAttrName("bar") := CSE.SIGN_ONLY,
78-
GetAttrName("sortKey") := CSE.SIGN_ONLY,
79-
GetAttrName("encrypt1") := CSE.ENCRYPT_AND_SIGN,
80-
GetAttrName("encrypt2") := CSE.ENCRYPT_AND_SIGN,
81-
GetAttrName("sign1") := CSE.SIGN_ONLY,
82-
GetAttrName("sign2") := CSE.SIGN_ONLY
83-
]
84-
85-
method {:test} TestDecryptErrorWithSortKey() {
86-
var config := TestFixtures.GetEncryptorConfigFromActions(Actions1, Some("sortKey"));
87-
var encryptor := TestFixtures.GetDynamoDbItemEncryptorFrom(config);
88-
89-
var inputItem : map<DDB.AttributeName, DDB.AttributeValue> := map[
90-
"bar" := DDB.AttributeValue.N("00001234"),
91-
"sortKey" := DDB.AttributeValue.B([1,2,3,4]),
92-
"encrypt1" := DDBS("some text"),
93-
"encrypt2" := DDBS("more text"),
94-
"sign1" := DDBS("stuff"),
95-
"sign2" := DDB.AttributeValue.BOOL(false)
96-
];
97-
98-
var encryptRes :- expect encryptor.EncryptItem(
99-
Types.EncryptItemInput(
100-
plaintextItem:=inputItem
101-
)
102-
);
103-
var item1 := encryptRes.encryptedItem;
104-
expect "encrypt1" in item1;
105-
expect item1["encrypt1"] != DDBS("some text");
106-
107-
inputItem := map[
108-
"bar" := DDB.AttributeValue.N("567"),
109-
"sortKey" := DDB.AttributeValue.B([5,6,7]),
110-
"encrypt1" := DDBS("some text"),
111-
"encrypt2" := DDBS("more text"),
112-
"sign1" := DDBS("stuff"),
113-
"sign2" := DDB.AttributeValue.BOOL(false)
114-
];
115-
encryptRes :- expect encryptor.EncryptItem(
116-
Types.EncryptItemInput(
117-
plaintextItem:=inputItem
118-
)
119-
);
120-
var item2 := encryptRes.encryptedItem;
121-
expect "encrypt1" in item2;
122-
expect item2["encrypt1"] != DDBS("some text");
123-
124-
inputItem := map[
125-
"bar" := DDB.AttributeValue.N("890"),
126-
"sortKey" := DDB.AttributeValue.B([3,1,4]),
127-
"encrypt1" := DDBS("some text"),
128-
"encrypt2" := DDBS("more text"),
129-
"sign1" := DDBS("stuff"),
130-
"sign2" := DDB.AttributeValue.BOOL(false)
131-
];
132-
encryptRes :- expect encryptor.EncryptItem(
133-
Types.EncryptItemInput(
134-
plaintextItem:=inputItem
135-
)
136-
);
137-
var item3 := encryptRes.encryptedItem;
138-
expect "encrypt1" in item3;
139-
expect item3["encrypt1"] != DDBS("some text");
140-
141-
var middlewareUnderTest := TestFixtures.GetDynamoDbEncryptionTransforms2(Actions1, Some("sortKey"));
142-
var tableName := GetTableName("foo");
143-
var input := DDB.QueryInput(
144-
TableName := tableName
145-
);
146-
147-
var transformed := middlewareUnderTest.QueryOutputTransform(
148-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput(
149-
sdkOutput := DDB.QueryOutput(Items := Some([item1, item2, item3])),
150-
originalInput := input
151-
)
152-
);
153-
154-
TestFixtures.expect_ok("QueryOutput", transformed);
155-
expect transformed.value.transformedOutput.Items.Some?;
156-
var itemList := transformed.value.transformedOutput.Items.value;
157-
expect |itemList| == 3;
158-
expect "encrypt1" in itemList[0];
159-
expect itemList[0]["encrypt1"] == DDBS("some text");
160-
161-
162-
/// now do some damage
163-
item1 := item1["encrypt1" := item2["encrypt1"]];
164-
transformed := middlewareUnderTest.QueryOutputTransform(
165-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput(
166-
sdkOutput := DDB.QueryOutput(Items := Some([item1, item2, item3])),
167-
originalInput := input
168-
)
169-
);
170-
expect transformed.Failure?;
171-
print "\n", transformed.error, "\n";
172-
expect transformed.error ==
173-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.CollectionOfErrors(
174-
[
175-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDb(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.StructuredEncryptionException(message := "Signature of record does not match the signature computed when the record was encrypted.")))),
176-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException(message := "bar = 1234; sortKey = 01020304")
177-
],
178-
message := "Error(s) found decrypting Query results."
179-
);
180-
181-
/// do more damage
182-
item3 := item3["encrypt1" := item2["encrypt1"]];
183-
transformed := middlewareUnderTest.QueryOutputTransform(
184-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput(
185-
sdkOutput := DDB.QueryOutput(Items := Some([item1, item2, item3])),
186-
originalInput := input
187-
)
188-
);
189-
expect transformed.Failure?;
190-
print "\n", transformed.error, "\n";
191-
expect transformed.error ==
192-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.CollectionOfErrors(
193-
[
194-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDb(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.StructuredEncryptionException(message := "Signature of record does not match the signature computed when the record was encrypted.")))),
195-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException(message := "bar = 1234; sortKey = 01020304"),
196-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException(message := "bar = 890; sortKey = 030104")
197-
],
198-
message := "Error(s) found decrypting Query results."
199-
);
200-
201-
var transformed_scan := middlewareUnderTest.ScanOutputTransform(
202-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput(
203-
sdkOutput := DDB.ScanOutput(Items := Some([item1, item2, item3])),
204-
originalInput := DDB.ScanInput(TableName := tableName)
205-
)
206-
);
207-
expect transformed_scan.Failure?;
208-
print "\n", transformed_scan.error, "\n";
209-
expect transformed_scan.error ==
210-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.CollectionOfErrors(
211-
[
212-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDb(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.StructuredEncryptionException(message := "Signature of record does not match the signature computed when the record was encrypted.")))),
213-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException(message := "bar = 1234; sortKey = 01020304"),
214-
AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException(message := "bar = 890; sortKey = 030104")
215-
],
216-
message := "Error(s) found decrypting Scan results."
217-
);
218-
}
21984
}

DynamoDbEncryption/runtimes/net/AssemblyInfo.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
[assembly: AssemblyTitle("AWS.Cryptography.DbEncryptionSDK.DynamoDb")]
44

55
// This should be kept in sync with the version number in MPL.csproj
6-
[assembly: AssemblyVersion("3.6.1")]
6+
[assembly: AssemblyVersion("3.6.2")]
77

DynamoDbEncryption/runtimes/net/DynamoDbEncryption.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
66
<IsPackable>true</IsPackable>
77

8-
<Version>3.6.1</Version>
8+
<Version>3.6.2</Version>
99

1010
<AssemblyName>AWS.Cryptography.DbEncryptionSDK.DynamoDb</AssemblyName>
1111
<PackageId>AWS.Cryptography.DbEncryptionSDK.DynamoDb</PackageId>

0 commit comments

Comments
 (0)