summaryrefslogtreecommitdiff
path: root/src/mongo/shell/encrypted_dbclient_base.cpp
diff options
context:
space:
mode:
authorShreyas Kalyan <shreyas.kalyan@10gen.com>2019-06-25 13:52:34 -0700
committerShreyas Kalyan <shreyas.kalyan@10gen.com>2019-07-01 09:16:36 -0700
commit3206241b67ccf4022e618a1f915cf1daf45f0b5c (patch)
tree9fcc56b03a90cf94ba760652315d1463f2ca819c /src/mongo/shell/encrypted_dbclient_base.cpp
parent53d3a9e6d7b69787c0e4c3f23a930beef6f307bb (diff)
downloadmongo-3206241b67ccf4022e618a1f915cf1daf45f0b5c.tar.gz
SERVER-41919 Disallow specific types for explicit encryption
Diffstat (limited to 'src/mongo/shell/encrypted_dbclient_base.cpp')
-rw-r--r--src/mongo/shell/encrypted_dbclient_base.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/shell/encrypted_dbclient_base.cpp b/src/mongo/shell/encrypted_dbclient_base.cpp
index 20e87ab6d1e..1ee17b622b1 100644
--- a/src/mongo/shell/encrypted_dbclient_base.cpp
+++ b/src/mongo/shell/encrypted_dbclient_base.cpp
@@ -269,6 +269,13 @@ void EncryptedDBClientBase::encrypt(mozjs::MozJSImplScope* scope,
scope->getProto<mozjs::DBRefInfo>().getJSClass() == jsclass) {
uasserted(ErrorCodes::BadValue, "Second parameter cannot be MinKey, MaxKey, or DBRef");
} else {
+ if (scope->getProto<mozjs::BinDataInfo>().getJSClass() == jsclass) {
+ mozjs::ObjectWrapper o(cx, args.get(1));
+ auto binType = BinDataType(o.getNumberInt(mozjs::InternedString::type));
+ uassert(ErrorCodes::BadValue,
+ "Cannot encrypt BinData subtype 2.",
+ binType != BinDataType::ByteArrayDeprecated);
+ }
if (scope->getProto<mozjs::NumberDecimalInfo>().getJSClass() == jsclass) {
uassert(ErrorCodes::BadValue,
"Cannot deterministically encrypt NumberDecimal type objects.",