Commit Graph
100 Commits
Author SHA1 Message Date
Sam Roberts 3f81f2a421 doc: no longer maintain a CNA structure
Node.js hasn't touched the cve-management repo since the Feb 2019
security release, we've used the HackerOne CVE allocation process.

Maintaining our status as a CNA is not zero cost, there is some routine
adminstration that is requested (see this doc for details).

As we no longer use the CVE management process, I propose removing it.
If this lands, I will go through the interactions with Mitre so that
Node.js is no longer a CNA and cleanup related resources (email aliases,
archive the cve-management repo, whatever else I find).

PR-URL: https://github.com/nodejs/node/pull/33639
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
2020-07-03 14:38:26 -07:00
Sam Roberts 1aa847f743 doc: move sam-github to TSC Emeriti
I don't have enough time to remain active in the TSC, so I will step
down.

PR-URL: https://github.com/nodejs/node/pull/34095
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-07-02 11:16:32 -07:00
Sam Roberts 8e956f450a test: mark test flaky on freebsd
Test name test-worker-message-port-message-before-close is too long for
a commit message description.

Refs: https://github.com/nodejs/node/issues/31280

PR-URL: https://github.com/nodejs/node/pull/32849
Refs: https://github.com/nodejs/node/issues/28803
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-04-28 19:18:13 +02:00
Sam Roberts 22192fc0a9 test: flaky test-stdout-close-catch on freebsd
Refs: https://github.com/nodejs/node/issues/28803

PR-URL: https://github.com/nodejs/node/pull/32849
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-04-28 19:18:04 +02:00
Sam Roberts 684a81d023 doc: make openssl maintenance position independent
It used to have some `cd` commands that if done literally would
invalidate the subsequent commands. Modify them to be more accurate,
which also simplifies pasting them directly into the console from the
guide while doing an update.

PR-URL: https://github.com/nodejs/node/pull/32977
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
2020-04-28 00:30:49 +02:00
Sam Roberts 3f5142daa8 test: mark cpu-prof-dir-worker flaky on all
Refs: https://github.com/nodejs/node/issues/27611#issuecomment-613100468

PR-URL: https://github.com/nodejs/node/pull/32828
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2020-04-14 19:53:16 -07:00
Sam Roberts afae925fe9 test: mark test-worker-prof flaky on arm
Refs: https://github.com/nodejs/node/issues/26401#issuecomment-613095719

PR-URL: https://github.com/nodejs/node/pull/32826
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2020-04-14 10:59:00 -07:00
Sam Roberts a12aedf41b test: mark test-http2-reset-flood flaky on all
Refs: https://github.com/nodejs/node/issues/29802
Refs: https://github.com/nodejs/node/pull/32595

PR-URL: https://github.com/nodejs/node/pull/32825
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2020-04-14 10:57:47 -07:00
Sam Roberts fcde1de382 src: sync access for report and openssl options
Audited usage of per-process OpenSSL and Report options, adding two
required mutexes.

Also documented existence and typical use of the per-process cli option
mutex.

PR-URL: https://github.com/nodejs/node/pull/32618
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2020-04-08 17:35:07 +02:00
Sam Roberts 95c08853ee src: consistently declare BindingData class
Its defined as a class, so forward declare as a class, fixing type
mismatch warning.

PR-URL: https://github.com/nodejs/node/pull/32677
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2020-04-06 08:44:07 -07:00
Sam Roberts 2fc038a447 doc: make openssl commit messages be valid
The current commit message is wrapped at 80 columns, but commit message
descriptions should wrap at 72, so the maintainer has to fix the
message up instead of just copying it in. They might not notice that
requirement, in which case it has to be fixed during landing because
`git node land` notices. To prevent that, make the message template
wrap before 72 to keep the landing process as simple as possible.

PR-URL: https://github.com/nodejs/node/pull/32602
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-04-05 21:11:08 +02:00
Sam Roberts 867ff41d87 src: handle report options on fatalerror
Follow on to https://github.com/nodejs/node/pull/32207, 3 other options
are also not respected under situations that the isolate is not
available.

PR-URL: https://github.com/nodejs/node/pull/32497
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-03-31 11:59:25 -07:00
Sam Roberts 6b5f82d7f8 test: end tls connection with some data
In openssl-1.1.1e the client doesn't seem to like having the TLS
connection shut down with no data sent, so send an empty string. A
number of related issues showed up in the TLS1.3 port, so this is
not entirely surprising.

PR-URL: https://github.com/nodejs/node/pull/32328
Fixes: https://github.com/nodejs/node/issues/32210
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-03-23 07:37:40 -07:00
Sam Roberts 1d49558273 Revert "build: add asan check in Github action"
This reverts commit 3ec4b21b1c.

See: https://github.com/nodejs/node/issues/32257

PR-URL: https://github.com/nodejs/node/pull/32324
Reviewed-By: Matheus Marchini <mat@mmarchini.me>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>
2020-03-21 20:55:27 -07:00
Sam Roberts 131b50d187 build: expand ASAN acronym in configure help
There is lots of space to expand this not-so-well-known acronym in the
option usage message.

PR-URL: https://github.com/nodejs/node/pull/32325
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Matheus Marchini <mat@mmarchini.me>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-03-20 14:28:52 -07:00
Sam Roberts f7771fffd0 doc: update security release process
PR-URL: https://github.com/nodejs/node/pull/31679
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2020-03-19 17:23:39 -04:00
Sam Roberts 5eb85dd972 deps,doc: move openssl maintenance guide to doc
The maintainenance guides are mostly in doc/guides-maintaining-*.md, so
move the OpenSSL one there, too.

PR-URL: https://github.com/nodejs/node/pull/32209
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-03-17 09:02:22 -07:00
Sam Roberts 8cbbc70fbc src,cli: support compact (one-line) JSON reports
Multi-line JSON is more human readable, but harder for log aggregators
to consume, they usually require a log message per line, particularly
for JSON. Compact output will be consumable by aggregators such as EFK
(Elastic Search-Fluentd-Kibana), LogDNA, DataDog, etc.

PR-URL: https://github.com/nodejs/node/pull/32254
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-03-17 08:42:41 -07:00
Sam Roberts 6de7b635a6 doc: clarify windows specific behaviour
It was not possible to understand which, if either, of the sentences
after the first ("Windows does not... emulation") apply specifically to
Windows.  Specifically, `kill(pid, 0)` works on Linux and Windows and I
couldn't find it documented anywhere else, but the unconditional
termination occurs only on Windows.

PR-URL: https://github.com/nodejs/node/pull/32079
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2020-03-11 17:34:25 +01:00
Sam Roberts 811b3a9931 src: use C++ style for struct with initializers
Fixes warning on clang 11:

        In file included from ../../src/node_http2.cc:6:
        ../../src/node_http2.h:508:15: warning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
        typedef struct {
                      ^
                       SessionJSFields
        ../../src/node_http2.h:512:33: note: type is not C-compatible due to this default member initializer
          uint32_t max_invalid_frames = 1000;
                                        ^~~~
        ../../src/node_http2.h:514:3: note: type is given name 'SessionJSFields' for linkage purposes by this typedef declaration
        } SessionJSFields;
          ^

PR-URL: https://github.com/nodejs/node/pull/32134
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
2020-03-10 07:17:10 +01:00
Sam Roberts 24a4f76709 test: mark empty udp tests flaky on OS X
They fail on OS X 10.15 (aka "Catalina"), but pass on earlier OS X.

Refs: https://github.com/nodejs/node/issues/30030
Refs: https://github.com/nodejs/build/pull/2189#issuecomment-589767606

PR-URL: https://github.com/nodejs/node/pull/31936
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2020-02-26 06:11:05 -08:00
Sam Roberts 9a1719b541 deps: update zlib to upstream d7f3ca9
Updated as described in doc/guides/maintaining-zlib.md.

PR-URL: https://github.com/nodejs/node/pull/31800
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
2020-02-24 11:52:55 -08:00
Sam Roberts 0d95eda499 doc: describe how to update zlib
See:
- https://github.com/nodejs/node/pull/31201

PR-URL: https://github.com/nodejs/node/pull/31800
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
2020-02-24 11:52:51 -08:00
Sam Roberts 5f0181a079 deps: move zlib maintenance info to guides
deps/zlib/README.md is not part of the upstream zlib, it is a Node.js
specific addition describing how to maintain zlib and should be in
doc/guides/.

PR-URL: https://github.com/nodejs/node/pull/31800
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
2020-02-24 11:52:49 -08:00
Sam Roberts efd5a6b2ed test: using TE to smuggle reqs is not possible
See: https://hackerone.com/reports/735748

PR-URL: https://github.com/nodejs-private/node-private/pull/199
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
2020-02-06 15:22:51 +01:00
Sam Roberts fe3975783c http: strip trailing OWS from header values
HTTP header values can have trailing OWS, but it should be stripped.  It
is not semantically part of the header's value, and if treated as part
of the value, it can cause spurious inequality between expected and
actual header values.

Note that a single SPC of leading OWS is common before the field-value,
and it is already handled by the HTTP parser by stripping all leading
OWS. It is only the trailing OWS that must be stripped by the parser
user.

	header-field   = field-name ":" OWS field-value OWS
	    ; https://tools.ietf.org/html/rfc7230#section-3.2
	OWS            = *( SP / HTAB )
	    ; https://tools.ietf.org/html/rfc7230#section-3.2.3

Fixes: https://hackerone.com/reports/730779

PR-URL: https://github.com/nodejs-private/node-private/pull/189
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-02-06 15:22:50 +01:00
Sam Roberts f8e7551295 benchmark: support optional headers with wrk
wrk did not support sending optional headers, they were silently
ignored. This appears to be an oversight, they were supported for
autocannon.

PR-URL: https://github.com/nodejs-private/node-private/pull/189
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-02-06 15:22:49 +01:00
Sam Roberts dbaa4ca166 test: simplify test-https-simple.js
It had an unused `Agent` option (no such option exists), and some code
that common.must(Not)Call makes redundant.

PR-URL: https://github.com/nodejs/node/pull/31584
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2020-02-02 19:43:36 -08:00
Sam Roberts 38aa31554c doc: simultaneous blog and email of sec announce
PR-URL: https://github.com/nodejs/node/pull/31483
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2020-01-30 14:52:56 -08:00
Sam Roberts e4bff131ca test: check that --insecure-http-parser works
Test that using --insecure-http-parser will disable validation of
invalid characters in HTTP headers.

See:
- https://github.com/nodejs/node/pull/30567

PR-URL: https://github.com/nodejs/node/pull/31253
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2020-01-09 15:31:32 -08:00
Sam Roberts c052113238 doc: de-duplicate security release processes
The security release process is spread across multiple files. Merge
these two files to remove duplication and inconsistency. Also, make the
format more useful for inserting into the description of the Next
Security Release issue description.

This seems an obvious candidate for a github issue template, but if it
was, the content would not be reviewable by anyone outside of those on
the security teams, and the process should be public for purposes of
transparency and review.

PR-URL: https://github.com/nodejs/node/pull/30996
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-12-31 09:44:25 -08:00
Sam Roberts bbc032d395 deps: V8: cherry-pick d406bfd64653
Original commit message:

    [base] Fix the return of ClockNow on IBMi

    The API thread_cputime() is only defined but not yet implemented on IBMi.

    Change-Id: I8ea7ff724e749f537b54e75a00d718500807ca8a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1957831
    Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
    Reviewed-by: Clemens Backes <clemensb@chromium.org>
    Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#65392}

Refs: https://github.com/v8/v8/commit/d406bfd64653a57d973007c4aec4cf1a49415809

PR-URL: https://github.com/nodejs/node/pull/30819
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-12-25 23:17:52 +01:00
Sam Roberts 02a0c74861 http: llhttp opt-in insecure HTTP header parsing
Allow insecure HTTP header parsing. Make clear it is insecure.

See:
- https://github.com/nodejs/node/pull/30553
- https://github.com/nodejs/node/issues/27711#issuecomment-556265881
- https://github.com/nodejs/node/issues/30515

PR-URL: https://github.com/nodejs/node/pull/30567
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-12-09 09:56:16 -08:00
Sam Roberts a025c5a874 tls: expose IETF name for current cipher suite
OpenSSL has its own legacy names, but knowing the IETF name is useful
when trouble-shooting, or looking for more information on the cipher.

PR-URL: https://github.com/nodejs/node/pull/30637
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Yorkie Liu <yorkiefixer@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2019-12-03 23:28:38 +01:00
Sam Roberts 80efb80f3f tls: cli option to enable TLS key logging to file
Debugging HTTPS or TLS connections from a Node.js app with (for example)
Wireshark is unreasonably difficult without the ability to get the TLS
key log. In theory, the application can be modified to use the
`'keylog'` event directly, but for complex apps, or apps that define
there own HTTPS Agent (like npm), this is unreasonably difficult.

Use of the option triggers a warning to be emitted so the user is
clearly notified of what is happening and its effect.

PR-URL: https://github.com/nodejs/node/pull/30055
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-11-20 08:00:02 -08:00
Sam Roberts b0cf62b3a0 https: add client support for TLS keylog events
The keylog event is implemented on TLS sockets, but client HTTPS uses
TLS sockets managed by an agent, so accessing the underlying socket
before the TLS handshake completed was not possible.  Note that server
HTTPS already supports the keylog event because it inherits from the TLS
server.

PR-URL: https://github.com/nodejs/node/pull/30053
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-11-19 22:23:23 -08:00
Sam Roberts b2ccbb27dc build: prefer python 3 over 2 for configure
Change python search order to python3*, then python, then python2*.

PR-URL: https://github.com/nodejs/node/pull/30091
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-10-25 11:34:48 -07:00
Sam Roberts 8425183e0b src: initialize openssl only once
For compatibility with OpenSSL 1.1.0 and 1.0.1 a series of
initialization wrappers were being called, many deprecated, and many
calling each other internally already. Compatibility is unnecessary in
12.x and later, which support only OpenSSL 1.1.1, and the multiple calls
cause the configuration file to be loaded multiple times.

Fixes: https://github.com/nodejs/node/issues/29702

See:
- https://mta.openssl.org/pipermail/openssl-users/2019-October/011303.html
- https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_init_ssl.html
- https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_init_crypto.html

PR-URL: https://github.com/nodejs/node/pull/29999
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
2019-10-18 21:25:03 -07:00
Sam Roberts 51c097b2a8 test: debug output for dlopen-ping-pong test
Make test failures easier to diagnose through progress logging, and
reporting of dlerror().

PR-URL: https://github.com/nodejs/node/pull/29818
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2019-10-09 11:54:59 -07:00
Sam Roberts e442e5a6d1 deps: V8: cherry-pick 35c6d4d
Original commit message:

    Make code generator python3.7 compatible (async keyword).

    Change-Id: Ifcd8b8cb1de60a007c7bbd4564d7869e83cb7109

Fixes: https://github.com/nodejs/node/issues/29548
Refs:
- https://github.com/nodejs/node/issues/29548#issuecomment-531717985
- https://github.com/nodejs/node/pull/29520
- https://github.com/nodejs/node/pull/29340
- https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1781351
- https://chromium.googlesource.com/deps/inspector_protocol/+/35c6d4d0d80b42d81bd00bcb1eb2b1093c80ed0a

PR-URL: https://github.com/nodejs/node/pull/29585
Refs: https://github.com/nodejs/node/pull/29520
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-10-07 03:20:17 -04:00
Sam Roberts 7ec558cb24 build: do not link against librt on linux
PR-URL: https://github.com/nodejs/node/pull/29727
Fixes: https://github.com/nodejs/node/issues/27377
Fixes: https://github.com/nodejs/node/issues/29718
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-10-01 14:28:00 -07:00
Sam Roberts f3ae3c9e3d build: remove unused libatomic on ppc64, s390x
The library is not necessary for ppc64 or s390x. It does no harm with
some linkers, but devtoolset-6 creates runtime dependencies on all link
libraries, even unused ones.

Fixes: https://github.com/nodejs/node/issues/27377
Fixes: https://github.com/nodejs/node/issues/29718

PR-URL: https://github.com/nodejs/node/pull/29727
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-10-01 14:27:48 -07:00
Sam Roberts 3473e58fee test: well-defined DH groups now verify clean
OpenSSL 1.1.1d no longer generates warnings for some DH groups that used
to be considered unsafe. See below for discussion. This is considered a
bug fix.

See:
- https://github.com/openssl/openssl/pull/9363
- https://github.com/openssl/openssl/pull/9363#discussion_r324802618

PR-URL: https://github.com/nodejs/node/pull/29550
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-10-01 11:11:18 -07:00
Sam Roberts 1ca1e0163e deps: update archs files for OpenSSL-1.1.1
After an OpenSSL source update, all the config files need to be
regenerated and comitted by:
    $ cd deps/openssl/config
    $ make
    $ git add deps/openssl/config/archs
    $ git add deps/openssl/openssl/crypto/include/internal/bn_conf.h
    $ git add deps/openssl/openssl/crypto/include/internal/dso_conf.h
    $ git add deps/openssl/openssl/include/openssl/opensslconf.h
    $ git commit

PR-URL: https://github.com/nodejs/node/pull/29550
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-10-01 11:11:13 -07:00
Sam Roberts 17d1d16441 deps: upgrade openssl sources to 1.1.1d
This updates all sources in deps/openssl/openssl by:
    $ cd deps/openssl/
    $ rm -rf openssl
    $ tar zxf ~/tmp/openssl-1.1.0h.tar.gz
    $ mv openssl-1.1.0h openssl
    $ git add --all openssl
    $ git commit openssl

PR-URL: https://github.com/nodejs/node/pull/29550
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-10-01 11:07:43 -07:00
Sam Roberts 7ce316e6a2 doc: security maintenance processes
The TSC has responsibility for Node.js security, so avoid fragmentation
of the Node.js maintenance process documentation by adding it to the
other guides.

PR-URL: https://github.com/nodejs/node/pull/29685
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2019-10-01 10:54:11 -07:00
Sam Roberts dd74b163f9 doc: sync security policy with nodejs.org
The Node.js security disclosure policy has diverged between the website
and github:
- https://nodejs.org/en/security/
- https://github.com/nodejs/node/security/policy

The website is more recent and accurate, so sync the content from:
- https://github.com/nodejs/nodejs.org/blob/master/locale/en/security.md

PR-URL: https://github.com/nodejs/node/pull/29682
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2019-09-28 16:58:57 -07:00
Sam Roberts d36cef7496 deps: V8: cherry-pick 35c6d4d
Original commit message:

    Make code generator python3.7 compatible (async keyword).

    Change-Id: Ifcd8b8cb1de60a007c7bbd4564d7869e83cb7109

Fixes: https://github.com/nodejs/node/issues/29548
Refs:
- https://github.com/nodejs/node/issues/29548#issuecomment-531717985
- https://github.com/nodejs/node/pull/29520
- https://github.com/nodejs/node/pull/29340
- https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1781351
- https://chromium.googlesource.com/deps/inspector_protocol/+/35c6d4d0d80b42d81bd00bcb1eb2b1093c80ed0a

PR-URL: https://github.com/nodejs/node/pull/29585
Refs: https://github.com/nodejs/node/pull/29520
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-09-18 23:26:25 +02:00
Sam Roberts 5dee17bb3c src: rename --security-reverts to ...-revert
It was called --security-revert prior to 12.x, but changed in
https://github.com/nodejs/node/pull/22490.

See:
https://github.com/nodejs/nodejs.org/pull/2412#issuecomment-521739752

PR-URL: https://github.com/nodejs/node/pull/29153
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-08-17 13:32:13 -07:00
Sam Roberts c146f884a3 test: unskip tests that now pass on AIX
One skipped test remains, it creates very large Buffer objects,
triggering the AIX OOM to kill node and its parent processes.

See: https://github.com/nodejs/build/issues/1849#issuecomment-514414165

PR-URL: https://github.com/nodejs/node/pull/29054
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-08-10 19:02:57 -07:00
Sam Roberts 41fa5536d1 test: specialize OOM check for AIX
Assumption that if memory can be malloc()ed it can be used is not true
on AIX. Later access of the allocated pages can trigger SIGKILL if there
are insufficient VM pages.

Use psdanger() to better estimate available memory.

Fixes: https://github.com/nodejs/build/issues/1849

More info:
- https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/generalprogramming/sys_mem_alloc.html
- https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/p_bostechref/psdanger.html

Related to:
- https://github.com/nodejs/build/issues/1820#issuecomment-505998851
- https://github.com/nodejs/node/pull/28469
- https://github.com/nodejs/node/pull/28516

PR-URL: https://github.com/nodejs/node/pull/28857
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-07-27 16:03:43 -07:00
Sam Roberts e9ea8eaf7a doc: describe why new Buffer() is problematic
Existing docs weren't clear on the actual problem. In addition, the text
described 8.0.0 as being a future Node.js release, so adjust language
to reflect that 8.0.0 is in the past (while not losing important
information about what the pre-8.x behaviour was).

PR-URL: https://github.com/nodejs/node/pull/28825
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2019-07-25 12:47:19 -07:00
Sam Roberts c5befe3093 doc: fix type in NSS update instructions
The perl script must be fully named, correct so that the command can be
copy-pasted-run from the docs.

PR-URL: https://github.com/nodejs/node/pull/28808
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-07-24 10:56:09 -07:00
Sam Roberts 748000e65c crypto: update root certificates
Update the list of root certificates in src/node_root_certs.h with
tools/mk-ca-bundle.pl.

Certificates added: (none)

Certificates removed:
- Certinomis - Root CA

PR-URL: https://github.com/nodejs/node/pull/28808
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-07-24 10:56:04 -07:00
Sam Roberts b87d418602 tools: update certdata.txt
This is the certdata.txt[0] from NSS 3.45, released on 2019-07-05.

This is the version of NSS that will ship in Firefox 69 on
2019-09-03.

[0] https://hg.mozilla.org/projects/nss/raw-file/NSS_3_45_RTM/lib/ckfw/builtins/certdata.txt

PR-URL: https://github.com/nodejs/node/pull/28808
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-07-24 10:55:59 -07:00
Sam Roberts 8619b19a80 test: skip pseudo-tty tests on AIX
See: https://github.com/nodejs/build/issues/1820

PR-URL: https://github.com/nodejs/node/pull/28541
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-07-04 14:48:28 -07:00
Sam Roberts 1245aca41c test: skip stringbytes-external-exceed-max on AIX
Add SKIP status for more tests in stringbytes-external-exceed-max that
are failing on AIX.

PR-URL: https://github.com/nodejs/node/pull/28516
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2019-07-04 13:03:58 -07:00
Sam Roberts 3c9c89df12 test: skip tests related to CI failures on AIX
These tests seem to trigger failures in the entire CI job (not just the
test) on AIX. Skip them to see if that helps alleviate spurious failures
in node-test-commit-aix (and the upstream PR and commit test jobs).

See:
- https://github.com/nodejs/build/issues/1820#issuecomment-505998851
- https://github.com/nodejs/build/issues/1847#issuecomment-504210708

PR-URL: https://github.com/nodejs/node/pull/28469
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-07-02 06:41:30 +02:00
Sam Roberts ed14aa6d51 tools: move python code out of jenkins shell
https://ci.nodejs.org/job/node-test-commit-v8-linux/configure echoes
python code into tools and runs it. Move these scripts into tools for
better maintainability.

Once this lands and is back-ported into LTS branches a bunch of shell
code can be deleted from the job.

PR-URL: https://github.com/nodejs/node/pull/28458
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-07-02 06:08:03 +02:00
Sam Roberts e669b8154c tools: fix v8 testing with devtoolset on ppcle
The devtoolset doesn't use or set the CXX, etc, env vars, so ignore them
if not present.

PR-URL: https://github.com/nodejs/node/pull/28458
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-07-02 06:07:37 +02:00
Sam Roberts 334bac79eb test: reset validity dates of expired certs
PR-URL: https://github.com/nodejs/node/pull/28473
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-06-28 16:14:36 -07:00
Sam Roberts 574985cec8 https: do not automatically use invalid servername
Stop automatically setting servername in https.request() if the target
host is specified with an IP address. Doing so is invalid, and triggers
a deprecation warning. It is still possible to send an IP address as a
servername if its required, but it needs to be explicity configured, it
won't happen automatically.

PR-URL: https://github.com/nodejs/node/pull/28209
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-06-17 11:58:26 +02:00
Sam Roberts 7cb89819b5 deps: update archs files for OpenSSL-1.1.1c
After an OpenSSL source update, all the config files need to be
regenerated and comitted by:
    $ cd deps/openssl/config
    $ make
    $ git add deps/openssl/config/archs
    $ git add deps/openssl/openssl/crypto/include/internal/bn_conf.h
    $ git add deps/openssl/openssl/crypto/include/internal/dso_conf.h
    $ git add deps/openssl/openssl/include/openssl/opensslconf.h
    $ git commit

PR-URL: https://github.com/nodejs/node/pull/28211
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2019-06-17 11:56:38 +02:00
Sam Roberts 4c8fe4a96f deps: upgrade openssl sources to 1.1.1c
This updates all sources in deps/openssl/openssl by:
    $ cd deps/openssl/
    $ rm -rf openssl
    $ tar zxf ~/tmp/openssl-1.1.1c.tar.gz
    $ mv openssl-1.1.1c openssl
    $ git add --all openssl
    $ git commit openssl

PR-URL: https://github.com/nodejs/node/pull/28211
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2019-06-17 11:55:44 +02:00
Sam Roberts 5990c4d453 deps: updated openssl upgrade instructions
Patching the s390 asm rules is no longer required.

See: https://github.com/openssl/openssl/pull/8351

PR-URL: https://github.com/nodejs/node/pull/28211
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2019-06-17 11:55:43 +02:00
Sam Roberts 04633eeeb9 readline: error on falsy values for callback
It was intended, according to in-test comments and common behaviour,
that callbacks be either `undefined` or a function, but falsy values
were being accepted as meaning "no callback".

PR-URL: https://github.com/nodejs/node/pull/28109
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-06-10 11:09:40 -07:00
Sam Roberts b17a70f639 test: add github refs to flaky tests
PR-URL: https://github.com/nodejs/node/pull/28123
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-06-10 11:05:03 -07:00
Sam Roberts ba7551cad8 test: remove workaround for unsupported OpenSSLs
Workaround added in d9b9229d98 is no longer needed, since OpenSSL
versions lower than 1.1.1 are unsupported.

PR-URL: https://github.com/nodejs/node/pull/28085
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-06-10 18:23:13 +02:00
Sam Roberts 94a7c2ab8a src: remove TLS code for unsupported OpenSSLs
Versions of OpenSSL lower than 1.1.1 are no longer supported, so remove
ifdefs for previous versions.

PR-URL: https://github.com/nodejs/node/pull/28085
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-06-10 18:23:12 +02:00
Sam Roberts 2976bbd68f test: only assert on first lines of TLS trace
The TLS trace data is best-effort, and enough can be dropped from pipe
buffers that only the start of the trace is detected. Only assert on the
first line of the trace, it should not get dropped, and it's enough to
check that trace was enabled via CLI.

PR-URL: https://github.com/nodejs/node/pull/28043
Fixes: https://github.com/nodejs/node/issues/27636
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-06-06 10:18:04 -07:00
Sam Roberts 965ffc4cb9 Revert "test: move all test keys/certs under test/fixtures/keys/"
PR-URL: https://github.com/nodejs/node/pull/28083
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Refael Ackermann (רפאל פלחי) <refack@gmail.com>
2019-06-05 19:01:13 -04:00
Sam Roberts b1bd9e3dd2 tls: trace errors can show up as SSL errors
Calls to TLS_trace might leave errors on the SSL error stack, which then
get reported as SSL errors instead of being ignored. Wrap TLS_trace to
keep the error stack unchanged.

Fixes: https://github.com/nodejs/node/issues/27636

PR-URL: https://github.com/nodejs/node/pull/27841
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2019-05-30 12:34:30 +02:00
Sam Roberts 02f9a0fe27 src: move DiagnosticFilename inlines into a -inl.h
DiagnosticFilename's constructor default values use inlines from
env-inl.h, causing the many users of node_internals.h to include
env-inl.h, even if they never use DiagnosticFilename.

PR-URL: https://github.com/nodejs/node/pull/27839
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-05-26 17:09:45 +02:00
Sam Roberts 725a66a2f0 tls: destroy trace BIO instead of leaking it
Fixes: https://github.com/nodejs/node/issues/27636#issuecomment-491343214

PR-URL: https://github.com/nodejs/node/pull/27834
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-05-26 14:35:14 +02:00
Sam Roberts 60b315c064 src: remove env-inl.h from header files
Inline headers should only be included into the .cc files that use them.

PR-URL: https://github.com/nodejs/node/pull/27755
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-05-23 08:51:41 -07:00
Sam Roberts 2ecef9b5f2 src: remove memory_tracker-inl.h from header files
Inline headers should only be included into the .cc files that use them.

PR-URL: https://github.com/nodejs/node/pull/27755
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-05-23 08:51:39 -07:00
Sam Roberts 6ded4f2bad src: move ThreadPoolWork inlines into a -inl.h
The presence of the inline definitions in node_internals.h can cause all
files that include node_internals.h to depend on util-inl.h, even if
they never use ThreadPoolWork. Whether this happens depends on the
toolchain, gcc will strip unused definitions, clang won't.

PR-URL: https://github.com/nodejs/node/pull/27755
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-05-23 08:51:33 -07:00
Sam Roberts b6bfc19378 src: remove util-inl.h from header files
Its intended that *-inl.h header files are only included into the src
files that call the inline methods. Explicitly include it into the files
that need it.

PR-URL: https://github.com/nodejs/node/pull/27631
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-05-13 13:43:26 -07:00
Sam Roberts d3c2287e59 src: declare unused priv argument
PR-URL: https://github.com/nodejs/node/pull/27631
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-05-13 13:43:17 -07:00
Sam Roberts c9bdc49e01 src: fix warnings about redefined BSWAP macros
PR-URL: https://github.com/nodejs/node/pull/27631
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-05-13 13:43:07 -07:00
Sam Roberts ae749e7a29 tls: fix createSecureContext() cipher list filter
PR-URL: https://github.com/nodejs/node/pull/27614
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2019-05-10 11:25:29 -07:00
Sam Roberts b9a3103387 build: export OpenSSL UI symbols
Node.js compiles them, their existence is indicated by OpenSSL header
defines, but they can't be linked to on Windows because their symbols
are not exported. Export them.

Fixes: https://github.com/nodejs/node/issues/27494

PR-URL: https://github.com/nodejs/node/pull/27586
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2019-05-09 12:21:16 -07:00
Sam Roberts 3d98051e20 tls: add --tls-min-v1.2 CLI switch
Switch added in v11.x, add it to master/12.x for consistency and
compatibility.

See: https://github.com/nodejs/node/pull/26951, commit bf2c283555

PR-URL: https://github.com/nodejs/node/pull/27520
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
2019-05-05 08:23:43 -07:00
Sam Roberts c21693b39d src: remove node_options-inl.h from header files
Fix unnecessary inclusion of node_options-inl.h into env.h via
inspector_agent.h, causing almost all of src/ to recompile on any change
to the options parser. Its intended that *-inl.h header files are only
included into the src files that call the inline methods.

PR-URL: https://github.com/nodejs/node/pull/27538
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-05-04 21:24:17 -07:00
Sam Roberts cb848b4546 tls: disallow conflicting TLS protocol options
Do not allow the minimum protocol level to be set higher than the max
protocol level.

See: https://github.com/nodejs/node/pull/26951, 109c097797

PR-URL: https://github.com/nodejs/node/pull/27521
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-05-03 16:12:14 -07:00
Sam Roberts dce8806c9d doc: describe API ERR_INVALID_PROTOCOL context
ERR_INVALID_PROTOCOL docs should describe the API it relates to.

See: https://github.com/nodejs/node/pull/27390/files#r278246361

PR-URL: https://github.com/nodejs/node/pull/27393
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
2019-04-30 08:44:53 -07:00
Sam Roberts adedbb12e5 tls: allow enabling the TLS debug trace
Enable the same trace output that the OpenSSL s_client and s_server
support with their `-trace` option. This is invaluable when debugging
reports of TLS bugs as well as when debugging the internal TLS
implementation.

See:
- https://github.com/nodejs/node/issues/25383
- https://github.com/nodejs/node/issues/17936
- https://github.com/postmanlabs/postman-app-support/issues/5918#issuecomment-465311423

PR-URL: https://github.com/nodejs/node/pull/27376
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-04-29 10:57:55 -07:00
Sam Roberts 439bc6ee0e deps: update archs files for OpenSSL-1.1.1b
Ran:

$ cd deps/openssl/config; make

to update deps/openssl/config/archs/ with current configuration.

PR-URL: https://github.com/nodejs/node/pull/27376
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-04-29 10:57:43 -07:00
Sam Roberts 8a4e4a4242 deps: configure OpenSSL's SSL_trace to be built
OpenSSL doesn't compile `SSL_trace()` by default for historical reasons.
Add the enable-ssl-trace option to the OpenSSL Configure arguments.

PR-URL: https://github.com/nodejs/node/pull/27376
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2019-04-29 10:57:36 -07:00
Sam Roberts 86b4f3729a tls: include invalid method name in thrown error
When an invalid TLS method name error is thrown, include the invalid
name in the error message.

PR-URL: https://github.com/nodejs/node/pull/27390
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-04-26 10:38:38 -07:00
Sam Roberts 5ab65cff8d crypto: update root certificates
Update the list of root certificates in src/node_root_certs.h with
tools/mk-ca-bundle.pl.

Certificates added:
- emSign Root CA - G1
- emSign ECC Root CA - G3
- emSign Root CA - C1
- emSign ECC Root CA - C3
- Hongkong Post Root CA 3

PR-URL: https://github.com/nodejs/node/pull/27374
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-04-25 16:16:31 -07:00
Sam Roberts a016dc918c tools: update certdata.txt
This is the certdata.txt[0] from NSS 3.43, released on 2019-03-15.

This is the version of NSS that will ship in Firefox 67 on
2019-03-19.

[0] https://hg.mozilla.org/projects/nss/raw-file/NSS_3_43_RTM/lib/ckfw/builtins/certdata.txt

PR-URL: https://github.com/nodejs/node/pull/27374
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-04-25 16:16:23 -07:00
Sam Roberts 6bbb9ebf8d test: rework to remove flakiness, and be parallel
Let .end() propogate from client, to server, and back, before
considering the test complete. Also, remove the test vector and exit
handling in favour of running all the tests in parallel and using
common.must/mustNotCall().

PR-URL: https://github.com/nodejs/node/pull/27300
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2019-04-25 10:09:53 -07:00
Sam Roberts a763de137c doc: clarify behaviour of writeFile(fd)
This is a continuing source of confusion, attempt to make it even more
clear.

Fixes: https://github.com/nodejs/node/issues/24923

PR-URL: https://github.com/nodejs/node/pull/27282
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
2019-04-24 09:03:16 -07:00
Sam Roberts 90cf2d5f00 deps: use nghttp2's config.h on all platforms
Fix warnings about use of htonl(), etc. by including config.h for all
platforms, defining HAVE_ARPA_INET_H on non-Windows, and therefore
including <arpa/inet.h>, which defines the host to network byte order
conversion functions.

PR-URL: https://github.com/nodejs/node/pull/27283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2019-04-22 12:08:17 -07:00
Sam Roberts 69140bc7f8 crypto: do not abort when setting throws
PR-URL: https://github.com/nodejs/node/pull/27157
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-04-17 11:15:04 -07:00
Sam Roberts 060d901f87 src: replace FromJust() with Check() when possible
FromJust() is often used not for its return value, but for its
side-effects. In these cases, Check() exists, and is more clear as to
the intent. From its comment:

  To be used, where the actual value of the Maybe is not needed, like
  Object::Set.

See: https://github.com/nodejs/node/pull/26929/files#r269256335

PR-URL: https://github.com/nodejs/node/pull/27162
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
2019-04-12 12:33:37 -07:00
Sam Roberts bf766c1b44 src: remove unused INT_MAX constant
Node doesn't use it, and its not documented. Remove it.

PR-URL: https://github.com/nodejs/node/pull/27078
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-04-09 07:29:48 +02:00
Sam Roberts a3f30a48c2 src: unify crypto constant setup
DefineCryptoConstants() sets constants from OpenSSL into
`crypto.constants`, for crypto and tls.  DefineOpenSSLConstants() did
exactly the same.  Unify them.

PR-URL: https://github.com/nodejs/node/pull/27077
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-04-08 09:46:55 -07:00
Sam Roberts 0911e88056 crypto: fix rsa key gen with non-default exponent
EVP_PKEY_CTX_set_rsa_keygen_pubexp() accepts ownership of the exponent
on success, so do not free it.

Fixes: https://github.com/nodejs/node/issues/27087

PR-URL: https://github.com/nodejs/node/pull/27092
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-04-08 09:44:36 -07:00