Skip to content

Commit 3b4940f

Browse files
committed
m
1 parent b3b0dc1 commit 3b4940f

File tree

4 files changed

+284
-30
lines changed

4 files changed

+284
-30
lines changed

.github/workflows/ci_codegen.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ jobs:
3434
- uses: actions/checkout@v3
3535
with:
3636
submodules: recursive
37-
- run: git submodule update --init --recursive submodules/smithy-dafny
37+
- run: |
38+
git submodule update --init --recursive submodules/smithy-dafny
39+
git submodule update --init --recursive submodules/MaterialProviders
3840
3941
# Only used to format generated code
4042
# and to translate version strings such as "nightly-latest"

DynamoDbEncryption/dafny/DynamoDbEncryption/src/DDBSupport.dfy

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ module DynamoDBSupport {
3535
method GetNumberOfQueries(search : SearchableEncryptionInfo.BeaconVersion, actions : AttributeActions, query : DDB.QueryInput)
3636
returns (output : Result<BucketCount, Error>)
3737
{
38-
var numberOfQueries :- Filter.GetNumQueries(
39-
actions,
40-
query.FilterExpression,
41-
query.ExpressionAttributeNames,
42-
search
43-
);
44-
return Success(numberOfQueries);
38+
// var numberOfQueries :- Filter.GetNumQueries(
39+
// actions,
40+
// query.FilterExpression,
41+
// query.ExpressionAttributeNames,
42+
// search
43+
// );
44+
return Success(1);
4545
}
4646

4747
// IsWritable examines an AttributeMap and fails if it is unsuitable for writing.
@@ -321,7 +321,7 @@ module DynamoDBSupport {
321321
var keyId :- Filter.GetBeaconKeyId(search.value.curr(), req.KeyConditionExpression, req.FilterExpression, req.ExpressionAttributeValues, req.ExpressionAttributeNames);
322322
var foo :- ExtractBucket(search.value.curr(), req.FilterExpression, req.KeyConditionExpression, req.ExpressionAttributeNames, req.ExpressionAttributeValues, actions);
323323
var (newValues, bucket) := foo;
324-
var numQueries :- Filter.GetNumQueries(actions, req.KeyConditionExpression, req.ExpressionAttributeNames, search.value.curr());
324+
var numQueries :- Filter.GetNumQueries(search.value.curr(), req.KeyConditionExpression, req.ExpressionAttributeValues, req.ExpressionAttributeNames);
325325
if numQueries <= bucket {
326326
return Failure(E("Bucket number was " + String.Base10Int2String(bucket as int) + " but should have been less than number of queries : " + String.Base10Int2String(numQueries as int)));
327327
}

DynamoDbEncryption/dafny/DynamoDbEncryption/src/FilterExpr.dfy

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1659,6 +1659,31 @@ module DynamoDBFilterExpr {
16591659
GetBeaconKeyIds2(pos+1, bv, expr, values, names, soFar)
16601660
}
16611661

1662+
method {:tailrecursion} GetValues(
1663+
bv : SI.BeaconVersion,
1664+
expr : seq<Token>,
1665+
values: DDB.ExpressionAttributeValueMap,
1666+
names : Option<DDB.ExpressionAttributeNameMap>
1667+
)
1668+
returns (ret : Result<seq<(SI.Beacon, string)>, Error>)
1669+
{
1670+
var result : seq<(SI.Beacon, string)> := [];
1671+
SequenceIsSafeBecauseItIsInMemory(expr);
1672+
for pos : uint64 := 0 to |expr| as uint64 {
1673+
if expr[pos].Value? {
1674+
:- Need(expr[pos].s in values, E(expr[pos].s + " not found in ExpressionAttributeValueMap"));
1675+
var oldValue := values[expr[pos].s];
1676+
if oldValue.S? {
1677+
var attr := AttrForValue(expr, pos as nat);
1678+
if attr.Some? && attr.value.s in bv.beacons {
1679+
result := result + [(bv.beacons[attr.value.s], oldValue.S)];
1680+
}
1681+
}
1682+
}
1683+
}
1684+
return Success(result);
1685+
}
1686+
16621687
// Search through the query expression to find any Multi-Tenant KeyIds
16631688
function method GetBeaconKeyIds(
16641689
bv : SI.BeaconVersion,
@@ -1677,6 +1702,32 @@ module DynamoDBFilterExpr {
16771702
GetBeaconKeyIds2(0, bv, parsed, values, names, soFar)
16781703
}
16791704

1705+
method GetNumQueries(
1706+
bv : SI.BeaconVersion,
1707+
keyExpr : Option<DDB.ConditionExpression>,
1708+
values: Option<DDB.ExpressionAttributeValueMap>,
1709+
names : Option<DDB.ExpressionAttributeNameMap>
1710+
)
1711+
returns (ret : Result<BucketCount, Error>)
1712+
ensures ret.Success? ==> ret.value <= bv.numBuckets
1713+
{
1714+
if keyExpr.None? || values.None? {
1715+
return Success(1);
1716+
}
1717+
var parsed := ParseExpr(keyExpr.value);
1718+
var values :- GetValues(bv, parsed, values.value, names);
1719+
1720+
if |values| == 0 {
1721+
return Success(1);
1722+
} else if |values| == 1 {
1723+
return Success(values[0].0.getNumQueries(bv.numBuckets));
1724+
} else if |values| == 2 {
1725+
return Success(lcmBucket(values[0].0.getNumQueries(bv.numBuckets), values[1].0.getNumQueries(bv.numBuckets), bv.numBuckets));
1726+
} else {
1727+
return Failure(E("More than two attributes not implemented yet"));
1728+
}
1729+
}
1730+
16801731
// Search through the query expressions to find the Multi-Tenant KeyId
16811732
// if not multi-tenant, return None
16821733
// if multi-tenant, and there's exactly one KeyId, return Some(keyId)
@@ -1862,9 +1913,6 @@ module DynamoDBFilterExpr {
18621913
curr_bucket := curr_bucket + queries;
18631914
}
18641915
}
1865-
print "\nDoBeaconize ", bucket, " ", queries, "\n";
1866-
print "input : ", context, "\n";
1867-
print "output : ", tmpOutput, "\n";
18681916
return Success(tmpOutput);
18691917
}
18701918
}
@@ -2025,21 +2073,4 @@ module DynamoDBFilterExpr {
20252073
return Failure(E("More than two attributes not implemented yet"));
20262074
}
20272075
}
2028-
2029-
method GetNumQueries (
2030-
actions : AttributeActions,
2031-
expr : Option<string>,
2032-
names : Option<DDB.ExpressionAttributeNameMap>,
2033-
b : SI.BeaconVersion
2034-
)
2035-
returns (output : Result<BucketCount, Error>)
2036-
ensures output.Success? ==> output.value <= b.numBuckets
2037-
{
2038-
if expr.None? {
2039-
return Success(1);
2040-
}
2041-
var attrs := GetEncryptedAttrs(actions, expr.value, names);
2042-
output := GetNumQueriesForAttrs(attrs, b);
2043-
}
2044-
20452076
}
Lines changed: 222 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,222 @@
1-
{"RoundTripTest":{"Records":[{"RecNum":{"N":"200"},"StringSet":{"SS":["aaa"]},"NumberSet":{"NS":["111"]},"BinarySet":{"BS":["AQID"]}},{"RecNum":{"N":"201"},"StringSet":{"SS":["aaa","bbb"]},"NumberSet":{"NS":["111","222"]},"BinarySet":{"BS":["AQID","AgME"]}},{"RecNum":{"N":"202"},"StringSet":{"SS":["bbb","aaa"]},"NumberSet":{"NS":["222","111"]},"BinarySet":{"BS":["AgME","AQID"]}},{"RecNum":{"N":"203"},"StringSet":{"SS":["aaa","bbb","ccc"]},"NumberSet":{"NS":["111","222","333"]},"BinarySet":{"BS":["AQID","AgME","AwQF"]}},{"RecNum":{"N":"204"},"StringSet":{"SS":["bbb","aaa","ccc"]},"NumberSet":{"NS":["222","111","333"]},"BinarySet":{"BS":["AgME","AQID","AwQF"]}},{"RecNum":{"N":"205"},"StringSet":{"SS":["ccc","aaa","bbb"]},"NumberSet":{"NS":["333","111","222"]},"BinarySet":{"BS":["AwQF","AQID","AgME"]}},{"RecNum":{"N":"206"},"StringSet":{"SS":["aaa","ccc","bbb"]},"NumberSet":{"NS":["111","333","222"]},"BinarySet":{"BS":["AQID","AwQF","AgME"]}},{"RecNum":{"N":"207"},"StringSet":{"SS":["aaa","bbb","ccc"]},"NumberSet":{"NS":["111","222","333"]},"BinarySet":{"BS":["AQID","AgME","AwQF"]}},{"RecNum":{"N":"208"},"StringSet":{"SS":["bbb","aaa","ccc"]},"NumberSet":{"NS":["222","111","333"]},"BinarySet":{"BS":["AgME","AQID","AwQF"]}},{"RecNum":{"N":"209"},"StringSet":{"SS":["aaa","bbb","ccc","ddd"]},"NumberSet":{"NS":["111","222","333","444"]},"BinarySet":{"BS":["AQID","AgME","AwQF","BAUG"]}},{"RecNum":{"N":"210"},"StringSet":{"SS":["bbb","aaa","ccc","ddd"]},"NumberSet":{"NS":["222","111","333","444"]},"BinarySet":{"BS":["AgME","AQID","AwQF","BAUG"]}},{"RecNum":{"N":"211"},"StringSet":{"SS":["ccc","aaa","bbb","ddd"]},"NumberSet":{"NS":["333","111","222","444"]},"BinarySet":{"BS":["AwQF","AQID","AgME","BAUG"]}},{"RecNum":{"N":"212"},"StringSet":{"SS":["aaa","ccc","bbb","ddd"]},"NumberSet":{"NS":["111","333","222","444"]},"BinarySet":{"BS":["AQID","AwQF","AgME","BAUG"]}},{"RecNum":{"N":"213"},"StringSet":{"SS":["aaa","bbb","ccc","ddd"]},"NumberSet":{"NS":["111","222","333","444"]},"BinarySet":{"BS":["AQID","AgME","AwQF","BAUG"]}},{"RecNum":{"N":"214"},"StringSet":{"SS":["bbb","aaa","ccc","ddd"]},"NumberSet":{"NS":["222","111","333","444"]},"BinarySet":{"BS":["AgME","AQID","AwQF","BAUG"]}},{"RecNum":{"N":"215"},"StringSet":{"SS":["ddd","aaa","ccc","bbb"]},"NumberSet":{"NS":["444","111","333","222"]},"BinarySet":{"BS":["BAUG","AQID","AwQF","AgME"]}},{"RecNum":{"N":"216"},"StringSet":{"SS":["aaa","ddd","ccc","bbb"]},"NumberSet":{"NS":["111","444","333","222"]},"BinarySet":{"BS":["AQID","BAUG","AwQF","AgME"]}},{"RecNum":{"N":"217"},"StringSet":{"SS":["ccc","ddd","aaa","bbb"]},"NumberSet":{"NS":["333","444","111","222"]},"BinarySet":{"BS":["AwQF","BAUG","AQID","AgME"]}},{"RecNum":{"N":"218"},"StringSet":{"SS":["ddd","ccc","aaa","bbb"]},"NumberSet":{"NS":["444","333","111","222"]},"BinarySet":{"BS":["BAUG","AwQF","AQID","AgME"]}},{"RecNum":{"N":"219"},"StringSet":{"SS":["ddd","aaa","ccc","bbb"]},"NumberSet":{"NS":["444","111","333","222"]},"BinarySet":{"BS":["BAUG","AQID","AwQF","AgME"]}},{"RecNum":{"N":"220"},"StringSet":{"SS":["aaa","ddd","ccc","bbb"]},"NumberSet":{"NS":["111","444","333","222"]},"BinarySet":{"BS":["AQID","BAUG","AwQF","AgME"]}},{"RecNum":{"N":"221"},"StringSet":{"SS":["aaa","bbb","ccc","ddd"]},"NumberSet":{"NS":["111","222","333","444"]},"BinarySet":{"BS":["AQID","AgME","AwQF","BAUG"]}},{"RecNum":{"N":"222"},"StringSet":{"SS":["bbb","aaa","ccc","ddd"]},"NumberSet":{"NS":["222","111","333","444"]},"BinarySet":{"BS":["AgME","AQID","AwQF","BAUG"]}},{"RecNum":{"N":"223"},"StringSet":{"SS":["ccc","aaa","bbb","ddd"]},"NumberSet":{"NS":["333","111","222","444"]},"BinarySet":{"BS":["AwQF","AQID","AgME","BAUG"]}},{"RecNum":{"N":"224"},"StringSet":{"SS":["aaa","ccc","bbb","ddd"]},"NumberSet":{"NS":["111","333","222","444"]},"BinarySet":{"BS":["AQID","AwQF","AgME","BAUG"]}},{"RecNum":{"N":"225"},"StringSet":{"SS":["aaa","bbb","ccc","ddd"]},"NumberSet":{"NS":["111","222","333","444"]},"BinarySet":{"BS":["AQID","AgME","AwQF","BAUG"]}},{"RecNum":{"N":"226"},"StringSet":{"SS":["bbb","aaa","ccc","ddd"]},"NumberSet":{"NS":["222","111","333","444"]},"BinarySet":{"BS":["AgME","AQID","AwQF","BAUG"]}},{"RecNum":{"N":"227"},"StringSet":{"SS":["bbb","aaa","ddd","ccc"]},"NumberSet":{"NS":["222","111","444","333"]},"BinarySet":{"BS":["AgME","AQID","BAUG","AwQF"]}},{"RecNum":{"N":"228"},"StringSet":{"SS":["aaa","bbb","ddd","ccc"]},"NumberSet":{"NS":["111","222","444","333"]},"BinarySet":{"BS":["AQID","AgME","BAUG","AwQF"]}},{"RecNum":{"N":"229"},"StringSet":{"SS":["ddd","bbb","aaa","ccc"]},"NumberSet":{"NS":["444","222","111","333"]},"BinarySet":{"BS":["BAUG","AgME","AQID","AwQF"]}},{"RecNum":{"N":"230"},"StringSet":{"SS":["bbb","ddd","aaa","ccc"]},"NumberSet":{"NS":["222","444","111","333"]},"BinarySet":{"BS":["AgME","BAUG","AQID","AwQF"]}},{"RecNum":{"N":"231"},"StringSet":{"SS":["bbb","aaa","ddd","ccc"]},"NumberSet":{"NS":["222","111","444","333"]},"BinarySet":{"BS":["AgME","AQID","BAUG","AwQF"]}},{"RecNum":{"N":"232"},"StringSet":{"SS":["aaa","bbb","ddd","ccc"]},"NumberSet":{"NS":["111","222","444","333"]},"BinarySet":{"BS":["AQID","AgME","BAUG","AwQF"]}}],"Configs":{"AllSign":{"attributeActionsOnEncrypt":{"RecNum":"SIGN_ONLY","StringSet":"SIGN_ONLY","NumberSet":"SIGN_ONLY","BinarySet":"SIGN_ONLY"}},"AllEncrypt":{"attributeActionsOnEncrypt":{"RecNum":"SIGN_ONLY","StringSet":"ENCRYPT_AND_SIGN","NumberSet":"ENCRYPT_AND_SIGN","BinarySet":"ENCRYPT_AND_SIGN"}}}}}
1+
{
2+
"RoundTripTest": {
3+
"Records": [
4+
{
5+
"RecNum": { "N": "200" },
6+
"StringSet": { "SS": ["aaa"] },
7+
"NumberSet": { "NS": ["111"] },
8+
"BinarySet": { "BS": ["AQID"] }
9+
},
10+
{
11+
"RecNum": { "N": "201" },
12+
"StringSet": { "SS": ["aaa", "bbb"] },
13+
"NumberSet": { "NS": ["111", "222"] },
14+
"BinarySet": { "BS": ["AQID", "AgME"] }
15+
},
16+
{
17+
"RecNum": { "N": "202" },
18+
"StringSet": { "SS": ["bbb", "aaa"] },
19+
"NumberSet": { "NS": ["222", "111"] },
20+
"BinarySet": { "BS": ["AgME", "AQID"] }
21+
},
22+
{
23+
"RecNum": { "N": "203" },
24+
"StringSet": { "SS": ["aaa", "bbb", "ccc"] },
25+
"NumberSet": { "NS": ["111", "222", "333"] },
26+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF"] }
27+
},
28+
{
29+
"RecNum": { "N": "204" },
30+
"StringSet": { "SS": ["bbb", "aaa", "ccc"] },
31+
"NumberSet": { "NS": ["222", "111", "333"] },
32+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF"] }
33+
},
34+
{
35+
"RecNum": { "N": "205" },
36+
"StringSet": { "SS": ["ccc", "aaa", "bbb"] },
37+
"NumberSet": { "NS": ["333", "111", "222"] },
38+
"BinarySet": { "BS": ["AwQF", "AQID", "AgME"] }
39+
},
40+
{
41+
"RecNum": { "N": "206" },
42+
"StringSet": { "SS": ["aaa", "ccc", "bbb"] },
43+
"NumberSet": { "NS": ["111", "333", "222"] },
44+
"BinarySet": { "BS": ["AQID", "AwQF", "AgME"] }
45+
},
46+
{
47+
"RecNum": { "N": "207" },
48+
"StringSet": { "SS": ["aaa", "bbb", "ccc"] },
49+
"NumberSet": { "NS": ["111", "222", "333"] },
50+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF"] }
51+
},
52+
{
53+
"RecNum": { "N": "208" },
54+
"StringSet": { "SS": ["bbb", "aaa", "ccc"] },
55+
"NumberSet": { "NS": ["222", "111", "333"] },
56+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF"] }
57+
},
58+
{
59+
"RecNum": { "N": "209" },
60+
"StringSet": { "SS": ["aaa", "bbb", "ccc", "ddd"] },
61+
"NumberSet": { "NS": ["111", "222", "333", "444"] },
62+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF", "BAUG"] }
63+
},
64+
{
65+
"RecNum": { "N": "210" },
66+
"StringSet": { "SS": ["bbb", "aaa", "ccc", "ddd"] },
67+
"NumberSet": { "NS": ["222", "111", "333", "444"] },
68+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF", "BAUG"] }
69+
},
70+
{
71+
"RecNum": { "N": "211" },
72+
"StringSet": { "SS": ["ccc", "aaa", "bbb", "ddd"] },
73+
"NumberSet": { "NS": ["333", "111", "222", "444"] },
74+
"BinarySet": { "BS": ["AwQF", "AQID", "AgME", "BAUG"] }
75+
},
76+
{
77+
"RecNum": { "N": "212" },
78+
"StringSet": { "SS": ["aaa", "ccc", "bbb", "ddd"] },
79+
"NumberSet": { "NS": ["111", "333", "222", "444"] },
80+
"BinarySet": { "BS": ["AQID", "AwQF", "AgME", "BAUG"] }
81+
},
82+
{
83+
"RecNum": { "N": "213" },
84+
"StringSet": { "SS": ["aaa", "bbb", "ccc", "ddd"] },
85+
"NumberSet": { "NS": ["111", "222", "333", "444"] },
86+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF", "BAUG"] }
87+
},
88+
{
89+
"RecNum": { "N": "214" },
90+
"StringSet": { "SS": ["bbb", "aaa", "ccc", "ddd"] },
91+
"NumberSet": { "NS": ["222", "111", "333", "444"] },
92+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF", "BAUG"] }
93+
},
94+
{
95+
"RecNum": { "N": "215" },
96+
"StringSet": { "SS": ["ddd", "aaa", "ccc", "bbb"] },
97+
"NumberSet": { "NS": ["444", "111", "333", "222"] },
98+
"BinarySet": { "BS": ["BAUG", "AQID", "AwQF", "AgME"] }
99+
},
100+
{
101+
"RecNum": { "N": "216" },
102+
"StringSet": { "SS": ["aaa", "ddd", "ccc", "bbb"] },
103+
"NumberSet": { "NS": ["111", "444", "333", "222"] },
104+
"BinarySet": { "BS": ["AQID", "BAUG", "AwQF", "AgME"] }
105+
},
106+
{
107+
"RecNum": { "N": "217" },
108+
"StringSet": { "SS": ["ccc", "ddd", "aaa", "bbb"] },
109+
"NumberSet": { "NS": ["333", "444", "111", "222"] },
110+
"BinarySet": { "BS": ["AwQF", "BAUG", "AQID", "AgME"] }
111+
},
112+
{
113+
"RecNum": { "N": "218" },
114+
"StringSet": { "SS": ["ddd", "ccc", "aaa", "bbb"] },
115+
"NumberSet": { "NS": ["444", "333", "111", "222"] },
116+
"BinarySet": { "BS": ["BAUG", "AwQF", "AQID", "AgME"] }
117+
},
118+
{
119+
"RecNum": { "N": "219" },
120+
"StringSet": { "SS": ["ddd", "aaa", "ccc", "bbb"] },
121+
"NumberSet": { "NS": ["444", "111", "333", "222"] },
122+
"BinarySet": { "BS": ["BAUG", "AQID", "AwQF", "AgME"] }
123+
},
124+
{
125+
"RecNum": { "N": "220" },
126+
"StringSet": { "SS": ["aaa", "ddd", "ccc", "bbb"] },
127+
"NumberSet": { "NS": ["111", "444", "333", "222"] },
128+
"BinarySet": { "BS": ["AQID", "BAUG", "AwQF", "AgME"] }
129+
},
130+
{
131+
"RecNum": { "N": "221" },
132+
"StringSet": { "SS": ["aaa", "bbb", "ccc", "ddd"] },
133+
"NumberSet": { "NS": ["111", "222", "333", "444"] },
134+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF", "BAUG"] }
135+
},
136+
{
137+
"RecNum": { "N": "222" },
138+
"StringSet": { "SS": ["bbb", "aaa", "ccc", "ddd"] },
139+
"NumberSet": { "NS": ["222", "111", "333", "444"] },
140+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF", "BAUG"] }
141+
},
142+
{
143+
"RecNum": { "N": "223" },
144+
"StringSet": { "SS": ["ccc", "aaa", "bbb", "ddd"] },
145+
"NumberSet": { "NS": ["333", "111", "222", "444"] },
146+
"BinarySet": { "BS": ["AwQF", "AQID", "AgME", "BAUG"] }
147+
},
148+
{
149+
"RecNum": { "N": "224" },
150+
"StringSet": { "SS": ["aaa", "ccc", "bbb", "ddd"] },
151+
"NumberSet": { "NS": ["111", "333", "222", "444"] },
152+
"BinarySet": { "BS": ["AQID", "AwQF", "AgME", "BAUG"] }
153+
},
154+
{
155+
"RecNum": { "N": "225" },
156+
"StringSet": { "SS": ["aaa", "bbb", "ccc", "ddd"] },
157+
"NumberSet": { "NS": ["111", "222", "333", "444"] },
158+
"BinarySet": { "BS": ["AQID", "AgME", "AwQF", "BAUG"] }
159+
},
160+
{
161+
"RecNum": { "N": "226" },
162+
"StringSet": { "SS": ["bbb", "aaa", "ccc", "ddd"] },
163+
"NumberSet": { "NS": ["222", "111", "333", "444"] },
164+
"BinarySet": { "BS": ["AgME", "AQID", "AwQF", "BAUG"] }
165+
},
166+
{
167+
"RecNum": { "N": "227" },
168+
"StringSet": { "SS": ["bbb", "aaa", "ddd", "ccc"] },
169+
"NumberSet": { "NS": ["222", "111", "444", "333"] },
170+
"BinarySet": { "BS": ["AgME", "AQID", "BAUG", "AwQF"] }
171+
},
172+
{
173+
"RecNum": { "N": "228" },
174+
"StringSet": { "SS": ["aaa", "bbb", "ddd", "ccc"] },
175+
"NumberSet": { "NS": ["111", "222", "444", "333"] },
176+
"BinarySet": { "BS": ["AQID", "AgME", "BAUG", "AwQF"] }
177+
},
178+
{
179+
"RecNum": { "N": "229" },
180+
"StringSet": { "SS": ["ddd", "bbb", "aaa", "ccc"] },
181+
"NumberSet": { "NS": ["444", "222", "111", "333"] },
182+
"BinarySet": { "BS": ["BAUG", "AgME", "AQID", "AwQF"] }
183+
},
184+
{
185+
"RecNum": { "N": "230" },
186+
"StringSet": { "SS": ["bbb", "ddd", "aaa", "ccc"] },
187+
"NumberSet": { "NS": ["222", "444", "111", "333"] },
188+
"BinarySet": { "BS": ["AgME", "BAUG", "AQID", "AwQF"] }
189+
},
190+
{
191+
"RecNum": { "N": "231" },
192+
"StringSet": { "SS": ["bbb", "aaa", "ddd", "ccc"] },
193+
"NumberSet": { "NS": ["222", "111", "444", "333"] },
194+
"BinarySet": { "BS": ["AgME", "AQID", "BAUG", "AwQF"] }
195+
},
196+
{
197+
"RecNum": { "N": "232" },
198+
"StringSet": { "SS": ["aaa", "bbb", "ddd", "ccc"] },
199+
"NumberSet": { "NS": ["111", "222", "444", "333"] },
200+
"BinarySet": { "BS": ["AQID", "AgME", "BAUG", "AwQF"] }
201+
}
202+
],
203+
"Configs": {
204+
"AllSign": {
205+
"attributeActionsOnEncrypt": {
206+
"RecNum": "SIGN_ONLY",
207+
"StringSet": "SIGN_ONLY",
208+
"NumberSet": "SIGN_ONLY",
209+
"BinarySet": "SIGN_ONLY"
210+
}
211+
},
212+
"AllEncrypt": {
213+
"attributeActionsOnEncrypt": {
214+
"RecNum": "SIGN_ONLY",
215+
"StringSet": "ENCRYPT_AND_SIGN",
216+
"NumberSet": "ENCRYPT_AND_SIGN",
217+
"BinarySet": "ENCRYPT_AND_SIGN"
218+
}
219+
}
220+
}
221+
}
222+
}

0 commit comments

Comments
 (0)