From 598144472632fa6c085063b0df971f18155fa7e3 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 08:23:05 -0500 Subject: [PATCH 01/15] do not allow opting in to QEv1 `mongocrypt_setopt_fle2v2` can only be called privately. It is only used in now-defunct tests of QEv1. --- src/mongocrypt.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mongocrypt.c b/src/mongocrypt.c index 14f427b8b..f7f6d6229 100644 --- a/src/mongocrypt.c +++ b/src/mongocrypt.c @@ -151,7 +151,6 @@ mongocrypt_t *mongocrypt_new(void) { bool mongocrypt_setopt_fle2v2(mongocrypt_t *crypt, bool enable) { ASSERT_MONGOCRYPT_PARAM_UNINIT(crypt); - crypt->opts.use_fle2_v2 = enable; return true; } From f2e738caaac95bfe6e96a127d3f1993abb967feb Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Mon, 30 Dec 2024 08:31:50 -0500 Subject: [PATCH 02/15] remove `_test_encrypt_fle2_delete_v1` QEv2 does not append `deleteTokens` --- .../fle2-delete/empty/encrypted-payload.json | 91 ------ .../success/encrypted-payload.json | 98 ------- test/test-mongocrypt-ctx-encrypt.c | 275 ------------------ 3 files changed, 464 deletions(-) delete mode 100644 test/data/fle2-delete/empty/encrypted-payload.json delete mode 100644 test/data/fle2-delete/success/encrypted-payload.json diff --git a/test/data/fle2-delete/empty/encrypted-payload.json b/test/data/fle2-delete/empty/encrypted-payload.json deleted file mode 100644 index 1e58f37ed..000000000 --- a/test/data/fle2-delete/empty/encrypted-payload.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "delete": "test", - "deletes": [ - { - "q": {}, - "limit": 1 - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - }, - "deleteTokens": { - "db.test": { - "nested.encrypted": { - "e": { - "$binary": { - "base64": "vtmZa9S/cT2lpsvFf4d2y1Febe7MuAQnAaB+1PzM8zI=", - "subType": "00" - } - }, - "o": { - "$binary": { - "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", - "subType": "00" - } - } - }, - "encrypted": { - "e": { - "$binary": { - "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=", - "subType": "00" - } - }, - "o": { - "$binary": { - "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", - "subType": "00" - } - } - } - } - } - } -} diff --git a/test/data/fle2-delete/success/encrypted-payload.json b/test/data/fle2-delete/success/encrypted-payload.json deleted file mode 100644 index 9095b41a0..000000000 --- a/test/data/fle2-delete/success/encrypted-payload.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "delete": "test", - "deletes": [ - { - "q": { - "value": { - "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", - "subType": "06" - } - } - }, - "limit": 1 - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - }, - "deleteTokens": { - "db.test": { - "nested.encrypted": { - "e": { - "$binary": { - "base64": "vtmZa9S/cT2lpsvFf4d2y1Febe7MuAQnAaB+1PzM8zI=", - "subType": "00" - } - }, - "o": { - "$binary": { - "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", - "subType": "00" - } - } - }, - "encrypted": { - "e": { - "$binary": { - "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=", - "subType": "00" - } - }, - "o": { - "$binary": { - "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", - "subType": "00" - } - } - } - } - } - } -} diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index 9508e5afd..d3f032252 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -3275,280 +3275,6 @@ static void _test_encrypt_applies_default_state_collections(_mongocrypt_tester_t } } -/* Test encrypting an empty 'delete' command without values to be encrypted. - * Expect deleteTokens to be applied. */ -static void _test_encrypt_fle2_delete_v1(_mongocrypt_tester_t *tester) { - /* Test success. */ - { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); - mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); - - ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-delete/success/cmd.json")), - ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_COLLINFO); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/success/collinfo.json")), ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); - { - ASSERT_OK( - mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/success/mongocryptd-reply.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "ABCDEFAB123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789013-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - { - mongocrypt_binary_t *out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-delete/success/encrypted-payload.json"), - out); - mongocrypt_binary_destroy(out); - } - - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } - /* Test with no encrypted values. */ - { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); - mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); - - ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-delete/empty/cmd.json")), ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_COLLINFO); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/empty/collinfo.json")), ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/empty/mongocryptd-reply.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789013-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - { - mongocrypt_binary_t *out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-delete/empty/encrypted-payload.json"), out); - mongocrypt_binary_destroy(out); - } - - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } - - /* deleteTokens are appended when bypassQueryAnalysis is true. */ - { - mongocrypt_t *crypt = mongocrypt_new(); - /* Configure crypt. */ - { - char localkey_data[MONGOCRYPT_KEY_LEN] = {0}; - mongocrypt_binary_t *localkey; - localkey = mongocrypt_binary_new_from_data((uint8_t *)localkey_data, sizeof localkey_data); - ASSERT_OK(mongocrypt_setopt_kms_provider_local(crypt, localkey), crypt); - mongocrypt_binary_destroy(localkey); - mongocrypt_setopt_bypass_query_analysis(crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: - // decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); - ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); - } - - mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); - - ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-delete/empty/cmd.json")), ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_COLLINFO); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/empty/collinfo.json")), ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789013-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - { - mongocrypt_binary_t *out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-delete/empty/encrypted-payload.json"), out); - mongocrypt_binary_destroy(out); - } - - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } - - /* Test that deleteTokens are appended when using an - * encrypted_field_config_map. */ - { - mongocrypt_t *crypt = mongocrypt_new(); - /* Configure crypt. */ - { - char localkey_data[MONGOCRYPT_KEY_LEN] = {0}; - mongocrypt_binary_t *localkey; - localkey = mongocrypt_binary_new_from_data((uint8_t *)localkey_data, sizeof localkey_data); - ASSERT_OK(mongocrypt_setopt_kms_provider_local(crypt, localkey), crypt); - mongocrypt_binary_destroy(localkey); - ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, - TEST_FILE("./test/data/fle2-delete/success/" - "encrypted-field-config-map.json")), - crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: - // decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); - ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); - } - - mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); - - ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-delete/success/cmd.json")), - ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); - { - ASSERT_OK( - mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/fle2-delete/success/mongocryptd-reply.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "ABCDEFAB123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789013-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - { - mongocrypt_binary_t *out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-delete/success/encrypted-payload.json"), - out); - mongocrypt_binary_destroy(out); - } - - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } - - /* Test that deleteTokens are appended when using an - * encrypted_field_config_map and bypass_query_analysis. */ - { - mongocrypt_t *crypt = mongocrypt_new(); - /* Configure crypt. */ - { - char localkey_data[MONGOCRYPT_KEY_LEN] = {0}; - mongocrypt_binary_t *localkey; - localkey = mongocrypt_binary_new_from_data((uint8_t *)localkey_data, sizeof localkey_data); - ASSERT_OK(mongocrypt_setopt_kms_provider_local(crypt, localkey), crypt); - mongocrypt_binary_destroy(localkey); - ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, - TEST_FILE("./test/data/fle2-delete/empty/" - "encrypted-field-config-map.json")), - crypt); - mongocrypt_setopt_bypass_query_analysis(crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: - // decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); - ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); - } - - mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); - - ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-delete/empty/cmd.json")), ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789013-local-document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - } - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - { - mongocrypt_binary_t *out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-delete/empty/encrypted-payload.json"), out); - mongocrypt_binary_destroy(out); - } - - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } -} - /* Test encrypting an empty 'delete' command without values to be encrypted. * Expect deleteTokens to not be applied. */ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { @@ -3771,7 +3497,6 @@ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { } static void _test_encrypt_fle2_delete(_mongocrypt_tester_t *tester) { - _test_encrypt_fle2_delete_v1(tester); _test_encrypt_fle2_delete_v2(tester); } From 86f812d22f4d94a0b8709a3d1d8c15e611948cdc Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 08:28:24 -0500 Subject: [PATCH 03/15] fix failing tests Update payloads to V2 payloads. Remove `eccCollection`. The `eccCollection` is not used in QEv2. --- .../dollardb/omitted/encrypted-payload.json | 4 +- .../dollardb/preserved/encrypted-payload.json | 4 +- .../data/find-with-encryptionInformation.json | 1 - .../with-csfle/encrypted-payload.json | 2 +- .../with-mongocryptd/encrypted-payload.json | 4 +- .../cmd-to-mongocryptd.json | 1 - .../fle2-find-explicit/cmd-to-mongod.json | 1 - test/test-mongocrypt-ctx-encrypt.c | 135 ++++++------------ 8 files changed, 49 insertions(+), 103 deletions(-) diff --git a/test/data/dollardb/omitted/encrypted-payload.json b/test/data/dollardb/omitted/encrypted-payload.json index b5647328d..2e8623892 100644 --- a/test/data/dollardb/omitted/encrypted-payload.json +++ b/test/data/dollardb/omitted/encrypted-payload.json @@ -3,7 +3,7 @@ "filter": { "value": { "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", "subType": "06" } } @@ -36,4 +36,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved/encrypted-payload.json b/test/data/dollardb/preserved/encrypted-payload.json index ba2ba74d0..4ad0a3ca0 100644 --- a/test/data/dollardb/preserved/encrypted-payload.json +++ b/test/data/dollardb/preserved/encrypted-payload.json @@ -3,7 +3,7 @@ "filter": { "value": { "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", "subType": "06" } } @@ -37,4 +37,4 @@ } }, "$db": "db" -} \ No newline at end of file +} diff --git a/test/data/find-with-encryptionInformation.json b/test/data/find-with-encryptionInformation.json index 927819c36..b6a4a5f22 100644 --- a/test/data/find-with-encryptionInformation.json +++ b/test/data/find-with-encryptionInformation.json @@ -8,7 +8,6 @@ "db.coll": { "fields": [], "escCollection": "enxcol_.coll.esc", - "eccCollection": "enxcol_.coll.ecc", "ecocCollection": "enxcol_.coll.ecoc" } } diff --git a/test/data/fle2-explain/with-csfle/encrypted-payload.json b/test/data/fle2-explain/with-csfle/encrypted-payload.json index 9262d847a..db9a2b067 100644 --- a/test/data/fle2-explain/with-csfle/encrypted-payload.json +++ b/test/data/fle2-explain/with-csfle/encrypted-payload.json @@ -5,7 +5,7 @@ "value": { "$eq": { "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", "subType": "06" } } diff --git a/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json b/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json index d7cba2956..3ef787caa 100644 --- a/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json +++ b/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json @@ -4,7 +4,7 @@ "filter": { "value": { "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", "subType": "06" } } @@ -38,4 +38,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/data/fle2-find-explicit/cmd-to-mongocryptd.json b/test/data/fle2-find-explicit/cmd-to-mongocryptd.json index b9ac0b7f9..a447d615b 100644 --- a/test/data/fle2-find-explicit/cmd-to-mongocryptd.json +++ b/test/data/fle2-find-explicit/cmd-to-mongocryptd.json @@ -16,7 +16,6 @@ "db.coll": { "fields": [], "escCollection": "enxcol_.coll.esc", - "eccCollection": "enxcol_.coll.ecc", "ecocCollection": "enxcol_.coll.ecoc" } } diff --git a/test/data/fle2-find-explicit/cmd-to-mongod.json b/test/data/fle2-find-explicit/cmd-to-mongod.json index b9ac0b7f9..a447d615b 100644 --- a/test/data/fle2-find-explicit/cmd-to-mongod.json +++ b/test/data/fle2-find-explicit/cmd-to-mongod.json @@ -16,7 +16,6 @@ "db.coll": { "fields": [], "escCollection": "enxcol_.coll.esc", - "eccCollection": "enxcol_.coll.ecc", "ecocCollection": "enxcol_.coll.ecoc" } } diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index d3f032252..eded41712 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -1327,9 +1327,6 @@ static void _test_encrypt_with_encrypted_field_config_map(_mongocrypt_tester_t * mongocrypt_setopt_kms_providers(crypt, TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, TEST_BSON("{'db.coll': {'fields': []}}")), crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); /* Test encrypting a command on a collection present in the encrypted field @@ -1437,9 +1434,6 @@ static void _test_encrypt_remote_encryptedfields(_mongocrypt_tester_t *tester) { ASSERT_OK( mongocrypt_setopt_kms_providers(crypt, TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); /* Test success. */ { @@ -1502,9 +1496,6 @@ static void _test_encrypt_remote_encryptedfields(_mongocrypt_tester_t *tester) { mongocrypt_setopt_kms_providers(crypt, TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-find-explicit/cmd.json")), @@ -1552,9 +1543,6 @@ static void _test_encrypt_with_bypassqueryanalysis(_mongocrypt_tester_t *tester) crypt); ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, TEST_BSON("{'db.coll': {'fields': []}}")), crypt); mongocrypt_setopt_bypass_query_analysis(crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); @@ -1584,9 +1572,6 @@ static void _test_encrypt_with_bypassqueryanalysis(_mongocrypt_tester_t *tester) TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); mongocrypt_setopt_bypass_query_analysis(crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); @@ -1931,27 +1916,18 @@ static bool _test_rng_source(void *ctx, mongocrypt_binary_t *out, uint32_t count typedef enum { kFLE2v2Default, - kFLE2v2Disable, kFLE2v2Enable, } _test_fle2v2_option; #define TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, data_path, rng_source, v2_failure) \ { \ (rng_source)->pos = 0; \ - _test_encrypt_fle2_encryption_placeholder(tester, data_path, rng_source, kFLE2v2Disable, NULL); \ - char v2path[4096]; \ - /* transitional: Use v1 data path if expecting failure */ \ - ASSERT(snprintf(v2path, sizeof(v2path), "%s%s", data_path, v2_failure ? "" : "-v2")); \ - (rng_source)->pos = 0; \ - _test_encrypt_fle2_encryption_placeholder(tester, v2path, rng_source, kFLE2v2Default, NULL); \ - (rng_source)->pos = 0; \ - _test_encrypt_fle2_encryption_placeholder(tester, v2path, rng_source, kFLE2v2Enable, v2_failure); \ + _test_encrypt_fle2_encryption_placeholder(tester, data_path, rng_source, NULL); \ } static void _test_encrypt_fle2_encryption_placeholder(_mongocrypt_tester_t *tester, const char *data_path, _test_rng_data_source *rng_source, - _test_fle2v2_option test_fle2v2_option, const char *finalize_failure) { mongocrypt_t *crypt; char pathbuf[2048]; @@ -1976,9 +1952,6 @@ static void _test_encrypt_fle2_encryption_placeholder(_mongocrypt_tester_t *test mongocrypt_binary_t *localkey; crypt = mongocrypt_new(); - if (test_fle2v2_option == kFLE2v2Disable) { - ASSERT(mongocrypt_setopt_fle2v2(crypt, false)); - } mongocrypt_setopt_log_handler(crypt, _mongocrypt_stdout_log_fn, NULL); localkey = mongocrypt_binary_new_from_data((uint8_t *)localkey_data, sizeof localkey_data); ASSERT_OK(mongocrypt_setopt_kms_provider_local(crypt, localkey), crypt); @@ -2055,7 +2028,7 @@ static void _test_encrypt_fle2_insert_payload(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-v2", &source, NULL) } #undef RNG_DATA @@ -2063,7 +2036,7 @@ static void _test_encrypt_fle2_insert_payload(_mongocrypt_tester_t *tester) { // FLE2FindEqualityPayload only uses deterministic token generation. static void _test_encrypt_fle2_find_payload(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-equality", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-equality-v2", &source, NULL) } /* 16 bytes of random data are used for IV. This IV produces the expected test @@ -2073,7 +2046,7 @@ static void _test_encrypt_fle2_find_payload(_mongocrypt_tester_t *tester) { static void _test_encrypt_fle2_unindexed_encrypted_payload(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-unindexed", &source, NULL); + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-unindexed-v2", &source, NULL); } #undef RNG_DATA @@ -2083,7 +2056,7 @@ static void _test_encrypt_fle2_unindexed_encrypted_payload(_mongocrypt_tester_t static void _test_encrypt_fle2_insert_range_payload_int32(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int32", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int32-v2", &source, NULL) } #undef RNG_DATA @@ -2093,7 +2066,7 @@ static void _test_encrypt_fle2_insert_range_payload_int32(_mongocrypt_tester_t * static void _test_encrypt_fle2_insert_range_payload_int64(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int64", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int64-v2", &source, NULL) } #undef RNG_DATA @@ -2103,7 +2076,7 @@ static void _test_encrypt_fle2_insert_range_payload_int64(_mongocrypt_tester_t * static void _test_encrypt_fle2_insert_range_payload_date(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/date", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/date-v2", &source, NULL) } #undef RNG_DATA @@ -2113,7 +2086,7 @@ static void _test_encrypt_fle2_insert_range_payload_date(_mongocrypt_tester_t *t static void _test_encrypt_fle2_insert_range_payload_double(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-v2", &source, NULL) } #undef RNG_DATA @@ -2123,7 +2096,7 @@ static void _test_encrypt_fle2_insert_range_payload_double(_mongocrypt_tester_t static void _test_encrypt_fle2_insert_range_payload_double_precision(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-precision", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-precision-v2", &source, NULL) } #undef RNG_DATA @@ -2134,7 +2107,7 @@ static void _test_encrypt_fle2_insert_range_payload_double_precision(_mongocrypt static void _test_encrypt_fle2_insert_range_payload_decimal128(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-v2", &source, NULL) } #undef RNG_DATA @@ -2144,7 +2117,7 @@ static void _test_encrypt_fle2_insert_range_payload_decimal128(_mongocrypt_teste static void _test_encrypt_fle2_insert_range_payload_decimal128_precision(_mongocrypt_tester_t *tester) { uint8_t rng_data[] = RNG_DATA; _test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-precision", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-precision-v2", &source, NULL) } #undef RNG_DATA @@ -2153,44 +2126,44 @@ static void _test_encrypt_fle2_insert_range_payload_decimal128_precision(_mongoc // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_int32(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int32", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int32-v2", &source, NULL) } // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_int64(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int64", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int64-v2", &source, NULL) } // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_date(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/date", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/date-v2", &source, NULL) } // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_double(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-v2", &source, NULL) } // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_double_precision(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-precision", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-precision-v2", &source, NULL) } #if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_decimal128(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-v2", &source, NULL) } // FLE2FindRangePayload only uses deterministic token generation. static void _test_encrypt_fle2_find_range_payload_decimal128_precision(_mongocrypt_tester_t *tester) { _test_rng_data_source source = {{0}}; - TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-precision", &source, NULL) + TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-precision-v2", &source, NULL) } #endif // MONGOCRYPT_HAVE_DECIMAL128_SUPPORT @@ -2216,9 +2189,6 @@ static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source, bool use crypt); mongocrypt_binary_destroy(localkey); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, use_v2), crypt); if (use_range_v2) { ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt); ASSERT_OK(mongocrypt_init(crypt), crypt); @@ -2258,10 +2228,6 @@ static void ee_testcase_run(ee_testcase *tc) { crypt = _crypt_with_rng(&tc->rng_data, tc->use_v2, tc->use_range_v2); } else { tester_mongocrypt_flags flags = TESTER_MONGOCRYPT_DEFAULT; - // TODO(MONGOCRYPT-572): Remove tests cases for QEv1. - if (!tc->use_v2) { - flags |= TESTER_MONGOCRYPT_WITH_CRYPT_V1; - } if (tc->use_range_v2) { flags |= TESTER_MONGOCRYPT_WITH_RANGE_V2; } @@ -2369,8 +2335,8 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_BSON("{'v': { '$binary': { 'base64': " - "'BqvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFTtw1tXzjc" - "dSEyxpKKqujlko5TeizkB9hHQ009dVY1+fgIiDcefh+eQrm3CkhQ=='" + "'EKvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFVl3jjP90PgD4T+Mtubn/" + "mm4CKsKGaV1yxlic9Dty1Adef4Y+bsLGKhBbCa5eojM/A=='" ", 'subType': '06' } }}"); ee_testcase_run(&tc); } @@ -2411,7 +2377,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 'value123'}"); tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed.json"); + tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); ee_testcase_run(&tc); } @@ -2457,7 +2423,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 'value123'}"); tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed.json"); + tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); ee_testcase_run(&tc); } @@ -2509,7 +2475,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/" - "insert-indexed-contentionFactor1.json"); + "insert-indexed-contentionFactor1-v2.json"); ee_testcase_run(&tc); } @@ -2555,7 +2521,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 'value123'}"); tc.keys_to_feed[0] = keyABC; tc.expect = TEST_FILE("./test/data/fle2-explicit/" - "insert-indexed-same-user-and-index-key.json"); + "insert-indexed-same-user-and-index-key-v2.json"); ee_testcase_run(&tc); } @@ -2590,7 +2556,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 123456}"); tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed.json"); + tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-v2.json"); ee_testcase_run(&tc); } @@ -2621,7 +2587,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 123456}"); tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-contentionFactor1.json"); + tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json"); ee_testcase_run(&tc); } @@ -2704,7 +2670,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/" - "encrypted-payload.json"); + "encrypted-payload-v2.json"); ee_testcase_run(&tc); } @@ -2747,7 +2713,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/sparsity-2/" - "encrypted-payload.json"); + "encrypted-payload-v2.json"); ee_testcase_run(&tc); } @@ -2787,7 +2753,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { "value-to-encrypt.json"); tc.keys_to_feed[0] = keyABC; tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/int32/" - "encrypted-payload.json"); + "encrypted-payload-v2.json"); tc.is_expression = true; ee_testcase_run(&tc); } @@ -2855,7 +2821,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" - "double-precision/encrypted-payload.json"); + "double-precision/encrypted-payload-v2.json"); tc.is_expression = true; ee_testcase_run(&tc); } @@ -2899,7 +2865,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double-precision/" - "encrypted-payload.json"); + "encrypted-payload-v2.json"); ee_testcase_run(&tc); } @@ -2939,7 +2905,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/double/value-to-encrypt.json"); tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/double/encrypted-payload.json"); + tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json"); tc.is_expression = true; ee_testcase_run(&tc); } @@ -2980,7 +2946,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double/" - "encrypted-payload.json"); + "encrypted-payload-v2.json"); ee_testcase_run(&tc); } @@ -3075,7 +3041,7 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { "int32-openinterval/value-to-encrypt.json"); tc.keys_to_feed[0] = keyABC; tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" - "int32-openinterval/encrypted-payload.json"); + "int32-openinterval/encrypted-payload-v2.json"); tc.is_expression = true; ee_testcase_run(&tc); } @@ -3179,17 +3145,13 @@ static void _test_encrypt_applies_default_state_collections(_mongocrypt_tester_t TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, TEST_BSON("{'db.coll': {'fields': []}}")), crypt); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - ASSERT_OK(mongocrypt_setopt_fle2v2(crypt, false), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_BSON("{'find': 'coll'}")), ctx); ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); { const char *expect_schema = "{ 'fields': [], 'escCollection': " - "'enxcol_.coll.esc', 'eccCollection': " - "'enxcol_.coll.ecc', 'ecocCollection': " + "'enxcol_.coll.esc', 'ecocCollection': " "'enxcol_.coll.ecoc' }"; mongocrypt_binary_t *cmd_to_mongocryptd; @@ -3506,9 +3468,7 @@ static void _test_encrypt_fle2_omits_encryptionInformation(_mongocrypt_tester_t /* 'find' does not include 'encryptionInformation' if no fields are * encrypted. */ { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx; ctx = mongocrypt_ctx_new(crypt); @@ -3551,9 +3511,7 @@ static void _test_encrypt_fle2_omits_encryptionInformation(_mongocrypt_tester_t /* 'find' includes encryptionInformation if the initial command includes an * explicitly encrypted payload. */ { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx; ctx = mongocrypt_ctx_new(crypt); @@ -3600,9 +3558,7 @@ static void _test_encrypt_fle2_explain_with_mongocryptd(_mongocrypt_tester_t *te /* Test with an encrypted value. Otherwise 'encryptionInformation' is not * appended. */ { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); ASSERT_OK( @@ -3673,8 +3629,7 @@ static void _test_encrypt_fle2_explain_with_csfle(_mongocrypt_tester_t *tester) /* Test with an encrypted value. Otherwise 'encryptionInformation' is not * appended. */ { - mongocrypt_t *crypt = - _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_SHARED_LIB | TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_SHARED_LIB); mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/fle2-explain/with-csfle/cmd.json")), @@ -3800,9 +3755,7 @@ static void _test_encrypt_fle1_explain_with_csfle(_mongocrypt_tester_t *tester) // Test that an input command with $db preserves $db in the output. static void _test_dollardb_preserved(_mongocrypt_tester_t *tester) { /* Test with an encrypted value. */ - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/dollardb/preserved/cmd.json")), ctx); @@ -3905,9 +3858,7 @@ static void _test_dollardb_preserved_empty(_mongocrypt_tester_t *tester) { // Test that an input command with no $db does not include $db in the output. static void _test_dollardb_omitted(_mongocrypt_tester_t *tester) { - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/dollardb/omitted/cmd.json")), ctx); @@ -4338,9 +4289,7 @@ static void _test_encrypt_macos_no_ctr(_mongocrypt_tester_t *tester) { _mongocrypt_buffer_copy_from_hex(&key_id, "ABCDEFAB123498761234123456789012"); - // TODO(MONGOCRYPT-572): This test uses the QEv1 protocol. Update this test for QEv2 or remove. Note: decrypting - // QEv1 is still supported. - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_WITH_CRYPT_V1); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_setopt_algorithm(ctx, MONGOCRYPT_ALGORITHM_UNINDEXED_STR, -1), ctx); From 600a124ea76e185d4cb296f234ade427cf112762 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:33:27 -0500 Subject: [PATCH 04/15] remove redundant tests v1 tests were converted to v2. v1 is no longer needed. --- test/test-mongocrypt-ctx-encrypt.c | 363 ----------------------------- 1 file changed, 363 deletions(-) diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index eded41712..9ce04a51a 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -2321,26 +2321,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { "12345678123498761234123456789012-local-" "document.json"); - { - ee_testcase tc = {0}; - tc.desc = "Unindexed"; -#define RNG_DATA "\x4d\x06\x95\x64\xf5\xa0\x5e\x9e\x35\x23\xb9\x8f\x57\x5a\xcb\x15" - uint8_t rng_data[] = RNG_DATA; - tc.rng_data = (_test_rng_data_source){.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_UNINDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.msg = TEST_BSON("{'v': 'value123'}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_BSON("{'v': { '$binary': { 'base64': " - "'EKvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFVl3jjP90PgD4T+Mtubn/" - "mm4CKsKGaV1yxlic9Dty1Adef4Y+bsLGKhBbCa5eojM/A=='" - ", 'subType': '06' } }}"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "Unindexed (v2)"; @@ -2361,26 +2341,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "Indexed"; -#define RNG_DATA \ - "\xc7\x43\xd6\x75\x76\x9e\xa7\x88\xd5\xe5\xc4\x40\xdb\x24\x0d\xf9" \ - "\x4c\xd9\x64\x10\x43\x81\xe6\x61\xfa\x1f\xa0\x5c\x49\x8e\xad\x21" - uint8_t rng_data[] = RNG_DATA; - tc.rng_data = (_test_rng_data_source){.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.msg = TEST_BSON("{'v': 'value123'}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "Indexed (v2)"; @@ -2402,31 +2362,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "Indexed with non-zero ContentionFactor. Random number chosen is 0"; -/* First 8 bytes are for random ContentionFactor. - * Second 16 bytes are IV for 'p' field in FLE2InsertUpdatePayload - * Third 16 bytes are IV for 'v' field in FLE2InsertUpdatePayload - */ -#define RNG_DATA \ - "\x00\x00\x00\x00\x00\x00\x00\x00" \ - "\xc7\x43\xd6\x75\x76\x9e\xa7\x88\xd5\xe5\xc4\x40\xdb\x24\x0d\xf9" \ - "\x4c\xd9\x64\x10\x43\x81\xe6\x61\xfa\x1f\xa0\x5c\x49\x8e\xad\x21" - uint8_t rng_data[] = RNG_DATA; - tc.rng_data = (_test_rng_data_source){.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(1); - tc.msg = TEST_BSON("{'v': 'value123'}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "Indexed with non-zero ContentionFactor. Random number chosen is 0 (v2)"; @@ -2453,32 +2388,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "Indexed with non-zero ContentionFactor. Random number chosen is 1"; -/* First 8 bytes are for random ContentionFactor. - * Second 16 bytes are IV for 'p' field in FLE2InsertUpdatePayload - * Third 16 bytes are IV for 'v' field in FLE2InsertUpdatePayload - */ -#define RNG_DATA \ - "\x01\x00\x00\x00\x00\x00\x00\x00" \ - "\xc7\x43\xd6\x75\x76\x9e\xa7\x88\xd5\xe5\xc4\x40\xdb\x24\x0d\xf9" \ - "\x4c\xd9\x64\x10\x43\x81\xe6\x61\xfa\x1f\xa0\x5c\x49\x8e\xad\x21" - uint8_t rng_data[] = RNG_DATA; - tc.rng_data = (_test_rng_data_source){.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(1); - tc.msg = TEST_BSON("{'v': 'value123'}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/" - "insert-indexed-contentionFactor1-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "Indexed with non-zero ContentionFactor. Random number chosen is 1 (v2)"; @@ -2506,25 +2415,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "omitted index_key_id defaults to using user_key_id"; -#define RNG_DATA \ - "\xc7\x43\xd6\x75\x76\x9e\xa7\x88\xd5\xe5\xc4\x40\xdb\x24\x0d\xf9" \ - "\x4c\xd9\x64\x10\x43\x81\xe6\x61\xfa\x1f\xa0\x5c\x49\x8e\xad\x21" - uint8_t rng_data[] = RNG_DATA; - tc.rng_data = (_test_rng_data_source){.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(0); - tc.msg = TEST_BSON("{'v': 'value123'}"); - tc.keys_to_feed[0] = keyABC; - tc.expect = TEST_FILE("./test/data/fle2-explicit/" - "insert-indexed-same-user-and-index-key-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "omitted index_key_id defaults to using user_key_id (v2)"; @@ -2545,21 +2435,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Indexed' with query type"; - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.query_type = MONGOCRYPT_QUERY_TYPE_EQUALITY_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.msg = TEST_BSON("{'v': 123456}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Indexed' with query type (v2)"; @@ -2576,21 +2451,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Indexed' with query type and non-zero contention factor"; - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.query_type = MONGOCRYPT_QUERY_TYPE_EQUALITY_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(1); - tc.msg = TEST_BSON("{'v': 123456}"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Indexed' with query type and non-zero contention factor (v2)"; @@ -2607,17 +2467,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "Negative contention factor is an error on insert"; - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(-1); - tc.msg = TEST_BSON("{'v': 123456}"); - tc.expect_init_error = "contention must be non-negative"; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "Negative contention factor is an error on insert (v2)"; @@ -2630,17 +2479,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "INT64_MAX contention factor is an error on insert"; - tc.algorithm = MONGOCRYPT_ALGORITHM_INDEXED_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(INT64_MAX); - tc.msg = TEST_BSON("{'v': 123456}"); - tc.expect_init_error = "contention must be < INT64_MAX"; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "INT64_MAX contention factor is an error on insert (v2)"; @@ -2653,27 +2491,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with int32"; -#include "./data/fle2-insert-range-explicit/int32/RNG_DATA.h" - tc.rng_data = (_test_rng_data_source){.buf = {.data = (uint8_t *)RNG_DATA, .len = sizeof(RNG_DATA) - 1}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_FILE("./test/data/fle2-insert-range-explicit/" - "int32/rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/" - "value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/" - "encrypted-payload-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with int32 (v2)"; @@ -2696,27 +2513,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with sparsity=2 with int32"; -#include "./data/fle2-insert-range-explicit/sparsity-2/RNG_DATA.h" - tc.rng_data = (_test_rng_data_source){.buf = {.data = (uint8_t *)RNG_DATA, .len = sizeof(RNG_DATA) - 1}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_FILE("./test/data/fle2-insert-range-explicit/" - "sparsity-2/rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/sparsity-2/" - "value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/sparsity-2/" - "encrypted-payload-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with sparsity=2 with int32 (v2)"; @@ -2739,25 +2535,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with query_type='range' with int32"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(4); - tc.query_type = MONGOCRYPT_QUERY_TYPE_RANGE_STR; - tc.range_opts = TEST_FILE("./test/data/fle2-find-range-explicit/" - "int32/rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/int32/" - "value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/int32/" - "encrypted-payload-v2.json"); - tc.is_expression = true; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with query_type='range' with int32 (v2)"; @@ -2778,19 +2555,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "An unsupported range BSON type is an error"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_BSON("{'min': 0, 'max': 1, 'sparsity': {'$numberLong': '1'}}"); - tc.msg = TEST_BSON("{'v': 'abc'}"); - tc.keys_to_feed[0] = keyABC; - tc.expect_finalize_error = "expected matching 'min' and value type"; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "An unsupported range BSON type is an error (v2)"; @@ -2805,27 +2569,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with query_type='range' with double with " - "precision"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.query_type = MONGOCRYPT_QUERY_TYPE_RANGE_STR; - tc.range_opts = TEST_FILE("./test/data/fle2-find-range-explicit/double-precision/" - "rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/" - "double-precision/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" - "double-precision/encrypted-payload-v2.json"); - tc.is_expression = true; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with query_type='range' with double with " @@ -2848,27 +2591,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with double precision with precision"; -#include "./data/fle2-insert-range-explicit/double-precision/RNG_DATA.h" - tc.rng_data = (_test_rng_data_source){.buf = {.data = (uint8_t *)RNG_DATA, .len = sizeof(RNG_DATA) - 1}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_FILE("./test/data/fle2-insert-range-explicit/double-precision/" - "rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/" - "double-precision/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double-precision/" - "encrypted-payload-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with double precision with precision (v2)"; @@ -2891,25 +2613,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with query_type='range' with double without " - "precision"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.query_type = MONGOCRYPT_QUERY_TYPE_RANGE_STR; - tc.range_opts = TEST_FILE("./test/data/fle2-find-range-explicit/double/" - "rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/double/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json"); - tc.is_expression = true; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with query_type='range' with double without " @@ -2930,26 +2633,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "algorithm='Range' with double without precision"; -#include "./data/fle2-insert-range-explicit/double/RNG_DATA.h" - tc.rng_data = (_test_rng_data_source){.buf = {.data = (uint8_t *)RNG_DATA, .len = sizeof(RNG_DATA) - 1}}; -#undef RNG_DATA - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.index_key_id = &key123_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_FILE("./test/data/fle2-insert-range-explicit/double/" - "rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/double/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.keys_to_feed[1] = key123; - tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double/" - "encrypted-payload-v2.json"); - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "algorithm='Range' with double without precision (v2)"; @@ -2971,19 +2654,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "min > max for insert"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_BSON("{'min': 1, 'max': 0, 'sparsity': {'$numberLong': '1'}}"); - tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.expect_finalize_error = "minimum value must be less than the maximum value"; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "min > max for insert (v2)"; @@ -2998,21 +2668,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "min > max for find"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.query_type = MONGOCRYPT_QUERY_TYPE_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_BSON("{'min': 25, 'max': 24, 'sparsity': {'$numberLong': '1'}}"); - tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/int32/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.expect_finalize_error = "minimum value must be less than the maximum value"; - tc.is_expression = true; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "min > max for find (v2)"; @@ -3028,24 +2683,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { ee_testcase_run(&tc); } - { - ee_testcase tc = {0}; - tc.desc = "open interval"; - tc.algorithm = MONGOCRYPT_ALGORITHM_RANGE_STR; - tc.query_type = MONGOCRYPT_QUERY_TYPE_RANGE_STR; - tc.user_key_id = &keyABC_id; - tc.contention_factor = OPT_I64(0); - tc.range_opts = TEST_FILE("./test/data/fle2-find-range-explicit/" - "int32-openinterval/rangeopts.json"); - tc.msg = TEST_FILE("./test/data/fle2-find-range-explicit/" - "int32-openinterval/value-to-encrypt.json"); - tc.keys_to_feed[0] = keyABC; - tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" - "int32-openinterval/encrypted-payload-v2.json"); - tc.is_expression = true; - ee_testcase_run(&tc); - } - { ee_testcase tc = {0}; tc.desc = "open interval (v2)"; From b09e6526b7842290262aa02a9c6e621421a55df3 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:53:19 -0500 Subject: [PATCH 05/15] remove `TESTER_MONGOCRYPT_WITH_CRYPT_V1` --- test/test-mongocrypt.c | 3 --- test/test-mongocrypt.h | 2 -- 2 files changed, 5 deletions(-) diff --git a/test/test-mongocrypt.c b/test/test-mongocrypt.c index 7100bf844..9b89ed367 100644 --- a/test/test-mongocrypt.c +++ b/test/test-mongocrypt.c @@ -508,9 +508,6 @@ mongocrypt_t *_mongocrypt_tester_mongocrypt(tester_mongocrypt_flags flags) { ASSERT_OK(mongocrypt_setopt_kms_providers(crypt, bin), crypt); bson_destroy(kms_providers); mongocrypt_binary_destroy(bin); - if (flags & TESTER_MONGOCRYPT_WITH_CRYPT_V1) { - ASSERT(mongocrypt_setopt_fle2v2(crypt, false)); - } if (flags & TESTER_MONGOCRYPT_WITH_CRYPT_SHARED_LIB) { mongocrypt_setopt_append_crypt_shared_lib_search_path(crypt, "$ORIGIN"); } diff --git a/test/test-mongocrypt.h b/test/test-mongocrypt.h index dfbc041ed..078555916 100644 --- a/test/test-mongocrypt.h +++ b/test/test-mongocrypt.h @@ -40,8 +40,6 @@ typedef enum tester_mongocrypt_flags { /// crypt_shared library must be present in the same directory as the test /// executable. TESTER_MONGOCRYPT_WITH_CRYPT_SHARED_LIB = 1 << 0, - /// Enable wire protocol version v1 - TESTER_MONGOCRYPT_WITH_CRYPT_V1 = 1 << 1, /// Enable range V2 TESTER_MONGOCRYPT_WITH_RANGE_V2 = 1 << 2, /// Short cache expiration From 3c51cf657b20651578314785f649286a37d48ebc Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 09:15:23 -0500 Subject: [PATCH 06/15] remove `use_v2` --- test/test-mongocrypt-ctx-encrypt.c | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index 9ce04a51a..958e1be41 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -2167,7 +2167,7 @@ static void _test_encrypt_fle2_find_range_payload_decimal128_precision(_mongocry } #endif // MONGOCRYPT_HAVE_DECIMAL128_SUPPORT -static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source, bool use_v2, bool use_range_v2) { +static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source, bool use_range_v2) { mongocrypt_t *crypt; mongocrypt_binary_t *localkey; /* localkey_data is the KEK used to encrypt the keyMaterial @@ -2213,7 +2213,6 @@ typedef struct { const char *expect_finalize_error; const char *expect_init_error; bool is_expression; - bool use_v2; bool use_range_v2; } ee_testcase; @@ -2225,7 +2224,7 @@ static void ee_testcase_run(ee_testcase *tc) { if (tc->rng_data.buf.len > 0) { // Use fixed data for random number generation to produce deterministic // results. - crypt = _crypt_with_rng(&tc->rng_data, tc->use_v2, tc->use_range_v2); + crypt = _crypt_with_rng(&tc->rng_data, tc->use_range_v2); } else { tester_mongocrypt_flags flags = TESTER_MONGOCRYPT_DEFAULT; if (tc->use_range_v2) { @@ -2337,7 +2336,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.expect = TEST_BSON("{'v' : {'$binary' : {'base64': " "'EKvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFVl3jjP90PgD4T+Mtubn/" "mm4CKsKGaV1yxlic9Dty1Adef4Y+bsLGKhBbCa5eojM/A==','subType' : '06'}}}"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2358,7 +2356,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2384,7 +2381,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/insert-indexed-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2411,7 +2407,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/" "insert-indexed-contentionFactor1-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2431,7 +2426,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.expect = TEST_FILE("./test/data/fle2-explicit/" "insert-indexed-same-user-and-index-key-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2447,7 +2441,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2463,7 +2456,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[0] = keyABC; tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2475,7 +2467,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.contention_factor = OPT_I64(-1); tc.msg = TEST_BSON("{'v': 123456}"); tc.expect_init_error = "contention must be non-negative"; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2487,7 +2478,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.contention_factor = OPT_I64(INT64_MAX); tc.msg = TEST_BSON("{'v': 123456}"); tc.expect_init_error = "contention must be < INT64_MAX"; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2509,7 +2499,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/" "encrypted-payload-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2531,7 +2520,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/sparsity-2/" "encrypted-payload-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2551,7 +2539,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/int32/" "encrypted-payload-v2.json"); tc.is_expression = true; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2565,7 +2552,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 'abc'}"); tc.keys_to_feed[0] = keyABC; tc.expect_finalize_error = "expected matching 'min' and value type"; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2587,7 +2573,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" "double-precision/encrypted-payload-v2.json"); tc.is_expression = true; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2609,7 +2594,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double-precision/" "encrypted-payload-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2629,7 +2613,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json"); tc.is_expression = true; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2650,7 +2633,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.keys_to_feed[1] = key123; tc.expect = TEST_FILE("./test/data/fle2-insert-range-explicit/double/" "encrypted-payload-v2.json"); - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2664,7 +2646,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.msg = TEST_FILE("./test/data/fle2-insert-range-explicit/int32/value-to-encrypt.json"); tc.keys_to_feed[0] = keyABC; tc.expect_finalize_error = "minimum value must be less than the maximum value"; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -2698,7 +2679,6 @@ static void _test_encrypt_fle2_explicit(_mongocrypt_tester_t *tester) { tc.expect = TEST_FILE("./test/data/fle2-find-range-explicit/" "int32-openinterval/encrypted-payload-v2.json"); tc.is_expression = true; - tc.use_v2 = true; ee_testcase_run(&tc); } @@ -4640,7 +4620,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 123456}"); tc.keys_to_feed[0] = key123; tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-int32/expected.json"); - tc.use_v2 = true; // Use QEv2 protocol. tc.use_range_v2 = true; // Use RangeV2 protocol. ee_testcase_run(&tc); // Check the parameters are present in the final payload. @@ -4666,7 +4645,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 123456}"); tc.keys_to_feed[0] = key123; tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-int32-defaults/expected.json"); - tc.use_v2 = true; // Use QEv2 protocol. tc.use_range_v2 = true; // Use RangeV2 protocol. ee_testcase_run(&tc); // Check the parameters are present in the final payload. @@ -4693,7 +4671,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) { tc.msg = TEST_BSON("{'v': 123456.0}"); tc.keys_to_feed[0] = key123; tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-double/expected.json"); - tc.use_v2 = true; // Use QEv2 protocol. tc.use_range_v2 = true; // Use RangeV2 protocol. ee_testcase_run(&tc); // Check the parameters are present in the final payload. @@ -4719,7 +4696,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) { tc.msg = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32-defaults/to-encrypt.json"); tc.keys_to_feed[0] = key123; tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32-defaults/expected.json"); - tc.use_v2 = true; // Use QEv2 protocol. tc.use_range_v2 = true; // Use RangeV2 protocol. ee_testcase_run(&tc); // Check the parameters are present in the final payload. @@ -4745,7 +4721,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) { tc.msg = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32/to-encrypt.json"); tc.keys_to_feed[0] = key123; tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32/expected.json"); - tc.use_v2 = true; // Use QEv2 protocol. tc.use_range_v2 = true; // Use RangeV2 protocol. ee_testcase_run(&tc); // Check the parameters are present in the final payload. From 89371ed2d39df745f3f393136a1919042298d5b9 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 09:31:04 -0500 Subject: [PATCH 07/15] remove unused test files --- test/data/bulkWrite/jsonSchema/cmd.json | 20 ------ test/data/collection-info-no-schema.json | 19 ------ .../no-range/encrypted-field-config-map.json | 47 -------------- test/data/fle1-collMod/insert/cmd.json | 8 --- test/data/fle1-collMod/insert/collinfo.json | 9 --- .../fle2-create/ismaster-to-mongocryptd.json | 3 - .../fle2-create/mongocryptd-ismaster.json | 12 ---- .../find-indexed-contentionFactor1.json | 8 --- test/data/fle2-explicit/find-indexed.json | 8 --- .../insert-indexed-contentionFactor1.json | 8 --- ...nsert-indexed-same-user-and-index-key.json | 8 --- test/data/fle2-explicit/insert-indexed.json | 8 --- test/data/fle2-find-equality/cmd.json | 6 -- .../encrypted-field-map.json | 23 ------- .../fle2-find-equality/encrypted-payload.json | 41 ------------ .../fle2-find-equality/mongocryptd-reply.json | 19 ------ .../double-precision/encrypted-payload.json | 26 -------- .../double/encrypted-payload.json | 26 -------- .../int32-nominmax/encrypted-payload-v2.json | 26 -------- .../int32-openinterval/encrypted-payload.json | 16 ----- .../int32/encrypted-payload.json | 26 -------- test/data/fle2-find-range/date/cmd.json | 10 --- .../date/encrypted-field-map.json | 28 --------- .../date/encrypted-payload.json | 42 ------------- .../date/mongocryptd-reply.json | 50 --------------- .../decimal128-precision/cmd.json | 6 -- .../encrypted-field-map.json | 31 ---------- .../encrypted-payload.json | 51 --------------- .../mongocryptd-reply.json | 59 ------------------ test/data/fle2-find-range/decimal128/cmd.json | 6 -- .../decimal128/encrypted-field-map.json | 28 --------- .../decimal128/encrypted-payload.json | 42 ------------- .../decimal128/mongocryptd-reply.json | 50 --------------- .../fle2-find-range/double-precision/cmd.json | 8 --- .../double-precision/encrypted-field-map.json | 31 ---------- .../double-precision/encrypted-payload.json | 45 -------------- .../double-precision/mongocryptd-reply.json | 53 ---------------- test/data/fle2-find-range/double/cmd.json | 8 --- .../double/encrypted-field-map.json | 28 --------- .../double/encrypted-payload.json | 42 ------------- .../double/mongocryptd-reply.json | 50 --------------- test/data/fle2-find-range/int32/cmd.json | 8 --- .../int32/encrypted-field-map.json | 28 --------- .../int32/encrypted-payload.json | 42 ------------- .../int32/mongocryptd-reply.json | 50 --------------- test/data/fle2-find-range/int64/cmd.json | 8 --- .../int64/encrypted-field-map.json | 28 --------- .../int64/encrypted-payload.json | 42 ------------- .../int64/mongocryptd-reply.json | 50 --------------- .../double-precision/encrypted-payload.json | 8 --- .../double/encrypted-payload.json | 8 --- .../int32-nominmax/encrypted-payload-v2.json | 8 --- .../sparsity-2/encrypted-payload.json | 8 --- test/data/fle2-insert-range/date/cmd.json | 13 ---- .../date/encrypted-field-map.json | 28 --------- .../date/encrypted-payload.json | 45 -------------- .../date/mongocryptd-reply.json | 53 ---------------- .../decimal128-precision/cmd.json | 9 --- .../encrypted-field-map.json | 31 ---------- .../encrypted-payload.json | 54 ---------------- .../mongocryptd-reply.json | 62 ------------------- .../fle2-insert-range/decimal128/cmd.json | 9 --- .../decimal128/encrypted-field-map.json | 28 --------- .../decimal128/encrypted-payload.json | 45 -------------- .../decimal128/mongocryptd-reply.json | 53 ---------------- .../double-precision/cmd.json | 11 ---- .../double-precision/encrypted-field-map.json | 31 ---------- .../double-precision/encrypted-payload.json | 48 -------------- .../double-precision/mongocryptd-reply.json | 56 ----------------- test/data/fle2-insert-range/double/cmd.json | 11 ---- .../double/encrypted-field-map.json | 28 --------- .../double/encrypted-payload.json | 45 -------------- .../double/mongocryptd-reply.json | 53 ---------------- .../int32/encrypted-payload.json | 45 -------------- .../int32/mongocryptd-reply.json | 53 ---------------- test/data/fle2-insert-range/int64/cmd.json | 11 ---- .../int64/encrypted-field-map.json | 28 --------- .../int64/encrypted-payload.json | 45 -------------- .../int64/mongocryptd-reply.json | 53 ---------------- test/data/fle2-insert-unindexed/cmd.json | 9 --- .../encrypted-field-map.json | 23 ------- .../encrypted-payload.json | 14 ----- .../mongocryptd-reply.json | 46 -------------- test/data/fle2-insert/cmd.json | 9 --- .../data/fle2-insert/encrypted-field-map.json | 23 ------- test/data/fle2-insert/encrypted-payload.json | 40 ------------ test/data/fle2-insert/mongocryptd-reply.json | 50 --------------- test/data/schema.json | 19 ------ 88 files changed, 2504 deletions(-) delete mode 100644 test/data/bulkWrite/jsonSchema/cmd.json delete mode 100644 test/data/collection-info-no-schema.json delete mode 100644 test/data/compact/no-range/encrypted-field-config-map.json delete mode 100644 test/data/fle1-collMod/insert/cmd.json delete mode 100644 test/data/fle1-collMod/insert/collinfo.json delete mode 100644 test/data/fle2-create/ismaster-to-mongocryptd.json delete mode 100644 test/data/fle2-create/mongocryptd-ismaster.json delete mode 100644 test/data/fle2-explicit/find-indexed-contentionFactor1.json delete mode 100644 test/data/fle2-explicit/find-indexed.json delete mode 100644 test/data/fle2-explicit/insert-indexed-contentionFactor1.json delete mode 100644 test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json delete mode 100644 test/data/fle2-explicit/insert-indexed.json delete mode 100644 test/data/fle2-find-equality/cmd.json delete mode 100644 test/data/fle2-find-equality/encrypted-field-map.json delete mode 100644 test/data/fle2-find-equality/encrypted-payload.json delete mode 100644 test/data/fle2-find-equality/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json delete mode 100644 test/data/fle2-find-range-explicit/double/encrypted-payload.json delete mode 100644 test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json delete mode 100644 test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json delete mode 100644 test/data/fle2-find-range-explicit/int32/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/date/cmd.json delete mode 100644 test/data/fle2-find-range/date/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/date/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/date/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/decimal128-precision/cmd.json delete mode 100644 test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/decimal128-precision/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/decimal128/cmd.json delete mode 100644 test/data/fle2-find-range/decimal128/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/decimal128/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/decimal128/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/double-precision/cmd.json delete mode 100644 test/data/fle2-find-range/double-precision/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/double-precision/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/double-precision/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/double/cmd.json delete mode 100644 test/data/fle2-find-range/double/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/double/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/double/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/int32/cmd.json delete mode 100644 test/data/fle2-find-range/int32/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/int32/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/int32/mongocryptd-reply.json delete mode 100644 test/data/fle2-find-range/int64/cmd.json delete mode 100644 test/data/fle2-find-range/int64/encrypted-field-map.json delete mode 100644 test/data/fle2-find-range/int64/encrypted-payload.json delete mode 100644 test/data/fle2-find-range/int64/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range-explicit/double/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json delete mode 100644 test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/date/cmd.json delete mode 100644 test/data/fle2-insert-range/date/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/date/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/date/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/decimal128-precision/cmd.json delete mode 100644 test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/decimal128/cmd.json delete mode 100644 test/data/fle2-insert-range/decimal128/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/decimal128/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/decimal128/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/double-precision/cmd.json delete mode 100644 test/data/fle2-insert-range/double-precision/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/double-precision/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/double-precision/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/double/cmd.json delete mode 100644 test/data/fle2-insert-range/double/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/double/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/double/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/int32/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/int32/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-range/int64/cmd.json delete mode 100644 test/data/fle2-insert-range/int64/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-range/int64/encrypted-payload.json delete mode 100644 test/data/fle2-insert-range/int64/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert-unindexed/cmd.json delete mode 100644 test/data/fle2-insert-unindexed/encrypted-field-map.json delete mode 100644 test/data/fle2-insert-unindexed/encrypted-payload.json delete mode 100644 test/data/fle2-insert-unindexed/mongocryptd-reply.json delete mode 100644 test/data/fle2-insert/cmd.json delete mode 100644 test/data/fle2-insert/encrypted-field-map.json delete mode 100644 test/data/fle2-insert/encrypted-payload.json delete mode 100644 test/data/fle2-insert/mongocryptd-reply.json delete mode 100644 test/data/schema.json diff --git a/test/data/bulkWrite/jsonSchema/cmd.json b/test/data/bulkWrite/jsonSchema/cmd.json deleted file mode 100644 index 2c0b515ce..000000000 --- a/test/data/bulkWrite/jsonSchema/cmd.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "bulkWrite": 1, - "ops": [ - { - "insert": 0, - "document": { - "plainText": "sample", - "encrypted": { - "$numberInt": "123" - } - } - } - ], - "nsInfo": [ - { - "ns": "db.test" - } - ], - "$db": "admin" -} diff --git a/test/data/collection-info-no-schema.json b/test/data/collection-info-no-schema.json deleted file mode 100644 index 4e27033a7..000000000 --- a/test/data/collection-info-no-schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "collection", - "name": "test", - "idIndex": { - "ns": "test.test", - "name": "_id_", - "key": { - "_id": { - "$numberInt": "1" - } - }, - "v": { - "$numberInt": "2" - } - }, - "options": { - "validator": { } - } -} \ No newline at end of file diff --git a/test/data/compact/no-range/encrypted-field-config-map.json b/test/data/compact/no-range/encrypted-field-config-map.json deleted file mode 100644 index f183f7d30..000000000 --- a/test/data/compact/no-range/encrypted-field-config-map.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "q83vqxI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } -} diff --git a/test/data/fle1-collMod/insert/cmd.json b/test/data/fle1-collMod/insert/cmd.json deleted file mode 100644 index af9fff693..000000000 --- a/test/data/fle1-collMod/insert/cmd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "insert": "encryptedCollection", - "documents": [ - { - "x": 1 - } - ] -} \ No newline at end of file diff --git a/test/data/fle1-collMod/insert/collinfo.json b/test/data/fle1-collMod/insert/collinfo.json deleted file mode 100644 index 1b46dc333..000000000 --- a/test/data/fle1-collMod/insert/collinfo.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "options": { - "validator": { - "$jsonSchema": { - "bsonType": "object" - } - } - } -} \ No newline at end of file diff --git a/test/data/fle2-create/ismaster-to-mongocryptd.json b/test/data/fle2-create/ismaster-to-mongocryptd.json deleted file mode 100644 index 5b77f9eb3..000000000 --- a/test/data/fle2-create/ismaster-to-mongocryptd.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "isMaster": 1 -} \ No newline at end of file diff --git a/test/data/fle2-create/mongocryptd-ismaster.json b/test/data/fle2-create/mongocryptd-ismaster.json deleted file mode 100644 index ea84d6592..000000000 --- a/test/data/fle2-create/mongocryptd-ismaster.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ismaster": true, - "iscryptd": true, - "maxBsonObjectSize": 16777216, - "maxMessageSizeBytes": 48000000, - "localTime": { - "$date": 1653058237588 - }, - "maxWireVersion": 17, - "minWireVersion": 0, - "ok": 1.0 -} \ No newline at end of file diff --git a/test/data/fle2-explicit/find-indexed-contentionFactor1.json b/test/data/fle2-explicit/find-indexed-contentionFactor1.json deleted file mode 100644 index 5d079959d..000000000 --- a/test/data/fle2-explicit/find-indexed-contentionFactor1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAEAAAAAAAAAAA==", - "subType": "06" - } - } -} \ No newline at end of file diff --git a/test/data/fle2-explicit/find-indexed.json b/test/data/fle2-explicit/find-indexed.json deleted file mode 100644 index dbc619878..000000000 --- a/test/data/fle2-explicit/find-indexed.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", - "subType": "06" - } - } -} \ No newline at end of file diff --git a/test/data/fle2-explicit/insert-indexed-contentionFactor1.json b/test/data/fle2-explicit/insert-indexed-contentionFactor1.json deleted file mode 100644 index d1c8aed01..000000000 --- a/test/data/fle2-explicit/insert-indexed-contentionFactor1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "BHEBAAAFZAAgAAAAAK8vKf5uqsCsWXfVhVEn9Jg0vWDIh4wtGqtUkG5wKE/CBXMAIAAAAACckqDJyQ9Po3BPcRqUNT2F2wlvLVpSmQrIeIF/PhJC5QVjACAAAAAACe05KaFoHY+MNKXhrwzY6xvrBt7G/Y/JHvkF7KfHeh0FcABQAAAAAMdD1nV2nqeI1eXEQNskDfnLfsFkKG9XMZJuVByabhKKhM00xE8lPPGwMYLqVHZkCVnFERtFYK1Z6Crpu7TOoMeAyqIPM03vLv6ydMBU4bgyBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==", - "subType": "06" - } - } -} \ No newline at end of file diff --git a/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json b/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json deleted file mode 100644 index 83c4f1180..000000000 --- a/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "BHEBAAAFZAAgAAAAAPgBTEb6RugdmNK6uwbgw/F3XW/QIeohkfnfSNx9sxt2BXMAIAAAAABaOvNbHZrQIOc3iClKudHruW80XUvQNJL/wmI0My6S1gVjACAAAAAAfAvxe3a3K69KHNam8P7JDOPs2O9y+BUhMyhOPmvr17YFcABQAAAAAMdD1nV2nqeI1eXEQNskDfnF3E8P+FHYqgkX78OICBktvWVwg5mHyV+Gk9162fG6tOwq7rMBhaBDlzH0+4PRhU/sMe+GZ5VaAfbLKkg+eLjFBXUAEAAAAASrze+rEjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAL7iv5ju6p02+CadotQZUkgqtSIYD2HaywGsizUpIBYMAA==", - "subType": "06" - } - } -} \ No newline at end of file diff --git a/test/data/fle2-explicit/insert-indexed.json b/test/data/fle2-explicit/insert-indexed.json deleted file mode 100644 index 77b5a2c50..000000000 --- a/test/data/fle2-explicit/insert-indexed.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==", - "subType": "06" - } - } -} \ No newline at end of file diff --git a/test/data/fle2-find-equality/cmd.json b/test/data/fle2-find-equality/cmd.json deleted file mode 100644 index 2758e3779..000000000 --- a/test/data/fle2-find-equality/cmd.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "find": "test", - "filter": { - "value": 123456 - } -} \ No newline at end of file diff --git a/test/data/fle2-find-equality/encrypted-field-map.json b/test/data/fle2-find-equality/encrypted-field-map.json deleted file mode 100644 index 714d9cfd2..000000000 --- a/test/data/fle2-find-equality/encrypted-field-map.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "value", - "bsonType": "int32", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } -} \ No newline at end of file diff --git a/test/data/fle2-find-equality/encrypted-payload.json b/test/data/fle2-find-equality/encrypted-payload.json deleted file mode 100644 index 31f637761..000000000 --- a/test/data/fle2-find-equality/encrypted-payload.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "documents": [ - { - "_id": 1, - "value": { - "$binary": { - "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", - "subType": "06" - } - } - } - ], - "find": "test", - "$db": "test", - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "value", - "bsonType": "int32", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-equality/mongocryptd-reply.json b/test/data/fle2-find-equality/mongocryptd-reply.json deleted file mode 100644 index 356ef7a59..000000000 --- a/test/data/fle2-find-equality/mongocryptd-reply.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "documents": [{ - "_id": 1, - "value": { - "$binary": { - "base64": "A1gAAAAQdAACAAAAEGEAAgAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASEHYAQOIBABJjbQAAAAAAAAAAAAA=", - "subType": "06" - } - } - }], - "find": "test", - "$db": "test" - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json b/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json deleted file mode 100644 index 3cfabd8fe..000000000 --- a/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "v": { - "$and": [ - { - "age": { - "$gte": { - "$binary": { - "base64": "CoUFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAAA5O5YOmDnNEzt4VzOdPJoBsorBvi4P38NSXFCQXBT7lBXMAIAAAAAAlCbJrLprhv7PZAWfpe1J77kmxxrTm5d+VIAzQ1t0f9wVjACAAAAAAWgCKXI9Zv1w6Ih/R7YUNVDl5G4rCw79EsH8AXt1G0EAAAzEAfQAAAAVkACAAAAAAwVdX7uREzGJG5YAlsRvkOq5eddbRwIMXoUyBxtTOWyMFcwAgAAAAAH7tQpElOGJxNW3nBA/KvOwRjEttzL4Yj7QxAKdseG83BWMAIAAAAAAZ//NEY1gl9NFowTY85t1Sl0YtlLsPmcMi/myX2zF3/gADMgB9AAAABWQAIAAAAAB/r0rye8dC3m4mih9d9oBcoQ6Zz99MQLXO5RvpPQ0CxAVzACAAAAAAyAOYAbhDJ52goQxGqSffPOA68Z5ST6MHehKnzrW4NxgFYwAgAAAAAJD7sEeaXZruynaQaENueMTELjhUiXEIUSFF/xsBfuIDAAMzAH0AAAAFZAAgAAAAAO2Hv6Qd4XbjLmDbLe2/dufbhh+Bc1myy7VrNWQswguHBXMAIAAAAACskbeGL2j0dhv3JUYGLto/8kBwO/CS6CSy2Fz01Qd/oAVjACAAAAAArd9dYph7UV6PnRIGBIm8wUtKJEzkZm+kTHoLJV/CtLkAAzQAfQAAAAVkACAAAAAAtTHP+RbNcKHQQitmLFjax5jU3lSvUFioevRqvngmVrgFcwAgAAAAAJ1FzPG89m3duUQlzzhr10u2bHkrcVrXSqTdRTQRwbuIBWMAIAAAAACG46GzSKZuc+P7uN6ez5p1z8A5TRu4f4GVmSZ/prumOAADNQB9AAAABWQAIAAAAACx7BgZhTiIgBbhrGj1nd8jicXeBh2kUEYz4icmc9ujpAVzACAAAAAAWAUKWWlejF5rygbpZmfnmFlKKi605/AAgxC6jhE+MdgFYwAgAAAAAGNcfwI+QXm8fYMBvdZZU63YQO3gqC4ogapSmHLOmT7QAAM2AH0AAAAFZAAgAAAAAEyLWJxrA6BmuzegYLP4kUmvxoT1dvr7RttUcJ9+VL81BXMAIAAAAAAUA36oeKJKKyAvckEDg3qz6JDJmyWJzL/PXzUYhrJMUQVjACAAAAAAeO2lrYUCC3VJYoBoZYv7e6e5htw6cFaf80WgPmaljhMAAzcAfQAAAAVkACAAAAAAxwM1EBD2yYprO6DgSL/hf7nNswGChKMzNRrdcVAX0QEFcwAgAAAAAPq9JZtWNg4/ZGHjkzpMQx0mwyp0WQQE8lp0l33dC1dzBWMAIAAAAADnBfvrFoXD1lu55RrXVrhHEPtvRz1IYT1wGU8wEG+NPwADOAB9AAAABWQAIAAAAADgeS5YwHbBJYHjnE9rdIFOXCWa4MZgksnq9BCKEBNCQgVzACAAAAAA0ShFMpOeEFx3gMLQEIMhvlkYQJ6DXk/ryqYFXSt0oMAFYwAgAAAAAPMpROg3ve6XwuVsNYP1bJhnFd0bts5doKo/G1ZgLIYXAAM5AH0AAAAFZAAgAAAAAKOQKnHWdirTeER0VaLHcH9Gam5QOhil1vpk11GqLVYsBXMAIAAAAACvxg5olIv89aG/3AhBg4yw2ZJqPMYppPJ8eY1dCIlbIAVjACAAAAAAZYC1B4xKOw1zCs68dAJf7z1koE/8drbcMbM6RSBbkAoAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAgAAABBzZWNvbmRPcGVyYXRvcgAEAAAAAA==", - "subType": "6" - } - } - } - }, - { - "age": { - "$lte": { - "$binary": { - "base64": "CjsAAAAQcGF5bG9hZElkAAAAAAAQZmlyc3RPcGVyYXRvcgACAAAAEHNlY29uZE9wZXJhdG9yAAQAAAAA", - "subType": "6" - } - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range-explicit/double/encrypted-payload.json b/test/data/fle2-find-range-explicit/double/encrypted-payload.json deleted file mode 100644 index b1adf877e..000000000 --- a/test/data/fle2-find-range-explicit/double/encrypted-payload.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "v": { - "$and": [ - { - "age": { - "$gte": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - }, - { - "age": { - "$lte": { - "$binary": { - "base64": "CjsAAAAQcGF5bG9hZElkAAAAAAAQZmlyc3RPcGVyYXRvcgACAAAAEHNlY29uZE9wZXJhdG9yAAQAAAAA", - "subType": "6" - } - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json b/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json deleted file mode 100644 index 966d40ca7..000000000 --- a/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "v": { - "$and": [ - { - "age": { - "$gte": { - "$binary": { - "base64": "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", - "subType": "06" - } - } - } - }, - { - "age": { - "$lte": { - "$binary": { - "base64": "DTsAAAAQcGF5bG9hZElkAAAAAAAQZmlyc3RPcGVyYXRvcgACAAAAEHNlY29uZE9wZXJhdG9yAAQAAAAA", - "subType": "06" - } - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json b/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json deleted file mode 100644 index 4524b310d..000000000 --- a/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "v": { - "$and": [ - { - "age": { - "$gte": { - "$binary": { - "base64": "CvEDAAADcGF5bG9hZADBAwAABGcAhQMAAAMwAH0AAAAFZAAgAAAAAInd0noBhIiJMv8QTjcfgRqnnVhxRJRRACLfvgT+CTR/BXMAIAAAAADm0EjqF/T4EmR6Dw6NaPLrL0OuzS4AFvm90czFluAAygVjACAAAAAA0d8XgDtErXhD2Il47RZ6es9tJjjenynp6roL00NDzzwAAzEAfQAAAAVkACAAAAAA7lkNtT6RLw91aJ07K/blwlFs5wi9pQjqUXDcaCTxe98FcwAgAAAAAPwySffuLQihmF70Ot93KtaUMNU8KpmA+niyPRcvarNMBWMAIAAAAADH7BDBCS/7LwB7NYkxPNDb5QXXROFnh2+7z8JFwX7wnQADMgB9AAAABWQAIAAAAACmksDgWv8fh8j4HvZ2U+eC/2+PvEsGhl1YIr04t8MEyQVzACAAAAAA42J2JBPJI5iRZbKCaLoDKJkz6sEYtwRqbXWCQFnROhAFYwAgAAAAAPGrreW4FbgwiinI2yi9ZxPNKzAGyleu6L4h79FAXn2rAAMzAH0AAAAFZAAgAAAAAEpcX7iBiGknOl/okkdqJbUlcVEAgVwNnusmHGfcnWiyBXMAIAAAAABt4YtHuLEMj8mq3Sm7x9LlPoLn44VwwYXzsy9O+CY7mQVjACAAAAAA3WTx8oIz7cfpEn/ldtCPsNOhnVHDlV/kJl4sw9a7QiUAAzQAfQAAAAVkACAAAAAAiNNHQVRYZQZIyyzCQ2/QGRA1NJK2PkJ+nonrNMR8M+kFcwAgAAAAAFjXVHdBrcFBymh2M52BuuY8s54hG4YmNrLlQsDOpt0+BWMAIAAAAACFMsZ7+rMdSQwP/XjTie0q7l/t0QIbD2XcgQyMRGDamgADNQB9AAAABWQAIAAAAABZunJQk5/sMjTmxIeZpwTF010+V434ybhEM5MCLZXvHgVzACAAAAAAzg+BvL6K2ym0OFtQU9TUrDaJd2fMgY9Z8hp1QJnDwF4FYwAgAAAAAK1MWHGICHeCPaKzDtODjO2Z6WBamLcK7A4TLtbvCozLAAM2AH0AAAAFZAAgAAAAAEKk7WGoX0IXnKUDtmjVP3J8cOIatQEPrEoyH2APyETuBXMAIAAAAAAOQ2aEYoMGhGhkY0E1hPctbPmpdQ/A2ZKJ82Gv6Ec4agVjACAAAAAAJ/rTmL4dcKZ3w4uM33LlmcXmFJ19WmGDGoHcgfvT3j8AAAVlACAAAAAAvuK/mO7qnTb4Jp2i1BlSSCq1IhgPYdrLAayLNSkgFgwSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAgAAAAA=", - "subType": "06" - } - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range-explicit/int32/encrypted-payload.json b/test/data/fle2-find-range-explicit/int32/encrypted-payload.json deleted file mode 100644 index 1541413d1..000000000 --- a/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "v": { - "$and": [ - { - "age": { - "$gte": { - "$binary": { - "base64": "CgUCAAADcGF5bG9hZADBAQAABGcAhQEAAAMwAH0AAAAFZAAgAAAAAInd0noBhIiJMv8QTjcfgRqnnVhxRJRRACLfvgT+CTR/BXMAIAAAAADm0EjqF/T4EmR6Dw6NaPLrL0OuzS4AFvm90czFluAAygVjACAAAAAA0d8XgDtErXhD2Il47RZ6es9tJjjenynp6roL00NDzzwAAzEAfQAAAAVkACAAAAAA7lkNtT6RLw91aJ07K/blwlFs5wi9pQjqUXDcaCTxe98FcwAgAAAAAPwySffuLQihmF70Ot93KtaUMNU8KpmA+niyPRcvarNMBWMAIAAAAADH7BDBCS/7LwB7NYkxPNDb5QXXROFnh2+7z8JFwX7wnQADMgB9AAAABWQAIAAAAACcMWVTbZC4ox5VdjWeYKLgf4oBjpPlbTTAkucm9JPK0wVzACAAAAAA3tIww4ZTytkxFsUKyJbc3zwQ2w7DhkOqaNvX9g8pi3gFYwAgAAAAAOK5ETACEX4i+2e0dDtUeGozbxKNlqmkRK5IEZCrv7M5AAAFZQAgAAAAAL7iv5ju6p02+CadotQZUkgqtSIYD2HaywGsizUpIBYMEmNtAAQAAAAAAAAAABBwYXlsb2FkSWQAAAAAABBmaXJzdE9wZXJhdG9yAAIAAAAQc2Vjb25kT3BlcmF0b3IABAAAAAA=", - "subType": "6" - } - } - } - }, - { - "age": { - "$lte": { - "$binary": { - "base64": "CjsAAAAQcGF5bG9hZElkAAAAAAAQZmlyc3RPcGVyYXRvcgACAAAAEHNlY29uZE9wZXJhdG9yAAQAAAAA", - "subType": "6" - } - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/date/cmd.json b/test/data/fle2-find-range/date/cmd.json deleted file mode 100644 index c4f2af89f..000000000 --- a/test/data/fle2-find-range/date/cmd.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$date": { - "$numberLong": "12345" - } - } - } -} diff --git a/test/data/fle2-find-range/date/encrypted-field-map.json b/test/data/fle2-find-range/date/encrypted-field-map.json deleted file mode 100644 index 07c611709..000000000 --- a/test/data/fle2-find-range/date/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "date", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/date/encrypted-payload.json b/test/data/fle2-find-range/date/encrypted-payload.json deleted file mode 100644 index 30d0350bb..000000000 --- a/test/data/fle2-find-range/date/encrypted-payload.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "date", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-range/date/mongocryptd-reply.json b/test/data/fle2-find-range/date/mongocryptd-reply.json deleted file mode 100644 index 5c0d23d6e..000000000 --- a/test/data/fle2-find-range/date/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "A/wAAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAnQAAAANlZGdlc0luZm8AawAAAAlsb3dlckJvdW5kAAAAAAAAAAAACGxiSW5jbHVkZWQAAQl1cHBlckJvdW5kABWB6X30ECIRCHViSW5jbHVkZWQAAQlpbmRleE1pbgAAAAAAAAAAAAlpbmRleE1heAAVgel99BAiEQAQcGF5bG9hZElkANIEAAAQZmlyc3RPcGVyYXRvcgABAAAAABJjbQAAAAAAAAAAABJzAAEAAAAAAAAAAA==", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "date", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-find-range/decimal128-precision/cmd.json b/test/data/fle2-find-range/decimal128-precision/cmd.json deleted file mode 100644 index 134d41b71..000000000 --- a/test/data/fle2-find-range/decimal128-precision/cmd.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": {"$numberDecimal":"4.56000000000000"} - } -} diff --git a/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json b/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json deleted file mode 100644 index 63658fbca..000000000 --- a/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": {"$numberDecimal":"0"}, - "max":{"$numberDecimal":"1234567890123456789"}, - "precision":{"$numberInt":"2"} - } - } - ] - } -} diff --git a/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json b/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json deleted file mode 100644 index b5959d790..000000000 --- a/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": { - "$numberDecimal": "0" - }, - "max": { - "$numberDecimal": "1234567890123456789" - }, - "precision": { - "$numberInt": "2" - } - } - } - ] - } - } - } -} \ No newline at end of file diff --git a/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json b/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json deleted file mode 100644 index 82381f7d3..000000000 --- a/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "AysBAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAzAAAAANlZGdlc0luZm8AmgAAABNsb3dlckJvdW5kAAAAAAAAAAAAAAAAAAAAQDAIbGJJbmNsdWRlZAABE3VwcGVyQm91bmQAFYHpffQQIhEAAAAAAABAMAh1YkluY2x1ZGVkAAEQcHJlY2lzaW9uAAIAAAATaW5kZXhNaW4AAAAAAAAAAAAAAAAAAABAMBNpbmRleE1heAAVgel99BAiEQAAAAAAAEAwABBwYXlsb2FkSWQA0gQAABBmaXJzdE9wZXJhdG9yAAEAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": { - "$numberDecimal": "0" - }, - "max": { - "$numberDecimal": "1234567890123456789" - }, - "precision": { - "$numberInt": "2" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-find-range/decimal128/cmd.json b/test/data/fle2-find-range/decimal128/cmd.json deleted file mode 100644 index 7f32eb979..000000000 --- a/test/data/fle2-find-range/decimal128/cmd.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": {"$numberDecimal":"1.23000000000000"} - } -} diff --git a/test/data/fle2-find-range/decimal128/encrypted-field-map.json b/test/data/fle2-find-range/decimal128/encrypted-field-map.json deleted file mode 100644 index a2068cd27..000000000 --- a/test/data/fle2-find-range/decimal128/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/decimal128/encrypted-payload.json b/test/data/fle2-find-range/decimal128/encrypted-payload.json deleted file mode 100644 index b96692436..000000000 --- a/test/data/fle2-find-range/decimal128/encrypted-payload.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} \ No newline at end of file diff --git a/test/data/fle2-find-range/decimal128/mongocryptd-reply.json b/test/data/fle2-find-range/decimal128/mongocryptd-reply.json deleted file mode 100644 index 1e47ad99e..000000000 --- a/test/data/fle2-find-range/decimal128/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "AxwBAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAvQAAAANlZGdlc0luZm8AiwAAABNsb3dlckJvdW5kAAAAAAAAAAAAAAAAAAAAQDAIbGJJbmNsdWRlZAABE3VwcGVyQm91bmQAFYHpffQQIhEAAAAAAABAMAh1YkluY2x1ZGVkAAETaW5kZXhNaW4A/////2OOjTfAh62+Ce3/3xNpbmRleE1heAD/////Y46NN8CHrb4J7f9fABBwYXlsb2FkSWQA0gQAABBmaXJzdE9wZXJhdG9yAAEAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-find-range/double-precision/cmd.json b/test/data/fle2-find-range/double-precision/cmd.json deleted file mode 100644 index 2112b24c9..000000000 --- a/test/data/fle2-find-range/double-precision/cmd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$numberDouble": "123.456" - } - } -} diff --git a/test/data/fle2-find-range/double-precision/encrypted-field-map.json b/test/data/fle2-find-range/double-precision/encrypted-field-map.json deleted file mode 100644 index 94b39730f..000000000 --- a/test/data/fle2-find-range/double-precision/encrypted-field-map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } -} diff --git a/test/data/fle2-find-range/double-precision/encrypted-payload.json b/test/data/fle2-find-range/double-precision/encrypted-payload.json deleted file mode 100644 index e9901fe73..000000000 --- a/test/data/fle2-find-range/double-precision/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "CnEDAAADcGF5bG9hZABBAwAABGcABQMAAAMwAH0AAAAFZAAgAAAAAKfR876j77BmHaWxFf7Px/B695Rn7JAN3upnEpaEqFT+BXMAIAAAAACXqoD16/Q8tNDRR7gP222DxV0SBOSZ4bqsxYILo8a/0wVjACAAAAAAFAp92kX7YI+mD8PNYqm41Kd3P11+jOfwGIyrjlrQBE0AAzEAfQAAAAVkACAAAAAAlpFiajzOojYERTN1LCni1VGk+ZVax/J2Rg3dQeHpMy4FcwAgAAAAAB4PqYOdB4uVsL2LSxWATz5EfrL573g4lDS0nQ+9uVVKBWMAIAAAAAApSFhK3ie+9R9s2A8nYTv1JyJVnRnNvOhnacqvh7A0uwADMgB9AAAABWQAIAAAAAAGWed/HKDT8MkY4RMK+T/F8N9qFjiRfkfp3whoMtqjtwVzACAAAAAAjjy5yZSsBjTwwUXkSpx37XqtMBW93s4a3OwVV7PEVB8FYwAgAAAAAMwiApD2QJH04g9DFLdeeXSD4CyeP3tKhUzNhUdFNutWAAMzAH0AAAAFZAAgAAAAAFH9l9GGA1I52atJV5jNUf1lx8jBjoEoVoME97v5GFJiBXMAIAAAAAC1qH3Kd78Dr9NGbw7y9D/XYBwv5h1LLO8la5OU7g8UkQVjACAAAAAAn27H0Mpwatgc1R/4nXSRjsG2PzB0ol5YR9f3mCb2y/0AAzQAfQAAAAVkACAAAAAAO1tUQja12SujAQx2RpwPbDRjdPc5+Ls8foeYDqw/Rz8FcwAgAAAAAO4FJE6dkcD42BQ8fx3QudYWIOwzZtjxvOMLX56VKwjKBWMAIAAAAAAyKccS7jCRt46l1ltdD3irmjmkgS5updQOtNFg4aYkLQADNQB9AAAABWQAIAAAAAAId1qXjFZYpDxWI/YS4/n5iKlbeqJgkhe+Vt0zxMclqQVzACAAAAAALEJEZsKnlY9oBhNN6K2+j7ayMw7enQ1N4YEkIvBNsCoFYwAgAAAAAL5WaPEI93gHcc2cTebByocYvmvTaY+3GQufqROqqzmsAAAFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAABBwYXlsb2FkSWQA0gQAABBmaXJzdE9wZXJhdG9yAAEAAAAA", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-range/double-precision/mongocryptd-reply.json b/test/data/fle2-find-range/double-precision/mongocryptd-reply.json deleted file mode 100644 index 91850045e..000000000 --- a/test/data/fle2-find-range/double-precision/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "AwsBAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YArAAAAANlZGdlc0luZm8AegAAAAFsb3dlckJvdW5kAAAAAAAAAAAACGxiSW5jbHVkZWQAAQF1cHBlckJvdW5kAAAAAAAAAGlACHViSW5jbHVkZWQAARBwcmVjaXNpb24AAgAAAAFpbmRleE1pbgAAAAAAAAAAAAFpbmRleE1heAAAAAAAAABpQAAQcGF5bG9hZElkANIEAAAQZmlyc3RPcGVyYXRvcgABAAAAABJjbQAAAAAAAAAAABJzAAEAAAAAAAAAAA==", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-find-range/double/cmd.json b/test/data/fle2-find-range/double/cmd.json deleted file mode 100644 index 2112b24c9..000000000 --- a/test/data/fle2-find-range/double/cmd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$numberDouble": "123.456" - } - } -} diff --git a/test/data/fle2-find-range/double/encrypted-field-map.json b/test/data/fle2-find-range/double/encrypted-field-map.json deleted file mode 100644 index bd522cd04..000000000 --- a/test/data/fle2-find-range/double/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/double/encrypted-payload.json b/test/data/fle2-find-range/double/encrypted-payload.json deleted file mode 100644 index f4bda58f2..000000000 --- a/test/data/fle2-find-range/double/encrypted-payload.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-range/double/mongocryptd-reply.json b/test/data/fle2-find-range/double/mongocryptd-reply.json deleted file mode 100644 index 6168fc129..000000000 --- a/test/data/fle2-find-range/double/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "A/wAAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAnQAAAANlZGdlc0luZm8AawAAAAFsb3dlckJvdW5kAAAAAAAAABAACGxiSW5jbHVkZWQAAQF1cHBlckJvdW5kAP///////+9/CHViSW5jbHVkZWQAAQFpbmRleE1pbgAAAAAAAAAQAAFpbmRleE1heAD////////vfwAQcGF5bG9hZElkANIEAAAQZmlyc3RPcGVyYXRvcgABAAAAABJjbQAAAAAAAAAAABJzAAEAAAAAAAAAAA==", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-find-range/int32/cmd.json b/test/data/fle2-find-range/int32/cmd.json deleted file mode 100644 index b5d57a8f9..000000000 --- a/test/data/fle2-find-range/int32/cmd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$numberInt": "123456" - } - } -} diff --git a/test/data/fle2-find-range/int32/encrypted-field-map.json b/test/data/fle2-find-range/int32/encrypted-field-map.json deleted file mode 100644 index 63ef3a6c4..000000000 --- a/test/data/fle2-find-range/int32/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/int32/encrypted-payload.json b/test/data/fle2-find-range/int32/encrypted-payload.json deleted file mode 100644 index deb695680..000000000 --- a/test/data/fle2-find-range/int32/encrypted-payload.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "CvEEAAADcGF5bG9hZADBBAAABGcAhQQAAAMwAH0AAAAFZAAgAAAAAKfR876j77BmHaWxFf7Px/B695Rn7JAN3upnEpaEqFT+BXMAIAAAAACXqoD16/Q8tNDRR7gP222DxV0SBOSZ4bqsxYILo8a/0wVjACAAAAAAFAp92kX7YI+mD8PNYqm41Kd3P11+jOfwGIyrjlrQBE0AAzEAfQAAAAVkACAAAAAAlpFiajzOojYERTN1LCni1VGk+ZVax/J2Rg3dQeHpMy4FcwAgAAAAAB4PqYOdB4uVsL2LSxWATz5EfrL573g4lDS0nQ+9uVVKBWMAIAAAAAApSFhK3ie+9R9s2A8nYTv1JyJVnRnNvOhnacqvh7A0uwADMgB9AAAABWQAIAAAAACEoDdR4neyFrwxEjf97csBWYgbGT2GqTlMff0Iww8S3wVzACAAAAAAO5caRM9/ghnb+v1iiAJSMEWFEURCoJ+/krcDaFXpJA8FYwAgAAAAADxh2OAhuAHS0y2k2gBHhmaf/QMM/bkmHOY57/h/hw5VAAMzAH0AAAAFZAAgAAAAACFSn9LbHIGoJEDxQm+l/VhB1Qp2sDHEDDH/n/c8F8n8BXMAIAAAAACBO4bhRYkAW8TOvy65UHl7YNTK+4vge++76cn1G8/dugVjACAAAAAAMfZI0QJuIjEP+2h7hMyADl63DLtAWXwO7ku694tjjwsAAzQAfQAAAAVkACAAAAAAGj22/+aFr+8l9CLnrDZ5NhzCgz++msotwjPmSF9OM+gFcwAgAAAAAC9cqJy///jAYzdKgtwFSx75wY+WX47DOOpPRbkb78OPBWMAIAAAAAB01fpGEYLy8nDFXUft76z/+9Z9KA2EiRcAQ97zr0u9lwADNQB9AAAABWQAIAAAAADbZ5AD/5OvYukqwD1ouIm1JCicqneF8Irq6sPhgRe20wVzACAAAAAAdP03rg0E4wfRAUdu6SaaQOZi4JxoX9bUAFENSuB38wQFYwAgAAAAAHyp8UBmXIbVgejUieOKpQHrfbHrGGRUnlaj59ojnBwjAAM2AH0AAAAFZAAgAAAAACSbt5cVtVjP7BGAWK09HRCwAyV9It3zsFV0xaSVTkCYBXMAIAAAAAB2oDy5xJX9PzwQxDkT/mZcL4L8MEH2iAQkbFRJX8uDnwVjACAAAAAA3zhqKXElNWg9l3x3N3W77heSWp/LAPfkhWYIj30yyt8AAzcAfQAAAAVkACAAAAAAPLjGwQ+DBcHE6XSH+knrIFTqq1zCgbltUvFW7wQwib0FcwAgAAAAAOfj/lP3YxmHoZBYlp60ZOnxx38JpMeougcNBUoWQfl0BWMAIAAAAABda0UNwhIuLtWxf8CqnFZLZTBCkgAj5eyyYhQd3W+hOgADOAB9AAAABWQAIAAAAADAg4r1xbwXaXEYn9Xc0gZ/ZTDqKRye52R4+M9yw1JoMwVzACAAAAAAPgpORYCcoS+SKCMf2IC1b7sHYFG0LtmWJmTlogsl81YFYwAgAAAAAB59AUYXsSm/LEx1Q35fiU44J+25wrdxZs1DrZCc+kRBAAAFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAABBwYXlsb2FkSWQA0gQAABBmaXJzdE9wZXJhdG9yAAEAAAAA", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-range/int32/mongocryptd-reply.json b/test/data/fle2-find-range/int32/mongocryptd-reply.json deleted file mode 100644 index 5ece87b1d..000000000 --- a/test/data/fle2-find-range/int32/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "A+wAAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAjQAAAANlZGdlc0luZm8AWwAAABBsb3dlckJvdW5kAAAAAAAIbGJJbmNsdWRlZAABEHVwcGVyQm91bmQAh9YSAAh1YkluY2x1ZGVkAAEQaW5kZXhNaW4AAAAAABBpbmRleE1heACH1hIAABBwYXlsb2FkSWQA0gQAABBmaXJzdE9wZXJhdG9yAAEAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-find-range/int64/cmd.json b/test/data/fle2-find-range/int64/cmd.json deleted file mode 100644 index ffdf9a749..000000000 --- a/test/data/fle2-find-range/int64/cmd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$numberLong": "12345678901234567" - } - } -} diff --git a/test/data/fle2-find-range/int64/encrypted-field-map.json b/test/data/fle2-find-range/int64/encrypted-field-map.json deleted file mode 100644 index f1f1bbe98..000000000 --- a/test/data/fle2-find-range/int64/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-find-range/int64/encrypted-payload.json b/test/data/fle2-find-range/int64/encrypted-payload.json deleted file mode 100644 index 04639fa2e..000000000 --- a/test/data/fle2-find-range/int64/encrypted-payload.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-find-range/int64/mongocryptd-reply.json b/test/data/fle2-find-range/int64/mongocryptd-reply.json deleted file mode 100644 index 0204f271f..000000000 --- a/test/data/fle2-find-range/int64/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "find": "test", - "filter": { - "encrypted": { - "$binary": { - "base64": "A/wAAAAQdAACAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAnQAAAANlZGdlc0luZm8AawAAABJsb3dlckJvdW5kAAAAAAAAAAAACGxiSW5jbHVkZWQAARJ1cHBlckJvdW5kABWB6X30ECIRCHViSW5jbHVkZWQAARJpbmRleE1pbgAAAAAAAAAAABJpbmRleE1heAAVgel99BAiEQAQcGF5bG9hZElkANIEAAAQZmlyc3RPcGVyYXRvcgABAAAAABJjbQAAAAAAAAAAABJzAAEAAAAAAAAAAA==", - "subType": "6" - } - } - }, - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json b/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json deleted file mode 100644 index 26553b939..000000000 --- a/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "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", - "subType": "6" - } - } -} diff --git a/test/data/fle2-insert-range-explicit/double/encrypted-payload.json b/test/data/fle2-insert-range-explicit/double/encrypted-payload.json deleted file mode 100644 index a9a96c000..000000000 --- a/test/data/fle2-insert-range-explicit/double/encrypted-payload.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "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", - "subType": "6" - } - } -} diff --git a/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json b/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json deleted file mode 100644 index 527736bb4..000000000 --- a/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "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", - "subType": "06" - } - } -} diff --git a/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json b/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json deleted file mode 100644 index 01980f85e..000000000 --- a/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "v": { - "$binary": { - "base64": "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", - "subType": "6" - } - } -} diff --git a/test/data/fle2-insert-range/date/cmd.json b/test/data/fle2-insert-range/date/cmd.json deleted file mode 100644 index feda9b7cb..000000000 --- a/test/data/fle2-insert-range/date/cmd.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$date": { - "$numberLong": "12345" - } - } - } - ] -} diff --git a/test/data/fle2-insert-range/date/encrypted-field-map.json b/test/data/fle2-insert-range/date/encrypted-field-map.json deleted file mode 100644 index 07c611709..000000000 --- a/test/data/fle2-insert-range/date/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "date", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/date/encrypted-payload.json b/test/data/fle2-insert-range/date/encrypted-payload.json deleted file mode 100644 index 81401687d..000000000 --- a/test/data/fle2-insert-range/date/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "BPg1AAAFZAAgAAAAACxUAzRVk8NErNBCwzKRaTy3/xun2/1RDV658SGvJN07BXMAIAAAAACEurCf7Rmlp9BSlue1Yws6jtkvIRca4FO4ah9Cj64nSQVjACAAAAAAowp0Yt4lUOu63dVfBHvxkHhphYvXItlLSwdqdXumRIsFcABQAAAAACAx/UEyl7dWfqxDw6pIk0gkFfJqV5vB++ZWcjaqE5zXjRwGKKtWpdTLWgDWNqjxG1BwkyOKmBEqWnGysD16H1XGdBEBgTnojCAwJR55Bsa0BXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQACQAAAAV2AEgAAAAAq83vqxI0mHYSNBI0VniQErZJR2w/vz2iPT6Lu1Yx0YwCTyuqicOsTgV0QuOQJ/UTRf6/3EEiVrtQgIUmXQYyZxHj8E8BnKk8BWUAIAAAAADrmnP3kS2GpCl+gdL2da90KHTkBX46iQ/sZRoj7uPz7ARnAIk0AAADMADVAAAABWQAIAAAAABF8j5ZfKQ4DjRbL8OVZ88gntEzcBHj2J0GXkRTVtH06gVzACAAAAAAzQGAit/Gh5UKelW+/OBIqdYZ7rywhy/hCoP3KjpEhX0FYwAgAAAAAKF8pBKl2dQJCX19zA8jaLhtUOk4JpYZxQDAAVbFISryBXAAUAAAAACsKR8j/0KMxVVJ/i/Wou21JO8Dj+UrEYFrNUvuLJjfJsLeS9b3BVSS9U4w8Ra3RVRimvKjTKc8uiGVVJnOhtP+GiPCssf8RAB+E5VOQMYXkwADMQDVAAAABWQAIAAAAABtBdb3QX2WJCsITu2mTWK+IJeXmkxdVfvV1QG2BCZgwwVzACAAAAAA5cqU8NODm0xq0/DpXKpnkarfWgvJrX4bAnalkwdDVPwFYwAgAAAAABptcdxDIRE1FajlRut/doVmqkBREAfOTd664QH3bZoqBXAAUAAAAAC2kCPCiV1m6bQnM/mQAtKHvig1vJUQ0AL5weRpSL+koQRDShvOdw3noM5kPG+qG5MBplIlhqekuq4eyK0yAmePkVf1ECTQkwezlz4qYOWATgADMgDVAAAABWQAIAAAAACAqMXJ/S2jZZDPQJOGEw5IPcZnFvXNVurCorjMP12/OQVzACAAAAAAG8sHBG6PvNDBVDRoHewQnp12CbxfsMF50o/GnVauFI0FYwAgAAAAALJ1ZfKNuXIA3Ng9xl2mXGpUS4OVOS0/d11FmYYrMMd7BXAAUAAAAAA1oqsDlcf4u0GpyyhvFjVgQvX2ulQm5K9O+T9A++yx0s/vnQ0YIyAFfDGjm5n6b2fXEMNBtZF177oxQrSScNVfw1u2blUnMXoa+br1FU8UoQADMwDVAAAABWQAIAAAAAAWvdULtimRUI4nQ72XcbW4iYHIJOU/Nct6XZR7V2NMXAVzACAAAAAAftxCjrFX3EdHfO7GcGoHLtm4hfnmehW+/n4SEdgUmgsFYwAgAAAAAK4uUZ2GGzrhldNoCVZ4p6UrTzH6ylqPakEUikN1FIXBBXAAUAAAAAD7ibQdKMCghVq8gAzLgRfkhDY+fRk2ec2xT7plD1rDpJOIXEbk9626X4uohV1v1Aa0WM7jnjEVPXRRLjImSlSdNTROmK39dLF9lnZziWmitQADNADVAAAABWQAIAAAAABS+Gh2HP/JqcLgHAcXD3EoZy6le+JhXsej9M79huqmTQVzACAAAAAAC7ZbXoh9DvoT/wkFefSgsjxOABZW23Vwq0GJMlLtW6MFYwAgAAAAAIBPKeLyZt19irHh4TPXkRgTGgSGHNADGfRgSyAdigGLBXAAUAAAAAA2yFmn6WtsnBD32QB2isgJK2iMsGKTR5MHB9G5j3XHclMYKKWGulWYl8ze5q2jknssTg2fp+vtOjmEh4JB8yQCyLBvze6DhxiNguzX3dv0FQADNQDVAAAABWQAIAAAAAAdonGVWX89sEa60P9sQGVPn1ZP//XwgzEJdFL6sF7jEgVzACAAAAAAvDNc6klYT6lqpR+E5XLZ+8s7+uNb7DaMXl+ASLZymzcFYwAgAAAAAHQPLmuS1WQe6/nddKVeKtBlz0oJjW2hOWN5lsDIoa/qBXAAUAAAAADjhrJg0n5m9OhL7gTm/WXei0ZrJHnwZg35yRM/iBcmMPDasaZXwhIiDuu/H07EvlHz/SlbOhChlwV71vzQg4XZu55nFnTCpqplHt5IGp/SkAADNgDVAAAABWQAIAAAAABbGkplOZqxg8lgD6O29n6M29d/fNAH/WXienBpSQPM3wVzACAAAAAAbDHPIY+JmdKth+EjfPMWBqIy4ORSLAnhKu0dSRionTYFYwAgAAAAAPAlzb+2GzzmmCtwKdDIvTgP+WoLLxNdlBVK2xM8IepdBXAAUAAAAABobsPcWwQz9NurvrpK3X82xruuvecTJsQbYA/8Wc7ynk4Q51ICq18rjUJd13mocs+2rwyx7LciqYeUfNbltVwzKzd9elV25jP6I1ZMmoRNDAADNwDVAAAABWQAIAAAAAAZFMw5U1Be/9By71obQ37rR6t7kk/B5PDvzH2/C4BXzQVzACAAAAAA9dbcH27aTlhVKkBV0uj+02l6GwIbuOkk2mmFnj2DiRgFYwAgAAAAADLmoiDqagoPgtcmUfTszY6zGSm2/fGNC6pcyKlYqZ8iBXAAUAAAAAAN2qd/H/3U8xL5GOsuZB0TN9uO/cpbe9BcXinQA6KLwBOCGSF+UWoD2gJnbHpxDTFwcFEm2PhP0oUtUmVlVQCoI7LBK01j4Alng15HxpnY8QADOADVAAAABWQAIAAAAABt9dYjSa52v1lVYEoWfbb+61V/m7qDvbo9REcFtolAZAVzACAAAAAAiWyEk9cC7XW18I0JSL8tRu+unHeO5AJPFTRQ9rtjmtoFYwAgAAAAAMgl6ghBTf0LhVY9bQ4TFV1s7I6O8wK3aWZhJJ44xlXmBXAAUAAAAAAsJoZpKwoqouOBceDeGHVPehyPI7QIpYasC6cZgApc4HFCZy/gAooOn5EaBSDGDVZr+vUI0Wf94kVUpb9NVuKm4uJZ2NwnTE4SDb8q55RlFwADOQDVAAAABWQAIAAAAADZOyEGcAF4JghkBbbLL2bpfPXQXYSJH7sCwBmU5x8jnQVzACAAAAAAtx5lK5DJc64PXFLy5RhDSWzHQgJbPtGFZwG5Z3X7vp8FYwAgAAAAAIM4C4VAVR9BJSIeoJe1b7hlXTFGPGYKtk4JMK28y3LmBXAAUAAAAABSmlcROalQd2vVvj22J7flkR0tcbmQdNsu3T5LOTDiVBx5Zo60UpbHd+oIfAyJUiXInMNcIh73U0mDDBkPQcXhGQVFaF7Il5HczCR4spk26QADMTAA1QAAAAVkACAAAAAAB+FemrwIgnlCikVz5zGTuYEXFW8ysHOD36KZYYV6RRoFcwAgAAAAALr59l+975VEBlypofZ6l4EZH/cL7HSOIernvIJd5YxPBWMAIAAAAADMINRV4P3r2pUW5WkfgikFk9KKgMwMU/rQFsBXP5A9mwVwAFAAAAAA+UH6Xzohb6S/3xm/qQ2IEeSdWMMMEN/z2QjXny1XQULCFbv0Be7Nv7JZrVMKJZl27pWVfmz/CpdddqmKVpWIU4uplZNxrMQMHUiPf4xiBfMAAzExANUAAAAFZAAgAAAAALUUUOzZyVR2IqmJ341olfqyw7h/2+l1740KUfzGlhSsBXMAIAAAAAA7I+iHJ1mo09vODr4ggwsuCa6yeMfKRhMk6CqbyNBf0AVjACAAAAAAMff7EQjLllSXiEVtP8Nl2ABzzWsBrM43GzG8CMNzyg8FcABQAAAAAPmiEJ+JivXHmgkm/KCt78H9QjgYYioDIglAbw5MOWAP2M5fZabnvvb4fbeMM4+oMf0F3cyOOQyxm2pGxlBi6vmcc8GxwYm3f6s0H8gtmXnDAAMxMgDVAAAABWQAIAAAAABFkObx9tHsA2pO9xssfYF4FY8bOtfROdkbh9LPkRtNQgVzACAAAAAAu+KihV7MzuyavpyywhghJttPCHCuExwbmEVeBfgsiNQFYwAgAAAAAPFwEBmmC6XSZumbKEgMdIyXLzrAD7/8hNQA3ji5ZYBuBXAAUAAAAACt0mYArr6Q0TEzPDImziX8zt1jQK6szGnlqreoFHi+jK1e2GEs98cmyjWvzJy5CZrg/QROaiDmai0Y4n/4HXSTtDHzugY8l+dexUtu184zAgADMTMA1QAAAAVkACAAAAAANSz2Z0yfpbuKlAhzSkLJ4twfyed9oJHc1ZPwVbvQbtkFcwAgAAAAAIlDoEuj+f0zogoQkbSqQLAQcOr57roUjXjicmZC7oEnBWMAIAAAAAC7J7fX3W5G0Xw6wUk8hbZRAAZ7R/RTIcMYJbdV6p+RuQVwAFAAAAAAzB/3G5OWHkd/Iqb/Qda8forcuDrpPnyH1SbD4XTKhq6pOTPrthH3sF1jYfYLY3nzFWC/fyAt/FPz2GrIrhscVbk7P2h9vXnIz4Pz29AeDKYAAzE0ANUAAAAFZAAgAAAAAGbEZQ6KYNY+wipCj4hfxQYWPBH426aEzI1VOtp7sda8BXMAIAAAAABQbU/9jvhvsOwpJkdKkKbbP1o8BRXNJ0lqHHkf/06V8QVjACAAAAAAKAqJi/6oR3lzF52Ppqbr+K8L/Kgdag44cicGbhwxqRAFcABQAAAAAJARNSuU1NXcnKdWCWT/Owmq09VZuKKI8d9N+EpNjKr5oTEQiZ4fArsCjKlTA765xEFsevrSsmoB4TIybJjaSWzBupa9oILtk88h5buov4pBAAMxNQDVAAAABWQAIAAAAABCY/arAmB0dhPdgSsD2O2MKS8Zm9w/NM14Ul4/t2m0QQVzACAAAAAA1hAC/S4aPVgJZEy44ccuZEXtUfvJqhel36PoDvJTaMgFYwAgAAAAAH8I9p0j0y1bgmAHI2ISNllHT/8FKomxVwaP2mIMo56tBXAAUAAAAABmADqdUbWvhDYoVhQbdgRhmdtDMgr2kBwuJdX/nCbU8AqYfFuVXdpYzwtVYaU47IOHC9ICiTBlVG8kG4XzR3Kdg4YFy/tz0dt3VF9CqR4LLAADMTYA1QAAAAVkACAAAAAAA+WqeGc//aacBD6DSO0gkFyOO++agnvdz9YOELoLzNYFcwAgAAAAAO990OynEV9N6qiYKob74acNsDYfAHjQuWHq0kdJTetZBWMAIAAAAAAsqDJrDsxMJgROuGWzEngftSlMq8FWRhyPBbJVNmVUMQVwAFAAAAAAT0g1k+Rwtzoyl25lOJZlfaxoHmtF+tymKCIuJdziFFX9TE1CTVKgJ6me+k9ITQ531Qvg2JtA46KH6VmCFviKyDuqzYsZkxatg0xxkDVJ484AAzE3ANUAAAAFZAAgAAAAAPf1fOoa/rx2wfnJKHktZ94fuVS2zgb/rHtVQN1U9PEpBXMAIAAAAADJNxyG5alNP4/3oYkhUwMqjkxDH7MwsDF/jUK6TXgxYgVjACAAAAAAj1mBgRuJhRw5obpPdCG3p7hztqpBWBLkcXX6yeJMUPIFcABQAAAAAMLOOp5bMrq3d8iwLmLXKEJoatrjHcILUECIiD4cwAUpl0IwLwci+3lSJwOrAIqxToo+4ijZhipbbvPzvDTmFTmNoNETxw+30qSTnwaC5KCMAAMxOADVAAAABWQAIAAAAADxiRdMzUKZc1r2hZRUFqX0LdgKRHqDmVlPbs0bUeX50AVzACAAAAAA9wpXUxV1OEmuc0dHzXspXZXHVoWfXBcLxEWLQeo6cMAFYwAgAAAAAJ9TgOPmWAxvnHAWkYbdVot1srt475s/QkFL0bkR1Cd+BXAAUAAAAAAin6A6xYTr2f6PyYFqso8/uCLdW4S91TljtfuffvORj7OD1gg5x4EIo5xNuY+OAdt4IOzDNtMlS5gQeme3GyfF+LY4BENO9vOvFkwvqYkV9gADMTkA1QAAAAVkACAAAAAA8kM47eEGN84t5PAIfXwRq/NWmneSILow3XEtDGDftyAFcwAgAAAAAGC/ecEfadfk1d7BzK7dSSVB1Mnk/VgV0SKWmLBlZQ+VBWMAIAAAAACjPxOzyGQpEzJpWld7Hgz5rddY74icKTgNVi5Js8meFgVwAFAAAAAAYyqRLJUyYgmWNHGB3uXWk/17pY0wH+PqaGPWr5wgQ3X5Tzg6lHWwJNoxZ2vR083RD4Q1yTi4jzwL35S+Afmnc3zz1OMMQyQy53udb6rriHoAAzIwANUAAAAFZAAgAAAAAG7UObjVEoo2kNNPgPLkzhaSsRkFudf6o9ECurcLMkO2BXMAIAAAAADRNmpj8kGDeMXclYeI/9RpLJ7I/JhDk16W8quRHN94jQVjACAAAAAAFnJUXRjwBzN440Yc5zXlzIaSCiRXAdVS95QN2obhhaAFcABQAAAAAOMqblWKnnuHNcENWwPEAJdUAVj3QZvEZO2DVrexVhF+8BaP+EG3madiQtdX50qas8whKayV2h51vt+2yk1rh9x9GeAi+m/ah+cUjj7xQnvjAAMyMQDVAAAABWQAIAAAAAAjwCumu/AAqhybP4qQuxnTRQQrwUE9pYfPAhoS4GtrgAVzACAAAAAA+RqDeKGmdzZazkZYjIqnmiEB72Guj93ZAxxRYkXv7hQFYwAgAAAAAOUAPrtbLlaaMh+mvFyS12vtrhpE/zzi+WiSc0BaFWuXBXAAUAAAAACYNMbl1mVUNLUqXoKOtAmKYQRo1TKInrza3SQCDaDaZeOgCno1rM0zO7eZdPf922loGxhj8pzaIFMYO2UDdwSOYBgSWD0GdCA1K9NdoFdafwADMjIA1QAAAAVkACAAAAAAsCjiI4E1W+ULKjd+wwXfRhXgiE2yxFtH7s/lN8pPslQFcwAgAAAAAHgq7xy1EgIIvrl2yZE/JpVc/mg35uHLTWW1hNW2tKA+BWMAIAAAAAB6IpC0kcQQYN9Lbuo108LM7fwn0WtQVkw4aSpqa3UzSAVwAFAAAAAARkycxxHd55WHlOQn264JI9e/mY8x/kgYW5Z/jqSnTVF8kQOdjufhtl/DrCI9HpkRLjzQ9xkbcQ8Xo53sW7FLrAdwB80SHNZxT4vqb311CUkAAzIzANUAAAAFZAAgAAAAABtUTesSQ0MU4/BTipX+nlhc2Wd2VCWlEnGNrj2q79vqBXMAIAAAAAAD3uazjdKtdKELZI3a8Ios2om8rwX26bS2AGPzG6x7CAVjACAAAAAADxTZsvHZ4kdT8LVOTp/oFkHT780RAO0cDqAn1XwOaWcFcABQAAAAAF45Zsx+D8GYW1wgstFljk7T0lL2RejppwJ2NwhZRdSwEb5DEWN6+B3U6+p5yD4rR0OAQdVQj8fiebAvzFu9nssnT8Ix++V7+ZT4dALyTgVTAAMyNADVAAAABWQAIAAAAADC0jLaxGyMjTDe4ehaY1gjsZF/xMGi9MeTqbq2QvA5AAVzACAAAAAAQUTZYQIjxGq+9U/VdbrzEWfg8GXNiALTC3wDrT/jJjIFYwAgAAAAAIyJX7DzfSNDqHwKvPwxYuw+NeVEjM/ZIbqcYH6U6IlBBXAAUAAAAAD2+aGCv9XZje8PIIB4YLlo/wsZqV6sx3syw+lhHI7qxjAWsyBTGCEsFpeTUscN5bL9jWf7YCpuXiBI11ZM4kQeBNCJ3a7qsZh3WRyz8Yr0nwADMjUA1QAAAAVkACAAAAAAz3Ws6yGa4MIukKGfCfZY2oS/ynDce1pNnppH+NLSXqwFcwAgAAAAAFbixuDjbL0MPkPwI5Gb/fbUl7BMgIcOm87154+evNqRBWMAIAAAAABKP2KhKfOgfWWD4hW9PLzUmGuyMAK8GmkzJoIS3txXZgVwAFAAAAAAop9hAJSnp5NjtWYvwhav4JmfzT0rPwyHKENIlfCeirMJ2IAYwWOfiaX/gTtEr3RjtWxQUTE5FMd7kRe5UxbpwYZ4VtJuOGfeimTCp+7W0vQAAzI2ANUAAAAFZAAgAAAAABya1PtfzQ09r4jDVaak0aOhcjqDSzztWF2SnM2t4k8OBXMAIAAAAADpkMLAYb9b6UeQHYugIB9RJZt1mRaKQAw1hmxkLO6e+wVjACAAAAAAbBRBiicaL9NykakghQ1QkvzyfgGsA1X9coym3Bv3c38FcABQAAAAALD3bSZQl9Wx4lALXwOetIlaYp8xerBx4SmVlMyiQ46Pm53JgCVPIxi4oQllSRQHQKop5YleUMtNKRyHhIrl6T+mtPPYzS2C68pXvbtjsbERAAMyNwDVAAAABWQAIAAAAAA6aMJ/MI87IIoIiEF2vFpJfGv66TPM2A8LdNMy8nbOSgVzACAAAAAANfWvqKbxj+M/SEy4Fe7NjCEV9Lsx6lpwRZlpxfJ0e78FYwAgAAAAAO1bbLedmGjeSe7diokdD9eBwg6Uln86/3S1WzUM2Lm+BXAAUAAAAADef7Zyjk/MMK8EEVRetU3XfNzrTwd27ZqpGodGGAqkf4NJTaU5IqXaIqU02FV38s0/y0dgpJMKKby1jaAa6CQt7TB4QreG1OLVjf4oN/FKVQADMjgA1QAAAAVkACAAAAAA1jzcM5oh67emUJT9FLdyxepLwittt6sPlglrQapMHjEFcwAgAAAAAHGTyg3YxZMM/5RzS2q8gAHysElIhml/5tbjHw80RRGYBWMAIAAAAAD1ujRsIOvddnIKGULHhgiiYk4NEROiFZTCialdRTBWBAVwAFAAAAAADuLedtUEyAxE7LetH1D2xz6KeYv6EjGuu5alIiGtlaTyCxfBLbl4gqWSm0bTmXRw1g87dMu4VkJi8XBdoheVpggzV1xY3ReWN3Cz+aQlKxkAAzI5ANUAAAAFZAAgAAAAALz2w6bZix1Sb5tH6iI3uCZIfTLYeZOn6SDjX+oJYOO0BXMAIAAAAABt9dE0MY61B7tV/+M5+D0AdhN9HGMjwprDGNlQajwslAVjACAAAAAAOYUEsy+uHR7Zs20sJCG0b9Y2Mm0r9DwZ3Iy9yYjdmDkFcABQAAAAAK2nV6bnZJmdFiBecZQuOAWGCbyUv3iH7RnF7YBQHA7h9EWeIef8jh4ZABoNggeLE0y6ZKZq4MpZihmUo2cKM4FhNWnY2lau9iqCHm/+gnHsAAMzMADVAAAABWQAIAAAAADV1RA6Z4gTmH+8SwKNniZEDwyWDp3L6NQQn7dmHbzvOwVzACAAAAAAX1bNGPPM1ieTMwAzjn39vp6HmDhVHXdG0r7WmaOPosIFYwAgAAAAAC2E62dvXgQRDTr5a1A75wFvT4QjKv//u2uppkNroOL0BXAAUAAAAAD/CJ0QrgNT7sANBDH9CN1jQKx+mKgd1lbq/+cS1h/AP9m2r2UUkmapYr1gTMk3EhxBilycTITh8M50LSl/bweSS4hDGYxD5f9r7kxnUKNnLwADMzEA1QAAAAVkACAAAAAA45fcIfzPFrPrPn97mWe/EXi8Ok8OQNvl3rN25y2r3p8FcwAgAAAAAOxmxBzC5JLMac+YEQEslk85PpplIuDox6dNH5oet04qBWMAIAAAAACp7pstDmIuKbduy3xKpA+1dwnh+YPi/imz9sgnpZ3nfQVwAFAAAAAAPl1lkg4jk6v+JLPm6WssWfbJfk/64XsxcwELm0CbPe4ab44M3A8VfRMYGrqYLaH/bSYU+khwzbXmDiYM4i0kXV6wMEWagNgjyZmRYXQ3wlgAAzMyANUAAAAFZAAgAAAAADbXUnjgdRqKGOd3mWEovY0FiDcQqeqw76dfwiZVtyI6BXMAIAAAAADEIaKc1UpAiL4gs/e5L0Z/p3PE6RNeURDZI83VC0h+QAVjACAAAAAA6f0jcbyCKrCR0+YFb0hKuH5t7smSXQYBIFi9K+fbrMQFcABQAAAAAEI6A3UXxqZNzkJkjhcZGoWVgZF6dJiOEpWp4WTGqVxrFXRVwLH7zG+WuZzLEAA1tMaoFEfpYkM44yGVAD5WZSydC8yrwd0mAFIkbltmSv/EAAMzMwDVAAAABWQAIAAAAADFI+3B5vg/FM8Yo/Q+uw0FGpytqO5fNaQCwcQDkxK0VAVzACAAAAAAz35xWYH02sb27aj/3FRKV/TvXTg6LXm1iK32Z8vi2bYFYwAgAAAAAKmtS2jNggP5a/e2lUqESONs1eSDIjiSPC+YP9yzVswGBXAAUAAAAAAEJfsyCQ8a7Zw4juwP1FbLgmsc21oge3/W0Q3FAKeAVDTfnC8v1T53IoA9DKQX/G3btrNK6ET1jep/lcH8/9m9YxI04YOSSuiKsqLQgr2ZKAADMzQA1QAAAAVkACAAAAAAyP/35LkKDYbYYC+AUl7aIixBpTw+Qx+qMYZgpY8QBVsFcwAgAAAAAAx8P35cL0IyVdO/zEvU4DZv1hindZwqRMemH0oBuZ+cBWMAIAAAAAAWbAp66sLt6Cc+XFjHtlgMIlIebhR3CGR15aQI5GHfnQVwAFAAAAAAdKMxFf/o9DMyKLAc4B9Zusgp7QLC4xwRSBmZzs4inK8qzkv9+AxgWk8a4LA+rjCafGNLia5OAiERaCOPUj2e3TX2rPpVZLxOj/W0L4jOqRcAAzM1ANUAAAAFZAAgAAAAALhEUjJOf0fB72YqVnWsOcM/aqx7GJzRpZuVegyNcmMfBXMAIAAAAACB6OxDlcszvbyMgBkU3u6vUZAv1rf5bR4gQ+WqgENHagVjACAAAAAAeh/cviLgYllORRrk/ajPiNdn7tvMPXVgFBKzYlw/b1EFcABQAAAAAEonzLuc12IPY8dmWEwg8euK1P1UqJvi1ZHN9FF+gkBWh1hCXz4aAHLrTuQpesy2xlXMc28JimkDWARrPn6n1VUZU0aS750kBro1DKBXlo6jAAMzNgDVAAAABWQAIAAAAACyYI7pAkJn0ZLpb/STBzivuIUOQtslGoWoy7GUBNiZgAVzACAAAAAAhRt/fCj1MiL+o0tKVERzuq+Jzlcn5PbihJDpgVB45YYFYwAgAAAAAPVmVF75tjhsfo1N6vDc3ndizD/RZAGaMpH1/FCD/ZnwBXAAUAAAAAAh8vbV5y7s/25dajl9Wdk8I+JWqmdIWMi8oFw1mlytYWZVxECcdRGqhO6eG/pcPjRFz5SQf9mnqlU5BfpNFVvJB5cN4n+Bvo4y9Pq+GG52fwADMzcA1QAAAAVkACAAAAAAYSggiXB7+jz6EnnlpCIKWxgb3dQCD6nnNLjmiAtEy3gFcwAgAAAAAPTcnKc48+VN/IRQ4AybnUUUoZSLv60Oy1gHjsGaqFGKBWMAIAAAAAD8Xc3ed4a0LO16RmrYiQ5O71o3hTRKkWl5nt4luh1L5AVwAFAAAAAAu9IrurH83dlQy4j4CwPwEAyLDav4tSMzmSWgtEIAoO9WAeoJNr31PGm2QP5fylmJ3X4TZJI9bIdSaFyIftoVCmdDahISIhcJj7NYkekWSH4AAzM4ANUAAAAFZAAgAAAAAE1m5GWKG19qo2egEPJ15jxQotLbdJ4LrDMpJhBy5wHaBXMAIAAAAACBl5k7G3UeBMWmWXEIv53IdD2xL3TIgk/nMCu1s5crnwVjACAAAAAAMwdHVvAA2ymKDEG53BeFeyHi+TH86v2NLBjzMIw+K50FcABQAAAAAPDdy3Opa92xW/5PkYK/RpGjEWRWKqPPy7FVsAEMZ07d1m3rVA5fgrzz37FQI44CNy9exqiubk1WF9BP4bQsbxcdu53AmHiH324pO6gXe/xLAAMzOQDVAAAABWQAIAAAAAA4VgHa8nkZDpB+mFGpP1f/3zkDZBMOZZODHB5MNVTGyQVzACAAAAAAY2WxEKSWasTdEArnyPUYSC+t3nP7XFBidbyBbpTLwUAFYwAgAAAAALOJUvOahzWhRmH6OlYlmKgyHpy8N7N/7+UgZzCiFrktBXAAUAAAAACZDus+h56Cf/nYwh7mrmk+7YWeeoZLAuQUJAn57F7P87f90Gm6XF8L6WIog5ybSTrPUBCgy6Bg9Sfhi2nk9WMhhLeCsmzVPlx3AwTAnSNJqgADNDAA1QAAAAVkACAAAAAAOFCfcK8HGtx1zJasYOrp0ENea4gl1G49Vvw3TkXT5cMFcwAgAAAAAITeO6djkdXl8UwOCyqyx3JYc9WRZC+PBSHDPJ3HAnZIBWMAIAAAAAAc6EoIW96QcdpYAiQqtNLo5z9T7DN3KnR/b4dxBRJLbAVwAFAAAAAAT42eEi5TnnfTfh8JvnAAD/m0boXpJhjiT69+VCqTkmi4OO+Z/Jut3HndGfo8Ww9hIDnTM68jFZlaku2wWgxkg+rNJplSbyCHqiVtuOlUHjcAAzQxANUAAAAFZAAgAAAAAAnQ+3h0q2OfJVvW2FNohKVr+LiOI+HPw3QaF3kuITUYBXMAIAAAAABYJhMZf+ffO4FLYf5LNHe9uuKgSkF0mDx8WqSf7VTKpgVjACAAAAAAYDLPbLOeRndxoGDIs3IwRims/C+fCnwORYlNX7BdcHUFcABQAAAAALOLxwrLrb7fBCU7SJNNakiHVhCyzgsbI+2WKXLllsUIgj6Me7uPwpNCMi7rGu4bSDdCckE8D89gcUWjTmzrlsnY8Xe3VCA44sgzZQ3mv6JoAAM0MgDVAAAABWQAIAAAAADPwlAIo2eWIRIcL/STZF8XBpP6m6ho1NXryfst25/5RwVzACAAAAAAvpx8JeFUvRH+KIz5iPBsQtGLGYm2nYCdfflgwYp/OLkFYwAgAAAAADHDhomv1SThpLelU3VISD/iUp61Cs1hSHjUlYws2CosBXAAUAAAAAAyvlPdQKHb90pPkOstM7Jl5DqT52E4ePQhmk3CmjyXIfFZ4bF05MURUh44PIgLifFw9atcDtvVzRF1sqPSnlcbf6u1K59/fcpjoKPO7v3qHgADNDMA1QAAAAVkACAAAAAAqyr/Micrgkjf7BfOvE5lDMhpuenIFMPCtNAO5ewPdPUFcwAgAAAAADv3IvCtgM3XmRkkDmQ7BcVdW5FByOGqwlG2sglystPgBWMAIAAAAABNqdvi6iwlo+B2otCWjBA+diuX3xgGUE3tSfMwONrz1AVwAFAAAAAAnTqOdWH2eIhAKb/MGEtLgrp8ogy4TutdHDVGU6BUGAq6fSAZjMFEL4nSNREttFccrxYA5B6fMWiR02TxATi4M7YAnVfIuNxiUtzmrtjsD2kAAzQ0ANUAAAAFZAAgAAAAAMsIYyN0WvnshpU5cSj4Ve/dQJGXHRmE9zXXxGEmHAEJBXMAIAAAAACGP680rWO+tj+CyPkXiqP9rUGuTPrSpP9S180tkWl3OQVjACAAAAAAF71jkQkk7ruiJ8srp8USiWGUXHKrrnffokvg/DvVedIFcABQAAAAAN+9fqy66kYzI0gJbh3K2RN8l5F90Q2m8ygYzI2/yddii/DMNaLja8+5fa7ICznRRI73EG9+8pEcVZN6/HXqMtw3pssrenKhWFF+93QwznNqAAM0NQDVAAAABWQAIAAAAACxUCjKA0EABi1SyZPj+YZUt8fXiJE/LCmGFGyLtQsG1QVzACAAAAAA1Fsvj77Sny5WJA7CqGn7JzlAYi/MhSJkmXxF5Sbs9ZoFYwAgAAAAAGn4bz1ADrciIaSQ4bxcfMHie+eT6Di/eHenGWJcTxOUBXAAUAAAAACpu3w4fZSzo0RbaMznBUHDaUVgWOwhDhuehqS9Ok/2qsWpKjGrtlCy8FCAOafbLwOZ4VkCkM/vS2Ey+uWN74CVCZaqXy4LPPhf6t+TLVClnwADNDYA1QAAAAVkACAAAAAAoupK1+EnDA9ArWSGX8N2Bdzcd2k0v74TiW7cm/NnGQ4FcwAgAAAAAIQejhDZ9Nc8iVb18P5M1Ae+Yj5kcteQrwG435QjL1b+BWMAIAAAAAAgug0Vb28TGUj+sGywT2hAs0/iY1aaVk78Asy2fd5A7AVwAFAAAAAAVHgYAXX7RUQPEBY3buTOo/8uAbm0QpvixiWY6FieiUucpe+5EyT5aRnQu4S/nOLVNjcrBM+drvH2+KNCZkvzsP9YJoMar7nYw+F58bWxh2IAAzQ3ANUAAAAFZAAgAAAAAMBMiLfaBU+dllNfNNyFpPwFaCY2aWQeg6zRHKWB/aaHBXMAIAAAAABlCOEKvuTlJ/hpFPUF8ssjTyAo7ATMdN7vr8LGTKpF3QVjACAAAAAAinODGeD/9p9y9ap+miAgfDQt/w9x4fi/AlbvKxfmxncFcABQAAAAAOSCjXNW4AfJk4XMK5YKQ82IPg516P6fWTzoL3EkY656ZWJovhxtva31P/5Q3NyL3U1vDZGUV0eK8QtguB/Bq0CPC6pGX4C57FGgdufJ4phgAAM0OADVAAAABWQAIAAAAAAYFmFG+cOQ8tU6mGQqWCHSozWNr5De99aTNgYUjWL0wQVzACAAAAAAu34K9K6LYHVQ+6ZNCxgbn7ocCOySO0b2yhwRT46Zt5UFYwAgAAAAAFpGfdUrtgdbpa+AvHv0WYvyg2sWJcl1arGgg36Ixtl+BXAAUAAAAAALFsuABgGMvpIudlqB0CzoVVWewvWIXVj+XEKW6UPAu5/jkS8TtIu4jiLxl5RCdqzhc6oyXi9Ri+kzcjcLjRwb6wTMAv0nwSQw0oFEmTczjQADNDkA1QAAAAVkACAAAAAARON89eUpBpG1Wnqv/E9TP0I+hx9Ykc3OTZP0ak5s6o8FcwAgAAAAAInpqj16okSBeyq4Rb3AIPH3u0aVhWY076b/8MSkuw5OBWMAIAAAAADTWVF0AeQREZnvz0GbeIPKHoxyPjZRXjRiuLUXYTb0HwVwAFAAAAAA2VhvhlrlOhfGnhrUYAB+MzpaZ1zzhXxZigJOAolRdX4bX7wRpWnqHo7VSiFCNYJHHmtMj8drlRCOg0bEo4FE+P2359w7DveIjNtmvgajxlAAAzUwANUAAAAFZAAgAAAAAPTiIG+2pAnSzG9pBjUXx/sbslo7NNSUblipSOyR6YplBXMAIAAAAACDba/DbRUyJJrfsLdjUHwvRJ4kfc9qOfcNUn5lcD2UZAVjACAAAAAAxy5wu0WWAGOE9B4lspj5GJ9g/f1vys1ICeiLCYqD2JgFcABQAAAAAJmBAgip94ZK+4nH/WB0VwfDDoycBp+m2LnQPHabJfNitXAWZkYRfMyfm2pYclZ+nYp+ZgCReGnfQA8AoI4wJR9SnSHsM0o2yVhv9w5mKFzOAAM1MQDVAAAABWQAIAAAAACaYobIuD/VItT68Wfsp9n6InFYq5WUQ1F6p6SRR1OZdgVzACAAAAAAsTOOl0dOlqIB0+IxKZYg2nR6b2RDmxgA20/tDA+LRvYFYwAgAAAAAFI0pSyiPT8ZLuo0DK29rYO5toWDr31mut4djHww3UL6BXAAUAAAAADIoOBXTpCJ05sWSVNPAYCbThHGTzuFWjswuogv6B3ecEWA4yGNEDEggFKboPDMVrAX58lrdhTYKu8ek3PlYjTyUQNgI77cFL3ogS5S1X/4ZgADNTIA1QAAAAVkACAAAAAAfbB4LTWhFbqdkFsPy/DYvWdfAvMKCJTHr0gD0lefcMoFcwAgAAAAAJw91a8c47Cni6VQLmVlMCBQBikb21yGLJ9Fw6wEwIFmBWMAIAAAAACOWxpyCR62mFRR53nmgp5CV8nuBTVa+ItNl3lVj7itUwVwAFAAAAAA0VCO/jaGMXPMfjIx4xSDnaRYBeWW3jSBUK5WYc7Nh4s4uHqYvHo3rnlTy8WTAxUOHq7kaSehPUgK0aWD/+5/UKutpRqB/cMM+B0RwIDxWKsAAzUzANUAAAAFZAAgAAAAAJhqzLoe7ezxnOEZ92vTOQz1LOqjHMCHmve2PgIiLKnsBXMAIAAAAAD5QI5sq3l5X9KPtDDeiE9c10I5ufrCaIGcW+2BmOMLLQVjACAAAAAA1bmo1lz2jfxVFmnEdyQ+RY1zKdROrRJI0fi9ocOLjlUFcABQAAAAADTqfVNQ3534IkG1c/qkbY0/1G6qpvum3P57OsjiiQ8ZnQwSEGAvWSbx4yiICAmqeNGQwqVaKA5jwIDbKfifvudCInweVdpekGI93Aex0vfrAAM1NADVAAAABWQAIAAAAADQ0fbnr71YFxcgR2Nqoy5cRn8Rh0r1q0dGGSLBUz32vwVzACAAAAAA6A1/d2XJLCuo18ubi5GB56qaGzeZdhNy7jk25r8SiWkFYwAgAAAAADweynDLFtpQn+zsiK2xiDyxLTs8e4VzL1g1my9BdQeDBXAAUAAAAABauLdFh6UdJHt8MudnMUixgmtJ4eMPdsCTyF9WfBHibM0Dpvp3a2+zw7IovpB4EP7XVYnJCtLvxJoMj+2vvQ81aH6F599Psym5WeTZ9VeMbgADNTUA1QAAAAVkACAAAAAA0h69VGoiYnufdWR++qsuJunc/0LRqT4m28cQRyIdCfgFcwAgAAAAAMjF7hm0F6szuVHSWyrc5e61psWORTemxO78wZEm/k2CBWMAIAAAAAAI8TVmVegh96qOuR7gkpz3gDqYVnrsZcQ2/911XXHBewVwAFAAAAAAuEFRYl/wGki9vF71w57KlgjAbnlpkdMzs5MyqFxN7MMlWY4X4rBSErRtAtLcGU1z7jUw/mpFu72ex/y0vLCbEeEyfc/23T8IK9pHxeiJ/lIAAzU2ANUAAAAFZAAgAAAAAL4z9hwLw4VcQFqR6T+XQkTS6Z8hYA5cvwgrxAaeNgQZBXMAIAAAAAAtTcoPX4p1APnfEL4cQF9lx+et5kx1afhnbKb3Dv48ggVjACAAAAAAUtC2XQsACe7YbhWJilrFM+JPVrh8/4UPaxKRrg8EzCEFcABQAAAAAHsNmZAJQc73TEPjP0bh77OlpwWpOi7oXghOJe/YnqTzXdST5lLHIeLEVe+0Gl+fGQm9nMtWFFGuSO1AXof1tHBx03noaEkGlkh6OS6BnafZAAM1NwDVAAAABWQAIAAAAAB57gwojrlYBFEkkaaN4he+PKIpF5Z8nClvE58RbFLdKQVzACAAAAAA58LrR+y1vyThNlgZDd4VXYOdVC0kHSimnnLDk9N0jEsFYwAgAAAAABV612Si6NSnWnYv9701khpaYyNVcaFsSFBD5yz7QSokBXAAUAAAAABy8Y6dFTu25SOCh7368nfPmi04f776asGQHOm4NP5PycwTzPAXjr9adQW5Z3ZH27Tz+vRuRvtRcXUF9lRyyQVfH9zHIFrTRYrXer5jiyu4uQADNTgA1QAAAAVkACAAAAAAVxuzTX18KtmFRNJ7GDhOKSV1G/h/lIvNvFTrQ/5D3PQFcwAgAAAAAAqfXtDHKq46dMdyBpbz1VZdMMQ9sfvjyl/ffG7ErGVTBWMAIAAAAAA4pMe3xWFKPxEFYxftX6RFcLvPHnZGKwC4O4xRFQJoIwVwAFAAAAAAFuCPCcv2GL/G0SpxrOvzEB0NGclBYCAyy4zNgumaazybxtQiYn3YeaMh//LilqwDi7MvaWqiEaYUO70KVAW55qfHcRv5A88hbM+pZiQjsesAAzU5ANUAAAAFZAAgAAAAAOMennNFjC0ynZK+wS8JbsPkEaTnkt0xWVCyEMAktinaBXMAIAAAAADyUKScg9z1t6hm7nvb+Db7eNP/RKlUPJ/m2uCqKIDNZgVjACAAAAAA3nuMlzJXNDbOGYhPlivrYa9+8Jb+FoNvoyi0TA9qgsUFcABQAAAAADYb38RscTKl4bKmcC0mz3+RYiRQa48Z7Ao9cHeBPdQ/BvIhxRfbclsT2BN9Gd2m0EQCsyGtUiXkGys0wu/rCaTakoY3O6P6UiQ1vGNra/ejAAM2MADVAAAABWQAIAAAAABada0u3jyKuPh7cgm53Ksa52TCzihyEAQ4rFW1pIP/zQVzACAAAAAAUpe3MVoJZNWkTOVPJw3DGrnVW0ZnnjfivtAj1SXsHvEFYwAgAAAAADFhl/nwzh0DpBI14gOovsv3iyqGoecdkWHXxsA93qsdBXAAUAAAAABahL3/ICyL2JM8Ljc1bXDxiYrJxbNR8Nh/nRUmuTWWx+zU6MPD9YN4/1lxj/cMX8jjRVaL50KanhIYlZJNnjG1urw+w75ZB65JHGcHJnEAtgADNjEA1QAAAAVkACAAAAAAmwRlG1FPLBIy7A9QeK1p5FMm3AAxa9RaYS3qURXL3FoFcwAgAAAAADOCCSaiDcC49AxounUya6p0HRaL8UZN7HiVDVIU59hJBWMAIAAAAAAovzaba7ztqqXjH4Zz7sxDT7gx3fJo3DCxowxV2OvrxwVwAFAAAAAAe1gjaGELRjMpsO5At8k0VZas0s7pUIXU/I6uPbb1pLcXliaF4aZ7ihLFQ9lDviIlydsaUbn/VqFL7e+3dlrCBh/5dOOGyE1W46JjYTsqHBYAAAA=", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "date", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/date/mongocryptd-reply.json b/test/data/fle2-insert-range/date/mongocryptd-reply.json deleted file mode 100644 index 77c856199..000000000 --- a/test/data/fle2-insert-range/date/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A4kAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAKgAAAAl2ADkwAAAAAAAACW1pbgAAAAAAAAAAAAltYXgAFYHpffQQIhEAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-range/decimal128-precision/cmd.json b/test/data/fle2-insert-range/decimal128-precision/cmd.json deleted file mode 100644 index 8d334d8a2..000000000 --- a/test/data/fle2-insert-range/decimal128-precision/cmd.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": {"$numberDecimal":"4.56000000000000"} - } - ] -} diff --git a/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json b/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json deleted file mode 100644 index 63658fbca..000000000 --- a/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": {"$numberDecimal":"0"}, - "max":{"$numberDecimal":"1234567890123456789"}, - "precision":{"$numberInt":"2"} - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json b/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json deleted file mode 100644 index f3c5698db..000000000 --- a/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": { - "$numberDecimal": "0" - }, - "max": { - "$numberDecimal": "1234567890123456789" - }, - "precision": { - "$numberInt": "2" - } - } - } - ] - } - } - } -} \ No newline at end of file diff --git a/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json b/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json deleted file mode 100644 index 4e7ee4f13..000000000 --- a/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A7AAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAUQAAABN2AACABMa6ngEAAAAAAAAAJDATbWluAAAAAAAAAAAAAAAAAAAAQDATbWF4ABWB6X30ECIRAAAAAAAAQDAQcHJlY2lzaW9uAAIAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": { - "$numberDecimal": "0" - }, - "max": { - "$numberDecimal": "1234567890123456789" - }, - "precision": { - "$numberInt": "2" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-insert-range/decimal128/cmd.json b/test/data/fle2-insert-range/decimal128/cmd.json deleted file mode 100644 index 60373ded7..000000000 --- a/test/data/fle2-insert-range/decimal128/cmd.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": {"$numberDecimal":"1.23000000000000"} - } - ] -} diff --git a/test/data/fle2-insert-range/decimal128/encrypted-field-map.json b/test/data/fle2-insert-range/decimal128/encrypted-field-map.json deleted file mode 100644 index a2068cd27..000000000 --- a/test/data/fle2-insert-range/decimal128/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/decimal128/encrypted-payload.json b/test/data/fle2-insert-range/decimal128/encrypted-payload.json deleted file mode 100644 index 963d6a075..000000000 --- a/test/data/fle2-insert-range/decimal128/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json b/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json deleted file mode 100644 index 02767935e..000000000 --- a/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A6EAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAQgAAABN2AACwTivebwAAAAAAAAAAJDATbWluAP////9jjo03wIetvgnt/98TbWF4AP////9jjo03wIetvgnt/18AEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "decimal", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-insert-range/double-precision/cmd.json b/test/data/fle2-insert-range/double-precision/cmd.json deleted file mode 100644 index 5c5645e61..000000000 --- a/test/data/fle2-insert-range/double-precision/cmd.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$numberDouble": "123.456" - } - } - ] -} diff --git a/test/data/fle2-insert-range/double-precision/encrypted-field-map.json b/test/data/fle2-insert-range/double-precision/encrypted-field-map.json deleted file mode 100644 index 94b39730f..000000000 --- a/test/data/fle2-insert-range/double-precision/encrypted-field-map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/double-precision/encrypted-payload.json b/test/data/fle2-insert-range/double-precision/encrypted-payload.json deleted file mode 100644 index c6593c14f..000000000 --- a/test/data/fle2-insert-range/double-precision/encrypted-payload.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json b/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json deleted file mode 100644 index 2057ce841..000000000 --- a/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A5gAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAOQAAAAF2AHe+nxov3V5AAW1pbgAAAAAAAAAAAAFtYXgAAAAAAAAAaUAQcHJlY2lzaW9uAAIAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "range", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - }, - "min": 0.0, - "max": 200.0, - "precision": 2 - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-range/double/cmd.json b/test/data/fle2-insert-range/double/cmd.json deleted file mode 100644 index 5c5645e61..000000000 --- a/test/data/fle2-insert-range/double/cmd.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$numberDouble": "123.456" - } - } - ] -} diff --git a/test/data/fle2-insert-range/double/encrypted-field-map.json b/test/data/fle2-insert-range/double/encrypted-field-map.json deleted file mode 100644 index bd522cd04..000000000 --- a/test/data/fle2-insert-range/double/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/double/encrypted-payload.json b/test/data/fle2-insert-range/double/encrypted-payload.json deleted file mode 100644 index 935571baa..000000000 --- a/test/data/fle2-insert-range/double/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "double", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/double/mongocryptd-reply.json b/test/data/fle2-insert-range/double/mongocryptd-reply.json deleted file mode 100644 index 775a133ab..000000000 --- a/test/data/fle2-insert-range/double/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A4kAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAKgAAAAF2AHe+nxov3V5AAW1pbgAAAAAAAAAQAAFtYXgA////////738AEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-range/int32/encrypted-payload.json b/test/data/fle2-insert-range/int32/encrypted-payload.json deleted file mode 100644 index 6dd76d18c..000000000 --- a/test/data/fle2-insert-range/int32/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/int32/mongocryptd-reply.json b/test/data/fle2-insert-range/int32/mongocryptd-reply.json deleted file mode 100644 index 903c994b5..000000000 --- a/test/data/fle2-insert-range/int32/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A30AAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAHgAAABB2AEDiAQAQbWluAAAAAAAQbWF4AIfWEgAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "int", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-range/int64/cmd.json b/test/data/fle2-insert-range/int64/cmd.json deleted file mode 100644 index a32d5304e..000000000 --- a/test/data/fle2-insert-range/int64/cmd.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$numberLong": "12345678901234567" - } - } - ] -} \ No newline at end of file diff --git a/test/data/fle2-insert-range/int64/encrypted-field-map.json b/test/data/fle2-insert-range/int64/encrypted-field-map.json deleted file mode 100644 index f1f1bbe98..000000000 --- a/test/data/fle2-insert-range/int64/encrypted-field-map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } -} diff --git a/test/data/fle2-insert-range/int64/encrypted-payload.json b/test/data/fle2-insert-range/int64/encrypted-payload.json deleted file mode 100644 index 5198c6ef7..000000000 --- a/test/data/fle2-insert-range/int64/encrypted-payload.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "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", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } -} diff --git a/test/data/fle2-insert-range/int64/mongocryptd-reply.json b/test/data/fle2-insert-range/int64/mongocryptd-reply.json deleted file mode 100644 index 8e25da245..000000000 --- a/test/data/fle2-insert-range/int64/mongocryptd-reply.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A4kAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAKgAAABJ2AIdLa11U3CsAEm1pbgAAAAAAAAAAABJtYXgAFYHpffQQIhEAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "long", - "queries": { - "queryType": "rangePreview", - "contention": { - "$numberInt": "0" - }, - "sparsity": { - "$numberInt": "1" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} diff --git a/test/data/fle2-insert-unindexed/cmd.json b/test/data/fle2-insert-unindexed/cmd.json deleted file mode 100644 index f34577b86..000000000 --- a/test/data/fle2-insert-unindexed/cmd.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText":"sample", - "encrypted":"value123" - } - ] -} diff --git a/test/data/fle2-insert-unindexed/encrypted-field-map.json b/test/data/fle2-insert-unindexed/encrypted-field-map.json deleted file mode 100644 index cefd20eae..000000000 --- a/test/data/fle2-insert-unindexed/encrypted-field-map.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "ssn", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } -} \ No newline at end of file diff --git a/test/data/fle2-insert-unindexed/encrypted-payload.json b/test/data/fle2-insert-unindexed/encrypted-payload.json deleted file mode 100644 index ee33ee338..000000000 --- a/test/data/fle2-insert-unindexed/encrypted-payload.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "BqvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFTtw1tXzjcdSEyxpKKqujlko5TeizkB9hHQ009dVY1+fgIiDcefh+eQrm3CkhQ==", - "subType": "06" - } - } - } - ] -} \ No newline at end of file diff --git a/test/data/fle2-insert-unindexed/mongocryptd-reply.json b/test/data/fle2-insert-unindexed/mongocryptd-reply.json deleted file mode 100644 index c4f7ba214..000000000 --- a/test/data/fle2-insert-unindexed/mongocryptd-reply.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "plainText": "sample", - "encrypted": { - "$binary": { - "base64": "A2EAAAAQdAABAAAAEGEAAQAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASAnYACQAAAHZhbHVlMTIzABJjbQAAAAAAAAAAAAA=", - "subType": "6" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "ssn", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/fle2-insert/cmd.json b/test/data/fle2-insert/cmd.json deleted file mode 100644 index ca12d021d..000000000 --- a/test/data/fle2-insert/cmd.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "_id": 1, - "ssn": "value123" - } - ] -} \ No newline at end of file diff --git a/test/data/fle2-insert/encrypted-field-map.json b/test/data/fle2-insert/encrypted-field-map.json deleted file mode 100644 index 84f099608..000000000 --- a/test/data/fle2-insert/encrypted-field-map.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "ssn", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } -} \ No newline at end of file diff --git a/test/data/fle2-insert/encrypted-payload.json b/test/data/fle2-insert/encrypted-payload.json deleted file mode 100644 index 852eb2e5b..000000000 --- a/test/data/fle2-insert/encrypted-payload.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "insert": "test", - "documents": [ - { - "_id": 1, - "ssn": { - "$binary": { - "base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==", - "subType": "06" - } - } - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "ssn", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - } - ] - } - } - } -} \ No newline at end of file diff --git a/test/data/fle2-insert/mongocryptd-reply.json b/test/data/fle2-insert/mongocryptd-reply.json deleted file mode 100644 index 29a219d9e..000000000 --- a/test/data/fle2-insert/mongocryptd-reply.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "ok": { - "$numberInt": "1" - }, - "result": { - "insert": "test", - "documents": [ - { - "_id": 1, - "ssn": { - "$binary": { - "base64": "A2EAAAAQdAABAAAAEGEAAgAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASAnYACQAAAHZhbHVlMTIzABJjbQAAAAAAAAAAAAA=", - "subType": "06" - } - } - } - ], - "encryptionInformation": { - "type": { - "$numberInt": "1" - }, - "schema": { - "db.test": { - "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", - "ecocCollection": "fle2.test.ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "ssn", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": { - "$numberInt": "0" - } - } - } - ] - } - } - } - }, - "hasEncryptedPlaceholders": true -} \ No newline at end of file diff --git a/test/data/schema.json b/test/data/schema.json deleted file mode 100644 index fa57f6692..000000000 --- a/test/data/schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "properties": { - "ssn": { - "encrypt": { - "keyId": [ - { - "$binary": { - "base64": "AAAAAAAAAAAAAAAAAAAAAA==", - "subType": "04" - } - } - ], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - }, - "bsonType": "object" -} From bc50d87849300352394d6858a7b2cb3497a91493 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 08:14:25 -0500 Subject: [PATCH 08/15] remove remaining references to `eccCollection` in test data --- .../success/encrypted-field-config-map.json | 1 - .../test/data/encrypted-field-config-map.json | 2 - test/data/compact/anchor-pad/collinfo.json | 1 - .../encrypted-payload-range-v2.json | 41 +++--- .../data/compact/missing-key-id/collinfo.json | 3 +- test/data/compact/no-fields/collinfo.json | 1 - test/data/compact/no-range/collinfo.json | 1 - test/data/compact/success/collinfo.json | 1 - .../success/encrypted-field-config-map.json | 1 - .../success/encrypted-payload-range-v2.json | 41 +++--- .../dollardb/omitted/cmd-to-mongocryptd.json | 3 +- test/data/dollardb/omitted/collinfo.json | 3 +- .../dollardb/omitted/encrypted-payload.json | 1 - .../dollardb/omitted/mongocryptd-reply.json | 3 +- .../preserved/cmd-to-mongocryptd.json | 3 +- test/data/dollardb/preserved/collinfo.json | 3 +- .../dollardb/preserved/encrypted-payload.json | 1 - .../dollardb/preserved/mongocryptd-reply.json | 3 +- .../preserved_empty/cmd-to-mongocryptd.json | 3 +- .../dollardb/preserved_empty/collinfo.json | 3 +- .../preserved_empty/mongocryptd-reply.json | 3 +- test/data/efc/efc-extraField.json | 1 - test/data/efc/efc-missingKeyId.json | 1 - test/data/efc/efc-oneField.json | 1 - test/data/efc/efc-twoFields.json | 1 - test/data/encrypted-field-config-map.json | 4 +- test/data/fle2-create/cmd-to-mongocryptd.json | 3 +- .../encrypted-field-config-map.json | 3 +- test/data/fle2-delete/empty/collinfo.json | 1 - .../empty/encrypted-field-config-map.json | 1 - .../empty/encrypted-payload-v2.json | 116 +++++++-------- .../fle2-delete/empty/mongocryptd-reply.json | 127 ++++++++-------- test/data/fle2-delete/success/collinfo.json | 1 - .../success/encrypted-field-config-map.json | 1 - .../success/encrypted-payload-v2.json | 130 ++++++++-------- .../success/mongocryptd-reply.json | 139 +++++++++--------- .../fle2-explain/with-csfle/collinfo.json | 1 - .../with-csfle/encrypted-payload.json | 1 - .../with-mongocryptd/cmd-to-mongocryptd.json | 3 +- .../with-mongocryptd/collinfo.json | 3 +- .../with-mongocryptd/encrypted-payload.json | 1 - .../with-mongocryptd/mongocryptd-reply.json | 3 +- .../reply-from-mongocryptd.json | 1 - .../int32/encrypted-field-map.json | 1 - test/test-mongocrypt-ctx-encrypt.c | 21 +-- 45 files changed, 317 insertions(+), 370 deletions(-) diff --git a/bindings/python/test/data/compact/success/encrypted-field-config-map.json b/bindings/python/test/data/compact/success/encrypted-field-config-map.json index f183f7d30..a16421ed0 100644 --- a/bindings/python/test/data/compact/success/encrypted-field-config-map.json +++ b/bindings/python/test/data/compact/success/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/bindings/python/test/data/encrypted-field-config-map.json b/bindings/python/test/data/encrypted-field-config-map.json index 043ecec7d..94738087f 100644 --- a/bindings/python/test/data/encrypted-field-config-map.json +++ b/bindings/python/test/data/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "test.test": { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { @@ -24,7 +23,6 @@ }, "test.test2": { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { diff --git a/test/data/compact/anchor-pad/collinfo.json b/test/data/compact/anchor-pad/collinfo.json index 9f06804ba..6a762e7cc 100644 --- a/test/data/compact/anchor-pad/collinfo.json +++ b/test/data/compact/anchor-pad/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/compact/anchor-pad/encrypted-payload-range-v2.json b/test/data/compact/anchor-pad/encrypted-payload-range-v2.json index 8f3ba32b5..7f9712960 100644 --- a/test/data/compact/anchor-pad/encrypted-payload-range-v2.json +++ b/test/data/compact/anchor-pad/encrypted-payload-range-v2.json @@ -8,7 +8,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -82,24 +81,24 @@ "subType": "00" } } - }, - "nested.notindexed": { - "$binary": { - "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", - "subType": "00" - } - }, - "nested.encrypted": { - "$binary": { - "base64": "SWO8WEoZ2r2Kx/muQKb7+COizy85nIIUFiHh4K9kcvA=", - "subType": "00" - } - }, - "encrypted": { - "$binary": { - "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", - "subType": "00" - } - } + }, + "nested.notindexed": { + "$binary": { + "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", + "subType": "00" + } + }, + "nested.encrypted": { + "$binary": { + "base64": "SWO8WEoZ2r2Kx/muQKb7+COizy85nIIUFiHh4K9kcvA=", + "subType": "00" + } + }, + "encrypted": { + "$binary": { + "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", + "subType": "00" + } + } } - } +} diff --git a/test/data/compact/missing-key-id/collinfo.json b/test/data/compact/missing-key-id/collinfo.json index 2aa4009c7..11bdd7de0 100644 --- a/test/data/compact/missing-key-id/collinfo.json +++ b/test/data/compact/missing-key-id/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { @@ -16,6 +15,6 @@ } } ] - } + } } } diff --git a/test/data/compact/no-fields/collinfo.json b/test/data/compact/no-fields/collinfo.json index f0d1ab5b7..9ba596cb9 100644 --- a/test/data/compact/no-fields/collinfo.json +++ b/test/data/compact/no-fields/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } diff --git a/test/data/compact/no-range/collinfo.json b/test/data/compact/no-range/collinfo.json index 262768aa1..1ae28d799 100644 --- a/test/data/compact/no-range/collinfo.json +++ b/test/data/compact/no-range/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/compact/success/collinfo.json b/test/data/compact/success/collinfo.json index 9f06804ba..6a762e7cc 100644 --- a/test/data/compact/success/collinfo.json +++ b/test/data/compact/success/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/compact/success/encrypted-field-config-map.json b/test/data/compact/success/encrypted-field-config-map.json index f61fe596b..ef0375392 100644 --- a/test/data/compact/success/encrypted-field-config-map.json +++ b/test/data/compact/success/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/compact/success/encrypted-payload-range-v2.json b/test/data/compact/success/encrypted-payload-range-v2.json index c3a677df8..9ebc76361 100644 --- a/test/data/compact/success/encrypted-payload-range-v2.json +++ b/test/data/compact/success/encrypted-payload-range-v2.json @@ -7,7 +7,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -81,24 +80,24 @@ "subType": "00" } } - }, - "nested.notindexed": { - "$binary": { - "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", - "subType": "00" - } - }, - "nested.encrypted": { - "$binary": { - "base64": "SWO8WEoZ2r2Kx/muQKb7+COizy85nIIUFiHh4K9kcvA=", - "subType": "00" - } - }, - "encrypted": { - "$binary": { - "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", - "subType": "00" - } - } + }, + "nested.notindexed": { + "$binary": { + "base64": "27J6DZqcjkRzZ3lWEsxH7CsQHr4CZirrGmuPS8ZkRO0=", + "subType": "00" + } + }, + "nested.encrypted": { + "$binary": { + "base64": "SWO8WEoZ2r2Kx/muQKb7+COizy85nIIUFiHh4K9kcvA=", + "subType": "00" + } + }, + "encrypted": { + "$binary": { + "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=", + "subType": "00" + } + } } - } +} diff --git a/test/data/dollardb/omitted/cmd-to-mongocryptd.json b/test/data/dollardb/omitted/cmd-to-mongocryptd.json index 136260b58..c874759f8 100644 --- a/test/data/dollardb/omitted/cmd-to-mongocryptd.json +++ b/test/data/dollardb/omitted/cmd-to-mongocryptd.json @@ -8,7 +8,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -31,4 +30,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/omitted/collinfo.json b/test/data/dollardb/omitted/collinfo.json index 928ccd123..8b1e866e4 100644 --- a/test/data/dollardb/omitted/collinfo.json +++ b/test/data/dollardb/omitted/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -24,4 +23,4 @@ ] } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/omitted/encrypted-payload.json b/test/data/dollardb/omitted/encrypted-payload.json index 2e8623892..5809af0c3 100644 --- a/test/data/dollardb/omitted/encrypted-payload.json +++ b/test/data/dollardb/omitted/encrypted-payload.json @@ -13,7 +13,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/dollardb/omitted/mongocryptd-reply.json b/test/data/dollardb/omitted/mongocryptd-reply.json index 2c1ffa4a7..966e68f5f 100644 --- a/test/data/dollardb/omitted/mongocryptd-reply.json +++ b/test/data/dollardb/omitted/mongocryptd-reply.json @@ -17,7 +17,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -42,4 +41,4 @@ } }, "hasEncryptedPlaceholders": true -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved/cmd-to-mongocryptd.json b/test/data/dollardb/preserved/cmd-to-mongocryptd.json index 136260b58..c874759f8 100644 --- a/test/data/dollardb/preserved/cmd-to-mongocryptd.json +++ b/test/data/dollardb/preserved/cmd-to-mongocryptd.json @@ -8,7 +8,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -31,4 +30,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved/collinfo.json b/test/data/dollardb/preserved/collinfo.json index 928ccd123..8b1e866e4 100644 --- a/test/data/dollardb/preserved/collinfo.json +++ b/test/data/dollardb/preserved/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -24,4 +23,4 @@ ] } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved/encrypted-payload.json b/test/data/dollardb/preserved/encrypted-payload.json index 4ad0a3ca0..e91d5f859 100644 --- a/test/data/dollardb/preserved/encrypted-payload.json +++ b/test/data/dollardb/preserved/encrypted-payload.json @@ -13,7 +13,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/dollardb/preserved/mongocryptd-reply.json b/test/data/dollardb/preserved/mongocryptd-reply.json index 2c1ffa4a7..966e68f5f 100644 --- a/test/data/dollardb/preserved/mongocryptd-reply.json +++ b/test/data/dollardb/preserved/mongocryptd-reply.json @@ -17,7 +17,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -42,4 +41,4 @@ } }, "hasEncryptedPlaceholders": true -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json b/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json index 89e909418..68d66b758 100644 --- a/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json +++ b/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json @@ -8,10 +8,9 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved_empty/collinfo.json b/test/data/dollardb/preserved_empty/collinfo.json index 145ba39f2..9ba596cb9 100644 --- a/test/data/dollardb/preserved_empty/collinfo.json +++ b/test/data/dollardb/preserved_empty/collinfo.json @@ -2,9 +2,8 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } } -} \ No newline at end of file +} diff --git a/test/data/dollardb/preserved_empty/mongocryptd-reply.json b/test/data/dollardb/preserved_empty/mongocryptd-reply.json index e1bd31ff2..521e74603 100644 --- a/test/data/dollardb/preserved_empty/mongocryptd-reply.json +++ b/test/data/dollardb/preserved_empty/mongocryptd-reply.json @@ -12,7 +12,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } @@ -20,4 +19,4 @@ } }, "hasEncryptedPlaceholders": false -} \ No newline at end of file +} diff --git a/test/data/efc/efc-extraField.json b/test/data/efc/efc-extraField.json index 9fc2edb57..bb12b3667 100644 --- a/test/data/efc/efc-extraField.json +++ b/test/data/efc/efc-extraField.json @@ -1,6 +1,5 @@ { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { diff --git a/test/data/efc/efc-missingKeyId.json b/test/data/efc/efc-missingKeyId.json index 4199c3cdc..71c395a10 100644 --- a/test/data/efc/efc-missingKeyId.json +++ b/test/data/efc/efc-missingKeyId.json @@ -1,6 +1,5 @@ { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { diff --git a/test/data/efc/efc-oneField.json b/test/data/efc/efc-oneField.json index 04b00793f..96fab93a7 100644 --- a/test/data/efc/efc-oneField.json +++ b/test/data/efc/efc-oneField.json @@ -1,6 +1,5 @@ { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { diff --git a/test/data/efc/efc-twoFields.json b/test/data/efc/efc-twoFields.json index 24b11c3d7..8b9ce8211 100644 --- a/test/data/efc/efc-twoFields.json +++ b/test/data/efc/efc-twoFields.json @@ -1,6 +1,5 @@ { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { diff --git a/test/data/encrypted-field-config-map.json b/test/data/encrypted-field-config-map.json index e0dc50671..94738087f 100644 --- a/test/data/encrypted-field-config-map.json +++ b/test/data/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "test.test": { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { @@ -24,7 +23,6 @@ }, "test.test2": { "escCollection": "fle2.basic.esc", - "eccCollection": "fle2.basic.ecc", "ecocCollection": "fle2.basic.ecoc", "fields": [ { @@ -45,4 +43,4 @@ } ] } -} \ No newline at end of file +} diff --git a/test/data/fle2-create/cmd-to-mongocryptd.json b/test/data/fle2-create/cmd-to-mongocryptd.json index 14393813e..99eaa70e8 100644 --- a/test/data/fle2-create/cmd-to-mongocryptd.json +++ b/test/data/fle2-create/cmd-to-mongocryptd.json @@ -5,10 +5,9 @@ "schema": { "db.coll": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } } } -} \ No newline at end of file +} diff --git a/test/data/fle2-create/encrypted-field-config-map.json b/test/data/fle2-create/encrypted-field-config-map.json index 9ef83c507..9f37a1ae5 100644 --- a/test/data/fle2-create/encrypted-field-config-map.json +++ b/test/data/fle2-create/encrypted-field-config-map.json @@ -1,8 +1,7 @@ { "db.coll": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [] } -} \ No newline at end of file +} diff --git a/test/data/fle2-delete/empty/collinfo.json b/test/data/fle2-delete/empty/collinfo.json index 6624b15ab..1fd83f5ac 100644 --- a/test/data/fle2-delete/empty/collinfo.json +++ b/test/data/fle2-delete/empty/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/fle2-delete/empty/encrypted-field-config-map.json b/test/data/fle2-delete/empty/encrypted-field-config-map.json index 1ced660be..3f9e41ee2 100644 --- a/test/data/fle2-delete/empty/encrypted-field-config-map.json +++ b/test/data/fle2-delete/empty/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/fle2-delete/empty/encrypted-payload-v2.json b/test/data/fle2-delete/empty/encrypted-payload-v2.json index 6e60e9a5b..7e177ad90 100644 --- a/test/data/fle2-delete/empty/encrypted-payload-v2.json +++ b/test/data/fle2-delete/empty/encrypted-payload-v2.json @@ -1,60 +1,58 @@ { - "delete": "test", - "deletes": [ - { - "q": {}, - "limit": 1 - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - } - } - } - \ No newline at end of file + "delete": "test", + "deletes": [ + { + "q": {}, + "limit": 1 + } + ], + "encryptionInformation": { + "type": 1, + "schema": { + "db.test": { + "escCollection": "esc", + "ecocCollection": "ecoc", + "fields": [ + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEw==", + "subType": "04" + } + }, + "path": "nested.encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQFA==", + "subType": "04" + } + }, + "path": "nested.notindexed", + "bsonType": "string" + } + ] + } + } + } +} diff --git a/test/data/fle2-delete/empty/mongocryptd-reply.json b/test/data/fle2-delete/empty/mongocryptd-reply.json index 4a803d657..d355d8b48 100644 --- a/test/data/fle2-delete/empty/mongocryptd-reply.json +++ b/test/data/fle2-delete/empty/mongocryptd-reply.json @@ -1,66 +1,65 @@ { - "ok": { - "$numberInt": "1" - }, - "result": { - "delete": "test", - "deletes": [ - { - "q": {}, - "limit": 1 - } - ], - "$db": "test" - }, - "hasEncryptedPlaceholders": false, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - } - } + "ok": { + "$numberInt": "1" + }, + "result": { + "delete": "test", + "deletes": [ + { + "q": {}, + "limit": 1 + } + ], + "$db": "test" + }, + "hasEncryptedPlaceholders": false, + "encryptionInformation": { + "type": 1, + "schema": { + "db.test": { + "escCollection": "esc", + "ecocCollection": "ecoc", + "fields": [ + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEw==", + "subType": "04" + } + }, + "path": "nested.encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQFA==", + "subType": "04" + } + }, + "path": "nested.notindexed", + "bsonType": "string" + } + ] + } + } + } } diff --git a/test/data/fle2-delete/success/collinfo.json b/test/data/fle2-delete/success/collinfo.json index 6624b15ab..1fd83f5ac 100644 --- a/test/data/fle2-delete/success/collinfo.json +++ b/test/data/fle2-delete/success/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/fle2-delete/success/encrypted-field-config-map.json b/test/data/fle2-delete/success/encrypted-field-config-map.json index 1ced660be..3f9e41ee2 100644 --- a/test/data/fle2-delete/success/encrypted-field-config-map.json +++ b/test/data/fle2-delete/success/encrypted-field-config-map.json @@ -1,7 +1,6 @@ { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/fle2-delete/success/encrypted-payload-v2.json b/test/data/fle2-delete/success/encrypted-payload-v2.json index 620bf2ada..c30997477 100644 --- a/test/data/fle2-delete/success/encrypted-payload-v2.json +++ b/test/data/fle2-delete/success/encrypted-payload-v2.json @@ -1,67 +1,65 @@ { - "delete": "test", - "deletes": [ - { - "q": { - "value": { - "$binary": { - "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", - "subType": "06" - } - } - }, - "limit": 1 - } - ], - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - } - } - } - \ No newline at end of file + "delete": "test", + "deletes": [ + { + "q": { + "value": { + "$binary": { + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", + "subType": "06" + } + } + }, + "limit": 1 + } + ], + "encryptionInformation": { + "type": 1, + "schema": { + "db.test": { + "escCollection": "esc", + "ecocCollection": "ecoc", + "fields": [ + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEw==", + "subType": "04" + } + }, + "path": "nested.encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQFA==", + "subType": "04" + } + }, + "path": "nested.notindexed", + "bsonType": "string" + } + ] + } + } + } +} diff --git a/test/data/fle2-delete/success/mongocryptd-reply.json b/test/data/fle2-delete/success/mongocryptd-reply.json index 2dbb7960e..fde73ac47 100644 --- a/test/data/fle2-delete/success/mongocryptd-reply.json +++ b/test/data/fle2-delete/success/mongocryptd-reply.json @@ -1,72 +1,71 @@ { - "ok": { - "$numberInt": "1" - }, - "result": { - "delete": "test", - "deletes": [ - { - "q": { - "value": { - "$binary": { - "base64": "A1gAAAAQdAACAAAAEGEAAgAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASEHYAQOIBABJjbQAAAAAAAAAAAAA=", - "subType": "06" - } - } - }, - "limit": 1 - } - ] - }, - "hasEncryptedPlaceholders": true, - "encryptionInformation": { - "type": 1, - "schema": { - "db.test": { - "escCollection": "esc", - "eccCollection": "ecc", - "ecocCollection": "ecoc", - "fields": [ - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", - "subType": "04" - } - }, - "path": "encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEw==", - "subType": "04" - } - }, - "path": "nested.encrypted", - "bsonType": "string", - "queries": { - "queryType": "equality", - "contention": 0 - } - }, - { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQFA==", - "subType": "04" - } - }, - "path": "nested.notindexed", - "bsonType": "string" - } - ] - } - } - } + "ok": { + "$numberInt": "1" + }, + "result": { + "delete": "test", + "deletes": [ + { + "q": { + "value": { + "$binary": { + "base64": "A1gAAAAQdAACAAAAEGEAAgAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASEHYAQOIBABJjbQAAAAAAAAAAAAA=", + "subType": "06" + } + } + }, + "limit": 1 + } + ] + }, + "hasEncryptedPlaceholders": true, + "encryptionInformation": { + "type": 1, + "schema": { + "db.test": { + "escCollection": "esc", + "ecocCollection": "ecoc", + "fields": [ + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEw==", + "subType": "04" + } + }, + "path": "nested.encrypted", + "bsonType": "string", + "queries": { + "queryType": "equality", + "contention": 0 + } + }, + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQFA==", + "subType": "04" + } + }, + "path": "nested.notindexed", + "bsonType": "string" + } + ] + } + } + } } diff --git a/test/data/fle2-explain/with-csfle/collinfo.json b/test/data/fle2-explain/with-csfle/collinfo.json index 539abcfeb..be3021cf6 100644 --- a/test/data/fle2-explain/with-csfle/collinfo.json +++ b/test/data/fle2-explain/with-csfle/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "enxcol_.test.esc", - "eccCollection": "enxcol_.test.ecc", "ecocCollection": "enxcol_.test.ecoc", "fields": [ { diff --git a/test/data/fle2-explain/with-csfle/encrypted-payload.json b/test/data/fle2-explain/with-csfle/encrypted-payload.json index db9a2b067..b9c754476 100644 --- a/test/data/fle2-explain/with-csfle/encrypted-payload.json +++ b/test/data/fle2-explain/with-csfle/encrypted-payload.json @@ -18,7 +18,6 @@ "schema": { "db.test": { "escCollection": "enxcol_.test.esc", - "eccCollection": "enxcol_.test.ecc", "ecocCollection": "enxcol_.test.ecoc", "fields": [ { diff --git a/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json b/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json index 5544031f8..d5ea3094a 100644 --- a/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json +++ b/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json @@ -10,7 +10,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -33,4 +32,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/data/fle2-explain/with-mongocryptd/collinfo.json b/test/data/fle2-explain/with-mongocryptd/collinfo.json index 928ccd123..8b1e866e4 100644 --- a/test/data/fle2-explain/with-mongocryptd/collinfo.json +++ b/test/data/fle2-explain/with-mongocryptd/collinfo.json @@ -2,7 +2,6 @@ "options": { "encryptedFields": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -24,4 +23,4 @@ ] } } -} \ No newline at end of file +} diff --git a/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json b/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json index 3ef787caa..6193d870d 100644 --- a/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json +++ b/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json @@ -14,7 +14,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { diff --git a/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json b/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json index bc58f2f2f..59dcb56cd 100644 --- a/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json +++ b/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json @@ -18,7 +18,6 @@ "schema": { "db.test": { "escCollection": "esc", - "eccCollection": "ecc", "ecocCollection": "ecoc", "fields": [ { @@ -44,4 +43,4 @@ } }, "hasEncryptedPlaceholders": true -} \ No newline at end of file +} diff --git a/test/data/fle2-find-explicit/reply-from-mongocryptd.json b/test/data/fle2-find-explicit/reply-from-mongocryptd.json index 0907400c6..52ce9cc1d 100644 --- a/test/data/fle2-find-explicit/reply-from-mongocryptd.json +++ b/test/data/fle2-find-explicit/reply-from-mongocryptd.json @@ -17,7 +17,6 @@ "db.coll": { "fields": [], "escCollection": "enxcol_.coll.esc", - "eccCollection": "enxcol_.coll.ecc", "ecocCollection": "enxcol_.coll.ecoc" } } diff --git a/test/data/fle2-insert-range/int32/encrypted-field-map.json b/test/data/fle2-insert-range/int32/encrypted-field-map.json index 63ef3a6c4..336446af0 100644 --- a/test/data/fle2-insert-range/int32/encrypted-field-map.json +++ b/test/data/fle2-insert-range/int32/encrypted-field-map.json @@ -1,7 +1,6 @@ { "db.test": { "escCollection": "fle2.test.esc", - "eccCollection": "fle2.test.ecc", "ecocCollection": "fle2.test.ecoc", "fields": [ { diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index 958e1be41..d3d8306f0 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -2793,17 +2793,14 @@ static void _test_encrypt_applies_default_state_collections(_mongocrypt_tester_t crypt); ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map( crypt, - TEST_BSON("{'db.coll': { 'fields': [], 'escCollection': 'esc', " - "'eccCollection': 'ecc', 'ecocCollection': 'ecoc'}}")), + TEST_BSON("{'db.coll': { 'fields': [], 'escCollection': 'esc', 'ecocCollection': 'ecoc'}}")), crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_BSON("{'find': 'coll'}")), ctx); ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); { - const char *expect_schema = "{'fields': [], 'escCollection': 'esc', " - "'eccCollection': 'ecc', " - "'ecocCollection': 'ecoc' }"; + const char *expect_schema = "{'fields': [], 'escCollection': 'esc', 'ecocCollection': 'ecoc' }"; mongocrypt_binary_t *cmd_to_mongocryptd; cmd_to_mongocryptd = mongocrypt_binary_new(); @@ -2825,19 +2822,17 @@ static void _test_encrypt_applies_default_state_collections(_mongocrypt_tester_t mongocrypt_setopt_kms_providers(crypt, TEST_BSON("{'aws': {'accessKeyId': 'foo', 'secretAccessKey': 'bar'}}")), crypt); - ASSERT_OK( - mongocrypt_setopt_encrypted_field_config_map(crypt, - TEST_BSON("{'fields': [], 'db.coll': {'escCollection': " - "'esc', 'eccCollection': 'ecc', 'fields': []}}")), - crypt); + ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, + TEST_BSON("{'fields': [], 'db.coll': {'escCollection': " + "'esc', 'fields': []}}")), + crypt); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); ctx = mongocrypt_ctx_new(crypt); ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_BSON("{'find': 'coll'}")), ctx); ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_MARKINGS); { - const char *expect_schema = "{'escCollection': 'esc', " - "'eccCollection': 'ecc', 'fields': [], " - "'ecocCollection': 'enxcol_.coll.ecoc' }"; + const char *expect_schema = + "{'escCollection': 'esc', 'fields': [], 'ecocCollection': 'enxcol_.coll.ecoc' }"; mongocrypt_binary_t *cmd_to_mongocryptd; cmd_to_mongocryptd = mongocrypt_binary_new(); From b425b32ab6efa527ce9f19d4d20789ee01ba00dd Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:36:40 -0500 Subject: [PATCH 09/15] ignore `eccCollection` The `eccCollection` is unused in QEv2 --- src/mongocrypt-ctx-encrypt.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/mongocrypt-ctx-encrypt.c b/src/mongocrypt-ctx-encrypt.c index a8e674029..e71d66be0 100644 --- a/src/mongocrypt-ctx-encrypt.c +++ b/src/mongocrypt-ctx-encrypt.c @@ -27,8 +27,7 @@ #include "mongocrypt.h" /* _fle2_append_encryptedFieldConfig copies encryptedFieldConfig and applies - * default state collection names for escCollection, eccCollection, and - * ecocCollection if required. */ + * default state collection names for escCollection, and ecocCollection if required. */ static bool _fle2_append_encryptedFieldConfig(const mongocrypt_ctx_t *ctx, bson_t *dst, bson_t *encryptedFieldConfig, @@ -36,7 +35,6 @@ static bool _fle2_append_encryptedFieldConfig(const mongocrypt_ctx_t *ctx, mongocrypt_status_t *status) { bson_iter_t iter; bool has_escCollection = false; - bool has_eccCollection = false; bool has_ecocCollection = false; BSON_ASSERT_PARAM(dst); @@ -52,9 +50,6 @@ static bool _fle2_append_encryptedFieldConfig(const mongocrypt_ctx_t *ctx, if (strcmp(bson_iter_key(&iter), "escCollection") == 0) { has_escCollection = true; } - if (strcmp(bson_iter_key(&iter), "eccCollection") == 0) { - has_eccCollection = true; - } if (strcmp(bson_iter_key(&iter), "ecocCollection") == 0) { has_ecocCollection = true; } @@ -73,15 +68,6 @@ static bool _fle2_append_encryptedFieldConfig(const mongocrypt_ctx_t *ctx, } bson_free(default_escCollection); } - if (!has_eccCollection && !ctx->crypt->opts.use_fle2_v2) { - char *default_eccCollection = bson_strdup_printf("enxcol_.%s.ecc", target_coll); - if (!BSON_APPEND_UTF8(dst, "eccCollection", default_eccCollection)) { - CLIENT_ERR("unable to append eccCollection"); - bson_free(default_eccCollection); - return false; - } - bson_free(default_eccCollection); - } if (!has_ecocCollection) { char *default_ecocCollection = bson_strdup_printf("enxcol_.%s.ecoc", target_coll); if (!BSON_APPEND_UTF8(dst, "ecocCollection", default_ecocCollection)) { From 7c66c1578a37238040c6a7a1cdaec787d57175da Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:39:08 -0500 Subject: [PATCH 10/15] remove deleteTokens --- src/mongocrypt-ctx-encrypt.c | 234 +---------------------------------- 1 file changed, 5 insertions(+), 229 deletions(-) diff --git a/src/mongocrypt-ctx-encrypt.c b/src/mongocrypt-ctx-encrypt.c index e71d66be0..ac48d2c7c 100644 --- a/src/mongocrypt-ctx-encrypt.c +++ b/src/mongocrypt-ctx-encrypt.c @@ -84,7 +84,6 @@ static bool _fle2_append_encryptionInformation(const mongocrypt_ctx_t *ctx, bson_t *dst, const char *target_ns, bson_t *encryptedFieldConfig, - bson_t *deleteTokens, const char *target_coll, mongocrypt_status_t *status) { bson_t encryption_information_bson; @@ -94,7 +93,6 @@ static bool _fle2_append_encryptionInformation(const mongocrypt_ctx_t *ctx, BSON_ASSERT_PARAM(dst); BSON_ASSERT_PARAM(target_ns); BSON_ASSERT_PARAM(encryptedFieldConfig); - /* deleteTokens may be NULL */ BSON_ASSERT_PARAM(target_coll); if (!BSON_APPEND_DOCUMENT_BEGIN(dst, "encryptionInformation", &encryption_information_bson)) { @@ -134,24 +132,6 @@ static bool _fle2_append_encryptionInformation(const mongocrypt_ctx_t *ctx, return false; } - if (deleteTokens != NULL) { - bson_t delete_tokens_bson; - if (!BSON_APPEND_DOCUMENT_BEGIN(&encryption_information_bson, "deleteTokens", &delete_tokens_bson)) { - CLIENT_ERR("unable to begin appending 'deleteTokens' to " - "'encryptionInformation'"); - return false; - } - if (!BSON_APPEND_DOCUMENT(&delete_tokens_bson, target_ns, deleteTokens)) { - CLIENT_ERR("unable to append '%s' to 'deleteTokens'", target_ns); - return false; - } - if (!bson_append_document_end(&encryption_information_bson, &delete_tokens_bson)) { - CLIENT_ERR("unable to end appending 'deleteTokens' to " - "'encryptionInformation'"); - return false; - } - } - if (!bson_append_document_end(dst, &encryption_information_bson)) { CLIENT_ERR("unable to end appending 'encryptionInformation'"); return false; @@ -169,8 +149,6 @@ typedef enum { MC_TO_CSFLE, MC_TO_MONGOCRYPTD, MC_TO_MONGOD } mc_cmd_target_t; * @param target_ns The . namespace for the command. * @param encryptedFieldConfig The "encryptedFields" document for the * collection. - * @param deleteTokens Delete tokens to append to "encryptionInformation". May - * be NULL. * @param target_coll The collection name. * @param cmd_target The intended destination of the command. csfle, * mongocryptd, and mongod have different requirements for the location of @@ -184,7 +162,6 @@ static bool _fle2_insert_encryptionInformation(const mongocrypt_ctx_t *ctx, bson_t *cmd /* in and out */, const char *target_ns, bson_t *encryptedFieldConfig, - bson_t *deleteTokens, const char *target_coll, mc_cmd_target_t cmd_target, mongocrypt_status_t *status) { @@ -197,7 +174,6 @@ static bool _fle2_insert_encryptionInformation(const mongocrypt_ctx_t *ctx, BSON_ASSERT_PARAM(cmd); BSON_ASSERT_PARAM(target_ns); BSON_ASSERT_PARAM(encryptedFieldConfig); - /* deleteTokens may be NULL */ BSON_ASSERT_PARAM(target_coll); // For `bulkWrite`, append `encryptionInformation` inside the `nsInfo.0` document. @@ -251,7 +227,6 @@ static bool _fle2_insert_encryptionInformation(const mongocrypt_ctx_t *ctx, &nsInfo_array_0, target_ns, encryptedFieldConfig, - deleteTokens, target_coll, status)) { goto fail; @@ -278,13 +253,7 @@ static bool _fle2_insert_encryptionInformation(const mongocrypt_ctx_t *ctx, // All commands except "explain" and "bulkWrite" expect "encryptionInformation" // at top-level. "explain" sent to mongocryptd expects // "encryptionInformation" at top-level. - if (!_fle2_append_encryptionInformation(ctx, - cmd, - target_ns, - encryptedFieldConfig, - deleteTokens, - target_coll, - status)) { + if (!_fle2_append_encryptionInformation(ctx, cmd, target_ns, encryptedFieldConfig, target_coll, status)) { goto fail; } bson_destroy(&out); @@ -321,13 +290,7 @@ static bool _fle2_insert_encryptionInformation(const mongocrypt_ctx_t *ctx, bson_copy_to(&tmp, &explain); } - if (!_fle2_append_encryptionInformation(ctx, - &explain, - target_ns, - encryptedFieldConfig, - deleteTokens, - target_coll, - status)) { + if (!_fle2_append_encryptionInformation(ctx, &explain, target_ns, encryptedFieldConfig, target_coll, status)) { goto fail; } @@ -512,29 +475,6 @@ static const char *get_command_name(_mongocrypt_buffer_t *cmd, mongocrypt_status return cmd_name; } -static bool command_needs_deleteTokens(mongocrypt_ctx_t *ctx, const char *command_name) { - BSON_ASSERT_PARAM(ctx); - BSON_ASSERT_PARAM(command_name); - BSON_ASSERT(ctx->kb.crypt); - - if (ctx->crypt->opts.use_fle2_v2) { - return false; - } - - const char *cmds_needing_deleteTokens[] = {"delete", "update", "findAndModify"}; - - BSON_ASSERT_PARAM(command_name); - - size_t i; - for (i = 0; i < sizeof(cmds_needing_deleteTokens) / sizeof(cmds_needing_deleteTokens[0]); i++) { - if (0 == strcmp(cmds_needing_deleteTokens[i], command_name)) { - return true; - } - } - - return false; -} - /* context_uses_fle2 returns true if the context uses FLE 2 behavior. * If a collection has an encryptedFields document, it uses FLE 2. */ @@ -546,39 +486,6 @@ static bool context_uses_fle2(mongocrypt_ctx_t *ctx) { return !_mongocrypt_buffer_empty(&ectx->encrypted_field_config); } -/* _fle2_collect_keys_for_deleteTokens requests keys required to produce - * deleteTokens. deleteTokens is only applicable to FLE 2. */ -static bool _fle2_collect_keys_for_deleteTokens(mongocrypt_ctx_t *ctx) { - _mongocrypt_ctx_encrypt_t *ectx = (_mongocrypt_ctx_encrypt_t *)ctx; - - BSON_ASSERT_PARAM(ctx); - - /* deleteTokens are only appended for FLE 2. */ - if (!context_uses_fle2(ctx)) { - return true; - } - - const char *cmd_name = ectx->cmd_name; - - if (!command_needs_deleteTokens(ctx, cmd_name)) { - /* Command does not require deleteTokens. */ - return true; - } - - mc_EncryptedField_t *field; - - for (field = ectx->efc.fields; field != NULL; field = field->next) { - if (field->supported_queries) { - if (!_mongocrypt_key_broker_request_id(&ctx->kb, &field->keyId)) { - _mongocrypt_key_broker_status(&ctx->kb, ctx->status); - _mongocrypt_ctx_fail(ctx); - return false; - } - } - } - return true; -} - /* _fle2_collect_keys_for_compaction requests keys required to produce * compactionTokens or cleanupTokens. * compactionTokens and cleanupTokens are only applicable to FLE 2. */ @@ -662,16 +569,12 @@ static bool _mongo_done_collinfo(mongocrypt_ctx_t *ctx) { bson_destroy(&empty_collinfo); } - if (!_fle2_collect_keys_for_deleteTokens(ctx)) { - return false; - } - if (!_fle2_collect_keys_for_compaction(ctx)) { return false; } if (ectx->bypass_query_analysis) { - /* Keys may have been requested for deleteTokens or compactionTokens. + /* Keys may have been requested for compactionTokens. * Finish key requests. */ _mongocrypt_key_broker_requests_done(&ctx->kb); return _mongocrypt_ctx_state_from_key_broker(ctx); @@ -725,7 +628,6 @@ static bool _fle2_mongo_op_markings(mongocrypt_ctx_t *ctx, bson_t *out) { out, ectx->target_ns, &encrypted_field_config_bson, - NULL /* deleteTokens */, ectx->target_coll, ctx->crypt->csfle.okay ? MC_TO_CSFLE : MC_TO_MONGOCRYPTD, ctx->status)) { @@ -1216,116 +1118,6 @@ _replace_marking_with_ciphertext(void *ctx, _mongocrypt_buffer_t *in, bson_value return ret; } -/* generate_delete_tokens generates the 'deleteTokens' document to be appended - * to 'encryptionInformation'. */ -static bson_t *generate_delete_tokens(_mongocrypt_crypto_t *crypto, - _mongocrypt_key_broker_t *kb, - mc_EncryptedFieldConfig_t *efc, - mongocrypt_status_t *status) { - bool ret = false; - bson_t *out = bson_new(); - mc_EncryptedField_t *ef; - - BSON_ASSERT_PARAM(crypto); - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(efc); - - for (ef = efc->fields; ef != NULL; ef = ef->next) { - _mongocrypt_buffer_t IndexKey = {0}; - _mongocrypt_buffer_t TokenKey = {0}; - mc_ServerDataEncryptionLevel1Token_t *sdel1t = NULL; - mc_CollectionsLevel1Token_t *cl1t = NULL; - mc_ECOCToken_t *ecoc = NULL; - bool loop_ok = false; - /* deleteTokens are only necessary for indexed fields. */ - if (!ef->supported_queries) { - goto loop_continue; - } - - if (!_mongocrypt_key_broker_decrypted_key_by_id(kb, &ef->keyId, &IndexKey)) { - _mongocrypt_key_broker_status(kb, status); - goto loop_fail; - } - - /* Get the TokenKey from the last 32 bytes of IndexKey */ - if (IndexKey.len < MONGOCRYPT_TOKEN_KEY_LEN) { - CLIENT_ERR("IndexKey too short"); - goto loop_fail; - } - if (!_mongocrypt_buffer_from_subrange(&TokenKey, - &IndexKey, - IndexKey.len - MONGOCRYPT_TOKEN_KEY_LEN, - MONGOCRYPT_TOKEN_KEY_LEN)) { - CLIENT_ERR("generate_delete_tokens unable to parse TokenKey from IndexKey"); - goto loop_fail; - } - - sdel1t = mc_ServerDataEncryptionLevel1Token_new(crypto, &TokenKey, status); - if (!sdel1t) { - goto loop_fail; - } - - cl1t = mc_CollectionsLevel1Token_new(crypto, &TokenKey, status); - if (!cl1t) { - goto loop_fail; - } - - ecoc = mc_ECOCToken_new(crypto, cl1t, status); - if (!ecoc) { - goto loop_fail; - } - - bson_t field_bson; - if (!BSON_APPEND_DOCUMENT_BEGIN(out, ef->path, &field_bson)) { - CLIENT_ERR("failed to begin document for 'deleteTokens.%s'", ef->path); - goto loop_fail; - } - - if (!BSON_APPEND_BINARY(&field_bson, - "e", - BSON_SUBTYPE_BINARY, - mc_ServerDataEncryptionLevel1Token_get(sdel1t)->data, - mc_ServerDataEncryptionLevel1Token_get(sdel1t)->len)) { - CLIENT_ERR("failed to append ServerDataEncryptionLevel1Token for %s", ef->path); - goto loop_fail; - } - - if (!BSON_APPEND_BINARY(&field_bson, - "o", - BSON_SUBTYPE_BINARY, - mc_ECOCToken_get(ecoc)->data, - mc_ECOCToken_get(ecoc)->len)) { - CLIENT_ERR("failed to append ECOCToken for %s", ef->path); - goto loop_fail; - } - - if (!bson_append_document_end(out, &field_bson)) { - CLIENT_ERR("failed to end document for 'deleteTokens.%s'", ef->path); - goto loop_fail; - } - - loop_continue: - loop_ok = true; - loop_fail: - _mongocrypt_buffer_cleanup(&IndexKey); - _mongocrypt_buffer_cleanup(&TokenKey); - mc_ServerDataEncryptionLevel1Token_destroy(sdel1t); - mc_CollectionsLevel1Token_destroy(cl1t); - mc_ECOCToken_destroy(ecoc); - if (!loop_ok) { - goto fail; - } - } - - ret = true; -fail: - if (!ret) { - bson_destroy(out); - return NULL; - } - return out; -} - static bool _check_for_payload_requiring_encryptionInformation(void *ctx, _mongocrypt_buffer_t *in, mongocrypt_status_t *status) { bool *out = (bool *)ctx; @@ -1719,15 +1511,6 @@ static bool _fle2_finalize(mongocrypt_ctx_t *ctx, mongocrypt_binary_t *out) { return _mongocrypt_ctx_fail(ctx); } - bson_t *deleteTokens = NULL; - if (command_needs_deleteTokens(ctx, command_name)) { - deleteTokens = generate_delete_tokens(ctx->crypt->crypto, &ctx->kb, &ectx->efc, ctx->status); - if (!deleteTokens) { - bson_destroy(&converted); - return _mongocrypt_ctx_fail(ctx); - } - } - moe_result result = must_omit_encryptionInformation(command_name, &converted, ctx->crypt->opts.use_range_v2, @@ -1735,7 +1518,6 @@ static bool _fle2_finalize(mongocrypt_ctx_t *ctx, mongocrypt_binary_t *out) { ctx->status); if (!result.ok) { bson_destroy(&converted); - bson_destroy(deleteTokens); return _mongocrypt_ctx_fail(ctx); } @@ -1746,16 +1528,13 @@ static bool _fle2_finalize(mongocrypt_ctx_t *ctx, mongocrypt_binary_t *out) { &converted, ectx->target_ns, &encrypted_field_config_bson, - deleteTokens, ectx->target_coll, MC_TO_MONGOD, ctx->status)) { bson_destroy(&converted); - bson_destroy(deleteTokens); return _mongocrypt_ctx_fail(ctx); } } - bson_destroy(deleteTokens); if (!_fle2_append_compactionTokens(ctx->crypt, &ctx->kb, &ectx->efc, command_name, &converted, ctx->status)) { bson_destroy(&converted); @@ -3041,10 +2820,7 @@ static bool mongocrypt_ctx_encrypt_ismaster_done(mongocrypt_ctx_t *ctx) { } /* If an encrypted_field_config was set, check if keys are required for - * delete tokens. */ - if (!_fle2_collect_keys_for_deleteTokens(ctx)) { - return false; - } + * compactionTokens. */ if (!_fle2_collect_keys_for_compaction(ctx)) { return false; @@ -3052,7 +2828,7 @@ static bool mongocrypt_ctx_encrypt_ismaster_done(mongocrypt_ctx_t *ctx) { if (ctx->state == MONGOCRYPT_CTX_NEED_MONGO_MARKINGS) { if (ectx->bypass_query_analysis) { - /* Keys may have been requested for deleteTokens or compactionTokens. + /* Keys may have been requested for compactionTokens. * Finish key requests. */ _mongocrypt_key_broker_requests_done(&ctx->kb); From 76e29c750f41114a3b882a484248c77511e70971 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:43:21 -0500 Subject: [PATCH 11/15] remove QEv1 code in mongocrypt-marking.c --- src/mongocrypt-marking.c | 575 ++------------------------------------- 1 file changed, 19 insertions(+), 556 deletions(-) diff --git a/src/mongocrypt-marking.c b/src/mongocrypt-marking.c index d974b106d..9bc131117 100644 --- a/src/mongocrypt-marking.c +++ b/src/mongocrypt-marking.c @@ -268,7 +268,6 @@ void _mongocrypt_marking_cleanup(_mongocrypt_marking_t *marking) { DERIVE_TOKEN_IMPL(EDC) DERIVE_TOKEN_IMPL(ESC) -DERIVE_TOKEN_IMPL(ECC) #undef DERIVE_TOKEN_IMPL @@ -553,32 +552,18 @@ static bool _mongocrypt_fle2_placeholder_common(_mongocrypt_key_broker_t *kb, goto fail; } - if (kb->crypt->opts.use_fle2_v2) { - /* FLE2v2 */ - ret->serverTokenDerivationLevel1Token = mc_ServerTokenDerivationLevel1Token_new(crypto, &ret->tokenKey, status); - if (!ret->serverTokenDerivationLevel1Token) { - CLIENT_ERR("unable to derive serverTokenDerivationLevel1Token"); - goto fail; - } + ret->serverTokenDerivationLevel1Token = mc_ServerTokenDerivationLevel1Token_new(crypto, &ret->tokenKey, status); + if (!ret->serverTokenDerivationLevel1Token) { + CLIENT_ERR("unable to derive serverTokenDerivationLevel1Token"); + goto fail; + } - if (!_fle2_derive_serverDerivedFromDataToken(crypto, - &ret->serverDerivedFromDataToken, - ret->serverTokenDerivationLevel1Token, - value, - status)) { - goto fail; - } - } else { - /* FLE2v1 */ - if (!_fle2_derive_ECC_token(crypto, - &ret->eccDerivedToken, - ret->collectionsLevel1Token, - value, - useContentionFactor, - contentionFactor, - status)) { - goto fail; - } + if (!_fle2_derive_serverDerivedFromDataToken(crypto, + &ret->serverDerivedFromDataToken, + ret->serverTokenDerivationLevel1Token, + value, + status)) { + goto fail; } _mongocrypt_buffer_cleanup(&indexKey); @@ -590,156 +575,6 @@ static bool _mongocrypt_fle2_placeholder_common(_mongocrypt_key_broker_t *kb, return false; } -// Shared implementation for insert/update and insert/update ForRange (v1) -static bool _mongocrypt_fle2_placeholder_to_insert_update_common_v1(_mongocrypt_key_broker_t *kb, - mc_FLE2InsertUpdatePayload_t *out, - int64_t *contentionFactor, - _FLE2EncryptedPayloadCommon_t *common, - const mc_FLE2EncryptionPlaceholder_t *placeholder, - bson_iter_t *value_iter, - mongocrypt_status_t *status) { - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(out); - BSON_ASSERT_PARAM(common); - BSON_ASSERT_PARAM(placeholder); - BSON_ASSERT_PARAM(value_iter); - BSON_ASSERT(kb->crypt); - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == false); - BSON_ASSERT(kb->crypt->opts.use_range_v2 == false); - BSON_ASSERT(placeholder->type == MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT); - - _mongocrypt_crypto_t *crypto = kb->crypt->crypto; - _mongocrypt_buffer_t value = {0}; - bool res = false; - - *contentionFactor = 0; - if (placeholder->maxContentionFactor > 0) { - /* Choose a random contentionFactor in the inclusive range [0, - * placeholder->maxContentionFactor] */ - if (!_mongocrypt_random_int64(crypto, placeholder->maxContentionFactor + 1, contentionFactor, status)) { - goto fail; - } - } - - _mongocrypt_buffer_from_iter(&value, value_iter); - if (!_mongocrypt_fle2_placeholder_common(kb, - common, - &placeholder->index_key_id, - &value, - true, /* derive tokens using contentionFactor */ - *contentionFactor, - status)) { - goto fail; - } - - // d := EDCDerivedToken - _mongocrypt_buffer_steal(&out->edcDerivedToken, &common->edcDerivedToken); - // s := ESCDerivedToken - _mongocrypt_buffer_steal(&out->escDerivedToken, &common->escDerivedToken); - // c := ECCDerivedToken - _mongocrypt_buffer_steal(&out->eccDerivedToken, &common->eccDerivedToken); - - // p := EncryptCTR(ECOCToken, ESCDerivedFromDataTokenAndContentionFactor || - // ECCDerivedFromDataTokenAndContentionFactor) - if (!_fle2_derive_encrypted_token(crypto, - &out->encryptedTokens, - false, // Can't use range V2 with FLE V1 - common->collectionsLevel1Token, - &out->escDerivedToken, - &out->eccDerivedToken, - (mc_optional_bool_t){0}, // Unset is_leaf as it's not used in V1 - status)) { - goto fail; - } - - _mongocrypt_buffer_copy_to(&placeholder->index_key_id, - &out->indexKeyId); // u - out->valueType = bson_iter_type(value_iter); // t - - // v := UserKeyId + EncryptCTRAEAD(UserKey, value) - { - _mongocrypt_buffer_t ciphertext = {0}; - if (!_fle2_placeholder_aes_aead_encrypt(kb, - _mcFLE2AEADAlgorithm(), - &ciphertext, - &placeholder->user_key_id, - &value, - status)) { - goto fail; - } - const _mongocrypt_buffer_t v[2] = {placeholder->user_key_id, ciphertext}; - const bool ok = _mongocrypt_buffer_concat(&out->value, v, 2); - _mongocrypt_buffer_cleanup(&ciphertext); - if (!ok) { - goto fail; - } - } - - // e := ServerDataEncryptionLevel1Token - _mongocrypt_buffer_copy_to(mc_ServerDataEncryptionLevel1Token_get(common->serverDataEncryptionLevel1Token), - &out->serverEncryptionToken); - - res = true; -fail: - _mongocrypt_buffer_cleanup(&value); - return res; -} - -/** - * Payload subtype 4: FLE2InsertUpdatePayload - * - * {d: EDC, s: ESC, c: ECC, - * p: encToken, u: indexKeyId, t: type, - * v: value, e: serverToken} - */ -static bool _mongocrypt_fle2_placeholder_to_insert_update_ciphertext_v1(_mongocrypt_key_broker_t *kb, - _mongocrypt_marking_t *marking, - _mongocrypt_ciphertext_t *ciphertext, - mongocrypt_status_t *status) { - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(marking); - BSON_ASSERT_PARAM(ciphertext); - BSON_ASSERT_PARAM(status); - BSON_ASSERT(kb->crypt); - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == false); - BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); - BSON_ASSERT(marking->fle2.algorithm == MONGOCRYPT_FLE2_ALGORITHM_EQUALITY); - - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; - _FLE2EncryptedPayloadCommon_t common = {{0}}; - mc_FLE2InsertUpdatePayload_t payload; - mc_FLE2InsertUpdatePayload_init(&payload); - bool res = false; - - int64_t contentionFactor = 0; /* ignored */ - if (!_mongocrypt_fle2_placeholder_to_insert_update_common_v1(kb, - &payload, - &contentionFactor, - &common, - placeholder, - &placeholder->v_iter, - status)) { - goto fail; - } - - { - bson_t out; - bson_init(&out); - mc_FLE2InsertUpdatePayload_serialize(&payload, &out); - _mongocrypt_buffer_steal_from_bson(&ciphertext->data, &out); - } - // Do not set ciphertext->original_bson_type and ciphertext->key_id. They are - // not used for FLE2InsertUpdatePayload. - ciphertext->blob_subtype = MC_SUBTYPE_FLE2InsertUpdatePayload; - - res = true; -fail: - mc_FLE2InsertUpdatePayload_cleanup(&payload); - _FLE2EncryptedPayloadCommon_cleanup(&common); - - return res; -} - // Shared implementation for insert/update and insert/update ForRange (v2) static bool _mongocrypt_fle2_placeholder_to_insert_update_common(_mongocrypt_key_broker_t *kb, mc_FLE2InsertUpdatePayloadV2_t *out, @@ -753,7 +588,6 @@ static bool _mongocrypt_fle2_placeholder_to_insert_update_common(_mongocrypt_key BSON_ASSERT_PARAM(placeholder); BSON_ASSERT_PARAM(value_iter); BSON_ASSERT(kb->crypt); - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == true); BSON_ASSERT(placeholder->type == MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT); _mongocrypt_crypto_t *crypto = kb->crypt->crypto; @@ -839,8 +673,6 @@ static bool _mongocrypt_fle2_placeholder_to_insert_update_common(_mongocrypt_key /** * Payload subtype 11: FLE2InsertUpdatePayloadV2 - * Delegates to ..._insert_update_ciphertext_v1 for subtype 4 - * when crypt.opts.use_fle2_v2 == false * * {d: EDC, s: ESC, p: encToken, * u: indexKeyId, t: valueType, v: value, @@ -857,10 +689,6 @@ static bool _mongocrypt_fle2_placeholder_to_insert_update_ciphertext(_mongocrypt BSON_ASSERT(kb->crypt); BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); - if (!kb->crypt->opts.use_fle2_v2) { - return _mongocrypt_fle2_placeholder_to_insert_update_ciphertext_v1(kb, marking, ciphertext, status); - } - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; _FLE2EncryptedPayloadCommon_t common = {{0}}; mc_FLE2InsertUpdatePayloadV2_t payload; @@ -976,143 +804,8 @@ get_edges(mc_FLE2RangeInsertSpec_t *insertSpec, size_t sparsity, mongocrypt_stat return NULL; } -/** - * Payload subtype 4: FLE2InsertUpdatePayload for range updates - * - * {d: EDC, s: ESC, c: ECC, - * p: encToken, u: indexKeyId, t: type, - * v: value, e: serverToken, - * g: [{d: EDC, s: ESC, c: ECC, p: encToken}, - * {d: EDC, s: ESC, c: ECC, p: encToken}, - * ...]} - */ -static bool _mongocrypt_fle2_placeholder_to_insert_update_ciphertextForRange_v1(_mongocrypt_key_broker_t *kb, - _mongocrypt_marking_t *marking, - _mongocrypt_ciphertext_t *ciphertext, - mongocrypt_status_t *status) { - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(marking); - BSON_ASSERT_PARAM(ciphertext); - BSON_ASSERT_PARAM(status); - BSON_ASSERT(kb->crypt); - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == false); - BSON_ASSERT(kb->crypt->opts.use_range_v2 == false); - BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); - BSON_ASSERT(marking->fle2.algorithm == MONGOCRYPT_FLE2_ALGORITHM_RANGE); - - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; - _FLE2EncryptedPayloadCommon_t common = {{0}}; - mc_FLE2InsertUpdatePayload_t payload; - mc_FLE2InsertUpdatePayload_init(&payload); - bool res = false; - mc_edges_t *edges = NULL; - - // Parse the value ("v"), min ("min"), and max ("max") from - // FLE2EncryptionPlaceholder for range insert. - mc_FLE2RangeInsertSpec_t insertSpec; - if (!mc_FLE2RangeInsertSpec_parse(&insertSpec, &placeholder->v_iter, kb->crypt->opts.use_range_v2, status)) { - goto fail; - } - - int64_t contentionFactor = 0; - if (!_mongocrypt_fle2_placeholder_to_insert_update_common_v1(kb, - &payload, - &contentionFactor, - &common, - &marking->fle2, - &insertSpec.v, - status)) { - goto fail; - } - - // g:= array - { - BSON_ASSERT(placeholder->sparsity >= 0 && (uint64_t)placeholder->sparsity <= (uint64_t)SIZE_MAX); - edges = get_edges(&insertSpec, (size_t)placeholder->sparsity, status, kb->crypt->opts.use_range_v2); - if (!edges) { - goto fail; - } - - for (size_t i = 0; i < mc_edges_len(edges); ++i) { - // Create an EdgeTokenSet from each edge. - bool loop_ok = false; - const char *edge = mc_edges_get(edges, i); - _mongocrypt_buffer_t edge_buf = {0}; - _FLE2EncryptedPayloadCommon_t edge_tokens = {{0}}; - _mongocrypt_buffer_t encryptedTokens = {0}; - mc_EdgeTokenSet_t etc = {{0}}; - - if (!_mongocrypt_buffer_from_string(&edge_buf, edge)) { - CLIENT_ERR("failed to copy edge to buffer"); - goto fail_loop; - } - - if (!_mongocrypt_fle2_placeholder_common(kb, - &edge_tokens, - &placeholder->index_key_id, - &edge_buf, - true, /* derive tokens using contentionFactor */ - contentionFactor, - status)) { - goto fail_loop; - } - - // d := EDCDerivedToken - _mongocrypt_buffer_steal(&etc.edcDerivedToken, &edge_tokens.edcDerivedToken); - // s := ESCDerivedToken - _mongocrypt_buffer_steal(&etc.escDerivedToken, &edge_tokens.escDerivedToken); - // c := ECCDerivedToken - _mongocrypt_buffer_steal(&etc.eccDerivedToken, &edge_tokens.eccDerivedToken); - - // p := EncryptCTR(ECOCToken, ESCDerivedFromDataTokenAndContentionFactor || - // ECCDerivedFromDataTokenAndContentionFactor) - if (!_fle2_derive_encrypted_token(kb->crypt->crypto, - &etc.encryptedTokens, - false, // Range V2 is incompatible with FLE V1 - edge_tokens.collectionsLevel1Token, - &etc.escDerivedToken, - &etc.eccDerivedToken, - (mc_optional_bool_t){0}, // Dummy value for isLeaf, unused in FLE V1 - status)) { - goto fail_loop; - } - - _mc_array_append_val(&payload.edgeTokenSetArray, etc); - - loop_ok = true; - fail_loop: - _mongocrypt_buffer_cleanup(&encryptedTokens); - _FLE2EncryptedPayloadCommon_cleanup(&edge_tokens); - _mongocrypt_buffer_cleanup(&edge_buf); - if (!loop_ok) { - goto fail; - } - } - } - - { - bson_t out; - bson_init(&out); - mc_FLE2InsertUpdatePayload_serializeForRange(&payload, &out); - _mongocrypt_buffer_steal_from_bson(&ciphertext->data, &out); - } - // Do not set ciphertext->original_bson_type and ciphertext->key_id. They are - // not used for FLE2InsertUpdatePayload. - ciphertext->blob_subtype = MC_SUBTYPE_FLE2InsertUpdatePayload; - - res = true; -fail: - mc_edges_destroy(edges); - mc_FLE2InsertUpdatePayload_cleanup(&payload); - _FLE2EncryptedPayloadCommon_cleanup(&common); - - return res; -} - /** * Payload subtype 11: FLE2InsertUpdatePayloadV2 for range updates - * Delegates to ..._insert_update_ciphertextForRange_v1 for subtype 4 - * when crypt.opts.use_fle2_v2 == false * * {d: EDC, s: ESC, p: encToken, * u: indexKeyId, t: valueType, v: value, @@ -1133,10 +826,6 @@ static bool _mongocrypt_fle2_placeholder_to_insert_update_ciphertextForRange(_mo BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); const bool use_range_v2 = kb->crypt->opts.use_range_v2; - if (!kb->crypt->opts.use_fle2_v2) { - return _mongocrypt_fle2_placeholder_to_insert_update_ciphertextForRange_v1(kb, marking, ciphertext, status); - } - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; _FLE2EncryptedPayloadCommon_t common = {{0}}; mc_FLE2InsertUpdatePayloadV2_t payload; @@ -1254,78 +943,8 @@ static bool _mongocrypt_fle2_placeholder_to_insert_update_ciphertextForRange(_mo return res; } -/** - * Payload subtype 5: FLE2FindEqualityPayload - * - * {d: EDC, s: ESC, c: ECC, e: serverToken, cm: maxContentionFactor} - */ -static bool _mongocrypt_fle2_placeholder_to_find_ciphertext_v1(_mongocrypt_key_broker_t *kb, - _mongocrypt_marking_t *marking, - _mongocrypt_ciphertext_t *ciphertext, - mongocrypt_status_t *status) { - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(marking); - BSON_ASSERT_PARAM(ciphertext); - - _FLE2EncryptedPayloadCommon_t common = {{0}}; - _mongocrypt_buffer_t value = {0}; - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; - mc_FLE2FindEqualityPayload_t payload; - bool res = false; - - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == false); - BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); - BSON_ASSERT(placeholder->type == MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_FIND); - _mongocrypt_buffer_init(&value); - mc_FLE2FindEqualityPayload_init(&payload); - - _mongocrypt_buffer_from_iter(&value, &placeholder->v_iter); - - if (!_mongocrypt_fle2_placeholder_common(kb, - &common, - &placeholder->index_key_id, - &value, - false, /* derive tokens without contentionFactor */ - placeholder->maxContentionFactor, /* ignored */ - status)) { - goto fail; - } - - // d := EDCDerivedToken - _mongocrypt_buffer_steal(&payload.edcDerivedToken, &common.edcDerivedToken); - // s := ESCDerivedToken - _mongocrypt_buffer_steal(&payload.escDerivedToken, &common.escDerivedToken); - // c := ECCDerivedToken - _mongocrypt_buffer_steal(&payload.eccDerivedToken, &common.eccDerivedToken); - - // e := ServerDataEncryptionLevel1Token - _mongocrypt_buffer_copy_to(mc_ServerDataEncryptionLevel1Token_get(common.serverDataEncryptionLevel1Token), - &payload.serverEncryptionToken); - - payload.maxContentionFactor = placeholder->maxContentionFactor; - - { - bson_t out; - bson_init(&out); - mc_FLE2FindEqualityPayload_serialize(&payload, &out); - _mongocrypt_buffer_steal_from_bson(&ciphertext->data, &out); - } - // Do not set ciphertext->original_bson_type and ciphertext->key_id. They are - // not used for FLE2FindEqualityPayload. - ciphertext->blob_subtype = MC_SUBTYPE_FLE2FindEqualityPayload; - - res = true; -fail: - mc_FLE2FindEqualityPayload_cleanup(&payload); - _mongocrypt_buffer_cleanup(&value); - _FLE2EncryptedPayloadCommon_cleanup(&common); - - return res; -} - /** * Payload subtype 12: FLE2FindEqualityPayloadV2 - * Delegates to ..._find_ciphertext_v1 when crypt->opts.use_fle2_v2 == false. * * {d: EDC, s: ESC, l: serverDerivedFromDataToken, cm: maxContentionFactor} */ @@ -1337,10 +956,6 @@ static bool _mongocrypt_fle2_placeholder_to_find_ciphertext(_mongocrypt_key_brok BSON_ASSERT_PARAM(marking); BSON_ASSERT_PARAM(ciphertext); - if (kb->crypt->opts.use_fle2_v2 == false) { - return _mongocrypt_fle2_placeholder_to_find_ciphertext_v1(kb, marking, ciphertext, status); - } - _FLE2EncryptedPayloadCommon_t common = {{0}}; _mongocrypt_buffer_t value = {0}; mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; @@ -1569,145 +1184,8 @@ mc_mincover_t *mc_get_mincover_from_FLE2RangeFindSpec(mc_FLE2RangeFindSpec_t *fi } } -/** - * Payload subtype 10: FLE2FindRangePayload - * - * {e: serverToken, cm: maxContentionFactor, - * g: [{d: EDC, s: ESC, c: ECC}, ...]} - */ -static bool _mongocrypt_fle2_placeholder_to_find_ciphertextForRange_v1(_mongocrypt_key_broker_t *kb, - _mongocrypt_marking_t *marking, - _mongocrypt_ciphertext_t *ciphertext, - mongocrypt_status_t *status) { - BSON_ASSERT_PARAM(kb); - BSON_ASSERT_PARAM(marking); - BSON_ASSERT_PARAM(ciphertext); - BSON_ASSERT(kb->crypt); - - const bool use_range_v2 = kb->crypt->opts.use_range_v2; - _mongocrypt_crypto_t *crypto = kb->crypt->crypto; - mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; - mc_FLE2FindRangePayload_t payload; - bool res = false; - mc_mincover_t *mincover = NULL; - _mongocrypt_buffer_t tokenKey = {0}; - - BSON_ASSERT(kb->crypt->opts.use_fle2_v2 == false); - BSON_ASSERT(marking->type == MONGOCRYPT_MARKING_FLE2_ENCRYPTION); - BSON_ASSERT(placeholder); - BSON_ASSERT(placeholder->type == MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_FIND); - BSON_ASSERT(placeholder->algorithm == MONGOCRYPT_FLE2_ALGORITHM_RANGE); - mc_FLE2FindRangePayload_init(&payload); - - // Parse the query bounds and index bounds from FLE2EncryptionPlaceholder for - // range find. - mc_FLE2RangeFindSpec_t findSpec; - if (!mc_FLE2RangeFindSpec_parse(&findSpec, &placeholder->v_iter, use_range_v2, status)) { - goto fail; - } - - if (findSpec.edgesInfo.set) { - // cm := Queryable Encryption max contentionFactor - payload.payload.value.maxContentionFactor = placeholder->maxContentionFactor; - - // e := ServerDataEncryptionLevel1Token - { - if (!_get_tokenKey(kb, &placeholder->index_key_id, &tokenKey, status)) { - goto fail; - } - - mc_ServerDataEncryptionLevel1Token_t *serverToken = - mc_ServerDataEncryptionLevel1Token_new(crypto, &tokenKey, status); - if (!serverToken) { - goto fail; - } - _mongocrypt_buffer_copy_to(mc_ServerDataEncryptionLevel1Token_get(serverToken), - &payload.payload.value.serverEncryptionToken); - mc_ServerDataEncryptionLevel1Token_destroy(serverToken); - } - - // g:= array - { - BSON_ASSERT(placeholder->sparsity >= 0 && (uint64_t)placeholder->sparsity <= (uint64_t)SIZE_MAX); - mincover = - mc_get_mincover_from_FLE2RangeFindSpec(&findSpec, (size_t)placeholder->sparsity, status, use_range_v2); - if (!mincover) { - goto fail; - } - - for (size_t i = 0; i < mc_mincover_len(mincover); i++) { - // Create a EdgeFindTokenSet from each edge. - bool loop_ok = false; - const char *edge = mc_mincover_get(mincover, i); - _mongocrypt_buffer_t edge_buf = {0}; - _FLE2EncryptedPayloadCommon_t edge_tokens = {{0}}; - mc_EdgeFindTokenSet_t eftc = {{0}}; - - if (!_mongocrypt_buffer_from_string(&edge_buf, edge)) { - CLIENT_ERR("failed to copy edge to buffer"); - goto fail_loop; - } - - if (!_mongocrypt_fle2_placeholder_common(kb, - &edge_tokens, - &placeholder->index_key_id, - &edge_buf, - false, /* derive tokens using contentionFactor */ - placeholder->maxContentionFactor, /* ignored */ - status)) { - goto fail_loop; - } - - // d := EDCDerivedToken - _mongocrypt_buffer_steal(&eftc.edcDerivedToken, &edge_tokens.edcDerivedToken); - // s := ESCDerivedToken - _mongocrypt_buffer_steal(&eftc.escDerivedToken, &edge_tokens.escDerivedToken); - // c := ECCDerivedToken - _mongocrypt_buffer_steal(&eftc.eccDerivedToken, &edge_tokens.eccDerivedToken); - - _mc_array_append_val(&payload.payload.value.edgeFindTokenSetArray, eftc); - - loop_ok = true; - fail_loop: - _FLE2EncryptedPayloadCommon_cleanup(&edge_tokens); - _mongocrypt_buffer_cleanup(&edge_buf); - if (!loop_ok) { - goto fail; - } - } - } - payload.payload.set = true; - } - - payload.payloadId = findSpec.payloadId; - payload.firstOperator = findSpec.firstOperator; - payload.secondOperator = findSpec.secondOperator; - - // Serialize. - { - bson_t out = BSON_INITIALIZER; - mc_FLE2FindRangePayload_serialize(&payload, &out); - _mongocrypt_buffer_steal_from_bson(&ciphertext->data, &out); - } - _mongocrypt_buffer_steal(&ciphertext->key_id, &placeholder->index_key_id); - - // Do not set ciphertext->original_bson_type and ciphertext->key_id. They are - // not used for FLE2FindRangePayload. - ciphertext->blob_subtype = MC_SUBTYPE_FLE2FindRangePayload; - - res = true; -fail: - mc_mincover_destroy(mincover); - mc_FLE2FindRangePayload_cleanup(&payload); - _mongocrypt_buffer_cleanup(&tokenKey); - - return res; -} - /** * Payload subtype 13: FLE2FindRangePayloadV2 - * Delegates to ..._find_ciphertextForRange_v1 - * when crypt->opts.use_fle2_v2 is false * * {cm: maxContentionFactor, * g: [{d: EDC, s: ESC, l: serverDerivedFromDataToken}, ...]} @@ -1720,10 +1198,6 @@ static bool _mongocrypt_fle2_placeholder_to_find_ciphertextForRange(_mongocrypt_ BSON_ASSERT_PARAM(marking); BSON_ASSERT_PARAM(ciphertext); - if (kb->crypt->opts.use_fle2_v2 == false) { - return _mongocrypt_fle2_placeholder_to_find_ciphertextForRange_v1(kb, marking, ciphertext, status); - } - const bool use_range_v2 = kb->crypt->opts.use_range_v2; mc_FLE2EncryptionPlaceholder_t *placeholder = &marking->fle2; mc_FLE2FindRangePayloadV2_t payload; @@ -1860,25 +1334,14 @@ static bool _mongocrypt_fle2_placeholder_to_FLE2UnindexedEncryptedValue(_mongocr } BSON_ASSERT(kb->crypt); - if (kb->crypt->opts.use_fle2_v2) { - res = mc_FLE2UnindexedEncryptedValueV2_encrypt(kb->crypt->crypto, - &placeholder->user_key_id, - bson_iter_type(&placeholder->v_iter), - &plaintext, - &user_key, - &ciphertext->data, - status); - ciphertext->blob_subtype = MC_SUBTYPE_FLE2UnindexedEncryptedValueV2; - } else { - res = mc_FLE2UnindexedEncryptedValue_encrypt(kb->crypt->crypto, - &placeholder->user_key_id, - bson_iter_type(&placeholder->v_iter), - &plaintext, - &user_key, - &ciphertext->data, - status); - ciphertext->blob_subtype = MC_SUBTYPE_FLE2UnindexedEncryptedValue; - } + res = mc_FLE2UnindexedEncryptedValueV2_encrypt(kb->crypt->crypto, + &placeholder->user_key_id, + bson_iter_type(&placeholder->v_iter), + &plaintext, + &user_key, + &ciphertext->data, + status); + ciphertext->blob_subtype = MC_SUBTYPE_FLE2UnindexedEncryptedValueV2; if (!res) { goto fail; From e6294eaa65ba0252b09cea5eba32c889efd812a8 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Thu, 2 Jan 2025 08:53:43 -0500 Subject: [PATCH 12/15] remove `mongocrypt_setopt_fle2v2` --- src/mongocrypt-opts-private.h | 4 ---- src/mongocrypt-private.h | 11 ----------- src/mongocrypt.c | 8 -------- test/test-mongocrypt-ctx-encrypt.c | 5 +---- 4 files changed, 1 insertion(+), 27 deletions(-) diff --git a/src/mongocrypt-opts-private.h b/src/mongocrypt-opts-private.h index 4c7b77d0e..d76f2fd01 100644 --- a/src/mongocrypt-opts-private.h +++ b/src/mongocrypt-opts-private.h @@ -118,10 +118,6 @@ typedef struct { bool use_need_mongo_collinfo_with_db_state; bool bypass_query_analysis; - // When creating new encrypted payloads, - // use V2 variants of the FLE2 datatypes. - bool use_fle2_v2; - // Use the Queryable Encryption Range V2 protocol. bool use_range_v2; } _mongocrypt_opts_t; diff --git a/src/mongocrypt-private.h b/src/mongocrypt-private.h index 147bd1e7c..4d94789e4 100644 --- a/src/mongocrypt-private.h +++ b/src/mongocrypt-private.h @@ -161,15 +161,4 @@ bool _mongocrypt_needs_credentials_for_provider(mongocrypt_t *crypt, _mongocrypt_kms_provider_t provider, const char *name); -/** - * Enable/disable the use of FLE2v2 payload types for write. - * - * @param[in] crypt The @ref mongocrypt_t object. - * @param[in] enable Whether to enable use of FLE2v2 payloads. - * - * @returns A boolean indicating success. If false, an error status is set. - * Retrieve it with @ref mongocrypt_status - */ -bool mongocrypt_setopt_fle2v2(mongocrypt_t *crypt, bool enable); - #endif /* MONGOCRYPT_PRIVATE_H */ diff --git a/src/mongocrypt.c b/src/mongocrypt.c index f7f6d6229..4bac023a5 100644 --- a/src/mongocrypt.c +++ b/src/mongocrypt.c @@ -118,8 +118,6 @@ mongocrypt_t *mongocrypt_new(void) { crypt->status = mongocrypt_status_new(); _mongocrypt_opts_init(&crypt->opts); _mongocrypt_log_init(&crypt->log); - // Default to using FLEv2 (aka QEv2) - crypt->opts.use_fle2_v2 = true; crypt->ctx_counter = 1; crypt->cache_oauth = mc_mapof_kmsid_to_token_new(); crypt->csfle = (_mongo_crypt_v1_vtable){.okay = false}; @@ -148,12 +146,6 @@ mongocrypt_t *mongocrypt_new(void) { } \ } -bool mongocrypt_setopt_fle2v2(mongocrypt_t *crypt, bool enable) { - ASSERT_MONGOCRYPT_PARAM_UNINIT(crypt); - - return true; -} - bool mongocrypt_setopt_use_range_v2(mongocrypt_t *crypt) { ASSERT_MONGOCRYPT_PARAM_UNINIT(crypt); diff --git a/test/test-mongocrypt-ctx-encrypt.c b/test/test-mongocrypt-ctx-encrypt.c index d3d8306f0..5a419e206 100644 --- a/test/test-mongocrypt-ctx-encrypt.c +++ b/test/test-mongocrypt-ctx-encrypt.c @@ -2935,7 +2935,7 @@ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { mongocrypt_destroy(crypt); } - /* Test that deleteTokens are no appended when bypassQueryAnalysis is true in v2. */ + /* Test that deleteTokens are not appended when bypassQueryAnalysis is true in v2. */ { mongocrypt_t *crypt = mongocrypt_new(); /* Configure crypt. */ @@ -2946,7 +2946,6 @@ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { ASSERT_OK(mongocrypt_setopt_kms_provider_local(crypt, localkey), crypt); mongocrypt_binary_destroy(localkey); mongocrypt_setopt_bypass_query_analysis(crypt); - mongocrypt_setopt_fle2v2(crypt, true); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); } @@ -2989,7 +2988,6 @@ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { TEST_FILE("./test/data/fle2-delete/success/" "encrypted-field-config-map.json")), crypt); - mongocrypt_setopt_fle2v2(crypt, true); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); } @@ -3048,7 +3046,6 @@ static void _test_encrypt_fle2_delete_v2(_mongocrypt_tester_t *tester) { "encrypted-field-config-map.json")), crypt); mongocrypt_setopt_bypass_query_analysis(crypt); - mongocrypt_setopt_fle2v2(crypt, true); ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt); } From b255f5133892abd8cb577966a932de6b2360d4ef Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 11:18:18 -0500 Subject: [PATCH 13/15] test decrypting each payload type --- .../FLE1DeterministicEncryptedValue.json | 8 + .../FLE1EncryptionPlaceholder.json | 8 + .../FLE1RandomEncryptedValue.json | 8 + .../FLE2EncryptionPlaceholder.json | 8 + .../FLE2EqualityIndexedValueV2.json | 8 + .../FLE2FindEqualityPayload.json | 8 + .../FLE2FindEqualityPayloadV2.json | 8 + .../FLE2IndexedEqualityEncryptedValue.json | 8 + .../FLE2IndexedEqualityEncryptedValueV2.json | 8 + .../FLE2IndexedRangeEncryptedValue.json | 8 + .../FLE2IndexedRangeEncryptedValueV2.json | 8 + .../FLE2InsertUpdatePayload.json | 8 + .../FLE2InsertUpdatePayloadV2.json | 8 + .../FLE2RangeIndexedValueV2.json | 8 + .../FLE2UnindexedEncryptedValue.json | 8 + .../FLE2UnindexedEncryptedValueV2.json | 8 + test/test-mongocrypt-ctx-decrypt.c | 216 ++++++++++++++++++ 17 files changed, 344 insertions(+) create mode 100644 test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json create mode 100644 test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json create mode 100644 test/data/explicit-decrypt/FLE1RandomEncryptedValue.json create mode 100644 test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json create mode 100644 test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json create mode 100644 test/data/explicit-decrypt/FLE2FindEqualityPayload.json create mode 100644 test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json create mode 100644 test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json create mode 100644 test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json create mode 100644 test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json create mode 100644 test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json create mode 100644 test/data/explicit-decrypt/FLE2InsertUpdatePayload.json create mode 100644 test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json create mode 100644 test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json create mode 100644 test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json create mode 100644 test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json diff --git a/test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json b/test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json new file mode 100644 index 000000000..7475af6db --- /dev/null +++ b/test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "AavN76sSNJh2EjQSNFZ4kBICWqrPwniNou6js6HYziih7aohQYE5RKpYxnRtdQ6in5s3qv9mG/5lkEDIPRGcEPNKXwBz+iYB1mB1rgGZEQHikg==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json b/test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json new file mode 100644 index 000000000..b71fd3824 --- /dev/null +++ b/test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "ADgAAAAQYQABAAAABWtpABAAAAAEYWFhYWFhYWFhYWFhYWFhYQJ2AAwAAAA0NTctNTUtNTQ2MgAA", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE1RandomEncryptedValue.json b/test/data/explicit-decrypt/FLE1RandomEncryptedValue.json new file mode 100644 index 000000000..3b853e7ab --- /dev/null +++ b/test/data/explicit-decrypt/FLE1RandomEncryptedValue.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "AqvN76sSNJh2EjQSNFZ4kBIC6BSCq8jmrdY68Q0LB4ZVCxehoOHbyehgjllrluoTz0kOjm+6ppKu5a7XG0mMcZFRxZ6yZK/6GhSCQFN1H/Bp7A==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json b/test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json new file mode 100644 index 000000000..60d7e5caf --- /dev/null +++ b/test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "A2EAAAAQdAABAAAAEGEAAgAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASAnYACQAAAHZhbHVlMTIzABJjbQAAAAAAAAAAAAA=", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json b/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json new file mode 100644 index 000000000..b7a5c3c99 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "DqvN76sSNJh2EjQSNFZ4kBICl42VcDwOxUhPxqcSx/Yv98vhrHX+qFwE6J7jRL/Q4isKrBTfN/An79R2UiP85lOnPTrUN1CKi0YQpCdGZbieFNMUBJ6g1u/ZgcIHxT+MQQ8BwYT+YidACALF18V76cnTnsgBjaju29a643JQjPoNdakFwQl4Xwlr+77e35ztQRHN2Do2J+7pc5569xBNbUU2IbTCvQ/jtngwNbaP7CSWb9WQRqjs2vId+FPlmNsShbrevAXFGSG/JY00t3TJpHfyburvBfEMZapT3H3q8U3o/w==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2FindEqualityPayload.json b/test/data/explicit-decrypt/FLE2FindEqualityPayload.json new file mode 100644 index 000000000..dbc619878 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2FindEqualityPayload.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "BbEAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVjACAAAAAA1003zUWGwD4zVZ0KeihnZOthS3V6CEHUfnJZcIYHefIFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsEmNtAAAAAAAAAAAAAA==", + "subType": "06" + } + } +} \ No newline at end of file diff --git a/test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json b/test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json new file mode 100644 index 000000000..b6f0a7eb0 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "DIkAAAAFZAAgAAAAAE8KGPgq7h3n9nH5lfHcia8wtOTLwGkZNLBesb6PULqbBXMAIAAAAACq0558QyD3c3jkR5k0Zc9UpQK8ByhXhtn2d1xVQnuJ3AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSY20AAAAAAAAAAAAA", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json b/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json new file mode 100644 index 000000000..e3a8894be --- /dev/null +++ b/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "BxI0VngSNJh2EjQSNFZ4kBICQ7uhTd9C2oI8M1afRon0ZaYG0s6oTmt0aBZ9kO4S4mm5vId01BsW7tBHytA8pDJ2IiWBCmah3OGH2M4ET7PSqekQD4gkUCo4JeEttx4yj05Ou4D6yZUmYfVKmEljge16NCxKm7Ir9gvmQsp8x1wqGBzpndA6gkqFxsxfvQ/cIqOwMW9dGTTWsfKge+jYkCUIFMfms+XyC/8evQhjjA+qR6eEmV+N/kwpR7Q7TJe0lwU5kw2kSe3/KiPKRZZTbn8znadvycfJ0cCWGad9SQ==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json b/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json new file mode 100644 index 000000000..59034f363 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "DqvN76sSNJh2EjQSNFZ4kBICjqZv6Pljqv2xNVm5MLXcKSRYXy+Q5frRjpTAPx0hCr+daRXntN5pv6qMh0MXY+IPnH8XOG3xXZcllswF0N3EfyZsHii2am4GdIAkxsqu6MmuAIT5x+7BZqcHIu0n7hG3mxZKPQvs8MjoBQZ2lC/dgj15+bR9OT2rLi4XHwi7kjrhV1BtSk560yuV7W1RPVQtZfW7uibsXigZQduDro7IgXoJXDTGekdyZYTZVQZlZwHAJZCdr+1sLPRS9PtkKSAE", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json b/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json new file mode 100644 index 000000000..8bde0ddfc --- /dev/null +++ b/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "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", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json b/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json new file mode 100644 index 000000000..382e991e2 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "D6vN76sSNJh2EjQSNFZ4kBIQCKONPDzoIPJR6V3HiKEKizlmRU6wZ6BdgJWukp2SMCmnw1/ELG4J47sD0GavvaCbFwIxVipDqB0uGsY8VQZCKq/cWAE8YX90+1POSLR+ABjGqfWO8M7x78VrDWiHmSc/0b7olL3nZD8ozT01iUqxI3dOQVvJLVW72IhfZbFkvJRvGH0bBaIuwfyk6wit1RIUAzWFDWtGMlo4lZ08kpzhe0KUjyG7UKLg6yxf7DfdBV3bmiuFt+Xj8l1jx2kcYSyITXrB1Qqgkkumu6672WRLabi2SloAxuCfXmnvRuqLF5DEQ7fvAeE8tl8aSJ2pKKRVAbP3bwRsoJm91ErM7WVcJcTrTCR/lnAW8MmNjJCjSB56cgi91Q1s/XfeCgvNsiAexzTBKdNJSqw7RtSlsCwXhYSYSpbA9ohG5Z4Hx9eK5Eyi2+HEgqjq/8RPaVcqljVRuUxnIMxkBwu64H1UsoSxnQRGCs6sjO3UqhHupmckY2hOaod0gHsqRDUxOj6gYLzqx/egyCTMI+FKG8hN19MnKE2H3yv/PahY3uFM9FOnn9RXcKYtqixaj95WS4/nyAaVTDdrsJ8sWjZeq0EziVk31wYCAsZwgYp9Pu6Ur1JAhNwRkSs4O2CSbePsY8VZkWEG54ONaP9JZG3yidA3McUoyMvaNWlYTqWZc8nZMYjSqgfxgjrM0S8tEyyuwK4EEV6ez8pOxE+0JTgtyZdhrSztcljVITX6p3I/nuD6yWNpdRYdkK6QmVlMAm+OX7T6igIpu9dzYxJpeBD3b+ioXAXDSy6cYOamVyO+d+RgWSXT+ficAY2eUicHrsXZBgfReZiTXVqpQGNAi5HnI6f+UjeKqK7YsAw7TVLDFvNzgsFKH/OgoUIH3m2z6JFD8OcqF1ufFXsH5H54JLAzIIQZOBVztxuMqEkteFUxUIWOLw3uw3K8mZCv43QZYFvZcPTrN37qY6fTVxl375vFpJXCCpd4R8Dg4Q+JGrTk3UKcVoA4WkoQq9UTNMnOhesLhOt4M1igJwWjlZNM4E2iduXoP+gJ9l9tckybx0yjxJ2qCJyzz8sFv5m2tSHDELv6PXGxphhQnRYznnDsgJeAGh6KXqtuLJP4sUf8VjxFXaGD0TYx3WvRvmnQLCWfKnG+fr0slKl83Q==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2InsertUpdatePayload.json b/test/data/explicit-decrypt/FLE2InsertUpdatePayload.json new file mode 100644 index 000000000..60da97e9a --- /dev/null +++ b/test/data/explicit-decrypt/FLE2InsertUpdatePayload.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json b/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json new file mode 100644 index 000000000..2a25ebd42 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "C18BAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVwADAAAAAAx0PWdXaep4jV5cRA2yQN+ULLwjv8e++oMonpfGOGs9BZ0uqPP7waiwZSwHsDx57+BXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AFAAAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSHYikH9u4e644rfZY9N9UQR4h76qKAmcbo43utRcXMQy+FXXIxSuNntFHZHTcNJhJoFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsBWwAIAAAAABpn2zcb7jOd/FK3F45nBxnLU6HOMwZzmGOZ0w35v/DqRJrAAAAAAAAAAAAAA==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json b/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json new file mode 100644 index 000000000..6ac5a4e20 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "D6vN76sSNJh2EjQSNFZ4kBIQCG6OwBqJxG7szTWZFLKfOC7z0LmkmdzQyat5Sz+Rw24mknu3Vz4rY15o+ZGQVy8W2M5rcGWAocB4uoVhVIt8D2fzqpAVSNmt3UtiAd/868IC02MBhgoSDG/KCY3aZQfB0qy2t4O5r2xaVA2IuOZFrDFfd6CPsJZKAZTwPgHaPoURYiLopIapJ+zc++69eV8HwVTWOLhPFOkkxrLlaDIIPbbE/m5SzueUIA5gcISX4PKKo4EiaxRkanYa8Ai/PM9i2OkSHj5zvJwISGiBWddP49F53F90FqyYc37a+IYPRRVyHdMj0mMeH/vQwxP9ZXZD1yrHc8N6gGQgiHKOVZ1jTko8mJvsFvpAJG8ZiHo3Pe3bAwIOvcj5MOup/BqQNh6OoT2T6PHSwdZKJUA92NBdK/TqvfWWjwSYzrfUxyumDb24E0M4ae+f2/kSEPhGMI8KVZtNKoWIT53Ac0RQ5rwaLEggveM9cLpQqnXvi9X5OL/YSQ+vNaM9H+uHiIKlw3bBPLCLzmOmZzddu4mbltqXOFPiRS2Ob7xlHI1RGbgqeuFKD94ddjSsb3ucKwrrdDVWQJOKn95PPZ8MfjQ3VR5lSdgcUsa+q7SwB1J1k0i5/avhrolqpCipg79k1nnUbvzIDCcd974hvDP21UZ7tx4yniHYKcp2Djw/uW/M6Kowm/NBzJjc8dcNAlpxkcjeZGtsFte0HN4nvKyHmkYbkycvJsN1sM/lPAhTC2zkBnfaAEyp+EU49By2xQlnVbPGum0nzoud5xpI1DUyqw6zRos45iXfSIiGSzZtpGHYcJdbyy1Mn+SDH3rYMZ4yGg3Vr37cT0enszHCoSzwA09HLF0LRDiIlZexwu2cIPMzMdpOh3OPwqx5rgQE77W+FnhTXlQHaD1plphBLixyvEd3Sl+4KxDrQfnfIj8OTGnzX9wUD30N3jzbabEJEGtostuJAUdkJgikDCx3vJ4ZRvYYLoF9sDFOqCugvvt6xnH/yAHgoPWxCyEE6kF135rtT0zDZ6w6JC/HLMRDuONivd1pGkDgN6Bdb7zHF/aM1k9pRXpHHi1BQOmFs7Bl0EaSTcnGG09Zdutu1Fu5hcqIjbmsuH9r8ZDy8LQh8grPsY6yly6kocAJXxQyCFVBYDk4XekWe/6kDQ==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json b/test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json new file mode 100644 index 000000000..f1b2d6f1e --- /dev/null +++ b/test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "BqvN76sSNJh2EjQSNFZ4kBICTQaVZPWgXp41I7mPV1rLFTtw1tXzjcdSEyxpKKqujlko5TeizkB9hHQ009dVY1+fgIiDcefh+eQrm3CkhQ==", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json b/test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json new file mode 100644 index 000000000..4ee144187 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "EKvN76sSNJh2EjQSNFZ4kBICUH8j3oVCIjE3koejjIwxHF/nVP95ymiPNUPKskdjx55vK0SasqFyS4LxjZ6fQbzZSoMHPwdmR5otQl9HcMjAcg==", + "subType": "06" + } + } +} diff --git a/test/test-mongocrypt-ctx-decrypt.c b/test/test-mongocrypt-ctx-decrypt.c index 67c863908..8d1ffc367 100644 --- a/test/test-mongocrypt-ctx-decrypt.c +++ b/test/test-mongocrypt-ctx-decrypt.c @@ -940,6 +940,221 @@ static void _test_explicit_decrypt_fle2_iup_with_edges(_mongocrypt_tester_t *tes mongocrypt_destroy(crypt); } +typedef struct { + const char *desc; + mongocrypt_binary_t *msg; + mongocrypt_binary_t *keys_to_feed[3]; // NULL terminated list. + mongocrypt_binary_t *expect; + bool expect_ignored; +} ed_testcase; + +static void ed_testcase_run(ed_testcase *tc) { + printf(" explicit decrypt test: %s ... begin\n", tc->desc); + mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); + mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt); + ASSERT_OK(mongocrypt_ctx_explicit_decrypt_init(ctx, tc->msg), ctx); + + if (tc->expect_ignored) { + ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); + { + mongocrypt_binary_t *got = mongocrypt_binary_new(); + bool ret = mongocrypt_ctx_finalize(ctx, got); + ASSERT_OK(ret, ctx); + // Expect input is returned unchanged. + ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(tc->msg, got); + mongocrypt_binary_destroy(got); + } + goto cleanup; + } + + ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); + { + for (size_t i = 0; i < sizeof(tc->keys_to_feed) / sizeof(tc->keys_to_feed[0]); i++) { + mongocrypt_binary_t *key_to_feed = tc->keys_to_feed[i]; + if (!key_to_feed) { + break; + } + ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); + ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, key_to_feed), ctx); + ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); + } + } + + ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); + { + mongocrypt_binary_t *got = mongocrypt_binary_new(); + + bool ret = mongocrypt_ctx_finalize(ctx, got); + ASSERT_OK(ret, ctx); + ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(tc->expect, got); + mongocrypt_binary_destroy(got); + } + +cleanup: + mongocrypt_ctx_destroy(ctx); + mongocrypt_destroy(crypt); + printf(" explicit decrypt test: %s ... end\n", tc->desc); +} + +static void _test_explicit_decrypt(_mongocrypt_tester_t *tester) { + mongocrypt_binary_t *keyABC = TEST_FILE("./test/data/keys/" + "ABCDEFAB123498761234123456789012-local-" + "document.json"); + mongocrypt_binary_t *key123 = TEST_FILE("./test/data/keys/" + "12345678123498761234123456789012-local-" + "document.json"); + + // FLE1DeterministicEncryptedValue can be decrypted. + { + ed_testcase tc = { + .desc = "FLE1DeterministicEncryptedValue", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "foo"})), + }; + ed_testcase_run(&tc); + } + + // FLE1EncryptionPlaceholder is ignored. + // Payload is returned by query analysis and consumed by libmongocrypt. Payload is not expected to be given to user. + { + ed_testcase tc = {.desc = "FLE1EncryptionPlaceholder", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json"), + .expect_ignored = true}; + ed_testcase_run(&tc); + } + + // FLE1RandomEncryptedValue can be decrypted. + { + ed_testcase tc = { + .desc = "FLE1RandomEncryptedValue", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE1RandomEncryptedValue.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "foo"})), + }; + ed_testcase_run(&tc); + } + + // FLE2EncryptionPlaceholder is ignored. + // Payload is returned by query analysis and consumed by libmongocrypt. Payload is not expected to be given to user. + { + ed_testcase tc = {.desc = "FLE2EncryptionPlaceholder", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json"), + .expect_ignored = true}; + ed_testcase_run(&tc); + } + + // FLE2InsertUpdatePayload can be decrypted. + // Payload is only used in the QE-V1 protocol removed in MongoDB 7.0. Decrypting is currently still supported. + { + ed_testcase tc = { + .desc = "FLE2InsertUpdatePayload", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2InsertUpdatePayload.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "value123"})), + }; + ed_testcase_run(&tc); + } + + // FLE2UnindexedEncryptedValue can be decrypted. + // Payload is only used in the QE-V1 protocol removed in MongoDB 7.0. Decrypting is currently still supported. + { + ed_testcase tc = { + .desc = "FLE2UnindexedEncryptedValue", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "value123"})), + }; + ed_testcase_run(&tc); + } + + // FLE2IndexedEqualityEncryptedValue can be decrypted. + // Payload is only used in the QE-V1 protocol removed in MongoDB 7.0. Decrypting is currently still supported. + { + ed_testcase tc = { + .desc = "FLE2IndexedEqualityEncryptedValue", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json"), + .keys_to_feed = {key123, keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "value123"})), + }; + ed_testcase_run(&tc); + } + + // FLE2IndexedRangeEncryptedValue can be decrypted. + // Payload is only used in the QE-V1 protocol removed in MongoDB 7.0. Decrypting is currently still supported. + { + ed_testcase tc = { + .desc = "FLE2IndexedRangeEncryptedValue", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json"), + .keys_to_feed = {key123, keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : 123456})), + }; + ed_testcase_run(&tc); + } + + // FLE2FindEqualityPayload is ignored. + // Payload does not contain encrypted ciphertext (only lookup tokens). + { + ed_testcase tc = {.desc = "FLE2FindEqualityPayload", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2FindEqualityPayload.json"), + .expect_ignored = true}; + ed_testcase_run(&tc); + } + + // FLE2InsertUpdatePayloadV2 can be decrypted. + { + ed_testcase tc = { + .desc = "FLE2InsertUpdatePayloadV2", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "value123"})), + }; + ed_testcase_run(&tc); + } + + // FLE2UnindexedEncryptedValueV2 can be decrypted. + { + ed_testcase tc = { + .desc = "FLE2UnindexedEncryptedValueV2", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "foo"})), + }; + ed_testcase_run(&tc); + } + + // FLE2IndexedEqualityEncryptedValueV2 can be decrypted. + { + ed_testcase tc = { + .desc = "FLE2IndexedEqualityEncryptedValueV2", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : "foo"})), + }; + ed_testcase_run(&tc); + } + + // FLE2IndexedRangeEncryptedValueV2 can be decrypted. + { + ed_testcase tc = { + .desc = "FLE2IndexedRangeEncryptedValueV2", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : 123})), + }; + ed_testcase_run(&tc); + } + + // FLE2FindEqualityPayloadV2 is ignored. + // Payload does not contain encrypted ciphertext (only lookup tokens). + { + ed_testcase tc = {.desc = "FLE2FindEqualityPayloadV2", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json"), + .expect_ignored = true}; + ed_testcase_run(&tc); + } +} + void _mongocrypt_tester_install_ctx_decrypt(_mongocrypt_tester_t *tester) { INSTALL_TEST(_test_explicit_decrypt_init); INSTALL_TEST(_test_decrypt_init); @@ -956,4 +1171,5 @@ void _mongocrypt_tester_install_ctx_decrypt(_mongocrypt_tester_t *tester) { INSTALL_TEST(_test_decrypt_fle2_irev); INSTALL_TEST(_test_explicit_decrypt_fle2_irev); INSTALL_TEST(_test_explicit_decrypt_fle2_iup_with_edges); + INSTALL_TEST(_test_explicit_decrypt); } From 42657775b5f29555c6e07bbc7708166c4c20c6c0 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 11:30:38 -0500 Subject: [PATCH 14/15] test FLE2InsertUpdatePayload with edges Edges are sent for range payloads. Tested elsewhere. Redundant test is soon to be removed. --- ...FLE2InsertUpdatePayload-with-edges-V2.json | 8 +++++++ .../FLE2InsertUpdatePayload-with-edges.json | 8 +++++++ test/test-mongocrypt-ctx-decrypt.c | 24 +++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json create mode 100644 test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json diff --git a/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json b/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json new file mode 100644 index 000000000..8cb495a13 --- /dev/null +++ b/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "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", + "subType": "06" + } + } +} diff --git a/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json b/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json new file mode 100644 index 000000000..87af2ebba --- /dev/null +++ b/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json @@ -0,0 +1,8 @@ +{ + "v": { + "$binary": { + "base64": "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", + "subType": "6" + } + } +} diff --git a/test/test-mongocrypt-ctx-decrypt.c b/test/test-mongocrypt-ctx-decrypt.c index 8d1ffc367..dd540e5a6 100644 --- a/test/test-mongocrypt-ctx-decrypt.c +++ b/test/test-mongocrypt-ctx-decrypt.c @@ -1056,6 +1056,18 @@ static void _test_explicit_decrypt(_mongocrypt_tester_t *tester) { ed_testcase_run(&tc); } + // FLE2InsertUpdatePayload with edges can be decrypted. + // Edges are sent on payloads for range algorithm. + { + ed_testcase tc = { + .desc = "FLE2InsertUpdatePayload with edges", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : 123456})), + }; + ed_testcase_run(&tc); + } + // FLE2UnindexedEncryptedValue can be decrypted. // Payload is only used in the QE-V1 protocol removed in MongoDB 7.0. Decrypting is currently still supported. { @@ -1112,6 +1124,18 @@ static void _test_explicit_decrypt(_mongocrypt_tester_t *tester) { ed_testcase_run(&tc); } + // FLE2InsertUpdatePayloadV2 with edges can be decrypted. + // Edges are sent on payloads for range algorithm. + { + ed_testcase tc = { + .desc = "FLE2InsertUpdatePayloadV2 with edges", + .msg = TEST_FILE("./test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json"), + .keys_to_feed = {keyABC}, + .expect = TEST_BSON(BSON_STR({"v" : 123456})), + }; + ed_testcase_run(&tc); + } + // FLE2UnindexedEncryptedValueV2 can be decrypted. { ed_testcase tc = { From 5db488ce052c98ae2008b0b229671a909bc51b87 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 3 Jan 2025 11:31:15 -0500 Subject: [PATCH 15/15] remove redundant explicit decryption tests --- test/test-mongocrypt-ctx-decrypt.c | 160 ----------------------------- 1 file changed, 160 deletions(-) diff --git a/test/test-mongocrypt-ctx-decrypt.c b/test/test-mongocrypt-ctx-decrypt.c index dd540e5a6..4288ff5d3 100644 --- a/test/test-mongocrypt-ctx-decrypt.c +++ b/test/test-mongocrypt-ctx-decrypt.c @@ -597,70 +597,6 @@ static void _test_decrypt_fle2(_mongocrypt_tester_t *tester) { #undef TEST_IEEV_BASE64 } -static void _test_explicit_decrypt_fle2_ieev(_mongocrypt_tester_t *tester) { - _mongocrypt_buffer_t S_KeyId; - _mongocrypt_buffer_t K_KeyId; - - if (!_aes_ctr_is_supported_by_os) { - printf("Common Crypto with no CTR support detected. Skipping."); - return; - } - -#define TEST_IEEV_BASE64 \ - "BxI0VngSNJh2EjQSNFZ4kBICQ7uhTd9C2oI8M1afRon0ZaYG0s6oTmt0aBZ9kO4S4mm5vId01" \ - "BsW7tBHytA8pDJ2IiWBCmah3OGH2M4ET7PSqekQD4gkUCo4JeEttx4yj05Ou4D6yZUmYfVKmE" \ - "ljge16NCxKm7Ir9gvmQsp8x1wqGBzpndA6gkqFxsxfvQ/" \ - "cIqOwMW9dGTTWsfKge+jYkCUIFMfms+XyC/8evQhjjA+qR6eEmV+N/" \ - "kwpR7Q7TJe0lwU5kw2kSe3/KiPKRZZTbn8znadvycfJ0cCWGad9SQ==" - - _mongocrypt_buffer_copy_from_hex(&S_KeyId, "12345678123498761234123456789012"); - _mongocrypt_buffer_copy_from_hex(&K_KeyId, "ABCDEFAB123498761234123456789012"); - - /* Test success with an FLE2IndexedEqualityEncryptedValue payload. */ - { - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); - mongocrypt_ctx_t *ctx; - mongocrypt_binary_t *out; - bson_t out_bson; - - ctx = mongocrypt_ctx_new(crypt); - ASSERT_OK(mongocrypt_ctx_explicit_decrypt_init( - ctx, - TEST_BSON("{'v':{'$binary':{'base64': '" TEST_IEEV_BASE64 "','subType':'6'}}}")), - ctx); - /* The first transition to MONGOCRYPT_CTX_NEED_MONGO_KEYS requests S_Key. - */ - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-" - "document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - /* The second transition to MONGOCRYPT_CTX_NEED_MONGO_KEYS requests K_Key. - */ - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "ABCDEFAB123498761234123456789012-local-" - "document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT(_mongocrypt_binary_to_bson(out, &out_bson)); - _assert_match_bson(&out_bson, TMP_BSON("{'v': 'value123'}")); - mongocrypt_binary_destroy(out); - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); - } - _mongocrypt_buffer_cleanup(&K_KeyId); - _mongocrypt_buffer_cleanup(&S_KeyId); - -#undef TEST_IEEV_BASE64 -} - #define TEST_IUP_BASE64 \ "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/" \ "5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+" \ @@ -845,101 +781,8 @@ static void _test_decrypt_fle2_irev(_mongocrypt_tester_t *tester) { } } -// Test explicitly decrypting an FLE2IndexedRangeEncryptedValue. -static void _test_explicit_decrypt_fle2_irev(_mongocrypt_tester_t *tester) { - if (!_aes_ctr_is_supported_by_os) { - printf("Common Crypto with no CTR support detected. Skipping."); - return; - } - - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); - mongocrypt_ctx_t *ctx; - mongocrypt_binary_t *out; - bson_t out_bson; - - ctx = mongocrypt_ctx_new(crypt); - ASSERT_OK(mongocrypt_ctx_explicit_decrypt_init( - ctx, - TEST_BSON("{'v': {'$binary':{'base64':'" TEST_IREV_BASE64 "','subType':'6'}}}")), - ctx); - /* The first transition to MONGOCRYPT_CTX_NEED_MONGO_KEYS requests S_Key. - */ - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - mongocrypt_binary_t *filter = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_mongo_op(ctx, filter), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-decrypt-ieev/first-filter.json"), filter); - mongocrypt_binary_destroy(filter); - } - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "12345678123498761234123456789012-local-" - "document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - /* The second transition to MONGOCRYPT_CTX_NEED_MONGO_KEYS requests K_Key. - */ - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - { - mongocrypt_binary_t *filter = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_mongo_op(ctx, filter), ctx); - ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/fle2-decrypt-ieev/second-filter.json"), filter); - mongocrypt_binary_destroy(filter); - } - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "ABCDEFAB123498761234123456789012-local-" - "document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT(_mongocrypt_binary_to_bson(out, &out_bson)); - _assert_match_bson(&out_bson, TMP_BSON("{'v': 123456}")); - mongocrypt_binary_destroy(out); - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); -} - #undef TEST_IREV_BASE64 -// Test explicitly decrypting an FLE2InsertUpdatePayload with edges. -static void _test_explicit_decrypt_fle2_iup_with_edges(_mongocrypt_tester_t *tester) { - if (!_aes_ctr_is_supported_by_os) { - printf("Common Crypto with no CTR support detected. Skipping."); - return; - } - - /* Test success with an FLE2IndexedEqualityEncryptedValue payload. */ - mongocrypt_t *crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT); - mongocrypt_ctx_t *ctx; - mongocrypt_binary_t *out; - bson_t out_bson; - - ctx = mongocrypt_ctx_new(crypt); - ASSERT_OK(mongocrypt_ctx_explicit_decrypt_init(ctx, - TEST_FILE("./test/data/fle2-insert-range-explicit/int32/" - "encrypted-payload.json")), - ctx); - - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS); - ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, - TEST_FILE("./test/data/keys/" - "ABCDEFAB123498761234123456789012-local-" - "document.json")), - ctx); - ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx); - ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY); - out = mongocrypt_binary_new(); - ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx); - ASSERT(_mongocrypt_binary_to_bson(out, &out_bson)); - _assert_match_bson(&out_bson, TMP_BSON("{'v': 123456}")); - mongocrypt_binary_destroy(out); - mongocrypt_ctx_destroy(ctx); - mongocrypt_destroy(crypt); -} - typedef struct { const char *desc; mongocrypt_binary_t *msg; @@ -1189,11 +1032,8 @@ void _mongocrypt_tester_install_ctx_decrypt(_mongocrypt_tester_t *tester) { INSTALL_TEST(_test_decrypt_per_ctx_credentials); INSTALL_TEST(_test_decrypt_per_ctx_credentials_local); INSTALL_TEST(_test_decrypt_fle2); - INSTALL_TEST(_test_explicit_decrypt_fle2_ieev); INSTALL_TEST(_test_decrypt_fle2_iup); INSTALL_TEST(_test_decrypt_wrong_binary_subtype); INSTALL_TEST(_test_decrypt_fle2_irev); - INSTALL_TEST(_test_explicit_decrypt_fle2_irev); - INSTALL_TEST(_test_explicit_decrypt_fle2_iup_with_edges); INSTALL_TEST(_test_explicit_decrypt); }