tls: add --tls-cipher-list command line switch
authorJames M Snell <jasnell@gmail.com>
Mon, 17 Aug 2015 22:51:51 +0000 (15:51 -0700)
committerJames M Snell <jasnell@gmail.com>
Sun, 23 Aug 2015 15:52:01 +0000 (08:52 -0700)
commit5ba868f02493a9d81637d7f5983a47536332d7c8
tree953013f47b6c6b5e2ab3b941558723826ddca6f4
parent3a7be23f986f95412f968979c5d83ee68f3f2da2
tls: add --tls-cipher-list command line switch

This adds a new `--tls-cipher-list` command line switch
that can be used to override the built-in default cipher
list. The intent of this is to make it possible to enforce
an alternative default cipher list at the process level.
Overriding the default cipher list is still permitted at
the application level by changing the value of
`require('tls').DEFAULT_CIPHERS`.

As part of the change, the built in default list is moved
out of tls.js and into node_constants.h and node_constants.cc.
Two new constants are added to require('constants'):

  * defaultCipherList (the active default cipher list)
  * defaultCoreCipherList (the built-in default cipher list)

A test case and doc changes are included.

A new NODE_DEFINE_STRING_CONSTANT macro is also created in
node_internals.h

When node_constants is initialized, it will pick up either
the passed in command line switch or fallback to the default
built-in suite.

Within joyent/node, this change had originaly been wrapped
up with a number of other related commits involving the
removal of the RC4 cipher. This breaks out this isolated
change.

/cc @mhdawson, @misterdjules, @trevnorris, @indutny, @rvagg

Reviewed By: Ben Noordhuis <ben@strongloop.com>
PR-URL: https://github.com/nodejs/node/pull/2412
doc/api/tls.markdown
doc/iojs.1
lib/tls.js
src/node.cc
src/node_constants.cc
src/node_constants.h
src/node_internals.h
test/parallel/test-tls-cipher-list.js [new file with mode: 0644]