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": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
15          "subType": "00"
16        }
17      }
18    },
19    {
20      "_id": 2,
21      "encrypted_string": {
22        "$binary": {
23          "base64": "AQ==",
24          "subType": "06"
25        }
26      }
27    },
28    {
29      "_id": 3,
30      "encrypted_string": {
31        "$binary": {
32          "base64": "AQAAa2V2aW4gYWxiZXJ0c29uCg==",
33          "subType": "06"
34        }
35      }
36    }
37  ],
38  "key_vault_data": [
39    {
40      "status": 1,
41      "_id": {
42        "$binary": {
43          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
44          "subType": "04"
45        }
46      },
47      "masterKey": {
48        "provider": "aws",
49        "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
50        "region": "us-east-1"
51      },
52      "updateDate": {
53        "$date": {
54          "$numberLong": "1552949630483"
55        }
56      },
57      "keyMaterial": {
58        "$binary": {
59          "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
60          "subType": "00"
61        }
62      },
63      "creationDate": {
64        "$date": {
65          "$numberLong": "1552949630483"
66        }
67      },
68      "keyAltNames": [
69        "altname",
70        "another_altname"
71      ]
72    }
73  ],
74  "tests": [
75    {
76      "description": "Wrong subtype",
77      "clientOptions": {
78        "autoEncryptOpts": {
79          "schemaMap": {
80            "default.default": {
81              "properties": {
82                "encrypted_w_altname": {
83                  "encrypt": {
84                    "keyId": "/altname",
85                    "bsonType": "string",
86                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
87                  }
88                },
89                "encrypted_string": {
90                  "encrypt": {
91                    "keyId": [
92                      {
93                        "$binary": {
94                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
95                          "subType": "04"
96                        }
97                      }
98                    ],
99                    "bsonType": "string",
100                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
101                  }
102                },
103                "random": {
104                  "encrypt": {
105                    "keyId": [
106                      {
107                        "$binary": {
108                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
109                          "subType": "04"
110                        }
111                      }
112                    ],
113                    "bsonType": "string",
114                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
115                  }
116                },
117                "encrypted_string_equivalent": {
118                  "encrypt": {
119                    "keyId": [
120                      {
121                        "$binary": {
122                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
123                          "subType": "04"
124                        }
125                      }
126                    ],
127                    "bsonType": "string",
128                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
129                  }
130                }
131              },
132              "bsonType": "object"
133            }
134          },
135          "kmsProviders": {
136            "aws": {}
137          }
138        }
139      },
140      "operations": [
141        {
142          "name": "find",
143          "arguments": {
144            "filter": {
145              "_id": 1
146            }
147          },
148          "result": [
149            {
150              "_id": 1,
151              "encrypted_string": {
152                "$binary": {
153                  "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
154                  "subType": "00"
155                }
156              }
157            }
158          ]
159        }
160      ]
161    },
162    {
163      "description": "Empty data",
164      "clientOptions": {
165        "autoEncryptOpts": {
166          "schemaMap": {
167            "default.default": {
168              "properties": {
169                "encrypted_w_altname": {
170                  "encrypt": {
171                    "keyId": "/altname",
172                    "bsonType": "string",
173                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
174                  }
175                },
176                "encrypted_string": {
177                  "encrypt": {
178                    "keyId": [
179                      {
180                        "$binary": {
181                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
182                          "subType": "04"
183                        }
184                      }
185                    ],
186                    "bsonType": "string",
187                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
188                  }
189                },
190                "random": {
191                  "encrypt": {
192                    "keyId": [
193                      {
194                        "$binary": {
195                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
196                          "subType": "04"
197                        }
198                      }
199                    ],
200                    "bsonType": "string",
201                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
202                  }
203                },
204                "encrypted_string_equivalent": {
205                  "encrypt": {
206                    "keyId": [
207                      {
208                        "$binary": {
209                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
210                          "subType": "04"
211                        }
212                      }
213                    ],
214                    "bsonType": "string",
215                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
216                  }
217                }
218              },
219              "bsonType": "object"
220            }
221          },
222          "kmsProviders": {
223            "aws": {}
224          }
225        }
226      },
227      "operations": [
228        {
229          "name": "find",
230          "arguments": {
231            "filter": {
232              "_id": 2
233            }
234          },
235          "result": {
236            "errorContains": "malformed ciphertext"
237          }
238        }
239      ]
240    },
241    {
242      "description": "Malformed data",
243      "clientOptions": {
244        "autoEncryptOpts": {
245          "schemaMap": {
246            "default.default": {
247              "properties": {
248                "encrypted_w_altname": {
249                  "encrypt": {
250                    "keyId": "/altname",
251                    "bsonType": "string",
252                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
253                  }
254                },
255                "encrypted_string": {
256                  "encrypt": {
257                    "keyId": [
258                      {
259                        "$binary": {
260                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
261                          "subType": "04"
262                        }
263                      }
264                    ],
265                    "bsonType": "string",
266                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
267                  }
268                },
269                "random": {
270                  "encrypt": {
271                    "keyId": [
272                      {
273                        "$binary": {
274                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
275                          "subType": "04"
276                        }
277                      }
278                    ],
279                    "bsonType": "string",
280                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
281                  }
282                },
283                "encrypted_string_equivalent": {
284                  "encrypt": {
285                    "keyId": [
286                      {
287                        "$binary": {
288                          "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
289                          "subType": "04"
290                        }
291                      }
292                    ],
293                    "bsonType": "string",
294                    "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
295                  }
296                }
297              },
298              "bsonType": "object"
299            }
300          },
301          "kmsProviders": {
302            "aws": {}
303          }
304        }
305      },
306      "operations": [
307        {
308          "name": "find",
309          "arguments": {
310            "filter": {
311              "_id": 3
312            }
313          },
314          "result": {
315            "errorContains": "not all keys requested were satisfied"
316          }
317        }
318      ]
319    }
320  ]
321}
322