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 "json_schema": {
30 "properties": {
31 "encrypted_w_altname": {
32 "encrypt": {
33 "keyId": "/altname",
34 "bsonType": "string",
35 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
36 }
37 },
38 "encrypted_string": {
39 "encrypt": {
40 "keyId": [
41 {
42 "$binary": {
43 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
44 "subType": "04"
45 }
46 }
47 ],
48 "bsonType": "string",
49 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
50 }
51 },
52 "random": {
53 "encrypt": {
54 "keyId": [
55 {
56 "$binary": {
57 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
58 "subType": "04"
59 }
60 }
61 ],
62 "bsonType": "string",
63 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
64 }
65 },
66 "encrypted_string_equivalent": {
67 "encrypt": {
68 "keyId": [
69 {
70 "$binary": {
71 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
72 "subType": "04"
73 }
74 }
75 ],
76 "bsonType": "string",
77 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
78 }
79 }
80 },
81 "bsonType": "object"
82 },
83 "key_vault_data": [
84 {
85 "status": 1,
86 "_id": {
87 "$binary": {
88 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
89 "subType": "04"
90 }
91 },
92 "masterKey": {
93 "provider": "aws",
94 "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
95 "region": "us-east-1"
96 },
97 "updateDate": {
98 "$date": {
99 "$numberLong": "1552949630483"
100 }
101 },
102 "keyMaterial": {
103 "$binary": {
104 "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
105 "subType": "00"
106 }
107 },
108 "creationDate": {
109 "$date": {
110 "$numberLong": "1552949630483"
111 }
112 },
113 "keyAltNames": [
114 "altname",
115 "another_altname"
116 ]
117 }
118 ],
119 "tests": [
120 {
121 "description": "Count with deterministic encryption",
122 "clientOptions": {
123 "autoEncryptOpts": {
124 "kmsProviders": {
125 "aws": {}
126 }
127 }
128 },
129 "operations": [
130 {
131 "name": "count",
132 "arguments": {
133 "filter": {
134 "encrypted_string": "string0"
135 }
136 },
137 "result": 2
138 }
139 ],
140 "expectations": [
141 {
142 "command_started_event": {
143 "command": {
144 "listCollections": 1,
145 "filter": {
146 "name": "default"
147 }
148 },
149 "command_name": "listCollections"
150 }
151 },
152 {
153 "command_started_event": {
154 "command": {
155 "find": "datakeys",
156 "filter": {
157 "$or": [
158 {
159 "_id": {
160 "$in": [
161 {
162 "$binary": {
163 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
164 "subType": "04"
165 }
166 }
167 ]
168 }
169 },
170 {
171 "keyAltNames": {
172 "$in": []
173 }
174 }
175 ]
176 },
177 "$db": "keyvault",
178 "readConcern": {
179 "level": "majority"
180 }
181 },
182 "command_name": "find"
183 }
184 },
185 {
186 "command_started_event": {
187 "command": {
188 "count": "default",
189 "query": {
190 "encrypted_string": {
191 "$eq": {
192 "$binary": {
193 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
194 "subType": "06"
195 }
196 }
197 }
198 }
199 },
200 "command_name": "count"
201 }
202 }
203 ]
204 },
205 {
206 "description": "Count fails when filtering on a random encrypted field",
207 "clientOptions": {
208 "autoEncryptOpts": {
209 "kmsProviders": {
210 "aws": {}
211 }
212 }
213 },
214 "operations": [
215 {
216 "name": "count",
217 "arguments": {
218 "filter": {
219 "random": "abc"
220 }
221 },
222 "result": {
223 "errorContains": "Cannot query on fields encrypted with the randomized encryption"
224 }
225 }
226 ]
227 }
228 ]
229}
View as plain text