summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShreyas Kalyan <shreyas.kalyan@mongodb.com>2020-01-03 21:12:40 +0000
committerevergreen <evergreen@mongodb.com>2020-01-03 21:12:40 +0000
commitf9af7e53f24ac8d8bd16b788d871b263ae1612a9 (patch)
treed13b6388a3c4ce1a6e04605b265308ddde8627a0
parent54f2a28b008bacaefd0e8d41abb2c318a9ae646c (diff)
downloadmongo-f9af7e53f24ac8d8bd16b788d871b263ae1612a9.tar.gz
SERVER-44044 Remove unused second parameter from KeyVault.createDataKey()
(cherry picked from commit 05aec2872159cf583fe8655ca55f4bf70268efcf)
-rw-r--r--jstests/client_encrypt/fle_keys.js4
-rw-r--r--src/mongo/shell/keyvault.js13
2 files changed, 16 insertions, 1 deletions
diff --git a/jstests/client_encrypt/fle_keys.js b/jstests/client_encrypt/fle_keys.js
index d7039e2dfaf..3b21ef89fc2 100644
--- a/jstests/client_encrypt/fle_keys.js
+++ b/jstests/client_encrypt/fle_keys.js
@@ -61,6 +61,10 @@ assert.eq(1, keyVault.getKeys().itcount());
result = keyVault.addKeyAlternateName(keyId, [2]);
assert.eq("TypeError: key alternate name cannot be object or array type.", result);
+// Test create key with no CMK
+result = keyVault.createKey("aws", ["altName"]);
+assert.eq("ValueError: customerMasterKey must be defined if kmsProvider is not local.", result);
+
keyVault.removeKeyAlternateName(keyId, "mongoKey2");
assert.eq(1, keyVault.getKey(keyId).toArray()[0].keyAltNames.length);
diff --git a/src/mongo/shell/keyvault.js b/src/mongo/shell/keyvault.js
index 959a4e8c7f4..3194279cfa4 100644
--- a/src/mongo/shell/keyvault.js
+++ b/src/mongo/shell/keyvault.js
@@ -15,7 +15,18 @@ class KeyVault {
{unique: true, partialFilterExpression: {keyAltNames: {$exists: true}}});
}
- createKey(kmsProvider, customerMasterKey, keyAltNames = undefined) {
+ createKey(kmsProvider, param2 = undefined, param3 = undefined) {
+ if (Array.isArray(param2) && param3 === undefined) {
+ if (kmsProvider !== "local") {
+ return "ValueError: customerMasterKey must be defined if kmsProvider is not local.";
+ }
+ return this._createKey(kmsProvider, '', param2);
+ }
+
+ return this._createKey(kmsProvider, param2, param3);
+ }
+
+ _createKey(kmsProvider, customerMasterKey, keyAltNames) {
if (typeof kmsProvider !== "string") {
return "TypeError: kmsProvider must be of String type.";
}