166 lines
10 KiB
YAML
166 lines
10 KiB
YAML
# This test requires libmongocrypt 1.5.0-alpha2.
|
|
runOn:
|
|
# Require server version 6.0.0 to get behavior added in SERVER-64911.
|
|
- minServerVersion: "6.0.0"
|
|
|
|
database_name: &database_name "default"
|
|
collection_name: &collection_name "default"
|
|
data: []
|
|
tests:
|
|
- description: "create with a validator on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
validator:
|
|
unencrypted_string: "foo"
|
|
- name: assertCollectionExists
|
|
object: testRunner
|
|
arguments:
|
|
database: *database_name
|
|
collection: "encryptedCollection"
|
|
- description: "create with a validator on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
validator:
|
|
encrypted_string: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported"
|
|
- description: "collMod with a validator on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
collMod: "encryptedCollection"
|
|
validator:
|
|
unencrypted_string: "foo"
|
|
- description: "collMod with a validator on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
collMod: "encryptedCollection"
|
|
validator:
|
|
encrypted_string: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported"
|
|
- description: "createIndexes with a partialFilterExpression on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
createIndexes: "encryptedCollection"
|
|
indexes:
|
|
- name: "name"
|
|
key: { name: 1 }
|
|
partialFilterExpression:
|
|
unencrypted_string: "foo"
|
|
- name: assertIndexExists
|
|
object: testRunner
|
|
arguments:
|
|
database: *database_name
|
|
collection: "encryptedCollection"
|
|
index: name
|
|
- description: "createIndexes with a partialFilterExpression on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
schemaMap:
|
|
"default.encryptedCollection": {'properties': {'encrypted_w_altname': {'encrypt': {'keyId': '/altname', 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'random': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Random'}}, 'encrypted_string_equivalent': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
createIndexes: "encryptedCollection"
|
|
indexes:
|
|
- name: "name"
|
|
key: { name: 1 }
|
|
partialFilterExpression:
|
|
encrypted_string: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported" |