mongodb 6.0.0-alpha.0 → 6.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -13
- package/lib/bulk/common.js +11 -1
- package/lib/bulk/common.js.map +1 -1
- package/lib/client-side-encryption/auto_encrypter.js +33 -86
- package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
- package/lib/client-side-encryption/client_encryption.js +6 -6
- package/lib/client-side-encryption/client_encryption.js.map +1 -1
- package/lib/client-side-encryption/errors.js +57 -6
- package/lib/client-side-encryption/errors.js.map +1 -1
- package/lib/client-side-encryption/mongocryptd_manager.js +21 -2
- package/lib/client-side-encryption/mongocryptd_manager.js.map +1 -1
- package/lib/client-side-encryption/state_machine.js +95 -141
- package/lib/client-side-encryption/state_machine.js.map +1 -1
- package/lib/cmap/auth/scram.js +11 -17
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/command_monitoring_events.js +1 -1
- package/lib/cmap/connect.js +1 -1
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +6 -6
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/errors.js +45 -1
- package/lib/cmap/errors.js.map +1 -1
- package/lib/connection_string.js +3 -0
- package/lib/connection_string.js.map +1 -1
- package/lib/deps.js +1 -8
- package/lib/deps.js.map +1 -1
- package/lib/encrypter.js +13 -10
- package/lib/encrypter.js.map +1 -1
- package/lib/error.js +366 -17
- package/lib/error.js.map +1 -1
- package/lib/gridfs/download.js +14 -52
- package/lib/gridfs/download.js.map +1 -1
- package/lib/gridfs/upload.js +73 -98
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/mongo_client.js +11 -5
- package/lib/mongo_client.js.map +1 -1
- package/lib/sdam/monitor.js +3 -1
- package/lib/sdam/monitor.js.map +1 -1
- package/lib/sessions.js +1 -1
- package/mongodb.d.ts +496 -83
- package/package.json +7 -9
- package/src/bulk/common.ts +11 -1
- package/src/client-side-encryption/auto_encrypter.ts +44 -133
- package/src/client-side-encryption/client_encryption.ts +11 -11
- package/src/client-side-encryption/errors.ts +57 -6
- package/src/client-side-encryption/mongocryptd_manager.ts +20 -3
- package/src/client-side-encryption/state_machine.ts +126 -186
- package/src/cmap/auth/scram.ts +16 -24
- package/src/cmap/command_monitoring_events.ts +1 -1
- package/src/cmap/connect.ts +1 -1
- package/src/cmap/connection.ts +28 -23
- package/src/cmap/errors.ts +45 -1
- package/src/connection_string.ts +3 -0
- package/src/deps.ts +0 -13
- package/src/encrypter.ts +15 -13
- package/src/error.ts +371 -23
- package/src/gridfs/download.ts +16 -56
- package/src/gridfs/upload.ts +95 -158
- package/src/mongo_client.ts +22 -13
- package/src/sdam/monitor.ts +3 -1
- package/src/sessions.ts +1 -1
- package/lib/client-side-encryption/common.js +0 -55
- package/lib/client-side-encryption/common.js.map +0 -1
- package/src/client-side-encryption/common.js +0 -59
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MongocryptdManager = void 0;
|
|
4
|
+
const error_1 = require("../error");
|
|
4
5
|
/**
|
|
5
6
|
* @internal
|
|
6
7
|
* An internal class that handles spawning a mongocryptd.
|
|
@@ -27,7 +28,7 @@ class MongocryptdManager {
|
|
|
27
28
|
* Will check to see if a mongocryptd is up. If it is not up, it will attempt
|
|
28
29
|
* to spawn a mongocryptd in a detached process, and then wait for it to be up.
|
|
29
30
|
*/
|
|
30
|
-
spawn(
|
|
31
|
+
async spawn() {
|
|
31
32
|
const cmdName = this.spawnPath || 'mongocryptd';
|
|
32
33
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
33
34
|
const { spawn } = require('child_process');
|
|
@@ -54,7 +55,25 @@ class MongocryptdManager {
|
|
|
54
55
|
});
|
|
55
56
|
// unref child to remove handle from event loop
|
|
56
57
|
this._child.unref();
|
|
57
|
-
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @returns the result of `fn` or rejects with an error.
|
|
61
|
+
*/
|
|
62
|
+
async withRespawn(fn) {
|
|
63
|
+
try {
|
|
64
|
+
const result = await fn();
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
// If we are not bypassing spawning, then we should retry once on a MongoTimeoutError (server selection error)
|
|
69
|
+
const shouldSpawn = err instanceof error_1.MongoNetworkTimeoutError && !this.bypassSpawn;
|
|
70
|
+
if (!shouldSpawn) {
|
|
71
|
+
throw err;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
await this.spawn();
|
|
75
|
+
const result = await fn();
|
|
76
|
+
return result;
|
|
58
77
|
}
|
|
59
78
|
}
|
|
60
79
|
MongocryptdManager.DEFAULT_MONGOCRYPTD_URI = 'mongodb://localhost:27020';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongocryptd_manager.js","sourceRoot":"","sources":["../../src/client-side-encryption/mongocryptd_manager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mongocryptd_manager.js","sourceRoot":"","sources":["../../src/client-side-encryption/mongocryptd_manager.ts"],"names":[],"mappings":";;;AAEA,oCAAoD;AAGpD;;;GAGG;AACH,MAAa,kBAAkB;IAS7B,YAAY,eAA2C,EAAE;QACvD,IAAI,CAAC,GAAG;YACN,OAAO,YAAY,CAAC,cAAc,KAAK,QAAQ,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBACvF,CAAC,CAAC,YAAY,CAAC,cAAc;gBAC7B,CAAC,CAAC,kBAAkB,CAAC,uBAAuB,CAAC;QAEjD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC;QAEzD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,oBAAoB,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;SAC3E;QACD,IACE,IAAI,CAAC,SAAS;aACX,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;aACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAC7D;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;SACxD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC;QAEhD,8DAA8D;QAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,eAAe,CAAmC,CAAC;QAE7E,gDAAgD;QAChD,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3C,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,qBAAqB;YACrB,kFAAkF;YAClF,yEAAyE;YACzE,8EAA8E;YAC9E,8EAA8E;YAC9E,iFAAiF;YACjF,iFAAiF;YACjF,yEAAyE;YACzE,iFAAiF;YACjF,6EAA6E;YAC7E,yFAAyF;YACzF,+EAA+E;YAC/E,+DAA+D;QACjE,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAI,EAAoB;QACvC,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACZ,8GAA8G;YAC9G,MAAM,WAAW,GAAG,GAAG,YAAY,gCAAwB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACjF,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,GAAG,CAAC;aACX;SACF;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;;AApFM,0CAAuB,GAAG,2BAA2B,CAAC;AADlD,gDAAkB"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StateMachine = void 0;
|
|
4
|
-
const fs = require("fs");
|
|
4
|
+
const fs = require("fs/promises");
|
|
5
5
|
const net = require("net");
|
|
6
6
|
const tls = require("tls");
|
|
7
|
-
const util_1 = require("util");
|
|
8
7
|
const bson_1 = require("../bson");
|
|
9
8
|
const deps_1 = require("../deps");
|
|
10
|
-
const error_1 = require("../error");
|
|
11
9
|
const utils_1 = require("../utils");
|
|
12
10
|
const errors_1 = require("./errors");
|
|
13
11
|
let socks = null;
|
|
@@ -70,138 +68,99 @@ class StateMachine {
|
|
|
70
68
|
this.options = options;
|
|
71
69
|
this.bsonOptions = bsonOptions;
|
|
72
70
|
}
|
|
73
|
-
executeAsync(executor, context) {
|
|
74
|
-
// @ts-expect-error The callback version allows undefined for the result, but we'll never actually have an undefined result without an error.
|
|
75
|
-
return (0, util_1.promisify)(this.execute.bind(this))(executor, context);
|
|
76
|
-
}
|
|
77
71
|
/**
|
|
78
72
|
* Executes the state machine according to the specification
|
|
79
73
|
*/
|
|
80
|
-
execute(executor, context
|
|
74
|
+
async execute(executor, context) {
|
|
81
75
|
const keyVaultNamespace = executor._keyVaultNamespace;
|
|
82
76
|
const keyVaultClient = executor._keyVaultClient;
|
|
83
77
|
const metaDataClient = executor._metaDataClient;
|
|
84
78
|
const mongocryptdClient = executor._mongocryptdClient;
|
|
85
79
|
const mongocryptdManager = executor._mongocryptdManager;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (err) {
|
|
95
|
-
return callback(err);
|
|
80
|
+
let result = null;
|
|
81
|
+
while (context.state !== MONGOCRYPT_CTX_DONE && context.state !== MONGOCRYPT_CTX_ERROR) {
|
|
82
|
+
debug(`[context#${context.id}] ${stateToString.get(context.state) || context.state}`);
|
|
83
|
+
switch (context.state) {
|
|
84
|
+
case MONGOCRYPT_CTX_NEED_MONGO_COLLINFO: {
|
|
85
|
+
const filter = (0, bson_1.deserialize)(context.nextMongoOperation());
|
|
86
|
+
if (!metaDataClient) {
|
|
87
|
+
throw new errors_1.MongoCryptError('unreachable state machine state: entered MONGOCRYPT_CTX_NEED_MONGO_COLLINFO but metadata client is undefined');
|
|
96
88
|
}
|
|
89
|
+
const collInfo = await this.fetchCollectionInfo(metaDataClient, context.ns, filter);
|
|
97
90
|
if (collInfo) {
|
|
98
91
|
context.addMongoOperationResponse(collInfo);
|
|
99
92
|
}
|
|
100
93
|
context.finishMongoOperation();
|
|
101
|
-
|
|
102
|
-
});
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
case MONGOCRYPT_CTX_NEED_MONGO_MARKINGS: {
|
|
106
|
-
const command = context.nextMongoOperation();
|
|
107
|
-
if (!mongocryptdClient) {
|
|
108
|
-
return callback(new errors_1.MongoCryptError('unreachable state machine state: entered MONGOCRYPT_CTX_NEED_MONGO_MARKINGS but mongocryptdClient is undefined'));
|
|
94
|
+
break;
|
|
109
95
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
mongocryptdManager &&
|
|
115
|
-
!mongocryptdManager.bypassSpawn) {
|
|
116
|
-
mongocryptdManager.spawn(() => {
|
|
117
|
-
// TODO: should we be shadowing the variables here?
|
|
118
|
-
this.markCommand(mongocryptdClient, context.ns, command, (err, markedCommand) => {
|
|
119
|
-
if (err || !markedCommand)
|
|
120
|
-
return callback(err);
|
|
121
|
-
context.addMongoOperationResponse(markedCommand);
|
|
122
|
-
context.finishMongoOperation();
|
|
123
|
-
this.execute(executor, context, callback);
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
return callback(err);
|
|
96
|
+
case MONGOCRYPT_CTX_NEED_MONGO_MARKINGS: {
|
|
97
|
+
const command = context.nextMongoOperation();
|
|
98
|
+
if (!mongocryptdClient) {
|
|
99
|
+
throw new errors_1.MongoCryptError('unreachable state machine state: entered MONGOCRYPT_CTX_NEED_MONGO_MARKINGS but mongocryptdClient is undefined');
|
|
129
100
|
}
|
|
101
|
+
// When we are using the shared library, we don't have a mongocryptd manager.
|
|
102
|
+
const markedCommand = mongocryptdManager
|
|
103
|
+
? await mongocryptdManager.withRespawn(this.markCommand.bind(this, mongocryptdClient, context.ns, command))
|
|
104
|
+
: await this.markCommand(mongocryptdClient, context.ns, command);
|
|
130
105
|
context.addMongoOperationResponse(markedCommand);
|
|
131
106
|
context.finishMongoOperation();
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case MONGOCRYPT_CTX_NEED_MONGO_KEYS: {
|
|
110
|
+
const filter = context.nextMongoOperation();
|
|
111
|
+
const keys = await this.fetchKeys(keyVaultClient, keyVaultNamespace, filter);
|
|
112
|
+
if (keys.length === 0) {
|
|
113
|
+
// This is kind of a hack. For `rewrapManyDataKey`, we have tests that
|
|
114
|
+
// guarantee that when there are no matching keys, `rewrapManyDataKey` returns
|
|
115
|
+
// nothing. We also have tests for auto encryption that guarantee for `encrypt`
|
|
116
|
+
// we return an error when there are no matching keys. This error is generated in
|
|
117
|
+
// subsequent iterations of the state machine.
|
|
118
|
+
// Some apis (`encrypt`) throw if there are no filter matches and others (`rewrapManyDataKey`)
|
|
119
|
+
// do not. We set the result manually here, and let the state machine continue. `libmongocrypt`
|
|
120
|
+
// will inform us if we need to error by setting the state to `MONGOCRYPT_CTX_ERROR` but
|
|
121
|
+
// otherwise we'll return `{ v: [] }`.
|
|
122
|
+
result = { v: [] };
|
|
123
|
+
}
|
|
124
|
+
for await (const key of keys) {
|
|
142
125
|
context.addMongoOperationResponse((0, bson_1.serialize)(key));
|
|
143
|
-
}
|
|
126
|
+
}
|
|
144
127
|
context.finishMongoOperation();
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
case MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS: {
|
|
150
|
-
executor
|
|
151
|
-
.askForKMSCredentials()
|
|
152
|
-
.then(kmsProviders => {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS: {
|
|
131
|
+
const kmsProviders = await executor.askForKMSCredentials();
|
|
153
132
|
context.provideKMSProviders((0, bson_1.serialize)(kmsProviders));
|
|
154
|
-
|
|
155
|
-
})
|
|
156
|
-
.catch(err => {
|
|
157
|
-
callback(err);
|
|
158
|
-
});
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
case MONGOCRYPT_CTX_NEED_KMS: {
|
|
162
|
-
const promises = [];
|
|
163
|
-
let request;
|
|
164
|
-
while ((request = context.nextKMSRequest())) {
|
|
165
|
-
promises.push(this.kmsRequest(request));
|
|
133
|
+
break;
|
|
166
134
|
}
|
|
167
|
-
|
|
168
|
-
.
|
|
135
|
+
case MONGOCRYPT_CTX_NEED_KMS: {
|
|
136
|
+
const requests = Array.from(this.requests(context));
|
|
137
|
+
await Promise.all(requests);
|
|
169
138
|
context.finishKMSRequests();
|
|
170
|
-
|
|
171
|
-
})
|
|
172
|
-
.catch(err => {
|
|
173
|
-
callback(err);
|
|
174
|
-
});
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
// terminal states
|
|
178
|
-
case MONGOCRYPT_CTX_READY: {
|
|
179
|
-
const finalizedContext = context.finalize();
|
|
180
|
-
// TODO: Maybe rework the logic here so that instead of doing
|
|
181
|
-
// the callback here, finalize stores the result, and then
|
|
182
|
-
// we wait to MONGOCRYPT_CTX_DONE to do the callback
|
|
183
|
-
// @ts-expect-error finalize can change the state, check for error
|
|
184
|
-
if (context.state === MONGOCRYPT_CTX_ERROR) {
|
|
185
|
-
const message = context.status.message || 'Finalization error';
|
|
186
|
-
callback(new errors_1.MongoCryptError(message));
|
|
187
|
-
return;
|
|
139
|
+
break;
|
|
188
140
|
}
|
|
189
|
-
|
|
190
|
-
|
|
141
|
+
case MONGOCRYPT_CTX_READY: {
|
|
142
|
+
const finalizedContext = context.finalize();
|
|
143
|
+
// @ts-expect-error finalize can change the state, check for error
|
|
144
|
+
if (context.state === MONGOCRYPT_CTX_ERROR) {
|
|
145
|
+
const message = context.status.message || 'Finalization error';
|
|
146
|
+
throw new errors_1.MongoCryptError(message);
|
|
147
|
+
}
|
|
148
|
+
result = (0, bson_1.deserialize)(finalizedContext, this.options);
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
default:
|
|
152
|
+
throw new errors_1.MongoCryptError(`Unknown state: ${context.state}`);
|
|
191
153
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
154
|
+
}
|
|
155
|
+
if (context.state === MONGOCRYPT_CTX_ERROR || result == null) {
|
|
156
|
+
const message = context.status.message;
|
|
157
|
+
if (!message) {
|
|
158
|
+
debug(`unidentifiable error in MongoCrypt - received an error status from \`libmongocrypt\` but received no error message.`);
|
|
197
159
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
return;
|
|
201
|
-
default:
|
|
202
|
-
callback(new errors_1.MongoCryptError(`Unknown state: ${context.state}`));
|
|
203
|
-
return;
|
|
160
|
+
throw new errors_1.MongoCryptError(message ??
|
|
161
|
+
'unidentifiable error in MongoCrypt - received an error status from `libmongocrypt` but received no error message.');
|
|
204
162
|
}
|
|
163
|
+
return result;
|
|
205
164
|
}
|
|
206
165
|
/**
|
|
207
166
|
* Handles the request to the KMS service. Exposed for testing purposes. Do not directly invoke.
|
|
@@ -218,10 +177,10 @@ class StateMachine {
|
|
|
218
177
|
};
|
|
219
178
|
const message = request.message;
|
|
220
179
|
// TODO(NODE-3959): We can adopt `for-await on(socket, 'data')` with logic to control abort
|
|
221
|
-
// eslint-disable-next-line
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor
|
|
222
181
|
return new Promise(async (resolve, reject) => {
|
|
223
182
|
const buffer = new utils_1.BufferPool();
|
|
224
|
-
|
|
183
|
+
// eslint-disable-next-line prefer-const
|
|
225
184
|
let socket;
|
|
226
185
|
let rawSocket;
|
|
227
186
|
function destroySockets() {
|
|
@@ -279,7 +238,12 @@ class StateMachine {
|
|
|
279
238
|
const error = this.validateTlsOptions(kmsProvider, providerTlsOptions);
|
|
280
239
|
if (error)
|
|
281
240
|
reject(error);
|
|
282
|
-
|
|
241
|
+
try {
|
|
242
|
+
await this.setTlsOptions(providerTlsOptions, options);
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
return onerror(error);
|
|
246
|
+
}
|
|
283
247
|
}
|
|
284
248
|
}
|
|
285
249
|
socket = tls.connect(options, () => {
|
|
@@ -301,6 +265,11 @@ class StateMachine {
|
|
|
301
265
|
});
|
|
302
266
|
});
|
|
303
267
|
}
|
|
268
|
+
*requests(context) {
|
|
269
|
+
for (let request = context.nextKMSRequest(); request != null; request = context.nextKMSRequest()) {
|
|
270
|
+
yield this.kmsRequest(request);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
304
273
|
/**
|
|
305
274
|
* Validates the provided TLS options are secure.
|
|
306
275
|
*
|
|
@@ -323,13 +292,13 @@ class StateMachine {
|
|
|
323
292
|
* @param tlsOptions - The client TLS options for the provider.
|
|
324
293
|
* @param options - The existing connection options.
|
|
325
294
|
*/
|
|
326
|
-
setTlsOptions(tlsOptions, options) {
|
|
295
|
+
async setTlsOptions(tlsOptions, options) {
|
|
327
296
|
if (tlsOptions.tlsCertificateKeyFile) {
|
|
328
|
-
const cert = fs.
|
|
297
|
+
const cert = await fs.readFile(tlsOptions.tlsCertificateKeyFile);
|
|
329
298
|
options.cert = options.key = cert;
|
|
330
299
|
}
|
|
331
300
|
if (tlsOptions.tlsCAFile) {
|
|
332
|
-
options.ca = fs.
|
|
301
|
+
options.ca = await fs.readFile(tlsOptions.tlsCAFile);
|
|
333
302
|
}
|
|
334
303
|
if (tlsOptions.tlsCertificateKeyFilePassword) {
|
|
335
304
|
options.passphrase = tlsOptions.tlsCertificateKeyFilePassword;
|
|
@@ -346,21 +315,17 @@ class StateMachine {
|
|
|
346
315
|
* @param filter - A filter for the listCollections command
|
|
347
316
|
* @param callback - Invoked with the info of the requested collection, or with an error
|
|
348
317
|
*/
|
|
349
|
-
fetchCollectionInfo(client, ns, filter
|
|
318
|
+
async fetchCollectionInfo(client, ns, filter) {
|
|
350
319
|
const { db } = utils_1.MongoDBCollectionNamespace.fromString(ns);
|
|
351
|
-
client
|
|
320
|
+
const collections = await client
|
|
352
321
|
.db(db)
|
|
353
322
|
.listCollections(filter, {
|
|
354
323
|
promoteLongs: false,
|
|
355
324
|
promoteValues: false
|
|
356
325
|
})
|
|
357
|
-
.toArray()
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
return callback(undefined, info);
|
|
361
|
-
}, err => {
|
|
362
|
-
callback(err);
|
|
363
|
-
});
|
|
326
|
+
.toArray();
|
|
327
|
+
const info = collections.length > 0 ? (0, bson_1.serialize)(collections[0]) : null;
|
|
328
|
+
return info;
|
|
364
329
|
}
|
|
365
330
|
/**
|
|
366
331
|
* Calls to the mongocryptd to provide markings for a command.
|
|
@@ -370,18 +335,12 @@ class StateMachine {
|
|
|
370
335
|
* @param command - The command to execute.
|
|
371
336
|
* @param callback - Invoked with the serialized and marked bson command, or with an error
|
|
372
337
|
*/
|
|
373
|
-
markCommand(client, ns, command
|
|
338
|
+
async markCommand(client, ns, command) {
|
|
374
339
|
const options = { promoteLongs: false, promoteValues: false };
|
|
375
340
|
const { db } = utils_1.MongoDBCollectionNamespace.fromString(ns);
|
|
376
341
|
const rawCommand = (0, bson_1.deserialize)(command, options);
|
|
377
|
-
client
|
|
378
|
-
|
|
379
|
-
.command(rawCommand, options)
|
|
380
|
-
.then(response => {
|
|
381
|
-
return callback(undefined, (0, bson_1.serialize)(response, this.bsonOptions));
|
|
382
|
-
}, err => {
|
|
383
|
-
callback(err);
|
|
384
|
-
});
|
|
342
|
+
const response = await client.db(db).command(rawCommand, options);
|
|
343
|
+
return (0, bson_1.serialize)(response, this.bsonOptions);
|
|
385
344
|
}
|
|
386
345
|
/**
|
|
387
346
|
* Requests keys from the keyVault collection on the topology.
|
|
@@ -391,18 +350,13 @@ class StateMachine {
|
|
|
391
350
|
* @param filter - The filter for the find query against the keyVault Collection
|
|
392
351
|
* @param callback - Invoked with the found keys, or with an error
|
|
393
352
|
*/
|
|
394
|
-
fetchKeys(client, keyVaultNamespace, filter
|
|
353
|
+
fetchKeys(client, keyVaultNamespace, filter) {
|
|
395
354
|
const { db: dbName, collection: collectionName } = utils_1.MongoDBCollectionNamespace.fromString(keyVaultNamespace);
|
|
396
|
-
client
|
|
355
|
+
return client
|
|
397
356
|
.db(dbName)
|
|
398
357
|
.collection(collectionName, { readConcern: { level: 'majority' } })
|
|
399
358
|
.find((0, bson_1.deserialize)(filter))
|
|
400
|
-
.toArray()
|
|
401
|
-
.then(keys => {
|
|
402
|
-
return callback(undefined, keys);
|
|
403
|
-
}, err => {
|
|
404
|
-
callback(err);
|
|
405
|
-
});
|
|
359
|
+
.toArray();
|
|
406
360
|
}
|
|
407
361
|
}
|
|
408
362
|
exports.StateMachine = StateMachine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../../src/client-side-encryption/state_machine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../../src/client-side-encryption/state_machine.ts"],"names":[],"mappings":"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"}
|
package/lib/cmap/auth/scram.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ScramSHA256 = exports.ScramSHA1 = void 0;
|
|
4
|
+
const saslprep_1 = require("@mongodb-js/saslprep");
|
|
4
5
|
const crypto = require("crypto");
|
|
5
6
|
const util_1 = require("util");
|
|
6
7
|
const bson_1 = require("../../bson");
|
|
7
|
-
const deps_1 = require("../../deps");
|
|
8
8
|
const error_1 = require("../../error");
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const auth_provider_1 = require("./auth_provider");
|
|
@@ -21,10 +21,6 @@ class ScramSHA extends auth_provider_1.AuthProvider {
|
|
|
21
21
|
if (!credentials) {
|
|
22
22
|
throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
|
|
23
23
|
}
|
|
24
|
-
if (cryptoMethod === 'sha256' &&
|
|
25
|
-
('kModuleError' in deps_1.saslprep || typeof deps_1.saslprep !== 'function')) {
|
|
26
|
-
(0, utils_1.emitWarning)('Warning: no saslprep library specified. Passwords will not be sanitized');
|
|
27
|
-
}
|
|
28
24
|
const nonce = await this.randomBytesAsync(24);
|
|
29
25
|
// store the nonce for later use
|
|
30
26
|
authContext.nonce = nonce;
|
|
@@ -98,18 +94,11 @@ async function continueScramConversation(cryptoMethod, response, authContext) {
|
|
|
98
94
|
const db = credentials.source;
|
|
99
95
|
const username = cleanUsername(credentials.username);
|
|
100
96
|
const password = credentials.password;
|
|
101
|
-
|
|
102
|
-
if (cryptoMethod === 'sha256') {
|
|
103
|
-
processedPassword =
|
|
104
|
-
'kModuleError' in deps_1.saslprep || typeof deps_1.saslprep !== 'function' ? password : (0, deps_1.saslprep)(password);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
processedPassword = passwordDigest(username, password);
|
|
108
|
-
}
|
|
97
|
+
const processedPassword = cryptoMethod === 'sha256' ? (0, saslprep_1.saslprep)(password) : passwordDigest(username, password);
|
|
109
98
|
const payload = Buffer.isBuffer(response.payload)
|
|
110
99
|
? new bson_1.Binary(response.payload)
|
|
111
100
|
: response.payload;
|
|
112
|
-
const dict = parsePayload(payload
|
|
101
|
+
const dict = parsePayload(payload);
|
|
113
102
|
const iterations = parseInt(dict.i, 10);
|
|
114
103
|
if (iterations && iterations < 4096) {
|
|
115
104
|
// TODO(NODE-3483)
|
|
@@ -127,7 +116,11 @@ async function continueScramConversation(cryptoMethod, response, authContext) {
|
|
|
127
116
|
const clientKey = HMAC(cryptoMethod, saltedPassword, 'Client Key');
|
|
128
117
|
const serverKey = HMAC(cryptoMethod, saltedPassword, 'Server Key');
|
|
129
118
|
const storedKey = H(cryptoMethod, clientKey);
|
|
130
|
-
const authMessage = [
|
|
119
|
+
const authMessage = [
|
|
120
|
+
clientFirstMessageBare(username, nonce),
|
|
121
|
+
payload.toString('utf8'),
|
|
122
|
+
withoutProof
|
|
123
|
+
].join(',');
|
|
131
124
|
const clientSignature = HMAC(cryptoMethod, storedKey, authMessage);
|
|
132
125
|
const clientProof = `p=${xor(clientKey, clientSignature)}`;
|
|
133
126
|
const clientFinal = [withoutProof, clientProof].join(',');
|
|
@@ -138,7 +131,7 @@ async function continueScramConversation(cryptoMethod, response, authContext) {
|
|
|
138
131
|
payload: new bson_1.Binary(Buffer.from(clientFinal))
|
|
139
132
|
};
|
|
140
133
|
const r = await connection.commandAsync((0, utils_1.ns)(`${db}.$cmd`), saslContinueCmd, undefined);
|
|
141
|
-
const parsedResponse = parsePayload(r.payload
|
|
134
|
+
const parsedResponse = parsePayload(r.payload);
|
|
142
135
|
if (!compareDigest(Buffer.from(parsedResponse.v, 'base64'), serverSignature)) {
|
|
143
136
|
throw new error_1.MongoRuntimeError('Server returned an invalid signature');
|
|
144
137
|
}
|
|
@@ -154,8 +147,9 @@ async function continueScramConversation(cryptoMethod, response, authContext) {
|
|
|
154
147
|
await connection.commandAsync((0, utils_1.ns)(`${db}.$cmd`), retrySaslContinueCmd, undefined);
|
|
155
148
|
}
|
|
156
149
|
function parsePayload(payload) {
|
|
150
|
+
const payloadStr = payload.toString('utf8');
|
|
157
151
|
const dict = {};
|
|
158
|
-
const parts =
|
|
152
|
+
const parts = payloadStr.split(',');
|
|
159
153
|
for (let i = 0; i < parts.length; i++) {
|
|
160
154
|
const valueParts = parts[i].split('=');
|
|
161
155
|
dict[valueParts[0]] = valueParts[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scram.js","sourceRoot":"","sources":["../../../src/cmap/auth/scram.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,+BAAiC;AAEjC,qCAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"scram.js","sourceRoot":"","sources":["../../../src/cmap/auth/scram.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const constants_1 = require("../constants");
|
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const commands_1 = require("./commands");
|
|
7
7
|
/**
|
|
8
|
-
* An event indicating the start of a given
|
|
8
|
+
* An event indicating the start of a given command
|
|
9
9
|
* @public
|
|
10
10
|
* @category Event
|
|
11
11
|
*/
|
package/lib/cmap/connect.js
CHANGED
|
@@ -376,7 +376,7 @@ function makeSocks5Connection(options, callback) {
|
|
|
376
376
|
function connectionFailureError(type, err) {
|
|
377
377
|
switch (type) {
|
|
378
378
|
case 'error':
|
|
379
|
-
return new error_1.MongoNetworkError(err);
|
|
379
|
+
return new error_1.MongoNetworkError(error_1.MongoError.buildErrorMessage(err), { cause: err });
|
|
380
380
|
case 'timeout':
|
|
381
381
|
return new error_1.MongoNetworkTimeoutError('connection timed out');
|
|
382
382
|
case 'close':
|