tls add secureOptions documentation

PR-URL: https://github.com/joyent/node/pull/8553
Reviewed-By: Fedor Indutny <fedor@indutny.com>
configure: disable ssl2/ssl3 by default

PR-URL: https://github.com/joyent/node/pull/8551
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
doc: document why SSL2/SSL3 is disabled

PR-URL: https://github.com/joyent/node/pull/8551
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
deps: update openssl to 1.0.1j
test: fix test-crypto-stream

Because of constant-timeness change made in openssl-1.0.1j the error is
no longer returned from EVP_DecryptFinal_ex. Now it just return 0, and
thus the error message does not contain proper error code. Adapt to this
change, there is not much that we could do about it.
build: revert change to disable ssl2 and ssl3
crypto: allow runtime opt in using SSLv2/SSLv3

This change disables SSLv2/SSLv3 use by default, and introduces a
command line flag to opt into using SSLv2/SSLv3.

SSLv2 and SSLv3 are considered unsafe, and should only be used in
situations where compatibility with other components is required and
they cannot be upgrade to support newer forms of TLS.
test: crypto-domains avoid spurious failures

The order of the callbacks is non-deterministic, so don't expect the
error messages to come back in the same order every time, instead just
verify they are expected messages.
test: fix test-net-listen-fd0 for pipes

In the case of a pipe'd input, i.e. from the CI the fd will be a PIPE
and when listen() is called it will return ENOTSOCK instead of EINVAL.

Backport: cd2d3aedaab5cb1a19794ca3ca50d7436ed424cf
crypto: extra caution in setting ssl options

Always set ssl2/ssl3 disabled based on whether they are enabled in Node.
In some corner-case scenario, node with OPENSSL_NO_SSL3 defined could
be linked to openssl that has SSL3 enabled.
docs: update api location
doc: clarify poodle mitigation
crypto: move disaling SSLv2/3 into JavaScript