diff options
author | Shreyas Kalyan <shreyas.kalyan@10gen.com> | 2019-06-25 13:52:34 -0700 |
---|---|---|
committer | Shreyas Kalyan <shreyas.kalyan@10gen.com> | 2019-07-01 09:16:36 -0700 |
commit | 3206241b67ccf4022e618a1f915cf1daf45f0b5c (patch) | |
tree | 9fcc56b03a90cf94ba760652315d1463f2ca819c /src/mongo/shell/encrypted_dbclient_base.cpp | |
parent | 53d3a9e6d7b69787c0e4c3f23a930beef6f307bb (diff) | |
download | mongo-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.cpp | 7 |
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.", |