| 1234567891011121314151617181920212223242526272829303132333435 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.MongoCR = void 0;const crypto = require("crypto");const error_1 = require("../../error");const utils_1 = require("../../utils");const auth_provider_1 = require("./auth_provider");class MongoCR extends auth_provider_1.AuthProvider {    async auth(authContext) {        const { connection, credentials } = authContext;        if (!credentials) {            throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');        }        const { username, password, source } = credentials;        const { nonce } = await connection.commandAsync((0, utils_1.ns)(`${source}.$cmd`), { getnonce: 1 }, undefined);        const hashPassword = crypto            .createHash('md5')            .update(`${username}:mongo:${password}`, 'utf8')            .digest('hex');        // Final key        const key = crypto            .createHash('md5')            .update(`${nonce}${username}${hashPassword}`, 'utf8')            .digest('hex');        const authenticateCommand = {            authenticate: 1,            user: username,            nonce,            key        };        await connection.commandAsync((0, utils_1.ns)(`${source}.$cmd`), authenticateCommand, undefined);    }}exports.MongoCR = MongoCR;//# sourceMappingURL=mongocr.js.map
 |