|
1 | 1 | import { type MongoCrypt, type MongoCryptOptions } from 'mongodb-client-encryption'; |
2 | 2 | import * as net from 'net'; |
3 | 3 |
|
4 | | -import { deserialize, type Document, serialize } from '../bson'; |
| 4 | +import { ByteUtils, deserialize, type Document, serialize } from '../bson'; |
5 | 5 | import { type CommandOptions, type ProxyOptions } from '../cmap/connection'; |
6 | 6 | import { kDecorateResult } from '../constants'; |
7 | 7 | import { getMongoDBClientEncryption } from '../deps'; |
@@ -256,20 +256,26 @@ export class AutoEncrypter { |
256 | 256 | errorWrapper: defaultErrorWrapper |
257 | 257 | }; |
258 | 258 | if (options.schemaMap) { |
259 | | - mongoCryptOptions.schemaMap = Buffer.isBuffer(options.schemaMap) |
260 | | - ? options.schemaMap |
261 | | - : (serialize(options.schemaMap) as Buffer); |
| 259 | + if (ByteUtils.isUint8Array(options.schemaMap)) { |
| 260 | + mongoCryptOptions.schemaMap = options.schemaMap; |
| 261 | + } else { |
| 262 | + mongoCryptOptions.schemaMap = serialize(options.schemaMap); |
| 263 | + } |
262 | 264 | } |
263 | 265 |
|
264 | 266 | if (options.encryptedFieldsMap) { |
265 | | - mongoCryptOptions.encryptedFieldsMap = Buffer.isBuffer(options.encryptedFieldsMap) |
266 | | - ? options.encryptedFieldsMap |
267 | | - : (serialize(options.encryptedFieldsMap) as Buffer); |
| 267 | + if (ByteUtils.isUint8Array(options.encryptedFieldsMap)) { |
| 268 | + mongoCryptOptions.encryptedFieldsMap = options.encryptedFieldsMap; |
| 269 | + } else { |
| 270 | + mongoCryptOptions.encryptedFieldsMap = serialize(options.encryptedFieldsMap); |
| 271 | + } |
268 | 272 | } |
269 | 273 |
|
270 | | - mongoCryptOptions.kmsProviders = !Buffer.isBuffer(this._kmsProviders) |
271 | | - ? (serialize(this._kmsProviders) as Buffer) |
272 | | - : this._kmsProviders; |
| 274 | + if (ByteUtils.isUint8Array(this._kmsProviders)) { |
| 275 | + mongoCryptOptions.kmsProviders = this._kmsProviders; |
| 276 | + } else { |
| 277 | + mongoCryptOptions.kmsProviders = serialize(this._kmsProviders); |
| 278 | + } |
273 | 279 |
|
274 | 280 | if (options.options?.logger) { |
275 | 281 | mongoCryptOptions.logger = options.options.logger; |
@@ -396,7 +402,7 @@ export class AutoEncrypter { |
396 | 402 | return cmd; |
397 | 403 | } |
398 | 404 |
|
399 | | - const commandBuffer = Buffer.isBuffer(cmd) ? cmd : serialize(cmd, options); |
| 405 | + const commandBuffer: Uint8Array = serialize(cmd, options); |
400 | 406 | const context = this._mongocrypt.makeEncryptionContext( |
401 | 407 | MongoDBCollectionNamespace.fromString(ns).db, |
402 | 408 | commandBuffer |
|
0 commit comments