Socket
Socket
Sign inDemoInstall

mongodb-core

Package Overview
Dependencies
Maintainers
2
Versions
177
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb-core - npm Package Compare versions

Comparing version 2.1.13 to 2.1.14

lib/utils.js

11

HISTORY.md

@@ -0,5 +1,12 @@

2.1.14 2017-07-07
-----------------
* NODE-1073 updates scram.js hi() algorithm to utilize crypto.pbkdf2Sync()
* NODE-1049 only include primary server if there are no secondary servers for
readPrefrence secondaryPreferred
* moved `assign` polyfill to shared utils, replace usage of `extend` in tests
2.1.13 2017-06-19
-----------------
- NODE-1039 ensure we force destroy server instances, forcing queue to be flushed.
- Use actual server type in standalone SDAM events.
* NODE-1039 ensure we force destroy server instances, forcing queue to be flushed.
* Use actual server type in standalone SDAM events.

@@ -6,0 +13,0 @@ 2.1.12 2017-06-02

42

lib/auth/scram.js

@@ -77,22 +77,15 @@ "use strict";

// Create a final digest
// hiCache stores previous salt creations so it's not regenerated per-pool member
var _hiCache = {};
var hi = function(data, salt, iterations) {
// Create digest
var digest = function(msg) {
var hmac = crypto.createHmac('sha1', data);
hmac.update(msg);
return new Buffer(hmac.digest('base64'), 'base64');
}
// Create variables
salt = Buffer.concat([salt, new Buffer('\x00\x00\x00\x01')])
var ui = digest(salt);
var u1 = ui;
for(var i = 0; i < iterations - 1; i++) {
u1 = digest(u1);
ui = xor(ui, u1);
}
return ui;
var key = [data, salt.toString("base64"), iterations].join("_");
// check if we've already generated this salt
if (_hiCache[key] !== undefined) { return _hiCache[key] }
// generate the salt and store it in the cache for the next worker
var data = crypto.pbkdf2Sync(data, salt, iterations, 20, "sha1");
_hiCache[key] = data;
return data;
}

@@ -236,12 +229,3 @@

var clientFinal = [withoutProof, clientProof].join(',');
// Generate server key
hmac = crypto.createHmac('sha1', saltedPassword);
hmac.update(new Buffer('Server Key'))
var serverKey = new Buffer(hmac.digest('base64'), 'base64');
// Generate server signature
hmac = crypto.createHmac('sha1', serverKey);
hmac.update(new Buffer(authMsg))
//

@@ -248,0 +232,0 @@ // Create continue message

@@ -11,3 +11,3 @@ "use strict";

CommandResult = require('./command_result'),
assign = require('../topologies/shared').assign;
assign = require('../utils').assign;

@@ -622,3 +622,3 @@ var MongoCR = require('../auth/mongocr')

// Emit the connect event
return self.emit('connect', self);
return self.emit('connect', self);
}

@@ -873,3 +873,3 @@

// Destroy the topology
// Destroy the topology
return destroy(self, connections);

@@ -911,3 +911,3 @@ }

// } else if (self.queue.length > 0 && !this.reconnectId) {
} else {

@@ -914,0 +914,0 @@ // Ensure we empty the queue

@@ -11,3 +11,3 @@ "use strict"

Server = require('./server'),
assign = require('./shared').assign,
assign = require('../utils').assign,
clone = require('./shared').clone,

@@ -272,3 +272,3 @@ sdam = require('./shared'),

address: this.name
});
});
}

@@ -398,3 +398,3 @@ }

address: server.name
});
});

@@ -566,3 +566,3 @@ // Emit the initial topology

address: server.name
});
});

@@ -773,3 +773,3 @@ // Add temp handlers

address: x.name
});
});

@@ -776,0 +776,0 @@ // Destroy the server

@@ -762,4 +762,6 @@ "use strict"

// Add primary to list if not a secondary read preference
if(self.primary && readPreference.preference != 'secondary') {
servers.push(self.primary);
if(self.primary
&& readPreference.preference != 'secondary'
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

@@ -772,2 +774,9 @@

// If we have a secondaryPreferred readPreference and no server add the primary
if(self.primary
&& servers.length == 0
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}
// Filter by tags

@@ -812,4 +821,6 @@ servers = filterByTags(readPreference, servers);

// Add primary to list if not a secondary read preference
if(self.primary && readPreference.preference != 'secondary') {
servers.push(self.primary);
if(self.primary
&& readPreference.preference != 'secondary'
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

@@ -822,2 +833,9 @@

// If we have a secondaryPreferred readPreference and no server add the primary
if(servers.length == 0
&& self.primary
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}
// Filter by tags

@@ -824,0 +842,0 @@ servers = filterByTags(readPreference, servers);

@@ -13,3 +13,3 @@ "use strict"

ReplSetState = require('./replset_state'),
assign = require('./shared').assign,
assign = require('../utils').assign,
clone = require('./shared').clone,

@@ -439,3 +439,3 @@ Timeout = require('./shared').Timeout,

var monitorServer = function(host, self, options) {
// If this is not the initial scan
// If this is not the initial scan
// Is this server already being monitoried, then skip monitoring

@@ -475,3 +475,3 @@ if(!options.haInterval) {

// Filter out all called intervaliIds
self.intervalIds = self.intervalIds.filter(function(intervalId) {
self.intervalIds = self.intervalIds.filter(function(intervalId) {
return intervalId.isRunning();

@@ -556,3 +556,3 @@ } );

return connectNewServers(self, self.s.replicaSetState.unknownServers, function(err) {
// Don't emit errors if the connection was already
// Don't emit errors if the connection was already
if(self.state === DESTROYED || self.state === UNREFERENCED) {

@@ -590,3 +590,3 @@ return;

connectNewServers(self, self.s.replicaSetState.unknownServers, function() {
var monitoringFrequencey = self.s.replicaSetState.hasPrimary()
var monitoringFrequencey = self.s.replicaSetState.hasPrimary()
? _haInterval : self.s.minHeartbeatFrequencyMS;

@@ -593,0 +593,0 @@

@@ -18,3 +18,3 @@ "use strict"

sdam = require('./shared'),
assign = require('./shared').assign,
assign = require('../utils').assign,
createClientInfo = require('./shared').createClientInfo;

@@ -21,0 +21,0 @@

@@ -183,27 +183,2 @@ "use strict"

// Object.assign method or polyfille
var assign = Object.assign ? Object.assign : function assign(target) {
if (target === undefined || target === null) {
throw new TypeError('Cannot convert first argument to object');
}
var to = Object(target);
for (var i = 1; i < arguments.length; i++) {
var nextSource = arguments[i];
if (nextSource === undefined || nextSource === null) {
continue;
}
var keysArray = Object.keys(Object(nextSource));
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
var nextKey = keysArray[nextIndex];
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (desc !== undefined && desc.enumerable) {
to[nextKey] = nextSource[nextKey];
}
}
}
return to;
}
//

@@ -238,3 +213,3 @@ // Clone the options

return timer !== false;
};
};
}

@@ -261,3 +236,3 @@

return timer !== false;
};
};
}

@@ -304,3 +279,3 @@

for(var i = 0; i < previous.servers.length; i++) {
if(previous.servers[i].address.toLowerCase()
if(previous.servers[i].address.toLowerCase()
=== current.servers[j].address.toLowerCase()) {

@@ -353,3 +328,2 @@ found = true;

module.exports.cloneOptions = cloneOptions;
module.exports.assign = assign;
module.exports.createClientInfo = createClientInfo;

@@ -356,0 +330,0 @@ module.exports.clone = clone;

{
"name": "mongodb-core",
"version": "2.1.13",
"version": "2.1.14",
"description": "Core MongoDB driver functionality, no bells and whistles and meant for integration not end applications",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc