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": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
24 "subType": "06"
25 }
26 },
27 "random": {
28 "$binary": {
29 "base64": "AgAAAAAAAAAAAAAAAAAAAAACyfp+lXvKOi7f5vh6ZsCijLEaXFKq1X06RmyS98ZvmMQGixTw8HM1f/bGxZjGwvYwjXOkIEb7Exgb8p2KCDI5TQ==",
30 "subType": "06"
31 }
32 }
33 }
34 ],
35 "json_schema": {
36 "properties": {
37 "encrypted_w_altname": {
38 "encrypt": {
39 "keyId": "/altname",
40 "bsonType": "string",
41 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
42 }
43 },
44 "encrypted_string": {
45 "encrypt": {
46 "keyId": [
47 {
48 "$binary": {
49 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
50 "subType": "04"
51 }
52 }
53 ],
54 "bsonType": "string",
55 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
56 }
57 },
58 "random": {
59 "encrypt": {
60 "keyId": [
61 {
62 "$binary": {
63 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
64 "subType": "04"
65 }
66 }
67 ],
68 "bsonType": "string",
69 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
70 }
71 },
72 "encrypted_string_equivalent": {
73 "encrypt": {
74 "keyId": [
75 {
76 "$binary": {
77 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
78 "subType": "04"
79 }
80 }
81 ],
82 "bsonType": "string",
83 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
84 }
85 }
86 },
87 "bsonType": "object"
88 },
89 "key_vault_data": [
90 {
91 "status": 1,
92 "_id": {
93 "$binary": {
94 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
95 "subType": "04"
96 }
97 },
98 "masterKey": {
99 "provider": "aws",
100 "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
101 "region": "us-east-1"
102 },
103 "updateDate": {
104 "$date": {
105 "$numberLong": "1552949630483"
106 }
107 },
108 "keyMaterial": {
109 "$binary": {
110 "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
111 "subType": "00"
112 }
113 },
114 "creationDate": {
115 "$date": {
116 "$numberLong": "1552949630483"
117 }
118 },
119 "keyAltNames": [
120 "altname",
121 "another_altname"
122 ]
123 }
124 ],
125 "tests": [
126 {
127 "description": "Find with deterministic encryption",
128 "clientOptions": {
129 "autoEncryptOpts": {
130 "kmsProviders": {
131 "aws": {}
132 }
133 }
134 },
135 "operations": [
136 {
137 "name": "find",
138 "arguments": {
139 "filter": {
140 "encrypted_string": "string0"
141 }
142 },
143 "result": [
144 {
145 "_id": 1,
146 "encrypted_string": "string0"
147 }
148 ]
149 }
150 ],
151 "expectations": [
152 {
153 "command_started_event": {
154 "command": {
155 "listCollections": 1,
156 "filter": {
157 "name": "default"
158 }
159 },
160 "command_name": "listCollections"
161 }
162 },
163 {
164 "command_started_event": {
165 "command": {
166 "find": "datakeys",
167 "filter": {
168 "$or": [
169 {
170 "_id": {
171 "$in": [
172 {
173 "$binary": {
174 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
175 "subType": "04"
176 }
177 }
178 ]
179 }
180 },
181 {
182 "keyAltNames": {
183 "$in": []
184 }
185 }
186 ]
187 },
188 "$db": "keyvault",
189 "readConcern": {
190 "level": "majority"
191 }
192 },
193 "command_name": "find"
194 }
195 },
196 {
197 "command_started_event": {
198 "command": {
199 "find": "default",
200 "filter": {
201 "encrypted_string": {
202 "$eq": {
203 "$binary": {
204 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
205 "subType": "06"
206 }
207 }
208 }
209 }
210 },
211 "command_name": "find"
212 }
213 }
214 ],
215 "outcome": {
216 "collection": {
217 "data": [
218 {
219 "_id": 1,
220 "encrypted_string": {
221 "$binary": {
222 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
223 "subType": "06"
224 }
225 }
226 },
227 {
228 "_id": 2,
229 "encrypted_string": {
230 "$binary": {
231 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
232 "subType": "06"
233 }
234 },
235 "random": {
236 "$binary": {
237 "base64": "AgAAAAAAAAAAAAAAAAAAAAACyfp+lXvKOi7f5vh6ZsCijLEaXFKq1X06RmyS98ZvmMQGixTw8HM1f/bGxZjGwvYwjXOkIEb7Exgb8p2KCDI5TQ==",
238 "subType": "06"
239 }
240 }
241 }
242 ]
243 }
244 }
245 },
246 {
247 "description": "Find with $in with deterministic encryption",
248 "clientOptions": {
249 "autoEncryptOpts": {
250 "kmsProviders": {
251 "aws": {}
252 }
253 }
254 },
255 "operations": [
256 {
257 "name": "find",
258 "arguments": {
259 "filter": {
260 "encrypted_string": {
261 "$in": [
262 "string0",
263 "string1"
264 ]
265 }
266 }
267 },
268 "result": [
269 {
270 "_id": 1,
271 "encrypted_string": "string0"
272 },
273 {
274 "_id": 2,
275 "encrypted_string": "string1",
276 "random": "abc"
277 }
278 ]
279 }
280 ],
281 "expectations": [
282 {
283 "command_started_event": {
284 "command": {
285 "listCollections": 1,
286 "filter": {
287 "name": "default"
288 }
289 },
290 "command_name": "listCollections"
291 }
292 },
293 {
294 "command_started_event": {
295 "command": {
296 "find": "datakeys",
297 "filter": {
298 "$or": [
299 {
300 "_id": {
301 "$in": [
302 {
303 "$binary": {
304 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
305 "subType": "04"
306 }
307 }
308 ]
309 }
310 },
311 {
312 "keyAltNames": {
313 "$in": []
314 }
315 }
316 ]
317 },
318 "$db": "keyvault",
319 "readConcern": {
320 "level": "majority"
321 }
322 },
323 "command_name": "find"
324 }
325 },
326 {
327 "command_started_event": {
328 "command": {
329 "find": "default",
330 "filter": {
331 "encrypted_string": {
332 "$in": [
333 {
334 "$binary": {
335 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
336 "subType": "06"
337 }
338 },
339 {
340 "$binary": {
341 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
342 "subType": "06"
343 }
344 }
345 ]
346 }
347 }
348 },
349 "command_name": "find"
350 }
351 }
352 ],
353 "outcome": {
354 "collection": {
355 "data": [
356 {
357 "_id": 1,
358 "encrypted_string": {
359 "$binary": {
360 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
361 "subType": "06"
362 }
363 }
364 },
365 {
366 "_id": 2,
367 "encrypted_string": {
368 "$binary": {
369 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
370 "subType": "06"
371 }
372 },
373 "random": {
374 "$binary": {
375 "base64": "AgAAAAAAAAAAAAAAAAAAAAACyfp+lXvKOi7f5vh6ZsCijLEaXFKq1X06RmyS98ZvmMQGixTw8HM1f/bGxZjGwvYwjXOkIEb7Exgb8p2KCDI5TQ==",
376 "subType": "06"
377 }
378 }
379 }
380 ]
381 }
382 }
383 },
384 {
385 "description": "Find fails when filtering on a random encrypted field",
386 "clientOptions": {
387 "autoEncryptOpts": {
388 "kmsProviders": {
389 "aws": {}
390 }
391 }
392 },
393 "operations": [
394 {
395 "name": "find",
396 "arguments": {
397 "filter": {
398 "random": "abc"
399 }
400 },
401 "result": {
402 "errorContains": "Cannot query on fields encrypted with the randomized encryption"
403 }
404 }
405 ]
406 }
407 ]
408}
View as plain text