/sni-reader

Extracts the Server Name Indication from a raw TLS Stream

Primary LanguageJavaScriptMIT LicenseMIT

sni-reader

Version npmnpm DownloadsBuild StatusCoverage StatusDependenciesTips

sni-reader extracts the Server Name Indication from a raw TLS stream. It reads the ClientHello message and extracts the value of the SNI extension if the extension is present.

Usage

var net = require('net')
var sni = require('sni-reader')

const serverNameMap =
  { 'example.com': 8001
  , 'example.net': 8002
  }

net.createServer(function(socket) {
  sni(socket, function(err, serverName) {
    const port = serverNameMap[serverName]
    socket.pipe(net.connect(port)).pipe(socket)
  })
}).listen(80)

Install

npm install -S sni-reader

License

MIT