diff --git a/lib/WebSocket.js b/lib/WebSocket.js index bb09e851b..103fd8f28 100644 --- a/lib/WebSocket.js +++ b/lib/WebSocket.js @@ -619,7 +619,7 @@ function initAsClient(address, protocols, options) { // begin handshake var key = new Buffer(options.value.protocolVersion + '-' + Date.now()).toString('base64'); var shasum = crypto.createHash('sha1'); - shasum.update(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'); + shasum.update(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', 'binary'); var expectedServerKey = shasum.digest('base64'); var agent = options.value.agent; diff --git a/lib/WebSocketServer.js b/lib/WebSocketServer.js index 476cf7100..789c8813c 100644 --- a/lib/WebSocketServer.js +++ b/lib/WebSocketServer.js @@ -218,7 +218,7 @@ function handleHybiUpgrade(req, socket, upgradeHead, cb) { // calc key var key = req.headers['sec-websocket-key']; var shasum = crypto.createHash('sha1'); - shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); + shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", 'binary'); key = shasum.digest('base64'); var headers = [ @@ -422,9 +422,9 @@ function handleHixieUpgrade(req, socket, upgradeHead, cb) { n >> 24 & 0xFF, n >> 16 & 0xFF, n >> 8 & 0xFF, - n & 0xFF)); + n & 0xFF), 'binary'); }); - md5.update(nonce.toString('binary')); + md5.update(nonce.toString('binary'), 'binary'); socket.setTimeout(0); socket.setNoDelay(true); diff --git a/test/testserver.js b/test/testserver.js index e17cbb8ea..be158b5c4 100644 --- a/test/testserver.js +++ b/test/testserver.js @@ -49,7 +49,7 @@ function validServer(server, req, socket) { // calc key var key = req.headers['sec-websocket-key']; var shasum = crypto.createHash('sha1'); - shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); + shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", 'binary'); key = shasum.digest('base64'); var headers = [ @@ -113,7 +113,7 @@ function invalidRequestHandler(server, req, socket) { // calc key var key = req.headers['sec-websocket-key']; var shasum = crypto.createHash('sha1'); - shasum.update(key + "bogus"); + shasum.update(key + "bogus", 'binary'); key = shasum.digest('base64'); var headers = [ @@ -142,7 +142,7 @@ function closeAfterConnectHandler(server, req, socket) { // calc key var key = req.headers['sec-websocket-key']; var shasum = crypto.createHash('sha1'); - shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); + shasum.update(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", 'binary'); key = shasum.digest('base64'); var headers = [