1{
2 "runOn": [
3 {
4 "minServerVersion": "4.1.10"
5 }
6 ],
7 "database_name": "default",
8 "collection_name": "default",
9 "data": [
10 {
11 "_id": 1,
12 "encrypted_string": {
13 "$binary": {
14 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
15 "subType": "06"
16 }
17 }
18 },
19 {
20 "_id": 2,
21 "encrypted_string": {
22 "$binary": {
23 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
24 "subType": "06"
25 }
26 }
27 },
28 {
29 "_id": 3,
30 "encrypted_string": {
31 "$binary": {
32 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
33 "subType": "06"
34 }
35 }
36 }
37 ],
38 "json_schema": {
39 "properties": {
40 "encrypted_w_altname": {
41 "encrypt": {
42 "keyId": "/altname",
43 "bsonType": "string",
44 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
45 }
46 },
47 "encrypted_string": {
48 "encrypt": {
49 "keyId": [
50 {
51 "$binary": {
52 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
53 "subType": "04"
54 }
55 }
56 ],
57 "bsonType": "string",
58 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
59 }
60 },
61 "random": {
62 "encrypt": {
63 "keyId": [
64 {
65 "$binary": {
66 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
67 "subType": "04"
68 }
69 }
70 ],
71 "bsonType": "string",
72 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
73 }
74 },
75 "encrypted_string_equivalent": {
76 "encrypt": {
77 "keyId": [
78 {
79 "$binary": {
80 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
81 "subType": "04"
82 }
83 }
84 ],
85 "bsonType": "string",
86 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
87 }
88 }
89 },
90 "bsonType": "object"
91 },
92 "key_vault_data": [
93 {
94 "status": 1,
95 "_id": {
96 "$binary": {
97 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
98 "subType": "04"
99 }
100 },
101 "masterKey": {
102 "provider": "aws",
103 "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
104 "region": "us-east-1"
105 },
106 "updateDate": {
107 "$date": {
108 "$numberLong": "1552949630483"
109 }
110 },
111 "keyMaterial": {
112 "$binary": {
113 "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
114 "subType": "00"
115 }
116 },
117 "creationDate": {
118 "$date": {
119 "$numberLong": "1552949630483"
120 }
121 },
122 "keyAltNames": [
123 "altname",
124 "another_altname"
125 ]
126 }
127 ],
128 "tests": [
129 {
130 "description": "distinct with deterministic encryption",
131 "clientOptions": {
132 "autoEncryptOpts": {
133 "kmsProviders": {
134 "aws": {}
135 }
136 }
137 },
138 "operations": [
139 {
140 "name": "distinct",
141 "arguments": {
142 "filter": {
143 "encrypted_string": "string0"
144 },
145 "fieldName": "encrypted_string"
146 },
147 "result": [
148 "string0"
149 ]
150 }
151 ],
152 "expectations": [
153 {
154 "command_started_event": {
155 "command": {
156 "listCollections": 1,
157 "filter": {
158 "name": "default"
159 }
160 },
161 "command_name": "listCollections"
162 }
163 },
164 {
165 "command_started_event": {
166 "command": {
167 "find": "datakeys",
168 "filter": {
169 "$or": [
170 {
171 "_id": {
172 "$in": [
173 {
174 "$binary": {
175 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
176 "subType": "04"
177 }
178 }
179 ]
180 }
181 },
182 {
183 "keyAltNames": {
184 "$in": []
185 }
186 }
187 ]
188 },
189 "$db": "keyvault",
190 "readConcern": {
191 "level": "majority"
192 }
193 },
194 "command_name": "find"
195 }
196 },
197 {
198 "command_started_event": {
199 "command": {
200 "distinct": "default",
201 "key": "encrypted_string",
202 "query": {
203 "encrypted_string": {
204 "$eq": {
205 "$binary": {
206 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
207 "subType": "06"
208 }
209 }
210 }
211 }
212 },
213 "command_name": "distinct"
214 }
215 }
216 ],
217 "outcome": {
218 "collection": {
219 "data": [
220 {
221 "_id": 1,
222 "encrypted_string": {
223 "$binary": {
224 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
225 "subType": "06"
226 }
227 }
228 },
229 {
230 "_id": 2,
231 "encrypted_string": {
232 "$binary": {
233 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
234 "subType": "06"
235 }
236 }
237 },
238 {
239 "_id": 3,
240 "encrypted_string": {
241 "$binary": {
242 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
243 "subType": "06"
244 }
245 }
246 }
247 ]
248 }
249 }
250 },
251 {
252 "description": "Distinct fails when filtering on a random encrypted field",
253 "clientOptions": {
254 "autoEncryptOpts": {
255 "kmsProviders": {
256 "aws": {}
257 }
258 }
259 },
260 "operations": [
261 {
262 "name": "distinct",
263 "arguments": {
264 "filter": {
265 "random": "abc"
266 },
267 "fieldName": "encrypted_string"
268 },
269 "result": {
270 "errorContains": "Cannot query on fields encrypted with the randomized encryption"
271 }
272 }
273 ]
274 }
275 ]
276}
View as plain text