From f544f7a102f5e906051620793d2e327d08fa9287 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Mon, 6 Jan 2020 03:26:38 +0100 Subject: [PATCH 01/82] lib: replace Float64Array global with primordials PR-URL: https://github.com/nodejs/node/pull/35397 Reviewed-By: Luigi Pinca Reviewed-By: Jiawen Geng Reviewed-By: Pranshu Srivastava Reviewed-By: Rich Trott Reviewed-By: Anto Aravinth Reviewed-By: Ujjwal Sharma --- lib/.eslintrc.yaml | 2 ++ lib/internal/buffer.js | 1 + lib/internal/process/per_thread.js | 1 + lib/internal/util/inspect.js | 1 + lib/internal/worker.js | 1 + lib/os.js | 1 + 6 files changed, 7 insertions(+) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 97cc264c8ff804..afa71051799947 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -23,6 +23,8 @@ rules: message: "Use `const { Error } = primordials;` instead of the global." - name: Float32Array message: "Use `const { Float32Array } = primordials;` instead of the global." + - name: Float64Array + message: "Use `const { Float64Array } = primordials;` instead of the global." - name: Int16Array message: "Use `const { Int16Array } = primordials;` instead of the global." - name: JSON diff --git a/lib/internal/buffer.js b/lib/internal/buffer.js index 03f12d809d5692..fa682575217994 100644 --- a/lib/internal/buffer.js +++ b/lib/internal/buffer.js @@ -3,6 +3,7 @@ const { BigInt, Float32Array, + Float64Array, MathFloor, Number, } = primordials; diff --git a/lib/internal/process/per_thread.js b/lib/internal/process/per_thread.js index d219cd7298fc15..cfc0e3463cedaf 100644 --- a/lib/internal/process/per_thread.js +++ b/lib/internal/process/per_thread.js @@ -7,6 +7,7 @@ const { ArrayIsArray, BigUint64Array, + Float64Array, NumberMAX_SAFE_INTEGER, ObjectDefineProperties, ObjectDefineProperty, diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index e3245010761164..e93456eba77ec7 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -12,6 +12,7 @@ const { DatePrototypeToString, ErrorPrototypeToString, Float32Array, + Float64Array, FunctionPrototypeCall, FunctionPrototypeToString, Int16Array, diff --git a/lib/internal/worker.js b/lib/internal/worker.js index 76d92c5963855e..59434c91e59e3a 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -4,6 +4,7 @@ const { ArrayIsArray, + Float64Array, JSONStringify, MathMax, ObjectCreate, diff --git a/lib/os.js b/lib/os.js index 395a372a00f71f..dc0d08376f2da0 100644 --- a/lib/os.js +++ b/lib/os.js @@ -22,6 +22,7 @@ 'use strict'; const { + Float64Array, ObjectDefineProperties, SymbolToPrimitive, } = primordials; From d6ba4ecc4d18e5194f9d28417f46d0985a4b5c21 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Mon, 6 Jan 2020 03:39:26 +0100 Subject: [PATCH 02/82] lib: replace Int32Array global with primordials PR-URL: https://github.com/nodejs/node/pull/35397 Reviewed-By: Luigi Pinca Reviewed-By: Jiawen Geng Reviewed-By: Pranshu Srivastava Reviewed-By: Rich Trott Reviewed-By: Anto Aravinth Reviewed-By: Ujjwal Sharma --- lib/.eslintrc.yaml | 2 ++ lib/internal/util/inspect.js | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index afa71051799947..02d160d09386c9 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -27,6 +27,8 @@ rules: message: "Use `const { Float64Array } = primordials;` instead of the global." - name: Int16Array message: "Use `const { Int16Array } = primordials;` instead of the global." + - name: Int32Array + message: "Use `const { Int32Array } = primordials;` instead of the global." - name: JSON message: "Use `const { JSON } = primordials;` instead of the global." - name: Map diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index e93456eba77ec7..7a1ac1f000a0f0 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -16,6 +16,7 @@ const { FunctionPrototypeCall, FunctionPrototypeToString, Int16Array, + Int32Array, JSONStringify, Map, MapPrototype, From ebf39007950ad9519c75377ff41ce625b951d295 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Mon, 6 Jan 2020 03:42:18 +0100 Subject: [PATCH 03/82] lib: replace Int8Array global with primordials PR-URL: https://github.com/nodejs/node/pull/35397 Reviewed-By: Luigi Pinca Reviewed-By: Jiawen Geng Reviewed-By: Pranshu Srivastava Reviewed-By: Rich Trott Reviewed-By: Anto Aravinth Reviewed-By: Ujjwal Sharma --- lib/.eslintrc.yaml | 2 ++ lib/internal/util/inspect.js | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 02d160d09386c9..02d70f83f9c62f 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -29,6 +29,8 @@ rules: message: "Use `const { Int16Array } = primordials;` instead of the global." - name: Int32Array message: "Use `const { Int32Array } = primordials;` instead of the global." + - name: Int8Array + message: "Use `const { Int8Array } = primordials;` instead of the global." - name: JSON message: "Use `const { JSON } = primordials;` instead of the global." - name: Map diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 7a1ac1f000a0f0..aa45bc5d4f6b3a 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -15,6 +15,7 @@ const { Float64Array, FunctionPrototypeCall, FunctionPrototypeToString, + Int8Array, Int16Array, Int32Array, JSONStringify, From 30c6b3e809610b720cb7d48ea9cc1c6319fbe685 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Mon, 6 Jan 2020 03:55:31 +0100 Subject: [PATCH 04/82] lib: replace String global with primordials PR-URL: https://github.com/nodejs/node/pull/35397 Reviewed-By: Luigi Pinca Reviewed-By: Jiawen Geng Reviewed-By: Pranshu Srivastava Reviewed-By: Rich Trott Reviewed-By: Anto Aravinth Reviewed-By: Ujjwal Sharma --- lib/.eslintrc.yaml | 2 ++ lib/_http_client.js | 1 + lib/assert.js | 1 + lib/events.js | 1 + lib/internal/assert/assertion_error.js | 1 + lib/internal/bootstrap/loaders.js | 1 + lib/internal/errors.js | 1 + lib/internal/event_target.js | 1 + lib/internal/http2/util.js | 1 + lib/internal/process/warning.js | 1 + lib/internal/readline/utils.js | 1 + lib/internal/url.js | 1 + lib/internal/util/inspect.js | 1 + lib/internal/validators.js | 1 + lib/internal/worker.js | 1 + lib/querystring.js | 1 + lib/tls.js | 18 ++++++++++++++---- lib/wasi.js | 1 + 18 files changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 02d70f83f9c62f..0f34afff0814a6 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -49,6 +49,8 @@ rules: message: "Use `const { RegExp } = primordials;` instead of the global." - name: Set message: "Use `const { Set } = primordials;` instead of the global." + - name: String + message: "Use `const { String } = primordials;` instead of the global." - name: Symbol message: "Use `const { Symbol } = primordials;` instead of the global." - name: Uint16Array diff --git a/lib/_http_client.js b/lib/_http_client.js index 320ab7dcb996ba..a54cfb2d1b2146 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -29,6 +29,7 @@ const { ObjectAssign, ObjectKeys, ObjectSetPrototypeOf, + String, Symbol } = primordials; diff --git a/lib/assert.js b/lib/assert.js index 6ad672d698602d..08ef18240925ba 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -29,6 +29,7 @@ const { Map, NumberIsNaN, RegExpPrototypeTest, + String, } = primordials; const { Buffer } = require('buffer'); diff --git a/lib/events.js b/lib/events.js index 48341c0b20f5b3..8570c0a8fbaea3 100644 --- a/lib/events.js +++ b/lib/events.js @@ -35,6 +35,7 @@ const { PromiseResolve, ReflectApply, ReflectOwnKeys, + String, Symbol, SymbolFor, SymbolAsyncIterator diff --git a/lib/internal/assert/assertion_error.js b/lib/internal/assert/assertion_error.js index 3c2150c69e4e09..c89219eef82224 100644 --- a/lib/internal/assert/assertion_error.js +++ b/lib/internal/assert/assertion_error.js @@ -7,6 +7,7 @@ const { ObjectDefineProperty, ObjectGetPrototypeOf, ObjectKeys, + String, } = primordials; const { inspect } = require('internal/util/inspect'); diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index c4ef1d12a2974c..127ef67c36eb64 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -52,6 +52,7 @@ const { ObjectPrototypeHasOwnProperty, ReflectGet, SafeSet, + String, } = primordials; // Set up process.moduleLoadList. diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 656cb374905f3f..59172ba7e41c5a 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -21,6 +21,7 @@ const { NumberIsInteger, ObjectDefineProperty, ObjectKeys, + String, StringPrototypeStartsWith, Symbol, SymbolFor, diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 8f0657c8d5b193..afaadc564396ff 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -8,6 +8,7 @@ const { NumberIsInteger, Object, ObjectDefineProperty, + String, Symbol, SymbolFor, SymbolToStringTag, diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js index 8d47dbd53c0ca3..00561e0895d1b0 100644 --- a/lib/internal/http2/util.js +++ b/lib/internal/http2/util.js @@ -8,6 +8,7 @@ const { ObjectCreate, ObjectKeys, Set, + String, Symbol, } = primordials; diff --git a/lib/internal/process/warning.js b/lib/internal/process/warning.js index 877a58bbf53fa5..f10e07f6210c30 100644 --- a/lib/internal/process/warning.js +++ b/lib/internal/process/warning.js @@ -3,6 +3,7 @@ const { ArrayIsArray, Error, + String, } = primordials; const assert = require('internal/assert'); diff --git a/lib/internal/readline/utils.js b/lib/internal/readline/utils.js index d75b64dd46beac..408d12d01e151d 100644 --- a/lib/internal/readline/utils.js +++ b/lib/internal/readline/utils.js @@ -1,6 +1,7 @@ 'use strict'; const { + String, Symbol, } = primordials; diff --git a/lib/internal/url.js b/lib/internal/url.js index 25d107bacd5ce0..0a5be32e467715 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -11,6 +11,7 @@ const { ObjectKeys, ReflectGetOwnPropertyDescriptor, ReflectOwnKeys, + String, Symbol, SymbolIterator, SymbolToStringTag, diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index aa45bc5d4f6b3a..b5315fc1527246 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -49,6 +49,7 @@ const { Set, SetPrototype, SetPrototypeValues, + String, StringPrototypeValueOf, SymbolPrototypeToString, SymbolPrototypeValueOf, diff --git a/lib/internal/validators.js b/lib/internal/validators.js index 71726f700518e3..0a4c8b6b576af2 100644 --- a/lib/internal/validators.js +++ b/lib/internal/validators.js @@ -5,6 +5,7 @@ const { NumberIsInteger, NumberMAX_SAFE_INTEGER, NumberMIN_SAFE_INTEGER, + String, } = primordials; const { diff --git a/lib/internal/worker.js b/lib/internal/worker.js index 59434c91e59e3a..e521064fb33ea2 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -11,6 +11,7 @@ const { ObjectEntries, Promise, PromiseResolve, + String, Symbol, SymbolFor, } = primordials; diff --git a/lib/querystring.js b/lib/querystring.js index 4d196633dcf2c7..04a21e8d07f24f 100644 --- a/lib/querystring.js +++ b/lib/querystring.js @@ -29,6 +29,7 @@ const { MathAbs, ObjectCreate, ObjectKeys, + String, } = primordials; const { Buffer } = require('buffer'); diff --git a/lib/tls.js b/lib/tls.js index 2ccbe409c96c2d..a46031ad7da90e 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -26,6 +26,10 @@ const { ArrayIsArray, ObjectDefineProperty, ObjectFreeze, + StringFromCharCode, + StringPrototypeCharCodeAt, + StringPrototypeReplace, + StringPrototypeSplit, } = primordials; const { @@ -137,11 +141,17 @@ function unfqdn(host) { return host.replace(/[.]$/, ''); } +// String#toLowerCase() is locale-sensitive so we use +// a conservative version that only lowercases A-Z. +function toLowerCase(c) { + return StringFromCharCode(32 + StringPrototypeCharCodeAt(c, 0)); +} + function splitHost(host) { - // String#toLowerCase() is locale-sensitive so we use - // a conservative version that only lowercases A-Z. - const replacer = (c) => String.fromCharCode(32 + c.charCodeAt(0)); - return unfqdn(host).replace(/[A-Z]/g, replacer).split('.'); + return StringPrototypeSplit( + StringPrototypeReplace(unfqdn(host), /[A-Z]/g, toLowerCase), + '.' + ); } function check(hostParts, pattern, wildcards) { diff --git a/lib/wasi.js b/lib/wasi.js index a764a1745ab0a9..072f19be9235ae 100644 --- a/lib/wasi.js +++ b/lib/wasi.js @@ -4,6 +4,7 @@ const { ArrayPrototypePush, FunctionPrototypeBind, ObjectEntries, + String, Symbol, } = primordials; From 8cdc59b34cf8c18321d1a3087b48e79750923fca Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 6 Oct 2020 23:24:11 +0200 Subject: [PATCH 05/82] doc: fix YAML syntax errors PR-URL: https://github.com/nodejs/node/pull/35529 Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Beth Griggs --- doc/api/buffer.md | 4 +++- doc/api/modules.md | 4 +++- doc/api/zlib.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 4aaa59ef92853e..a36d007f0abcc6 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -1405,7 +1405,9 @@ added: - v12.0.0 - v10.20.0 changes: - - version: v14.10.0 + - version: + - v14.10.0 + - v12.19.0 pr-url: https://github.com/nodejs/node/pull/34960 description: This function is also available as `buf.readBigUint64LE()`. --> diff --git a/doc/api/modules.md b/doc/api/modules.md index 0816b7257f1b89..2e239c23693146 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -902,7 +902,9 @@ loading. ### `module.parent` > Stability: 0 - Deprecated: Please use [`require.main`][] and diff --git a/doc/api/zlib.md b/doc/api/zlib.md index 0370c68ef6590a..e237d644eac800 100644 --- a/doc/api/zlib.md +++ b/doc/api/zlib.md @@ -488,7 +488,9 @@ These advanced options are available for controlling decompression: + +> Stability: 1 - Experimental + +```c +napi_status napi_object_freeze(napi_env env, + napi_value object); +``` + +* `[in] env`: The environment that the N-API call is invoked under. +* `[in] object`: The object to freeze. + +Returns `napi_ok` if the API succeeded. + +This method freezes a given object. This prevents new properties from +being added to it, existing properties from being removed, prevents +changing the enumerability, configurability, or writability of existing +properties, and prevents the values of existing properties from being changed. +It also prevents the object's prototype from being changed. This is described +in [Section 19.1.2.6](https://tc39.es/ecma262/#sec-object.freeze) of the +ECMA-262 specification. + +#### napi_object_seal + + +> Stability: 1 - Experimental + +```c +napi_status napi_object_seal(napi_env env, + napi_value object); +``` + +* `[in] env`: The environment that the N-API call is invoked under. +* `[in] object`: The object to seal. + +Returns `napi_ok` if the API succeeded. + +This method seals a given object. This prevents new properties from being +added to it, as well as marking all existing properties as non-configurable. +This is described in [Section 19.1.2.20](https://tc39.es/ecma262/#sec-object.seal) +of the ECMA-262 specification. + ## Working with JavaScript functions N-API provides a set of APIs that allow JavaScript code to diff --git a/src/js_native_api.h b/src/js_native_api.h index bd8bd35d7b72c9..5daa20f9040096 100644 --- a/src/js_native_api.h +++ b/src/js_native_api.h @@ -550,6 +550,10 @@ napi_check_object_type_tag(napi_env env, napi_value value, const napi_type_tag* type_tag, bool* result); +NAPI_EXTERN napi_status napi_object_freeze(napi_env env, + napi_value object); +NAPI_EXTERN napi_status napi_object_seal(napi_env env, + napi_value object); #endif // NAPI_EXPERIMENTAL EXTERN_C_END diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 0a069b3ae45b97..1feabfd879476c 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -1362,6 +1362,42 @@ napi_status napi_define_properties(napi_env env, return GET_RETURN_STATUS(env); } +napi_status napi_object_freeze(napi_env env, + napi_value object) { + NAPI_PREAMBLE(env); + + v8::Local context = env->context(); + v8::Local obj; + + CHECK_TO_OBJECT(env, context, obj, object); + + v8::Maybe set_frozen = + obj->SetIntegrityLevel(context, v8::IntegrityLevel::kFrozen); + + RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, + set_frozen.FromMaybe(false), napi_generic_failure); + + return GET_RETURN_STATUS(env); +} + +napi_status napi_object_seal(napi_env env, + napi_value object) { + NAPI_PREAMBLE(env); + + v8::Local context = env->context(); + v8::Local obj; + + CHECK_TO_OBJECT(env, context, obj, object); + + v8::Maybe set_sealed = + obj->SetIntegrityLevel(context, v8::IntegrityLevel::kSealed); + + RETURN_STATUS_IF_FALSE_WITH_PREAMBLE(env, + set_sealed.FromMaybe(false), napi_generic_failure); + + return GET_RETURN_STATUS(env); +} + napi_status napi_is_array(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); diff --git a/test/js-native-api/test_object/test.js b/test/js-native-api/test_object/test.js index b78666995271ff..e5923ecd16c2cf 100644 --- a/test/js-native-api/test_object/test.js +++ b/test/js-native-api/test_object/test.js @@ -275,3 +275,43 @@ assert.deepStrictEqual(test_object.TestGetProperty(), { keyIsNull: 'Invalid argument', resultIsNull: 'Invalid argument' }); + +{ + const obj = { x: 'a', y: 'b', z: 'c' }; + + test_object.TestSeal(obj); + + assert.strictEqual(Object.isSealed(obj), true); + + assert.throws(() => { + obj.w = 'd'; + }, /Cannot add property w, object is not extensible/); + + assert.throws(() => { + delete obj.x; + }, /Cannot delete property 'x' of #/); + + // Sealed objects allow updating existing properties, + // so this should not throw. + obj.x = 'd'; +} + +{ + const obj = { x: 10, y: 10, z: 10 }; + + test_object.TestFreeze(obj); + + assert.strictEqual(Object.isFrozen(obj), true); + + assert.throws(() => { + obj.x = 10; + }, /Cannot assign to read only property 'x' of object '#/); + + assert.throws(() => { + obj.w = 15; + }, /Cannot add property w, object is not extensible/); + + assert.throws(() => { + delete obj.x; + }, /Cannot delete property 'x' of #/); +} diff --git a/test/js-native-api/test_object/test_object.c b/test/js-native-api/test_object/test_object.c index f2ea89d6c60943..70a85e03c725dd 100644 --- a/test/js-native-api/test_object/test_object.c +++ b/test/js-native-api/test_object/test_object.c @@ -472,6 +472,30 @@ static napi_value TestGetProperty(napi_env env, return object; } +static napi_value TestFreeze(napi_env env, + napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + napi_value object = args[0]; + NAPI_CALL(env, napi_object_freeze(env, object)); + + return object; +} + +static napi_value TestSeal(napi_env env, + napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + napi_value object = args[0]; + NAPI_CALL(env, napi_object_seal(env, object)); + + return object; +} + // We create two type tags. They are basically 128-bit UUIDs. static const napi_type_tag type_tags[2] = { { 0xdaf987b3cc62481a, 0xb745b0497f299531 }, @@ -532,6 +556,8 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NAPI_PROPERTY("TypeTaggedInstance", TypeTaggedInstance), DECLARE_NAPI_PROPERTY("CheckTypeTag", CheckTypeTag), DECLARE_NAPI_PROPERTY("TestGetProperty", TestGetProperty), + DECLARE_NAPI_PROPERTY("TestFreeze", TestFreeze), + DECLARE_NAPI_PROPERTY("TestSeal", TestSeal), }; init_test_null(env, exports); From 2f1319967c740a0267fc84c7dfe31a09a2fd294d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 9 Jun 2020 17:08:53 +0200 Subject: [PATCH 15/82] http: make response.setTimeout() work Fixes: https://github.com/nodejs/node/issues/33734 PR-URL: https://github.com/nodejs/node/pull/34913 Reviewed-By: Luigi Pinca Reviewed-By: Ricky Zhou <0x19951125@gmail.com> Reviewed-By: Trivikram Kamat --- lib/_http_client.js | 20 ++++++++++++++----- .../test-http-client-response-timeout.js | 14 +++++++++++++ ...st-http-client-timeout-option-listeners.js | 4 ++-- 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 test/parallel/test-http-client-response-timeout.js diff --git a/lib/_http_client.js b/lib/_http_client.js index a54cfb2d1b2146..ef103314800ce3 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -525,8 +525,8 @@ function socketOnData(d) { socket.removeListener('end', socketOnEnd); socket.removeListener('drain', ondrain); - if (req.timeoutCb) - socket.removeListener('timeout', req.timeoutCb); + if (req.timeoutCb) socket.removeListener('timeout', req.timeoutCb); + socket.removeListener('timeout', responseOnTimeout); parser.finish(); freeParser(parser, req, socket); @@ -634,6 +634,7 @@ function parserOnIncomingClient(res, shouldKeepAlive) { // Add our listener first, so that we guarantee socket cleanup res.on('end', responseOnEnd); req.on('prefinish', requestOnPrefinish); + socket.on('timeout', responseOnTimeout); // If the user did not listen for the 'response' event, then they // can't possibly read the data, so we ._dump() it into the void @@ -687,15 +688,16 @@ function responseKeepAlive(req) { function responseOnEnd() { const req = this.req; + const socket = req.socket; - if (req.socket && req.timeoutCb) { - req.socket.removeListener('timeout', emitRequestTimeout); + if (socket) { + if (req.timeoutCb) socket.removeListener('timeout', emitRequestTimeout); + socket.removeListener('timeout', responseOnTimeout); } req._ended = true; if (!req.shouldKeepAlive) { - const socket = req.socket; if (socket.writable) { debug('AGENT socket.destroySoon()'); if (typeof socket.destroySoon === 'function') @@ -714,6 +716,14 @@ function responseOnEnd() { } } +function responseOnTimeout() { + const req = this._httpMessage; + if (!req) return; + const res = req.res; + if (!res) return; + res.emit('timeout'); +} + function requestOnPrefinish() { const req = this; diff --git a/test/parallel/test-http-client-response-timeout.js b/test/parallel/test-http-client-response-timeout.js new file mode 100644 index 00000000000000..7e44d83a831143 --- /dev/null +++ b/test/parallel/test-http-client-response-timeout.js @@ -0,0 +1,14 @@ +'use strict'; +const common = require('../common'); +const http = require('http'); + +const server = http.createServer((req, res) => res.flushHeaders()); + +server.listen(common.mustCall(() => { + const req = + http.get({ port: server.address().port }, common.mustCall((res) => { + res.on('timeout', common.mustCall(() => req.destroy())); + res.setTimeout(1); + server.close(); + })); +})); diff --git a/test/parallel/test-http-client-timeout-option-listeners.js b/test/parallel/test-http-client-timeout-option-listeners.js index dac89b5fd1a2bb..1122eaf79e46f8 100644 --- a/test/parallel/test-http-client-timeout-option-listeners.js +++ b/test/parallel/test-http-client-timeout-option-listeners.js @@ -24,9 +24,9 @@ const options = { server.listen(0, options.host, common.mustCall(() => { options.port = server.address().port; doRequest(common.mustCall((numListeners) => { - assert.strictEqual(numListeners, 2); + assert.strictEqual(numListeners, 3); doRequest(common.mustCall((numListeners) => { - assert.strictEqual(numListeners, 2); + assert.strictEqual(numListeners, 3); server.close(); agent.destroy(); })); From 93f947af0a691297cab478b8a3631863494eca50 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 5 Oct 2020 16:16:59 -0700 Subject: [PATCH 16/82] src: expose v8::Isolate setup callbacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/35512 Reviewed-By: Gus Caplan Reviewed-By: Juan José Arboleda Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott --- src/api/environment.cc | 14 +++++++------- src/node.h | 10 ++++++++++ src/node_internals.h | 4 ---- src/node_task_queue.cc | 41 ++++++++++++++++++++--------------------- 4 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/api/environment.cc b/src/api/environment.cc index 9a2661ce8b6146..2c4acbc4fa0eca 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -30,14 +30,14 @@ using v8::PropertyDescriptor; using v8::String; using v8::Value; -static bool AllowWasmCodeGenerationCallback(Local context, - Local) { +bool AllowWasmCodeGenerationCallback(Local context, + Local) { Local wasm_code_gen = context->GetEmbedderData(ContextEmbedderIndex::kAllowWasmCodeGeneration); return wasm_code_gen->IsUndefined() || wasm_code_gen->IsTrue(); } -static bool ShouldAbortOnUncaughtException(Isolate* isolate) { +bool ShouldAbortOnUncaughtException(Isolate* isolate) { DebugSealHandleScope scope(isolate); Environment* env = Environment::GetCurrent(isolate); return env != nullptr && @@ -47,9 +47,9 @@ static bool ShouldAbortOnUncaughtException(Isolate* isolate) { !env->inside_should_not_abort_on_uncaught_scope(); } -static MaybeLocal PrepareStackTraceCallback(Local context, - Local exception, - Local trace) { +MaybeLocal PrepareStackTraceCallback(Local context, + Local exception, + Local trace) { Environment* env = Environment::GetCurrent(context); if (env == nullptr) { return exception->ToString(context).FromMaybe(Local()); @@ -242,7 +242,7 @@ void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s) { if ((s.flags & SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK) == 0) { auto* promise_reject_cb = s.promise_reject_callback ? - s.promise_reject_callback : task_queue::PromiseRejectCallback; + s.promise_reject_callback : PromiseRejectCallback; isolate->SetPromiseRejectCallback(promise_reject_cb); } diff --git a/src/node.h b/src/node.h index 33e11327e487bc..38e0ef50f9b283 100644 --- a/src/node.h +++ b/src/node.h @@ -500,6 +500,16 @@ NODE_EXTERN void DefaultProcessExitHandler(Environment* env, int exit_code); // This may return nullptr if context is not associated with a Node instance. NODE_EXTERN Environment* GetCurrentEnvironment(v8::Local context); +NODE_EXTERN void OnFatalError(const char* location, const char* message); +NODE_EXTERN void PromiseRejectCallback(v8::PromiseRejectMessage message); +NODE_EXTERN bool AllowWasmCodeGenerationCallback(v8::Local context, + v8::Local); +NODE_EXTERN bool ShouldAbortOnUncaughtException(v8::Isolate* isolate); +NODE_EXTERN v8::MaybeLocal PrepareStackTraceCallback( + v8::Local context, + v8::Local exception, + v8::Local trace); + // This returns the MultiIsolatePlatform used in the main thread of Node.js. // If NODE_USE_V8_PLATFORM has not been defined when Node.js was built, // it returns nullptr. diff --git a/src/node_internals.h b/src/node_internals.h index c8952e59a2b071..aa7180e18544ca 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -100,10 +100,6 @@ std::string GetHumanReadableProcessName(); void InitializeContextRuntime(v8::Local); bool InitializePrimordials(v8::Local context); -namespace task_queue { -void PromiseRejectCallback(v8::PromiseRejectMessage message); -} // namespace task_queue - class NodeArrayBufferAllocator : public ArrayBufferAllocator { public: inline uint32_t* zero_fill_field() { return &zero_fill_field_; } diff --git a/src/node_task_queue.cc b/src/node_task_queue.cc index 3c7d9bae0884c5..b55a2a4387d655 100644 --- a/src/node_task_queue.cc +++ b/src/node_task_queue.cc @@ -28,27 +28,6 @@ using v8::PromiseRejectEvent; using v8::PromiseRejectMessage; using v8::Value; -namespace task_queue { - -static void EnqueueMicrotask(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - Isolate* isolate = env->isolate(); - - CHECK(args[0]->IsFunction()); - - isolate->EnqueueMicrotask(args[0].As()); -} - -static void RunMicrotasks(const FunctionCallbackInfo& args) { - MicrotasksScope::PerformCheckpoint(args.GetIsolate()); -} - -static void SetTickCallback(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - CHECK(args[0]->IsFunction()); - env->set_tick_callback_function(args[0].As()); -} - void PromiseRejectCallback(PromiseRejectMessage message) { static std::atomic unhandledRejections{0}; static std::atomic rejectionsHandledAfter{0}; @@ -108,6 +87,26 @@ void PromiseRejectCallback(PromiseRejectMessage message) { PrintCaughtException(isolate, env->context(), try_catch); } } +namespace task_queue { + +static void EnqueueMicrotask(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); + + CHECK(args[0]->IsFunction()); + + isolate->EnqueueMicrotask(args[0].As()); +} + +static void RunMicrotasks(const FunctionCallbackInfo& args) { + MicrotasksScope::PerformCheckpoint(args.GetIsolate()); +} + +static void SetTickCallback(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(args[0]->IsFunction()); + env->set_tick_callback_function(args[0].As()); +} static void SetPromiseRejectCallback( const FunctionCallbackInfo& args) { From 2e67d650bb7b092ed74a532940d1648388021c11 Mon Sep 17 00:00:00 2001 From: Aastha Gupta Date: Sun, 4 Oct 2020 20:19:51 +0530 Subject: [PATCH 17/82] src: fix freeing unintialized pointer bug in ParseSoaReply ares_expand_name doesn't guarantee that pointer variable is initialized if return code is ARES_EBADNAME or ARES_ENOMEM. But current usage of the function in the codebase thinks otherwise. There seems to be an assumption that pointer is always initialized even though it is a local variable and we create a unique pointer soon after calling ares_expand_name. This could potentially crash the program with an invalid free pointer. I was able to crash it by poisoning the memory and some manual hooks. By moving the unique_ptr after checking the return code we can fix the problem. As the underlying function guarantees that pointer is initialized when the status is ARES_SUCCESS. PR-URL: https://github.com/nodejs/node/pull/35502 Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott --- src/cares_wrap.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index 73a0ac6b334345..37389e741793be 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -1066,29 +1066,31 @@ int ParseSoaReply(Environment* env, // Can't use ares_parse_soa_reply() here which can only parse single record const unsigned int ancount = cares_get_16bit(buf + 6); unsigned char* ptr = buf + NS_HFIXEDSZ; - char* name_temp; + char* name_temp = nullptr; long temp_len; // NOLINT(runtime/int) int status = ares_expand_name(ptr, buf, len, &name_temp, &temp_len); - const ares_unique_ptr name(name_temp); if (status != ARES_SUCCESS) { // returns EBADRESP in case of invalid input return status == ARES_EBADNAME ? ARES_EBADRESP : status; } + const ares_unique_ptr name(name_temp); + if (ptr + temp_len + NS_QFIXEDSZ > buf + len) { return ARES_EBADRESP; } ptr += temp_len + NS_QFIXEDSZ; for (unsigned int i = 0; i < ancount; i++) { - char* rr_name_temp; + char* rr_name_temp = nullptr; long rr_temp_len; // NOLINT(runtime/int) int status2 = ares_expand_name(ptr, buf, len, &rr_name_temp, &rr_temp_len); - const ares_unique_ptr rr_name(rr_name_temp); if (status2 != ARES_SUCCESS) return status2 == ARES_EBADNAME ? ARES_EBADRESP : status2; + const ares_unique_ptr rr_name(rr_name_temp); + ptr += rr_temp_len; if (ptr + NS_RRFIXEDSZ > buf + len) { return ARES_EBADRESP; @@ -1100,27 +1102,27 @@ int ParseSoaReply(Environment* env, // only need SOA if (rr_type == ns_t_soa) { - char* nsname_temp; + char* nsname_temp = nullptr; long nsname_temp_len; // NOLINT(runtime/int) int status3 = ares_expand_name(ptr, buf, len, &nsname_temp, &nsname_temp_len); - const ares_unique_ptr nsname(nsname_temp); if (status3 != ARES_SUCCESS) { return status3 == ARES_EBADNAME ? ARES_EBADRESP : status3; } + const ares_unique_ptr nsname(nsname_temp); ptr += nsname_temp_len; - char* hostmaster_temp; + char* hostmaster_temp = nullptr; long hostmaster_temp_len; // NOLINT(runtime/int) int status4 = ares_expand_name(ptr, buf, len, &hostmaster_temp, &hostmaster_temp_len); - const ares_unique_ptr hostmaster(hostmaster_temp); if (status4 != ARES_SUCCESS) { return status4 == ARES_EBADNAME ? ARES_EBADRESP : status4; } + const ares_unique_ptr hostmaster(hostmaster_temp); ptr += hostmaster_temp_len; if (ptr + 5 * 4 > buf + len) { From d53cfcd9e764633a24e2a8530c27fa2e78d43748 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 4 Oct 2020 05:59:05 -0700 Subject: [PATCH 18/82] doc: improve kbd element rendering * better vertical alignment with text * slightly larger "key" size * remove top light area (from box-shadow) PR-URL: https://github.com/nodejs/node/pull/35497 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- doc/api_assets/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/api_assets/style.css b/doc/api_assets/style.css index c54804269c38e5..242cc6a7d11db2 100644 --- a/doc/api_assets/style.css +++ b/doc/api_assets/style.css @@ -576,14 +576,14 @@ kbd { background-color: #eee; border-radius: 3px; border: 1px solid #b4b4b4; - box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset; + box-shadow: 0 1px 1px rgba(0, 0, 0, .2); color: #333; display: inline-block; font-size: .85em; font-weight: 700; - line-height: 1; padding: 2px 4px; white-space: nowrap; + vertical-align: middle; } .changelog > summary { From f552e5c2512db6fcb9be25c5e1f697393a374ad3 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Tue, 6 Oct 2020 09:47:36 -0700 Subject: [PATCH 19/82] build: improved release lint error message PR-URL: https://github.com/nodejs/node/pull/35523 Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Beth Griggs Reviewed-By: Rich Trott Reviewed-By: Anna Henningsen --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a63713ccdf9103..7d4ecf2ce382b1 100644 --- a/Makefile +++ b/Makefile @@ -943,7 +943,9 @@ endif .PHONY: release-only release-only: check-xz @if [ "$(DISTTYPE)" = "release" ] && `grep -q REPLACEME doc/api/*.md`; then \ - echo 'Please update REPLACEME in Added: tags in doc/api/*.md (See doc/guides/releases.md)' ; \ + echo 'Please update REPLACEME tags in the following doc/api/*.md files (See doc/guides/releases.md):\n' ; \ + REPLACEMES="$(shell grep -l REPLACEME doc/api/*.md)" ; \ + echo "$$REPLACEMES\n" | tr " " "\n" ; \ exit 1 ; \ fi @if [ "$(DISTTYPE)" = "release" ] && \ From 1610728d7c04884c9f68c28e6602418936e02b50 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Sat, 3 Oct 2020 20:20:28 -0600 Subject: [PATCH 20/82] fs: add rm method This PR introduces a new method fs.rm that provides the behaviour of rimraf when used with the recursive: true and force: true options. PR-URL: https://github.com/nodejs/node/pull/35494 Reviewed-By: Ben Coe Reviewed-By: Rich Trott Reviewed-By: Ruy Adorno Reviewed-By: Matteo Collina Reviewed-By: Michael Dawson --- doc/api/errors.md | 5 + doc/api/fs.md | 87 +++++- lib/fs.js | 59 +++- lib/internal/errors.js | 1 + lib/internal/fs/promises.js | 9 + lib/internal/fs/utils.js | 97 ++++++- test/common/tmpdir.js | 8 +- test/parallel/test-fs-rm.js | 283 +++++++++++++++++++ test/parallel/test-policy-parse-integrity.js | 2 +- test/pummel/test-policy-integrity.js | 4 +- 10 files changed, 518 insertions(+), 37 deletions(-) create mode 100644 test/parallel/test-fs-rm.js diff --git a/doc/api/errors.md b/doc/api/errors.md index 7e172d58d7fe3a..7e356f1001318a 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -928,6 +928,11 @@ added: v14.0.0 Used when a feature that is not available to the current platform which is running Node.js is used. + +### `ERR_FS_EISDIR` + +Path is a directory. + ### `ERR_FS_FILE_TOO_LARGE` diff --git a/doc/api/fs.md b/doc/api/fs.md index 36d3fc10f4df54..db3e41e1ee17e0 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -3509,9 +3509,9 @@ changes: * `options` {Object} * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or `EPERM` error is encountered, Node.js will retry the operation with a linear - backoff wait of `retryDelay` ms longer on each try. This option represents - the number of retries. This option is ignored if the `recursive` option is - not `true`. **Default:** `0`. + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. * `recursive` {boolean} If `true`, perform a recursive directory removal. In recursive mode, errors are not reported if `path` does not exist, and operations are retried on failure. **Default:** `false`. @@ -3560,9 +3560,9 @@ changes: * `options` {Object} * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or `EPERM` error is encountered, Node.js will retry the operation with a linear - backoff wait of `retryDelay` ms longer on each try. This option represents - the number of retries. This option is ignored if the `recursive` option is - not `true`. **Default:** `0`. + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. * `recursive` {boolean} If `true`, perform a recursive directory removal. In recursive mode, errors are not reported if `path` does not exist, and operations are retried on failure. **Default:** `false`. @@ -3581,6 +3581,53 @@ that represent files will be deleted. The permissive behavior of the `recursive` option is deprecated, `ENOTDIR` and `ENOENT` will be thrown in the future. +## `fs.rm(path[, options], callback)` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `force` don't error on nonexistent path + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js will retry the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive removal. In + recursive mode operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. +* `callback` {Function} + * `err` {Error} + +Asynchronously removes files and directories (modeled on the standard POSIX `rm` +utility). No arguments other than a possible exception are given to the +completion callback. + +## `fs.rmSync(path[, options])` + + +* `path` {string|Buffer|URL} +* `options` {Object} + * `force` Ignore errors + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js will retry the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. + +Synchronously removes files and directories (modeled on the standard POSIX `rm` +utility). Returns `undefined`. + ## `fs.stat(path[, options], callback)` + +* `path` {string|Buffer|URL} +* `options` {Object} + * `force` Ignore errors + * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + `EPERM` error is encountered, Node.js will retry the operation with a linear + backoff wait of `retryDelay` milliseconds longer on each try. This option + represents the number of retries. This option is ignored if the `recursive` + option is not `true`. **Default:** `0`. + * `recursive` {boolean} If `true`, perform a recursive directory removal. In + recursive mode operations are retried on failure. **Default:** `false`. + * `retryDelay` {integer} The amount of time in milliseconds to wait between + retries. This option is ignored if the `recursive` option is not `true`. + **Default:** `100`. + +Synchronously removes files and directories (modeled on the standard POSIX `rm` +utility). Resolves the `Promise` with no arguments on success. + ### `fsPromises.stat(path[, options])` @@ -2519,7 +2519,9 @@ API. ### DEP0140: Use `request.destroy()` instead of `request.abort()` @@ -2569,7 +2571,9 @@ no longer required due to simplification of the implementation. ### DEP0144: `module.parent` From 01c9c59c85f898042461c6fdeb15ee8f783fa4bd Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 29 Sep 2020 11:08:55 +0200 Subject: [PATCH 24/82] doc: add history entry for exports patterns PR-URL: https://github.com/nodejs/node/pull/35410 Refs: https://github.com/nodejs/node/pull/34718 Reviewed-By: Rich Trott --- doc/api/packages.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/api/packages.md b/doc/api/packages.md index 68dd30aca3d149..5593a3c082f943 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -896,6 +896,10 @@ changes: - v13.7.0 pr-url: https://github.com/nodejs/node/pull/31008 description: Implement logical conditional exports ordering. + - version: + - v14.13.0 + pr-url: https://github.com/nodejs/node/pull/34718 + description: Add support for `"exports"` patterns. --> * Type: {Object} | {string} | {string[]} From 85dc84d1bb5759f37d78f8c38667eceae0288c38 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 7 Oct 2020 05:21:11 -0700 Subject: [PATCH 25/82] doc: use sentence case for class property Change the one instance of the Class Property heading in our docs to Class property to match style with other headers. PR-URL: https://github.com/nodejs/node/pull/35540 Reviewed-By: Luigi Pinca Reviewed-By: Anna Henningsen --- doc/api/buffer.md | 2 +- tools/doc/json.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index a36d007f0abcc6..0d370410ed2a99 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -752,7 +752,7 @@ console.log(Buffer.isEncoding('')); // Prints: false ``` -### Class Property: `Buffer.poolSize` +### Class property: `Buffer.poolSize` diff --git a/tools/doc/json.js b/tools/doc/json.js index 6dd25d41026f84..5677fd1ce8b664 100644 --- a/tools/doc/json.js +++ b/tools/doc/json.js @@ -437,7 +437,7 @@ const eventPrefix = '^Event: +'; const classPrefix = '^[Cc]lass: +'; const ctorPrefix = '^(?:[Cc]onstructor: +)?`?new +'; const classMethodPrefix = '^Static method: +'; -const maybeClassPropertyPrefix = '(?:Class Property: +)?'; +const maybeClassPropertyPrefix = '(?:Class property: +)?'; const maybeQuote = '[\'"]?'; const notQuotes = '[^\'"]+'; From 768529736acd77a690934800b017c3b5f62fba13 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Sat, 3 Oct 2020 19:32:32 +0200 Subject: [PATCH 26/82] test: add ALPNProtocols option to clientOptions Without this, the session is destroyed with the following error ``` Error [ERR_HTTP2_ERROR]: Protocol error at Http2Session.onSessionInternalError (internal/http2/core.js:756:26) Emitted 'error' event on ClientHttp2Session instance at: at emitClose (internal/http2/core.js:1010:10) at internal/http2/core.js:1048:7 at finish (internal/streams/writable.js:731:5) at processTicksAndRejections (internal/process/task_queues.js:80:21) { code: 'ERR_HTTP2_ERROR', errno: -505 } ``` The test then calls `session.close()` which tries to write to a destroyed socket. As a result, an unhandled `ECONNRESET` error is emitted in the v12 release line. PR-URL: https://github.com/nodejs/node/pull/35482 Refs: https://github.com/nodejs/node/pull/34859 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell --- test/parallel/test-http2-connect.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parallel/test-http2-connect.js b/test/parallel/test-http2-connect.js index 9ee2e4347f600b..9b4055373f25bd 100644 --- a/test/parallel/test-http2-connect.js +++ b/test/parallel/test-http2-connect.js @@ -95,6 +95,7 @@ const { connect: tlsConnect } = require('tls'); }; const clientOptions = { + ALPNProtocols: ['h2'], port, rejectUnauthorized: false }; From 9c74d4598d858684414b5886b6a7d60bf297d36e Mon Sep 17 00:00:00 2001 From: davkor Date: Wed, 19 Aug 2020 22:02:14 +0100 Subject: [PATCH 27/82] build: fuzzer that targets node::LoadEnvironment() Refs: https://github.com/nodejs/node/pull/34761 Refs: https://github.com/nodejs/node/issues/33724 PR-URL: https://github.com/nodejs/node/pull/34844 Reviewed-By: Anna Henningsen Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Michael Dawson --- node.gyp | 43 +++++++++++++++ test/fuzzers/fuzz_env.cc | 107 +++++++++++++++++++++++++++++++++++++ test/fuzzers/fuzz_helper.h | 42 +++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 test/fuzzers/fuzz_env.cc create mode 100644 test/fuzzers/fuzz_helper.h diff --git a/node.gyp b/node.gyp index 03f4db47acf35a..4a0acda56bf2b5 100644 --- a/node.gyp +++ b/node.gyp @@ -1158,6 +1158,49 @@ }], ], }, # fuzz_url + { # fuzz_env + 'target_name': 'fuzz_env', + 'type': 'executable', + 'dependencies': [ + '<(node_lib_target_name)', + 'deps/histogram/histogram.gyp:histogram', + 'deps/uvwasi/uvwasi.gyp:uvwasi', + 'node_dtrace_header', + 'node_dtrace_ustack', + 'node_dtrace_provider', + ], + 'includes': [ + 'node.gypi' + ], + 'include_dirs': [ + 'src', + 'tools/msvs/genfiles', + 'deps/v8/include', + 'deps/cares/include', + 'deps/uv/include', + 'deps/uvwasi/include', + 'test/cctest', + ], + 'defines': [ + 'NODE_ARCH="<(target_arch)"', + 'NODE_PLATFORM="<(OS)"', + 'NODE_WANT_INTERNALS=1', + ], + 'sources': [ + 'src/node_snapshot_stub.cc', + 'src/node_code_cache_stub.cc', + 'test/fuzzers/fuzz_env.cc', + ], + 'conditions': [ + ['OS=="linux"', { + 'ldflags': [ '-fsanitize=fuzzer' ] + }], + # Ensure that ossfuzz flag has been set and that we are on Linux + [ 'OS!="linux" or ossfuzz!="true"', { + 'type': 'none', + }], + ], + }, # fuzz_env { 'target_name': 'cctest', 'type': 'executable', diff --git a/test/fuzzers/fuzz_env.cc b/test/fuzzers/fuzz_env.cc new file mode 100644 index 00000000000000..92af0bcb30e660 --- /dev/null +++ b/test/fuzzers/fuzz_env.cc @@ -0,0 +1,107 @@ +/* + * A fuzzer focused on the node::LoadEnvironment() function. + * + * Code here has been inspired by the cctest test case. + */ + +#include +#include "node.h" +#include "node_platform.h" +#include "node_internals.h" +#include "env-inl.h" +#include "util-inl.h" +#include "v8.h" +#include "libplatform/libplatform.h" +#include "aliased_buffer.h" +#include "fuzz_helper.h" + +using node::AliasedBufferBase; + +/* General set up */ +using ArrayBufferUniquePtr = std::unique_ptr; +using TracingAgentUniquePtr = std::unique_ptr; +using NodePlatformUniquePtr = std::unique_ptr; + +static TracingAgentUniquePtr tracing_agent; +static NodePlatformUniquePtr platform; +static uv_loop_t current_loop; + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + uv_os_unsetenv("NODE_OPTIONS"); + std::vector node_argv{ "fuzz_env" }; + std::vector exec_argv; + std::vector errors; + + node::InitializeNodeWithArgs(&node_argv, &exec_argv, &errors); + + tracing_agent = std::make_unique(); + node::tracing::TraceEventHelper::SetAgent(tracing_agent.get()); + node::tracing::TracingController* tracing_controller = + tracing_agent->GetTracingController(); + CHECK_EQ(0, uv_loop_init(¤t_loop)); + static constexpr int kV8ThreadPoolSize = 4; + platform.reset( + new node::NodePlatform(kV8ThreadPoolSize, tracing_controller)); + v8::V8::InitializePlatform(platform.get()); + v8::V8::Initialize(); + return 0; +} + +class FuzzerFixtureHelper { +public: + v8::Isolate* isolate_; + ArrayBufferUniquePtr allocator; + + FuzzerFixtureHelper() + : allocator(ArrayBufferUniquePtr(node::CreateArrayBufferAllocator(), + &node::FreeArrayBufferAllocator)) { + isolate_ = NewIsolate(allocator.get(), ¤t_loop, platform.get()); + CHECK_NOT_NULL(isolate_); + isolate_->Enter(); + }; + + void Teardown() { + platform->DrainTasks(isolate_); + isolate_->Exit(); + platform->UnregisterIsolate(isolate_); + isolate_->Dispose(); + isolate_ = nullptr; + } +}; + +void EnvTest(v8::Isolate* isolate_, char* env_string) { + const v8::HandleScope handle_scope(isolate_); + Argv argv; + + node::EnvironmentFlags::Flags flags = node::EnvironmentFlags::kDefaultFlags; + auto isolate = handle_scope.GetIsolate(); + v8::Local context_ = node::NewContext(isolate); + context_->Enter(); + + node::IsolateData* isolate_data_ = node::CreateIsolateData(isolate, ¤t_loop, + platform.get()); + std::vector args(*argv, *argv + 1); + std::vector exec_args(*argv, *argv + 1); + node::Environment* environment_ = node::CreateEnvironment(isolate_data_, + context_, args, exec_args, flags); + node::Environment* envi = environment_; + SetProcessExitHandler(envi, [&](node::Environment* env_, int exit_code) { + node::Stop(envi); + }); + node::LoadEnvironment(envi, env_string); + + // Cleanup! + node::FreeEnvironment(environment_); + node::FreeIsolateData(isolate_data_); + context_->Exit(); +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data2, size_t size) { + FuzzerFixtureHelper ffh; + std::string s(reinterpret_cast(data2), size); + EnvTest(ffh.isolate_, (char*)s.c_str()); + ffh.Teardown(); + return 0; +} + diff --git a/test/fuzzers/fuzz_helper.h b/test/fuzzers/fuzz_helper.h new file mode 100644 index 00000000000000..707a8183dbd274 --- /dev/null +++ b/test/fuzzers/fuzz_helper.h @@ -0,0 +1,42 @@ +struct Argv { + public: + Argv() : Argv({"node", "-p", "process.version"}) {} + + Argv(const std::initializer_list &args) { + nr_args_ = args.size(); + int total_len = 0; + for (auto it = args.begin(); it != args.end(); ++it) { + total_len += strlen(*it) + 1; + } + argv_ = static_cast(malloc(nr_args_ * sizeof(char*))); + argv_[0] = static_cast(malloc(total_len)); + int i = 0; + int offset = 0; + for (auto it = args.begin(); it != args.end(); ++it, ++i) { + int len = strlen(*it) + 1; + snprintf(argv_[0] + offset, len, "%s", *it); + // Skip argv_[0] as it points the correct location already + if (i > 0) { + argv_[i] = argv_[0] + offset; + } + offset += len; + } + } + + ~Argv() { + free(argv_[0]); + free(argv_); + } + + int nr_args() const { + return nr_args_; + } + + char** operator*() const { + return argv_; + } + + private: + char** argv_; + int nr_args_; +}; From 84c0adefa085c696e8d232a93921bec53fd52f40 Mon Sep 17 00:00:00 2001 From: Denys Otrishko Date: Tue, 15 Sep 2020 11:29:55 +0300 Subject: [PATCH 28/82] build: add Commit Queue actions url to failure comment PR-URL: https://github.com/nodejs/node/pull/35206 Refs: https://docs.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables Reviewed-By: Mary Marchini Reviewed-By: Richard Lau Reviewed-By: Antoine du Hamel --- tools/actions/commit-queue.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/actions/commit-queue.sh b/tools/actions/commit-queue.sh index 028297217469a0..39f513256916f4 100755 --- a/tools/actions/commit-queue.sh +++ b/tools/actions/commit-queue.sh @@ -64,7 +64,8 @@ for pr in "$@"; do if ! tail -n 10 output | grep '. Post "Landed in .*/pull/'"${pr}"; then gitHubCurl "$(labelsUrl "$pr")" POST --data '{"labels": ["'"${COMMIT_QUEUE_FAILED_LABEL}"'"]}' - jq -n --arg content "
Commit Queue failed
$(cat output)
" '{body: $content}' > output.json + cqurl="Commit Queue action: $GITHUB_SERVER_URL/${OWNER}/${REPOSITORY}/actions/runs/$GITHUB_RUN_ID" + jq -n --arg content "
Commit Queue failed
$(cat output)
\n$cqurl" '{body: $content}' > output.json cat output.json gitHubCurl "$(commentsUrl "$pr")" POST --data @output.json From 863ba4b7da77735cd90cb7307e4e6c49359c8bb7 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 9 Oct 2020 13:09:09 -0400 Subject: [PATCH 29/82] doc: refactor the n-api matrix - refactor the n-api matrix and add v7 Signed-off-by: Michael Dawson PR-URL: https://github.com/nodejs/node/pull/35345 Reviewed-By: Chengzhong Wu Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel --- doc/api/n-api.md | 47 ++++++++++++++++------------------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 3867f9f4375d74..d75cfc5e0e3d95 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -253,46 +253,43 @@ listed as supporting a later version. 1 2 3 - 4 - 5 - 6 - 7 v6.x v6.14.2* - - - - v8.x v8.6.0** v8.10.0* v8.11.2 - v8.16.0 - - - v9.x v9.0.0* v9.3.0* v9.11.0* + + + ≥ v10.x + all releases + all releases + all releases + + + + + - - - + + + + - - - @@ -300,9 +297,6 @@ listed as supporting a later version. - - - @@ -311,20 +305,14 @@ listed as supporting a later version. - - - - + - - - @@ -333,9 +321,6 @@ listed as supporting a later version. - - -
4567
v10.xv10.0.0v10.0.0v10.0.0 v10.16.0 v10.17.0 v10.20.0
v11.xv11.0.0v11.0.0v11.0.0 v11.8.0
v12.x v12.0.0v12.0.0v12.0.0v12.0.0 v12.11.0 v12.17.0v12.19.0
v13.x v13.0.0 v13.0.0v13.0.0v13.0.0v13.0.0
v14.0.0 v14.0.0 v14.0.0v14.0.0v14.0.0v14.0.0 v14.12.0
From e8fcbc83184deaf5746e15ed87a47b4b931eef95 Mon Sep 17 00:00:00 2001 From: Denys Otrishko Date: Wed, 16 Sep 2020 10:51:30 +0300 Subject: [PATCH 30/82] build: fix landed message for multiple commits in commit-queue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/35226 Reviewed-By: Mary Marchini Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott Reviewed-By: Antoine du Hamel --- tools/actions/commit-queue.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/actions/commit-queue.sh b/tools/actions/commit-queue.sh index 39f513256916f4..ec2475067965be 100755 --- a/tools/actions/commit-queue.sh +++ b/tools/actions/commit-queue.sh @@ -7,6 +7,9 @@ REPOSITORY=$2 GITHUB_TOKEN=$3 shift 3 +UPSTREAM=origin +DEFAULT_BRANCH=master + API_URL=https://api.github.com COMMIT_QUEUE_LABEL='commit-queue' COMMIT_QUEUE_FAILED_LABEL='commit-queue-failed' @@ -77,9 +80,12 @@ for pr in "$@"; do git node land --abort --yes else rm output - git push origin master - gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$(git rev-parse HEAD)"'"}' + commits="$(git rev-parse $UPSTREAM/$DEFAULT_BRANCH)...$(git rev-parse HEAD)" + + git push $UPSTREAM $DEFAULT_BRANCH + + gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$commits"'"}' gitHubCurl "$(issueUrl "$pr")" PATCH --data '{"state": "closed"}' fi From a5552468d2cb849b4e7a2152e3624769f0bf6437 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 19:38:33 +0200 Subject: [PATCH 31/82] doc: harmonize YAML comments style in deprecations.md Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/deprecations.md | 165 ++++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 44948666ee002e..d34abbc230fbee 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -47,8 +47,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/31164 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v1.6.0 @@ -84,10 +84,10 @@ The `_linklist` module is deprecated. Please use a userland alternative. changes: - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31165 - description: End-of-Life + description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v0.11.15 @@ -107,11 +107,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/17882 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - - version: 0.4.0 + - version: v0.4.0 commit: 9c7f89bf56abd37a796fea621ad2e47dd33d2b82 description: Documentation-only deprecation. --> @@ -167,8 +167,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/25279 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v0.11.14 @@ -232,7 +232,7 @@ to the `constants` property exposed by the relevant module. For instance, changes: - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31166 - description: End-of-Life (for `digest === null`) + description: End-of-Life (for `digest === null`). - version: v11.0.0 pr-url: https://github.com/nodejs/node/pull/22861 description: Runtime deprecation (for `digest === null`). @@ -268,8 +268,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/21153 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v0.11.13 @@ -289,8 +289,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/21153 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v0.11.13 @@ -310,8 +310,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/15412 description: End-of-Life. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v0.11.7 @@ -346,14 +346,14 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/9683 description: End-of-Life. - - version: v6.0.0 - pr-url: https://github.com/nodejs/node/pull/4525 - description: Runtime deprecation. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. + - version: v6.0.0 + pr-url: https://github.com/nodejs/node/pull/4525 + description: Runtime deprecation. - version: v0.1.96 commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6 description: Documentation-only deprecation. @@ -370,14 +370,14 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/9683 description: End-of-Life. - - version: v6.0.0 - pr-url: https://github.com/nodejs/node/pull/4525 - description: Runtime deprecation. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. + - version: v6.0.0 + pr-url: https://github.com/nodejs/node/pull/4525 + description: Runtime deprecation. - version: v0.1.96 commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6 description: Documentation-only deprecation. @@ -393,7 +393,7 @@ The [`fs.readSync()`][] legacy `String` interface is deprecated. Use the changes: - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31167 - description: End-of-Life + description: End-of-Life. - version: v6.12.0 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. @@ -444,8 +444,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/26973 description: Removed functionality. - version: - - v4.8.6 - v6.12.0 + - v4.8.6 pr-url: https://github.com/nodejs/node/pull/10116 description: A deprecation code has been assigned. - version: v1.8.1 @@ -462,8 +462,8 @@ This behavior has been removed. @@ -927,13 +927,13 @@ instead. @@ -946,13 +946,13 @@ The [`util.isBoolean()`][] API is deprecated. @@ -966,13 +966,13 @@ The [`util.isBuffer()`][] API is deprecated. Please use @@ -985,13 +985,13 @@ The [`util.isDate()`][] API is deprecated. @@ -1004,13 +1004,13 @@ The [`util.isError()`][] API is deprecated. @@ -1023,13 +1023,13 @@ The [`util.isFunction()`][] API is deprecated. @@ -1042,13 +1042,13 @@ The [`util.isNull()`][] API is deprecated. @@ -1061,13 +1061,13 @@ The [`util.isNullOrUndefined()`][] API is deprecated. @@ -1076,17 +1076,17 @@ Type: Documentation-only The [`util.isNumber()`][] API is deprecated. -### DEP0053 `util.isObject()` +### DEP0053: `util.isObject()` @@ -1099,13 +1099,13 @@ The [`util.isObject()`][] API is deprecated. @@ -1118,13 +1118,13 @@ The [`util.isPrimitive()`][] API is deprecated. @@ -1137,13 +1137,13 @@ The [`util.isRegExp()`][] API is deprecated. @@ -1156,13 +1156,13 @@ The [`util.isString()`][] API is deprecated. @@ -1175,13 +1175,13 @@ The [`util.isSymbol()`][] API is deprecated. @@ -1243,12 +1243,12 @@ alternative. ### DEP0062: `node --debug` Type: End-of-Life @@ -1675,12 +1675,12 @@ code modification is necessary if that is done. ### DEP0085: AsyncHooks sensitive API @@ -1694,12 +1694,12 @@ Use the `AsyncResource` API instead. See ### DEP0086: Remove `runInAsyncIdScope` @@ -1845,11 +1845,11 @@ should start using the `async_context` variant of `MakeCallback` or changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/26530 - description: End-of-Life + description: End-of-Life. - version: - - v8.12.0 - - v9.6.0 - v10.0.0 + - v9.6.0 + - v8.12.0 pr-url: https://github.com/nodejs/node/pull/18632 description: Runtime deprecation. --> @@ -2059,12 +2059,12 @@ The `produceCachedData` option is deprecated. Use ### DEP0111: `process.binding()` Type: Documentation-only (supports [`--pending-deprecation`][]) @@ -2423,6 +2423,7 @@ an officially supported API. changes: - version: v13.0.0 pr-url: https://github.com/nodejs/node/pull/29061 + description: Runtime deprecation. --> Type: Runtime From 02bf73e239ab273bd67a5cbf82db935c4b49a2a1 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 20:00:05 +0200 Subject: [PATCH 32/82] doc: remove outstanding YAML comment Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/buffer.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 0d370410ed2a99..f3952a4b552e5f 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -763,10 +763,6 @@ This is the size (in bytes) of pre-allocated internal `Buffer` instances used for pooling. This value may be modified. ### `buf[index]` - * `index` {integer} From b3f15b7d890110bfd4bbc7be3cc66ed45f916eca Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 20:21:07 +0200 Subject: [PATCH 33/82] doc: fix missing PR-URLs in YAML comments Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/assert.md | 1 + doc/api/dgram.md | 3 ++- doc/api/domain.md | 1 + doc/api/n-api.md | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/api/assert.md b/doc/api/assert.md index b1b77b8f3d6ea7..ea5e6034509227 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -16,6 +16,7 @@ changes: - version: - v13.9.0 - v12.16.2 + pr-url: https://github.com/nodejs/node/pull/31635 description: Changed "strict mode" to "strict assertion mode" and "legacy mode" to "legacy assertion mode" to avoid confusion with the more usual meaning of "strict mode". diff --git a/doc/api/dgram.md b/doc/api/dgram.md index 9c289b3fb7cca8..4b084b20adb27a 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -174,7 +174,8 @@ This method throws `EBADF` if called on an unbound socket. From 28c94ca1236054b696b8853475662009f2807638 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 20:23:33 +0200 Subject: [PATCH 34/82] doc: harmonize version list style in YAML comments Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/assert.md | 44 ++++++++++++++++++++++++++++++---------- doc/api/buffer.md | 8 ++++++-- doc/api/child_process.md | 8 ++++++-- doc/api/events.md | 4 +++- doc/api/http.md | 8 ++++++-- doc/api/modules.md | 2 +- doc/api/n-api.md | 2 +- doc/api/packages.md | 12 +++++------ doc/api/process.md | 4 +++- doc/api/querystring.md | 4 +++- doc/api/readline.md | 4 +++- doc/api/tls.md | 4 +++- doc/api/url.md | 4 +++- 13 files changed, 77 insertions(+), 31 deletions(-) diff --git a/doc/api/assert.md b/doc/api/assert.md index ea5e6034509227..58e41723ee49d5 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -318,13 +318,19 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 description: The `Set` and `Map` content is also compared - - version: v6.4.0, v4.7.1 + - version: + - v6.4.0 + - v4.7.1 pr-url: https://github.com/nodejs/node/pull/8002 description: Typed array slices are handled correctly now. - - version: v6.1.0, v4.5.0 + - version: + - v6.1.0 + - v4.5.0 pr-url: https://github.com/nodejs/node/pull/6432 description: Objects with circular references can be used as inputs now. - - version: v5.10.1, v4.4.3 + - version: + - v5.10.1 + - v4.4.3 pr-url: https://github.com/nodejs/node/pull/5910 description: Handle non-`Uint8Array` typed arrays correctly. --> @@ -438,13 +444,17 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 description: The `Set` and `Map` content is also compared - - version: v6.4.0, v4.7.1 + - version: + - v6.4.0 + - v4.7.1 pr-url: https://github.com/nodejs/node/pull/8002 description: Typed array slices are handled correctly now. - version: v6.1.0 pr-url: https://github.com/nodejs/node/pull/6432 description: Objects with circular references can be used as inputs now. - - version: v5.10.1, v4.4.3 + - version: + - v5.10.1 + - v4.4.3 pr-url: https://github.com/nodejs/node/pull/5910 description: Handle non-`Uint8Array` typed arrays correctly. --> @@ -666,7 +676,9 @@ assert.doesNotReject(Promise.reject(new TypeError('Wrong value'))) @@ -1057,13 +1075,17 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 description: The `Set` and `Map` content is also compared - - version: v6.4.0, v4.7.1 + - version: + - v6.4.0 + - v4.7.1 pr-url: https://github.com/nodejs/node/pull/8002 description: Typed array slices are handled correctly now. - version: v6.1.0 pr-url: https://github.com/nodejs/node/pull/6432 description: Objects with circular references can be used as inputs now. - - version: v5.10.1, v4.4.3 + - version: + - v5.10.1 + - v4.4.3 pr-url: https://github.com/nodejs/node/pull/5910 description: Handle non-`Uint8Array` typed arrays correctly. --> diff --git a/doc/api/buffer.md b/doc/api/buffer.md index f3952a4b552e5f..118ebf86e77e0c 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -1128,7 +1128,9 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/10236 description: The `value` can now be a `Uint8Array`. - - version: v5.7.0, v4.4.0 + - version: + - v5.7.0 + - v4.4.0 pr-url: https://github.com/nodejs/node/pull/4803 description: When `encoding` is being passed, the `byteOffset` parameter is no longer required. @@ -1985,7 +1987,9 @@ console.log(buf.subarray(-5, -2).toString()); @@ -856,7 +858,9 @@ changes: - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/10653 description: The `input` option can now be a `Uint8Array`. - - version: v6.2.1, v4.5.0 + - version: + - v6.2.1 + - v4.5.0 pr-url: https://github.com/nodejs/node/pull/6939 description: The `encoding` option can now explicitly be set to `buffer`. - version: v5.7.0 diff --git a/doc/api/events.md b/doc/api/events.md index 77ba17f6561a5b..ba83c8ff90ad60 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -291,7 +291,9 @@ myEmitter.emit('event'); diff --git a/doc/api/modules.md b/doc/api/modules.md index 2e239c23693146..31726a9434e4ac 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -903,8 +903,8 @@ loading. > Stability: 0 - Deprecated: Please use [`require.main`][] and diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 13b9b199b64624..f332a37836f050 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -5569,8 +5569,8 @@ a specific `napi_env`. ### napi_get_uv_event_loop diff --git a/doc/api/packages.md b/doc/api/packages.md index 5593a3c082f943..5e2e58239067bf 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -800,12 +800,12 @@ The following fields in `package.json` files are used in Node.js: ### `"name"` @@ -830,8 +830,8 @@ The `"name"` field can be used in addition to the [`"exports"`][] field to added: v12.0.0 changes: - version: - - v12.17.0 - v13.2.0 + - v12.17.0 pr-url: https://github.com/nodejs/node/pull/29866 description: Unflag `--experimental-modules`. --> @@ -882,18 +882,18 @@ as ES modules and `.cjs` files are always treated as CommonJS. added: v12.7.0 changes: - version: - - v12.16.0 - v13.2.0 + - v12.16.0 pr-url: https://github.com/nodejs/node/pull/29978 description: Implement conditional exports. - version: - - v12.16.0 - v13.7.0 + - v12.16.0 pr-url: https://github.com/nodejs/node/pull/31001 description: Remove the `--experimental-conditional-exports` option. - version: - - v12.16.0 - v13.7.0 + - v12.16.0 pr-url: https://github.com/nodejs/node/pull/31008 description: Implement logical conditional exports ordering. - version: diff --git a/doc/api/process.md b/doc/api/process.md index bfe9df10d685d5..452da15878fd49 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -2428,7 +2428,9 @@ flag's behavior. diff --git a/doc/api/readline.md b/doc/api/readline.md index 2e82fdf91a1f10..d572eb4bb29f9b 100644 --- a/doc/api/readline.md +++ b/doc/api/readline.md @@ -471,7 +471,9 @@ changes: - version: v13.9.0 pr-url: https://github.com/nodejs/node/pull/31318 description: The `tabSize` option is supported now. - - version: v8.3.0, 6.11.4 + - version: + - v8.3.0 + - v6.11.4 pr-url: https://github.com/nodejs/node/pull/13497 description: Remove max limit of `crlfDelay` option. - version: v6.6.0 diff --git a/doc/api/tls.md b/doc/api/tls.md index cae48c345a3a06..a55847ec3c736d 100644 --- a/doc/api/tls.md +++ b/doc/api/tls.md @@ -1382,7 +1382,9 @@ changes: pr-url: https://github.com/nodejs/node/pull/11984 description: The `ALPNProtocols` option can be a `TypedArray` or `DataView` now. - - version: v5.3.0, v4.7.0 + - version: + - v5.3.0 + - v4.7.0 pr-url: https://github.com/nodejs/node/pull/4246 description: The `secureContext` option is supported now. - version: v5.0.0 diff --git a/doc/api/url.md b/doc/api/url.md index d0cd0346b239c1..dff038976fba63 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -1268,7 +1268,9 @@ changes: pr-url: https://github.com/nodejs/node/pull/8215 description: The `auth` fields are now kept intact when `from` and `to` refer to the same host. - - version: v6.5.0, v4.6.2 + - version: + - v6.5.0 + - v4.6.2 pr-url: https://github.com/nodejs/node/pull/8214 description: The `port` field is copied correctly now. - version: v6.0.0 From bd344108eb512377f0e4b7b1aebe094d09d07a99 Mon Sep 17 00:00:00 2001 From: Beth Griggs Date: Wed, 14 Oct 2020 12:10:20 +0100 Subject: [PATCH 35/82] Revert "tools: add missing uv_setup_argv() calls" This reverts commit 70e77f123164ecbdbdd4abc2e4919ce1b193421e. Refs: https://github.com/nodejs/node/pull/35491 PR-URL: https://github.com/nodejs/node/pull/35641 Reviewed-By: Richard Lau --- tools/code_cache/mkcodecache.cc | 1 - tools/snapshot/node_mksnapshot.cc | 1 - 2 files changed, 2 deletions(-) diff --git a/tools/code_cache/mkcodecache.cc b/tools/code_cache/mkcodecache.cc index 3a1d0ee50e5078..c314e07fd78b22 100644 --- a/tools/code_cache/mkcodecache.cc +++ b/tools/code_cache/mkcodecache.cc @@ -24,7 +24,6 @@ using v8::Local; int wmain(int argc, wchar_t* argv[]) { #else // UNIX int main(int argc, char* argv[]) { - argv = uv_setup_args(argc, argv); #endif // _WIN32 v8::V8::SetFlagsFromString("--random_seed=42"); diff --git a/tools/snapshot/node_mksnapshot.cc b/tools/snapshot/node_mksnapshot.cc index edf5cb72a80b84..29f9e1cbcbb096 100644 --- a/tools/snapshot/node_mksnapshot.cc +++ b/tools/snapshot/node_mksnapshot.cc @@ -17,7 +17,6 @@ int wmain(int argc, wchar_t* argv[]) { #else // UNIX int main(int argc, char* argv[]) { - argv = uv_setup_args(argc, argv); #endif // _WIN32 v8::V8::SetFlagsFromString("--random_seed=42"); From b7305284e28d5bdef15cf1c3de26248b63ad7f52 Mon Sep 17 00:00:00 2001 From: cclauss Date: Tue, 6 Oct 2020 17:51:24 +0200 Subject: [PATCH 36/82] build: gitHub actions: Python 3.9 and actions/setup-python@v2 PR-URL: https://github.com/nodejs/node/pull/35521 Reviewed-By: Richard Lau Reviewed-By: Shelley Vohr Reviewed-By: Rich Trott Reviewed-By: Jiawen Geng Reviewed-By: Myles Borins --- .github/workflows/auto-start-ci.yml | 2 +- .github/workflows/build-tarball.yml | 8 ++++---- .github/workflows/build-windows.yml | 4 ++-- .github/workflows/linters.yml | 6 +++--- .github/workflows/test-asan.yml | 4 ++-- .github/workflows/test-linux.yml | 4 ++-- .github/workflows/test-macos.yml | 4 ++-- configure | 3 ++- 8 files changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml index cb9318ab4ade9f..6ca3392720562d 100644 --- a/.github/workflows/auto-start-ci.yml +++ b/.github/workflows/auto-start-ci.yml @@ -14,7 +14,7 @@ jobs: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v2 # Install dependencies - name: Install jq diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 0caf0bdf961914..81f121e2cf2ee0 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -14,12 +14,12 @@ env: jobs: build-tarball: env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -39,13 +39,13 @@ jobs: path: tarballs test-tarball-linux: env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 needs: build-tarball runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index ff6788e06b7858..8765d2d8d5cae5 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -10,7 +10,7 @@ on: - v[0-9]+.x env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 FLAKY_TESTS: dontcare jobs: @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install deps diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 3cd4def9f986bc..573057742ce70b 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -9,7 +9,7 @@ on: - v[0-9]+.x env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 NODE_VERSION: 10.x jobs: @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information @@ -68,7 +68,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml index 96975024e399f5..d976b225dbc5c2 100644 --- a/.github/workflows/test-asan.yml +++ b/.github/workflows/test-asan.yml @@ -14,7 +14,7 @@ on: - 'doc/**' env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 FLAKY_TESTS: dontcare jobs: @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index f5bedead2afa01..f96e3a28a1e791 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -10,7 +10,7 @@ on: - v[0-9]+.x env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 FLAKY_TESTS: dontcare jobs: @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index f4a2454e37f635..f12de4c5994f88 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -10,7 +10,7 @@ on: - v[0-9]+.x env: - PYTHON_VERSION: 3.8 + PYTHON_VERSION: 3.9 FLAKY_TESTS: dontcare jobs: @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information diff --git a/configure b/configure index 7e8c4cff832ffd..07581d9c5a4ff1 100755 --- a/configure +++ b/configure @@ -5,6 +5,7 @@ # as is the fact that the ] goes on a new line. _=[ 'exec' '/bin/sh' '-c' ''' test ${FORCE_PYTHON2} && exec python2 "$0" "$@" # workaround for gclient +command -v python3.9 >/dev/null && exec python3.9 "$0" "$@" command -v python3.8 >/dev/null && exec python3.8 "$0" "$@" command -v python3.7 >/dev/null && exec python3.7 "$0" "$@" command -v python3.6 >/dev/null && exec python3.6 "$0" "$@" @@ -19,7 +20,7 @@ import sys from distutils.spawn import find_executable print('Node.js configure: Found Python {0}.{1}.{2}...'.format(*sys.version_info)) -acceptable_pythons = ((3, 8), (3, 7), (3, 6), (3, 5), (2, 7)) +acceptable_pythons = ((3, 9), (3, 8), (3, 7), (3, 6), (3, 5), (2, 7)) if sys.version_info[:2] in acceptable_pythons: import configure else: From 8cacca0f62e18fada33efb1c3559591021ed5e17 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 20:35:23 +0200 Subject: [PATCH 37/82] doc: changes description must end with a period Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/assert.md | 20 ++++++++++---------- doc/api/async_hooks.md | 2 +- doc/api/cli.md | 14 +++++++------- doc/api/crypto.md | 8 ++++---- doc/api/fs.md | 10 +++++----- doc/api/n-api.md | 11 +++++------ doc/api/os.md | 2 +- doc/api/vm.md | 5 +++-- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/doc/api/assert.md b/doc/api/assert.md index 58e41723ee49d5..1fd57b6f9f901d 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -314,10 +314,10 @@ changes: minor comparison adjustments to make the check less surprising. - version: v9.0.0 pr-url: https://github.com/nodejs/node/pull/15001 - description: The `Error` names and messages are now properly compared + description: The `Error` names and messages are now properly compared. - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 - description: The `Set` and `Map` content is also compared + description: The `Set` and `Map` content is also compared. - version: - v6.4.0 - v4.7.1 @@ -440,10 +440,10 @@ changes: comparison. - version: v8.5.0 pr-url: https://github.com/nodejs/node/pull/15001 - description: The `Error` names and messages are now properly compared + description: The `Error` names and messages are now properly compared. - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 - description: The `Set` and `Map` content is also compared + description: The `Set` and `Map` content is also compared. - version: - v6.4.0 - v4.7.1 @@ -983,10 +983,10 @@ changes: NaN. - version: v9.0.0 pr-url: https://github.com/nodejs/node/pull/15001 - description: The `Error` names and messages are now properly compared + description: The `Error` names and messages are now properly compared. - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 - description: The `Set` and `Map` content is also compared + description: The `Set` and `Map` content is also compared. - version: - v6.4.0 - v4.7.1 @@ -1071,10 +1071,10 @@ changes: comparison. - version: v9.0.0 pr-url: https://github.com/nodejs/node/pull/15001 - description: The `Error` names and messages are now properly compared + description: The `Error` names and messages are now properly compared. - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/12142 - description: The `Set` and `Map` content is also compared + description: The `Set` and `Map` content is also compared. - version: - v6.4.0 - v4.7.1 @@ -1160,7 +1160,7 @@ added: v0.1.21 changes: - version: v10.0.0 pr-url: https://github.com/nodejs/node/pull/17003 - description: Used comparison changed from Strict Equality to `Object.is()` + description: Used comparison changed from Strict Equality to `Object.is()`. --> * `actual` {any} @@ -1339,7 +1339,7 @@ added: v0.1.21 changes: - version: v10.0.0 pr-url: https://github.com/nodejs/node/pull/17003 - description: Used comparison changed from Strict Equality to `Object.is()` + description: Used comparison changed from Strict Equality to `Object.is()`. --> * `actual` {any} diff --git a/doc/api/async_hooks.md b/doc/api/async_hooks.md index 0a8b8d1c5200ad..cf3fd79ffafc21 100644 --- a/doc/api/async_hooks.md +++ b/doc/api/async_hooks.md @@ -544,7 +544,7 @@ added: v8.1.0 changes: - version: v8.2.0 pr-url: https://github.com/nodejs/node/pull/13490 - description: Renamed from `currentId` + description: Renamed from `currentId`. --> * Returns: {number} The `asyncId` of the current execution context. Useful to diff --git a/doc/api/cli.md b/doc/api/cli.md index a5c678b30cb405..0112319a3a3ec4 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -274,7 +274,7 @@ changes: - version: v13.6.0 pr-url: https://github.com/nodejs/node/pull/30980 description: changed from `--experimental-wasi-unstable-preview0` to - `--experimental-wasi-unstable-preview1` + `--experimental-wasi-unstable-preview1`. --> Enable experimental WebAssembly System Interface (WASI) support. @@ -674,7 +674,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: Changed from `--diagnostic-report-directory` to - `--report-directory` + `--report-directory`. --> Location at which the report will be generated. @@ -689,7 +689,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: changed from `--diagnostic-report-filename` to - `--report-filename` + `--report-filename`. --> Name of the file to which the report will be written. @@ -704,7 +704,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: changed from `--diagnostic-report-on-fatalerror` to - `--report-on-fatalerror` + `--report-on-fatalerror`. --> Enables the report to be triggered on fatal errors (internal errors within @@ -723,7 +723,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: changed from `--diagnostic-report-on-signal` to - `--report-on-signal` + `--report-on-signal`. --> Enables report to be generated upon receiving the specified (or predefined) @@ -740,7 +740,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: changed from `--diagnostic-report-signal` to - `--report-signal` + `--report-signal`. --> Sets or resets the signal for report generation (not supported on Windows). @@ -756,7 +756,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/27312 description: changed from `--diagnostic-report-uncaught-exception` to - `--report-uncaught-exception` + `--report-uncaught-exception`. --> Enables report to be generated on uncaught exceptions. Useful when inspecting diff --git a/doc/api/crypto.md b/doc/api/crypto.md index b6bd41b9fdfa1b..6021cb8d5a3a74 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -842,11 +842,11 @@ added: v0.11.14 changes: - version: v6.0.0 pr-url: https://github.com/nodejs/node/pull/5522 - description: The default `inputEncoding` changed from `binary` to `utf8` + description: The default `inputEncoding` changed from `binary` to `utf8`. - version: v10.0.0 pr-url: https://github.com/nodejs/node/pull/16849 description: Changed error format to better support invalid public key - error + error. --> * `otherPublicKey` {string | Buffer | TypedArray | DataView} @@ -1249,14 +1249,14 @@ changes: description: Added support for `'dh'`. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/26960 - description: Added support for `'rsa-pss'` + description: Added support for `'rsa-pss'`. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/26786 description: This property now returns `undefined` for KeyObject instances of unrecognized type instead of aborting. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/26774 - description: Added support for `'x25519'` and `'x448'` + description: Added support for `'x25519'` and `'x448'`. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/26319 description: Added support for `'ed25519'` and `'ed448'`. diff --git a/doc/api/fs.md b/doc/api/fs.md index db3e41e1ee17e0..58b97be26c2d5c 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -2922,7 +2922,7 @@ changes: - version: v13.11.0 pr-url: https://github.com/nodejs/node/pull/31402 description: Options object can be passed in - to make Buffer, offset, length and position optional + to make Buffer, offset, length and position optional. --> * `fd` {integer} * `options` {Object} @@ -3220,7 +3220,7 @@ changes: - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/32460 description: Options object can be passed in - to make offset, length and position optional + to make offset, length and position optional. --> * `fd` {integer} @@ -3775,7 +3775,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/23724 description: If the `type` argument is left undefined, Node will autodetect - `target` type and automatically select `dir` or `file` + `target` type and automatically select `dir` or `file`. --> * `target` {string|Buffer|URL} @@ -3823,7 +3823,7 @@ changes: - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/23724 description: If the `type` argument is left undefined, Node will autodetect - `target` type and automatically select `dir` or `file` + `target` type and automatically select `dir` or `file`. --> * `target` {string|Buffer|URL} @@ -4216,7 +4216,7 @@ changes: - version: v10.10.0 pr-url: https://github.com/nodejs/node/pull/22150 description: The `buffer` parameter can now be any `TypedArray` or a - `DataView` + `DataView`. - version: v10.0.0 pr-url: https://github.com/nodejs/node/pull/12562 description: The `callback` parameter is no longer optional. Not passing diff --git a/doc/api/n-api.md b/doc/api/n-api.md index f332a37836f050..1f1ecf43d4bec9 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -3747,7 +3747,7 @@ if (status != napi_ok) return status; changes: - version: v14.12.0 pr-url: https://github.com/nodejs/node/pull/35214 - description: added `napi_default_method` and `napi_default_property` + description: added `napi_default_method` and `napi_default_property`. --> ```c @@ -5784,13 +5784,12 @@ napiVersion: 4 changes: - version: v14.5.0 pr-url: https://github.com/nodejs/node/pull/33453 - description: > - Support for `napi_would_deadlock` has been reverted. + description: Support for `napi_would_deadlock` has been reverted. - version: v14.1.0 pr-url: https://github.com/nodejs/node/pull/32689 - description: > - Return `napi_would_deadlock` when called with `napi_tsfn_blocking` from - the main thread or a worker thread and the queue is full. + description: Return `napi_would_deadlock` when called with + `napi_tsfn_blocking` from the main thread or a worker thread + and the queue is full. --> ```c diff --git a/doc/api/os.md b/doc/api/os.md index 239255147d4f03..1053dd376265b3 100644 --- a/doc/api/os.md +++ b/doc/api/os.md @@ -324,7 +324,7 @@ changes: - version: v2.0.0 pr-url: https://github.com/nodejs/node/pull/747 description: This function is now cross-platform consistent and no longer - returns a path with a trailing slash on any platform + returns a path with a trailing slash on any platform. --> * Returns: {string} diff --git a/doc/api/vm.md b/doc/api/vm.md index 34e1b2d2f004e6..d6035e6b4fba34 100644 --- a/doc/api/vm.md +++ b/doc/api/vm.md @@ -61,7 +61,7 @@ changes: - version: v10.6.0 pr-url: https://github.com/nodejs/node/pull/20300 description: The `produceCachedData` is deprecated in favour of - `script.createCachedData()` + `script.createCachedData()`. --> * `code` {string} The JavaScript code to compile. @@ -816,7 +816,8 @@ changes: description: The `importModuleDynamically` option is now supported. - version: v14.3.0 pr-url: https://github.com/nodejs/node/pull/33364 - description: Removal of `importModuleDynamically` due to compatibility issues + description: Removal of `importModuleDynamically` due to compatibility + issues. --> * `code` {string} The body of the function to compile. From 62755b6230530d1ec3981f2849473da65e6d2ace Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 1 Oct 2020 20:49:03 +0200 Subject: [PATCH 38/82] doc: harmonize changes list ordering Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35454 Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Ujjwal Sharma Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Khaidi Chu Reviewed-By: Michael Dawson --- doc/api/crypto.md | 6 ++-- doc/api/dgram.md | 18 ++++++------ doc/api/fs.md | 58 +++++++++++++++++++-------------------- doc/api/http.md | 18 ++++++------ doc/api/http2.md | 8 +++--- doc/api/https.md | 6 ++-- doc/api/packages.md | 20 +++++++------- doc/api/process.md | 6 ++-- doc/api/stream.md | 12 ++++---- doc/api/util.md | 20 +++++++------- doc/api/v8.md | 6 ++-- doc/api/vm.md | 16 ++++++----- doc/api/worker_threads.md | 10 +++---- 13 files changed, 103 insertions(+), 101 deletions(-) diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 6021cb8d5a3a74..880d27ba1b7a59 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -840,13 +840,13 @@ console.log(uncompressedKey === ecdh.getPublicKey('hex')); * `otherPublicKey` {string | Buffer | TypedArray | DataView} diff --git a/doc/api/dgram.md b/doc/api/dgram.md index 4b084b20adb27a..209c76ccdb0601 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -409,6 +409,9 @@ changes: - version: v14.5.0 pr-url: https://github.com/nodejs/node/pull/22413 description: The `msg` parameter can now be any `TypedArray` or `DataView`. + - version: v12.0.0 + pr-url: https://github.com/nodejs/node/pull/26871 + description: Added support for sending data on connected sockets. - version: v8.0.0 pr-url: https://github.com/nodejs/node/pull/11985 description: The `msg` parameter can be an `Uint8Array` now. @@ -423,9 +426,6 @@ changes: pr-url: https://github.com/nodejs/node/pull/4374 description: The `msg` parameter can be an array now. Also, the `offset` and `length` parameters are optional now. - - version: v12.0.0 - pr-url: https://github.com/nodejs/node/pull/26871 - description: Added support for sending data on connected sockets. --> * `msg` {Buffer|TypedArray|DataView|string|Array} Message to be sent. @@ -733,16 +733,16 @@ chained. * `options` {Object} Available options are: diff --git a/doc/api/fs.md b/doc/api/fs.md index 58b97be26c2d5c..86fef8cbd15636 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -1919,12 +1919,12 @@ If `options` is a string, then it specifies the encoding. ## `fs.exists(path, callback)` > Stability: 0 - Deprecated: Use [`fs.stat()`][] or [`fs.access()`][] instead. @@ -2154,6 +2154,10 @@ Synchronous fdatasync(2). Returns `undefined`. * `fd` {integer} @@ -2507,6 +2507,10 @@ Synchronous link(2). Returns `undefined`. * `path` {string|Buffer|URL} @@ -2542,14 +2542,14 @@ not the file that it refers to. * `path` {string|Buffer|URL} @@ -3632,6 +3632,10 @@ utility). Returns `undefined`. * `path` {string|Buffer|URL} @@ -3745,14 +3745,14 @@ Stats { * `path` {string|Buffer|URL} @@ -3767,15 +3767,15 @@ Synchronous stat(2). * `target` {string|Buffer|URL} @@ -3815,15 +3815,15 @@ example/ * `target` {string|Buffer|URL} diff --git a/doc/api/http.md b/doc/api/http.md index dd7267b5b657c0..97631cf5bf6d44 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1040,20 +1040,20 @@ not be emitted. * `exception` {Error} diff --git a/doc/api/http2.md b/doc/api/http2.md index 4a2bcb8ce97227..9679ed23f6966b 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -2075,6 +2075,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/27782 description: The `options` parameter now supports `net.createServer()` options. + - version: v9.6.0 + pr-url: https://github.com/nodejs/node/pull/15752 + description: Added the `Http1IncomingMessage` and `Http1ServerResponse` + option. - version: v8.9.3 pr-url: https://github.com/nodejs/node/pull/17105 description: Added the `maxOutstandingPings` option with a default limit of @@ -2083,10 +2087,6 @@ changes: pr-url: https://github.com/nodejs/node/pull/16676 description: Added the `maxHeaderListPairs` option with a default limit of 128 header pairs. - - version: v9.6.0 - pr-url: https://github.com/nodejs/node/pull/15752 - description: Added the `Http1IncomingMessage` and `Http1ServerResponse` - option. --> * `options` {Object} diff --git a/doc/api/https.md b/doc/api/https.md index 050a204ef116dd..c11e103af16539 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -13,13 +13,13 @@ separate module. An [`Agent`][] object for HTTPS similar to [`http.Agent`][]. See diff --git a/doc/api/packages.md b/doc/api/packages.md index 5e2e58239067bf..ffc66077118640 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -882,24 +882,24 @@ as ES modules and `.cjs` files are always treated as CommonJS. added: v12.7.0 changes: - version: - - v13.2.0 + - v14.13.0 + pr-url: https://github.com/nodejs/node/pull/34718 + description: Add support for `"exports"` patterns. + - version: + - v13.7.0 - v12.16.0 - pr-url: https://github.com/nodejs/node/pull/29978 - description: Implement conditional exports. + pr-url: https://github.com/nodejs/node/pull/31008 + description: Implement logical conditional exports ordering. - version: - v13.7.0 - v12.16.0 pr-url: https://github.com/nodejs/node/pull/31001 description: Remove the `--experimental-conditional-exports` option. - version: - - v13.7.0 + - v13.2.0 - v12.16.0 - pr-url: https://github.com/nodejs/node/pull/31008 - description: Implement logical conditional exports ordering. - - version: - - v14.13.0 - pr-url: https://github.com/nodejs/node/pull/34718 - description: Add support for `"exports"` patterns. + pr-url: https://github.com/nodejs/node/pull/29978 + description: Implement conditional exports. --> * Type: {Object} | {string} | {string[]} diff --git a/doc/api/process.md b/doc/api/process.md index 452da15878fd49..bd6662fe390fb7 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -2498,12 +2498,12 @@ To get the version string without the prepended _v_, use * {Object} diff --git a/doc/api/stream.md b/doc/api/stream.md index 9144c3debcbf8f..d4b05610295e0f 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -1645,15 +1645,15 @@ const cleanup = finished(rs, (err) => { * `streams` {Stream[]|Iterable[]|AsyncIterable[]|Function[]} @@ -2201,15 +2201,15 @@ constructor and implement the [`readable._read()`][] method. #### `new stream.Readable([options])` * `options` {Object} diff --git a/doc/api/util.md b/doc/api/util.md index adf200e28a9379..c36636db48991b 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -241,10 +241,6 @@ changes: - version: v12.11.0 pr-url: https://github.com/nodejs/node/pull/29606 description: The `%c` specifier is ignored now. - - version: v11.4.0 - pr-url: https://github.com/nodejs/node/pull/23708 - description: The `%d`, `%f` and `%i` specifiers now support Symbols - properly. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/23162 description: The `format` argument is now only taken as such if it actually @@ -256,6 +252,10 @@ changes: first argument. This change removes previously present quotes from strings that were being output when the first argument was not a string. + - version: v11.4.0 + pr-url: https://github.com/nodejs/node/pull/23708 + description: The `%d`, `%f` and `%i` specifiers now support Symbols + properly. - version: v11.4.0 pr-url: https://github.com/nodejs/node/pull/24806 description: The `%o` specifier's `depth` has default depth of 4 again. @@ -475,13 +475,13 @@ changes: pr-url: https://github.com/nodejs/node/pull/27109 description: The `compact` options default is changed to `3` and the `breakLength` options default is changed to `80`. - - version: v11.11.0 - pr-url: https://github.com/nodejs/node/pull/26269 - description: The `compact` option accepts numbers for a new output mode. - version: v12.0.0 pr-url: https://github.com/nodejs/node/pull/24971 description: Internal properties no longer appear in the context argument of a custom inspection function. + - version: v11.11.0 + pr-url: https://github.com/nodejs/node/pull/26269 + description: The `compact` option accepts numbers for a new output mode. - version: v11.7.0 pr-url: https://github.com/nodejs/node/pull/25006 description: ArrayBuffers now also show their binary contents. @@ -494,13 +494,13 @@ changes: - version: v11.0.0 pr-url: https://github.com/nodejs/node/pull/22846 description: The `depth` default changed to `20`. - - version: v10.12.0 - pr-url: https://github.com/nodejs/node/pull/22788 - description: The `sorted` option is supported now. - version: v11.0.0 pr-url: https://github.com/nodejs/node/pull/22756 description: The inspection output is now limited to about 128 MB. Data above that size will not be fully inspected. + - version: v10.12.0 + pr-url: https://github.com/nodejs/node/pull/22788 + description: The `sorted` option is supported now. - version: v10.6.0 pr-url: https://github.com/nodejs/node/pull/20725 description: Inspecting linked lists and similar objects is now possible diff --git a/doc/api/v8.md b/doc/api/v8.md index 54e01806079e0a..891060606f6388 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -112,13 +112,13 @@ stream.pipe(process.stdout); * Returns: {Object} diff --git a/doc/api/vm.md b/doc/api/vm.md index d6035e6b4fba34..c270e1f6b66e47 100644 --- a/doc/api/vm.md +++ b/doc/api/vm.md @@ -54,14 +54,14 @@ executed in specific contexts. * `code` {string} The JavaScript code to compile. @@ -811,13 +811,15 @@ const vm = require('vm'); * `code` {string} The body of the function to compile. diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md index 025c2d9457f407..1bf76762fb269a 100644 --- a/doc/api/worker_threads.md +++ b/doc/api/worker_threads.md @@ -639,16 +639,16 @@ changes: pr-url: https://github.com/nodejs/node/pull/31664 description: The `filename` parameter can be a WHATWG `URL` object using `file:` protocol. - - version: - - v13.2.0 - - v12.16.0 - pr-url: https://github.com/nodejs/node/pull/26628 - description: The `resourceLimits` option was introduced. - version: - v13.4.0 - v12.16.0 pr-url: https://github.com/nodejs/node/pull/30559 description: The `argv` option was introduced. + - version: + - v13.2.0 + - v12.16.0 + pr-url: https://github.com/nodejs/node/pull/26628 + description: The `resourceLimits` option was introduced. --> * `filename` {string|URL} The path to the Worker’s main script or module. Must From 7d1cdd411f49ba173c5d017d951f6feb96c23abc Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Wed, 7 Oct 2020 00:55:10 -0400 Subject: [PATCH 39/82] doc: move package.import content higher This is currently at the end of the doc, it likely should be found right after the documentation about `package.exports`. Refactored the docs while duplicating content as little as possible. Co-authored-by: Guy Bedford Co-authored-by: Antoine du Hamel Co-authored-by: Rich Trott Signed-off-by: Myles Borins PR-URL: https://github.com/nodejs/node/pull/35535 Reviewed-By: Guy Bedford Reviewed-By: Matteo Collina Reviewed-By: Rich Trott Reviewed-By: Ujjwal Sharma Reviewed-By: Benjamin Gruenbaum --- doc/api/packages.md | 75 ++++++++++++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 21 deletions(-) diff --git a/doc/api/packages.md b/doc/api/packages.md index ffc66077118640..18bafb1c36685b 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -282,13 +282,53 @@ import submodule from 'es-module-package/private-module.js'; // Throws ERR_PACKAGE_PATH_NOT_EXPORTED ``` -### Subpath export patterns +### Subpath imports > Stability: 1 - Experimental -For packages with a small number of exports, we recommend explicitly listing -each exports subpath entry. But for packages that have large numbers of -subpaths, this might cause `package.json` bloat and maintenance issues. +In addition to the [`"exports"`][] field, it is possible to define internal +package import maps that only apply to import specifiers from within the package +itself. + +Entries in the imports field must always start with `#` to ensure they are +disambiguated from package specifiers. + +For example, the imports field can be used to gain the benefits of conditional +exports for internal modules: + +```json +// package.json +{ + "imports": { + "#dep": { + "node": "dep-node-native", + "default": "./dep-polyfill.js" + } + }, + "dependencies": { + "dep-node-native": "^1.0.0" + } +} +``` + +where `import '#dep'` does not get the resolution of the external package +`dep-node-native` (including its exports in turn), and instead gets the local +file `./dep-polyfill.js` relative to the package in other environments. + +Unlike the `"exports"` field, the `"imports"` field permits mapping to external +packages. + +The resolution rules for the imports field are otherwise +analogous to the exports field. + +### Subpath patterns + +> Stability: 1 - Experimental + +For packages with a small number of exports or imports, we recommend +explicitly listing each exports subpath entry. But for packages that have +large numbers of subpaths, this might cause `package.json` bloat and +maintenance issues. For these use cases, subpath export patterns can be used instead: @@ -297,6 +337,9 @@ For these use cases, subpath export patterns can be used instead: { "exports": { "./features/*": "./src/features/*.js" + }, + "imports": { + "#internal/*": "./src/internal/*.js" } } ``` @@ -311,6 +354,9 @@ import featureX from 'es-module-package/features/x'; import featureY from 'es-module-package/features/y/y'; // Loads ./node_modules/es-module-package/src/features/y/y.js + +import internalZ from '#internal/z'; +// Loads ./node_modules/es-module-package/src/internal/z.js ``` This is a direct static replacement without any special handling for file @@ -956,16 +1002,6 @@ added: v14.6.0 * Type: {Object} -In addition to the [`"exports"`][] field it is possible to define internal -package import maps that only apply to import specifiers from within the package -itself. - -Entries in the imports field must always start with `#` to ensure they are -clearly disambiguated from package specifiers. - -For example, the imports field can be used to gain the benefits of conditional -exports for internal modules: - ```json // package.json { @@ -981,15 +1017,11 @@ exports for internal modules: } ``` -where `import '#dep'` would now get the resolution of the external package -`dep-node-native` (including its exports in turn), and instead get the local -file `./dep-polyfill.js` relative to the package in other environments. +Entries in the imports field must be strings starting with `#`. -Unlike the `"exports"` field, import maps permit mapping to external packages, -providing an important use case for conditional loading scenarios. +Import maps permit mapping to external packages. -Apart from the above, the resolution rules for the imports field are otherwise -analogous to the exports field. +This field defines [subpath imports][] for the current package. [Babel]: https://babeljs.io/ [Conditional exports]: #packages_conditional_exports @@ -1007,5 +1039,6 @@ analogous to the exports field. [entry points]: #packages_package_entry_points [self-reference]: #packages_self_referencing_a_package_using_its_name [subpath exports]: #packages_subpath_exports +[subpath imports]: #packages_subpath_imports [the full specifier path]: esm.md#esm_mandatory_file_extensions [the dual CommonJS/ES module packages section]: #packages_dual_commonjs_es_module_packages From 6ff152cc671d05dc3871b348f7737a4cf963182f Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sun, 20 Sep 2020 09:32:06 +0200 Subject: [PATCH 40/82] http: allow passing array of key/val into writeHead Enables an optimization when the user already has the headers in an array form, e.g. when proxying. PR-URL: https://github.com/nodejs/node/pull/35274 Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum Reviewed-By: Rich Trott --- doc/api/http.md | 10 +++- lib/_http_outgoing.js | 15 +++++- lib/_http_server.js | 13 +++++- test/parallel/test-http-write-head-2.js | 61 +++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 test/parallel/test-http-write-head-2.js diff --git a/doc/api/http.md b/doc/api/http.md index 97631cf5bf6d44..e84b0bb67f18aa 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1786,6 +1786,9 @@ the request body should be sent. See the [`'checkContinue'`][] event on * `utilization1` {Object} The result of a previous call to @@ -345,7 +347,9 @@ initialized. ### `performanceNodeTiming.idleTime` * {number} From a19b320a3159d9eee1153d93e506be5f2a86363e Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 9 Oct 2020 04:33:19 -0700 Subject: [PATCH 51/82] tools: bump cpplint.py to 1.4.6 Refs: https://github.com/cpplint/cpplint/releases/tag/1.4.6 PR-URL: https://github.com/nodejs/node/pull/35569 Reviewed-By: Richard Lau Reviewed-By: Daijiro Wachi Reviewed-By: Jiawen Geng --- tools/cpplint.py | 265 +++++++++++++++++++---------------------------- 1 file changed, 106 insertions(+), 159 deletions(-) diff --git a/tools/cpplint.py b/tools/cpplint.py index 4ea91c0dc04a54..dd6095265d3f38 100755 --- a/tools/cpplint.py +++ b/tools/cpplint.py @@ -59,7 +59,7 @@ # if empty, use defaults _valid_extensions = set([]) -__VERSION__ = '1.4.4' +__VERSION__ = '1.4.6' try: xrange # Python 2 @@ -280,7 +280,6 @@ 'build/include', 'build/include_subdir', 'build/include_alpha', - 'build/include_inline', 'build/include_order', 'build/include_what_you_use', 'build/namespaces_literals', @@ -295,13 +294,11 @@ 'readability/constructors', 'readability/fn_size', 'readability/inheritance', - 'readability/pointer_notation', 'readability/multiline_comment', 'readability/multiline_string', 'readability/namespace', 'readability/nolint', 'readability/nul', - 'readability/null_usage', 'readability/strings', 'readability/todo', 'readability/utf8', @@ -321,7 +318,6 @@ 'runtime/string', 'runtime/threadsafe_fn', 'runtime/vlog', - 'runtime/v8_persistent', 'whitespace/blank_line', 'whitespace/braces', 'whitespace/comma', @@ -626,14 +622,6 @@ # Match string that indicates we're working on a Linux Kernel file. _SEARCH_KERNEL_FILE = re.compile(r'\b(?:LINT_KERNEL_FILE)') -_NULL_TOKEN_PATTERN = re.compile(r'\bNULL\b') - -_V8_PERSISTENT_PATTERN = re.compile(r'\bv8::Persistent\b') - -_RIGHT_LEANING_POINTER_PATTERN = re.compile(r'[^=|(,\s><);&?:}]' - r'(?]*>)?(\s+const)?\s*(?:<\w+>\s*)?&' + Match(r'((const\s+(volatile\s+)?)?|(volatile\s+(const\s+)?))?' + r'%s(\s*<[^>]*>)?(\s+const)?\s*(?:<\w+>\s*)?&' % re.escape(base_classname), constructor_args[0].strip())) if (not is_marked_explicit and @@ -3302,7 +3285,7 @@ def CheckForFunctionLengths(filename, clean_lines, linenum, """Reports for long function bodies. For an overview why this is done, see: - https://google.github.io/styleguide/cppguide.html#Write_Short_Functions + https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Write_Short_Functions Uses a simplistic algorithm assuming other style guidelines (especially spacing) are followed. @@ -3343,7 +3326,7 @@ def CheckForFunctionLengths(filename, clean_lines, linenum, if Search(r'(;|})', start_line): # Declarations and trivial functions body_found = True break # ... ignore - elif Search(r'{', start_line): + if Search(r'{', start_line): body_found = True function = Search(r'((\w|:)*)\(', line).group(1) if Match(r'TEST', function): # Handle TEST... macros @@ -3537,8 +3520,8 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error): line = clean_lines.elided[linenum] # You shouldn't have spaces before your brackets, except maybe after - # 'delete []' or 'return []() {};' - if Search(r'\w\s+\[', line) and not Search(r'(?:delete|return)\s+\[', line): + # 'delete []', 'return []() {};', or 'auto [abc, ...] = ...;'. + if Search(r'\w\s+\[', line) and not Search(r'(?:auto&?|delete|return)\s+\[', line): error(filename, linenum, 'whitespace/braces', 5, 'Extra space before [') @@ -4056,11 +4039,11 @@ def CheckBraces(filename, clean_lines, linenum, error): # its line, and the line after that should have an indent level equal to or # lower than the if. We also check for ambiguous if/else nesting without # braces. - if_else_match = Search(r'\b(if\s*\(|else\b)', line) + if_else_match = Search(r'\b(if\s*(|constexpr)\s*\(|else\b)', line) if if_else_match and not Match(r'\s*#', line): if_indent = GetIndentLevel(line) endline, endlinenum, endpos = line, linenum, if_else_match.end() - if_match = Search(r'\bif\s*\(', line) + if_match = Search(r'\bif\s*(|constexpr)\s*\(', line) if if_match: # This could be a multiline if condition, so find the end first. pos = if_match.end() - 1 @@ -4528,71 +4511,6 @@ def CheckAltTokens(filename, clean_lines, linenum, error): 'Use operator %s instead of %s' % ( _ALT_TOKEN_REPLACEMENT[match.group(1)], match.group(1))) -def CheckNullTokens(filename, clean_lines, linenum, error): - """Check NULL usage. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - - # Avoid preprocessor lines - if Match(r'^\s*#', line): - return - - if line.find('/*') >= 0 or line.find('*/') >= 0: - return - - for match in _NULL_TOKEN_PATTERN.finditer(line): - error(filename, linenum, 'readability/null_usage', 2, - 'Use nullptr instead of NULL') - -def CheckV8PersistentTokens(filename, clean_lines, linenum, error): - """Check v8::Persistent usage. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - - # Avoid preprocessor lines - if Match(r'^\s*#', line): - return - - if line.find('/*') >= 0 or line.find('*/') >= 0: - return - - for match in _V8_PERSISTENT_PATTERN.finditer(line): - error(filename, linenum, 'runtime/v8_persistent', 2, - 'Use v8::Global instead of v8::Persistent') - -def CheckLeftLeaningPointer(filename, clean_lines, linenum, error): - """Check for left-leaning pointer placement. - - Args: - filename: The name of the current file. - clean_lines: A CleansedLines instance containing the file. - linenum: The number of the line to check. - error: The function to call with any errors found. - """ - line = clean_lines.elided[linenum] - - # Avoid preprocessor lines - if Match(r'^\s*#', line): - return - - if '/*' in line or '*/' in line: - return - - for match in _RIGHT_LEANING_POINTER_PATTERN.finditer(line): - error(filename, linenum, 'readability/pointer_notation', 2, - 'Use left leaning pointer instead of right leaning') def GetLineWidth(line): """Determines the width of the line in column positions. @@ -4747,9 +4665,6 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state, CheckSpacingForFunctionCall(filename, clean_lines, linenum, error) CheckCheck(filename, clean_lines, linenum, error) CheckAltTokens(filename, clean_lines, linenum, error) - CheckNullTokens(filename, clean_lines, linenum, error) - CheckV8PersistentTokens(filename, clean_lines, linenum, error) - CheckLeftLeaningPointer(filename, clean_lines, linenum, error) classinfo = nesting_state.InnermostClass() if classinfo: CheckSectionSpacing(filename, clean_lines, classinfo, linenum, error) @@ -4910,14 +4825,27 @@ def CheckIncludeLine(filename, clean_lines, linenum, include_state, error): 'Do not include .' + extension + ' files from other packages') return - if not _THIRD_PARTY_HEADERS_PATTERN.match(include): + # We DO want to include a 3rd party looking header if it matches the + # filename. Otherwise we get an erroneous error "...should include its + # header" error later. + third_src_header = False + for ext in GetHeaderExtensions(): + basefilename = filename[0:len(filename) - len(fileinfo.Extension())] + headerfile = basefilename + '.' + ext + headername = FileInfo(headerfile).RepositoryName() + if headername in include or include in headername: + third_src_header = True + break + + if third_src_header or not _THIRD_PARTY_HEADERS_PATTERN.match(include): include_state.include_list[-1].append((include, linenum)) # We want to ensure that headers appear in the right order: - # 1) for foo.cc, foo.h - # 2) other project headers - # 3) c system files - # 4) cpp system files + # 1) for foo.cc, foo.h (preferred location) + # 2) c system files + # 3) cpp system files + # 4) for foo.cc, foo.h (deprecated location) + # 5) other google headers # # We classify each include statement as one of those 5 types # using a number of techniques. The include_state object keeps @@ -5180,7 +5108,7 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension, and line[-1] != '\\'): error(filename, linenum, 'build/namespaces', 4, 'Do not use unnamed namespaces in header files. See ' - 'https://google.github.io/styleguide/cppguide.html#Namespaces' + 'https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Namespaces' ' for more information.') @@ -5708,11 +5636,11 @@ def ExpectingFunctionArgs(clean_lines, linenum): )), ('', ('numeric_limits',)), ('', ('list',)), - ('', ('map', 'multimap',)), + ('', ('multimap',)), ('', ('allocator', 'make_shared', 'make_unique', 'shared_ptr', 'unique_ptr', 'weak_ptr')), ('', ('queue', 'priority_queue',)), - ('', ('set', 'multiset',)), + ('', ('multiset',)), ('', ('stack',)), ('', ('char_traits', 'basic_string',)), ('', ('tuple',)), @@ -5746,6 +5674,16 @@ def ExpectingFunctionArgs(clean_lines, linenum): (re.compile(r'[^>.]\b' + _template + r'(<.*?>)?\([^\)]'), _template, _header)) +# Match set, but not foo->set, foo.set +_re_pattern_headers_maybe_templates.append( + (re.compile(r'[^>.]\bset\s*\<'), + 'set<>', + '')) +# Match 'map var' and 'std::map(...)', but not 'map(...)'' +_re_pattern_headers_maybe_templates.append( + (re.compile(r'(std\b::\bmap\s*\<)|(^(std\b::\b)map\b\(\s*\<)'), + 'map<>', + '')) # Other scripts may reach in and modify this pattern. _re_pattern_templates = [] @@ -5828,18 +5766,19 @@ def UpdateIncludeState(filename, include_dict, io=codecs): """ headerfile = None try: - headerfile = io.open(filename, 'r', 'utf8', 'replace') + with io.open(filename, 'r', 'utf8', 'replace') as headerfile: + linenum = 0 + for line in headerfile: + linenum += 1 + clean_line = CleanseComments(line) + match = _RE_PATTERN_INCLUDE.search(clean_line) + if match: + include = match.group(2) + include_dict.setdefault(include, linenum) + return True except IOError: return False - linenum = 0 - for line in headerfile: - linenum += 1 - clean_line = CleanseComments(line) - match = _RE_PATTERN_INCLUDE.search(clean_line) - if match: - include = match.group(2) - include_dict.setdefault(include, linenum) - return True + def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error, @@ -6291,8 +6230,6 @@ def ProcessFileData(filename, file_extension, lines, error, CheckForNewlineAtEOF(filename, lines, error) - CheckInlineHeader(filename, include_state, error) - def ProcessConfigOverrides(filename): """ Loads the configuration files and processes the config overrides. @@ -6311,7 +6248,7 @@ def ProcessConfigOverrides(filename): if not base_name: break # Reached the root directory. - cfg_file = os.path.join(abs_path, ".cpplint") + cfg_file = os.path.join(abs_path, "CPPLINT.cfg") abs_filename = abs_path if not os.path.isfile(cfg_file): continue @@ -6355,14 +6292,7 @@ def ProcessConfigOverrides(filename): except ValueError: _cpplint_state.PrintError('Line length must be numeric.') elif name == 'extensions': - global _valid_extensions - try: - extensions = [ext.strip() for ext in val.split(',')] - _valid_extensions = set(extensions) - except ValueError: - sys.stderr.write('Extensions should be a comma-separated list of values;' - 'for example: extensions=hpp,cpp\n' - 'This could not be parsed: "%s"' % (val,)) + ProcessExtensionsOption(val) elif name == 'root': global _root # root directories are specified relative to CPPLINT.cfg dir. @@ -6425,7 +6355,8 @@ def ProcessFile(filename, vlevel, extra_check_functions=None): codecs.getwriter('utf8'), 'replace').read().split('\n') else: - lines = codecs.open(filename, 'r', 'utf8', 'replace').read().split('\n') + with codecs.open(filename, 'r', 'utf8', 'replace') as target_file: + lines = target_file.read().split('\n') # Remove trailing '\r'. # The -1 accounts for the extra trailing blank line we get from split() @@ -6585,11 +6516,7 @@ def ParseArguments(args): _excludes = set() _excludes.update(glob.glob(val)) elif opt == '--extensions': - global _valid_extensions - try: - _valid_extensions = set(val.split(',')) - except ValueError: - PrintUsage('Extensions must be comma seperated list.') + ProcessExtensionsOption(val) elif opt == '--headers': ProcessHppHeadersOption(val) elif opt == '--recursive': @@ -6641,15 +6568,35 @@ def _ExpandDirectories(filenames): for filename in expanded: if os.path.splitext(filename)[1][1:] in GetAllExtensions(): filtered.append(filename) - return filtered -def _FilterExcludedFiles(filenames): +def _FilterExcludedFiles(fnames): """Filters out files listed in the --exclude command line switch. File paths in the switch are evaluated relative to the current working directory """ exclude_paths = [os.path.abspath(f) for f in _excludes] - return [f for f in filenames if os.path.abspath(f) not in exclude_paths] + # because globbing does not work recursively, exclude all subpath of all excluded entries + return [f for f in fnames + if not any(e for e in exclude_paths + if _IsParentOrSame(e, os.path.abspath(f)))] + +def _IsParentOrSame(parent, child): + """Return true if child is subdirectory of parent. + Assumes both paths are absolute and don't contain symlinks. + """ + parent = os.path.normpath(parent) + child = os.path.normpath(child) + if parent == child: + return True + + prefix = os.path.commonprefix([parent, child]) + if prefix != parent: + return False + # Note: os.path.commonprefix operates on character basis, so + # take extra care of situations like '/foo/ba' and '/foo/bar/baz' + child_suffix = child[len(prefix):] + child_suffix = child_suffix.lstrip(os.sep) + return child == os.path.join(prefix, child_suffix) def main(): filenames = ParseArguments(sys.argv[1:]) From 2992d0b82c9193ac58de3bc4beef6a0c659590a6 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 9 Oct 2020 06:00:00 -0700 Subject: [PATCH 52/82] tools: refloat 7 Node.js patches to cpplint.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cherry-pick 12c8b4d15471cb6211b39c3a2ca5b10fa4b9f12b Original commit message: This commit is a suggestion for adding a rule for NULL usages in the code base. This will currently report a number of errors which could be ignored using // NOLINT (readability/null_usage) PR-URL: https://github.com/nodejs/node/pull/17373 Reviewed-By: Jon Moss Reviewed-By: Anna Henningsen Reviewed-By: Timothy Gu Reviewed-By: Colin Ihrig Reviewed-By: Michael Dawson Reviewed-By: Sakthipriyan Vairamani Reviewed-By: Tobias Nießen Refs: https://github.com/nodejs/node/commit/12c8b4d15471cb6211b39c3a2ca5b10fa4b9f12b Cherry-pick fc81e801913de3e3f3c0c8e26c105f983a74e539 Original commit message: Update cpplint.py to check for inline headers when the corresponding header is already included. PR-URL: https://github.com/nodejs/node/pull/21521 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Refs: https://github.com/nodejs/node/commit/fc81e801913de3e3f3c0c8e26c105f983a74e539 Cherry-pick cbc3dd997eb90d629d1b9912b7a5a40eb82343df Original commit message: src, tools: add check for left leaning pointers This commit adds a rule to cpplint to check that pointers in the code base lean to the left and not right, and also fixes the violations reported. PR-URL: https://github.com/nodejs/node/pull/21010 Reviewed-By: Ben Noordhuis Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Refs: https://github.com/nodejs/node/commit/cbc3dd997eb90d629d1b9912b7a5a40eb82343df Cherry-pick 902998190a55d6915b881936f6dd5b6e9cca6ad8 Original commit message: tools: fix cpplint.py header rules THIS COMMIT SHOULD GO WITH THE NEXT. IT WILL FIND NEW LINT. PR-URL: https://github.com/nodejs/node/pull/26306 Reviewed-By: Gireesh Punathil Refs: https://github.com/nodejs/node/commit/902998190a55d6915b881936f6dd5b6e9cca6ad8 Cherry-pick 0a25ace9c35b62ece4d32fd90b326d8063265109 Original commit message: tools: move cpplint configuration to .cpplint PR-URL: https://github.com/nodejs/node/pull/27098 Reviewed-By: Joyee Cheung Reviewed-By: Daniel Bevenius Refs: https://github.com/nodejs/node/commit/0a25ace9c35b62ece4d32fd90b326d8063265109 Cherry-pick afa9a7206c26a29a2af226696c145c924a6d3754 Original commit message: tools: refloat update link to google styleguide for cpplint This commit updates two old links to Google's C++ styleguide which currently result in a 404 when accessed. PR-URL: https://github.com/nodejs/node/pull/30876 Reviewed-By: Michaël Zasso Reviewed-By: David Carlier Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Rich Trott Refs: https://github.com/nodejs/node/commit/afa9a7206c26a29a2af226696c145c924a6d3754 Cherry-pick e23bf8f771aa0bd60e25ff079985fc29b5846403 Original commit message: tools,src: refloat forbid usage of v8::Persistent `v8::Persistent` comes with the surprising catch that it requires manual cleanup. `v8::Global` doesn’t, making it easier to use, and additionally provides move semantics. New code should always use `v8::Global`. PR-URL: https://github.com/nodejs/node/pull/31018 Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: James M Snell Reviewed-By: David Carlier Reviewed-By: Rich Trott Reviewed-By: Gus Caplan Reviewed-By: Joyee Cheung Reviewed-By: Ben Noordhuis Reviewed-By: Stephen Belanger PR-URL: https://github.com/nodejs/node/pull/35569 Reviewed-By: Richard Lau Reviewed-By: Daijiro Wachi Reviewed-By: Jiawen Geng --- tools/cpplint.py | 122 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 109 insertions(+), 13 deletions(-) diff --git a/tools/cpplint.py b/tools/cpplint.py index dd6095265d3f38..1502ec3e057e1b 100755 --- a/tools/cpplint.py +++ b/tools/cpplint.py @@ -280,6 +280,7 @@ 'build/include', 'build/include_subdir', 'build/include_alpha', + 'build/include_inline', 'build/include_order', 'build/include_what_you_use', 'build/namespaces_literals', @@ -294,11 +295,13 @@ 'readability/constructors', 'readability/fn_size', 'readability/inheritance', + 'readability/pointer_notation', 'readability/multiline_comment', 'readability/multiline_string', 'readability/namespace', 'readability/nolint', 'readability/nul', + 'readability/null_usage', 'readability/strings', 'readability/todo', 'readability/utf8', @@ -318,6 +321,7 @@ 'runtime/string', 'runtime/threadsafe_fn', 'runtime/vlog', + 'runtime/v8_persistent', 'whitespace/blank_line', 'whitespace/braces', 'whitespace/comma', @@ -622,6 +626,14 @@ # Match string that indicates we're working on a Linux Kernel file. _SEARCH_KERNEL_FILE = re.compile(r'\b(?:LINT_KERNEL_FILE)') +_NULL_TOKEN_PATTERN = re.compile(r'\bNULL\b') + +_V8_PERSISTENT_PATTERN = re.compile(r'\bv8::Persistent\b') + +_RIGHT_LEANING_POINTER_PATTERN = re.compile(r'[^=|(,\s><);&?:}]' + r'(?= 0 or line.find('*/') >= 0: + return + + for match in _NULL_TOKEN_PATTERN.finditer(line): + error(filename, linenum, 'readability/null_usage', 2, + 'Use nullptr instead of NULL') + +def CheckV8PersistentTokens(filename, clean_lines, linenum, error): + """Check v8::Persistent usage. + + Args: + filename: The name of the current file. + clean_lines: A CleansedLines instance containing the file. + linenum: The number of the line to check. + error: The function to call with any errors found. + """ + line = clean_lines.elided[linenum] + + # Avoid preprocessor lines + if Match(r'^\s*#', line): + return + + if line.find('/*') >= 0 or line.find('*/') >= 0: + return + + for match in _V8_PERSISTENT_PATTERN.finditer(line): + error(filename, linenum, 'runtime/v8_persistent', 2, + 'Use v8::Global instead of v8::Persistent') + +def CheckLeftLeaningPointer(filename, clean_lines, linenum, error): + """Check for left-leaning pointer placement. + + Args: + filename: The name of the current file. + clean_lines: A CleansedLines instance containing the file. + linenum: The number of the line to check. + error: The function to call with any errors found. + """ + line = clean_lines.elided[linenum] + + # Avoid preprocessor lines + if Match(r'^\s*#', line): + return + + if '/*' in line or '*/' in line: + return + + for match in _RIGHT_LEANING_POINTER_PATTERN.finditer(line): + error(filename, linenum, 'readability/pointer_notation', 2, + 'Use left leaning pointer instead of right leaning') def GetLineWidth(line): """Determines the width of the line in column positions. @@ -4665,6 +4757,9 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state, CheckSpacingForFunctionCall(filename, clean_lines, linenum, error) CheckCheck(filename, clean_lines, linenum, error) CheckAltTokens(filename, clean_lines, linenum, error) + CheckNullTokens(filename, clean_lines, linenum, error) + CheckV8PersistentTokens(filename, clean_lines, linenum, error) + CheckLeftLeaningPointer(filename, clean_lines, linenum, error) classinfo = nesting_state.InnermostClass() if classinfo: CheckSectionSpacing(filename, clean_lines, classinfo, linenum, error) @@ -4841,11 +4936,10 @@ def CheckIncludeLine(filename, clean_lines, linenum, include_state, error): include_state.include_list[-1].append((include, linenum)) # We want to ensure that headers appear in the right order: - # 1) for foo.cc, foo.h (preferred location) - # 2) c system files - # 3) cpp system files - # 4) for foo.cc, foo.h (deprecated location) - # 5) other google headers + # 1) for foo.cc, foo.h + # 2) other project headers + # 3) c system files + # 4) cpp system files # # We classify each include statement as one of those 5 types # using a number of techniques. The include_state object keeps @@ -5108,7 +5202,7 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension, and line[-1] != '\\'): error(filename, linenum, 'build/namespaces', 4, 'Do not use unnamed namespaces in header files. See ' - 'https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Namespaces' + 'https://google.github.io/styleguide/cppguide.html#Namespaces' ' for more information.') @@ -6230,6 +6324,8 @@ def ProcessFileData(filename, file_extension, lines, error, CheckForNewlineAtEOF(filename, lines, error) + CheckInlineHeader(filename, include_state, error) + def ProcessConfigOverrides(filename): """ Loads the configuration files and processes the config overrides. @@ -6248,7 +6344,7 @@ def ProcessConfigOverrides(filename): if not base_name: break # Reached the root directory. - cfg_file = os.path.join(abs_path, "CPPLINT.cfg") + cfg_file = os.path.join(abs_path, ".cpplint") abs_filename = abs_path if not os.path.isfile(cfg_file): continue From 937fa5d292edc9c62ef7935ca66da6ad84e282af Mon Sep 17 00:00:00 2001 From: cjihrig Date: Thu, 8 Oct 2020 20:16:39 -0400 Subject: [PATCH 53/82] fs: use validateBoolean() in rm/rmdir validation PR-URL: https://github.com/nodejs/node/pull/35565 Reviewed-By: Ben Coe Reviewed-By: Luigi Pinca Reviewed-By: Denys Otrishko Reviewed-By: Rich Trott Reviewed-By: Masashi Hirano --- lib/internal/fs/utils.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 5ff7a281651f7b..da307f59f7a8fe 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -37,6 +37,7 @@ const { const { once } = require('internal/util'); const { toPathIfFileURL } = require('internal/url'); const { + validateBoolean, validateInt32, validateUint32 } = require('internal/validators'); @@ -674,15 +675,11 @@ const defaultRmdirOptions = { const validateRmOptions = hideStackFrames((path, options, callback) => { try { options = validateRmdirOptions(options, defaultRmOptions); + validateBoolean(options.force, 'force'); } catch (err) { return callback(err); } - if (typeof options.force !== 'boolean') - return callback( - new ERR_INVALID_ARG_TYPE('force', 'boolean', options.force) - ); - lazyLoadFs().stat(path, (err, stats) => { if (err) { if (options.force && err.code === 'ENOENT') { @@ -706,9 +703,7 @@ const validateRmOptions = hideStackFrames((path, options, callback) => { const validateRmOptionsSync = hideStackFrames((path, options) => { options = validateRmdirOptions(options, defaultRmOptions); - - if (typeof options.force !== 'boolean') - throw new ERR_INVALID_ARG_TYPE('force', 'boolean', options.force); + validateBoolean(options.force, 'force'); try { const stats = lazyLoadFs().statSync(path); @@ -742,9 +737,7 @@ const validateRmdirOptions = hideStackFrames( options = { ...defaults, ...options }; - if (typeof options.recursive !== 'boolean') - throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', options.recursive); - + validateBoolean(options.recursive, 'recursive'); validateInt32(options.retryDelay, 'retryDelay', 0); validateUint32(options.maxRetries, 'maxRetries'); From 3a401b86958a36b695a05f921484a0fe6d15448f Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sun, 11 Oct 2020 11:06:43 -0400 Subject: [PATCH 54/82] fs: update rm/rmdir validation messages The validation code for the rm/rmdir functions treated the options as distinct parameters instead of the options properties that they are. This commit updates the validation to treat them like properties. PR-URL: https://github.com/nodejs/node/pull/35565 Reviewed-By: Ben Coe Reviewed-By: Luigi Pinca Reviewed-By: Denys Otrishko Reviewed-By: Rich Trott Reviewed-By: Masashi Hirano --- lib/internal/fs/utils.js | 10 +++++----- test/parallel/test-fs-rm.js | 8 ++++---- test/parallel/test-fs-rmdir-recursive.js | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index da307f59f7a8fe..300d8bf9b956da 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -675,7 +675,7 @@ const defaultRmdirOptions = { const validateRmOptions = hideStackFrames((path, options, callback) => { try { options = validateRmdirOptions(options, defaultRmOptions); - validateBoolean(options.force, 'force'); + validateBoolean(options.force, 'options.force'); } catch (err) { return callback(err); } @@ -703,7 +703,7 @@ const validateRmOptions = hideStackFrames((path, options, callback) => { const validateRmOptionsSync = hideStackFrames((path, options) => { options = validateRmdirOptions(options, defaultRmOptions); - validateBoolean(options.force, 'force'); + validateBoolean(options.force, 'options.force'); try { const stats = lazyLoadFs().statSync(path); @@ -737,9 +737,9 @@ const validateRmdirOptions = hideStackFrames( options = { ...defaults, ...options }; - validateBoolean(options.recursive, 'recursive'); - validateInt32(options.retryDelay, 'retryDelay', 0); - validateUint32(options.maxRetries, 'maxRetries'); + validateBoolean(options.recursive, 'options.recursive'); + validateInt32(options.retryDelay, 'options.retryDelay', 0); + validateUint32(options.maxRetries, 'options.maxRetries'); return options; }); diff --git a/test/parallel/test-fs-rm.js b/test/parallel/test-fs-rm.js index 47567c6e65b75f..5db6c7f6447ef6 100644 --- a/test/parallel/test-fs-rm.js +++ b/test/parallel/test-fs-rm.js @@ -251,7 +251,7 @@ function removeAsync(dir) { }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', - message: /^The "recursive" argument must be of type boolean\./ + message: /^The "options\.recursive" property must be of type boolean\./ }); }); @@ -261,7 +261,7 @@ function removeAsync(dir) { }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', - message: /^The "force" argument must be of type boolean\./ + message: /^The "options\.force" property must be of type boolean\./ }); }); @@ -270,7 +270,7 @@ function removeAsync(dir) { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The value of "retryDelay" is out of range\./ + message: /^The value of "options\.retryDelay" is out of range\./ }); assert.throws(() => { @@ -278,6 +278,6 @@ function removeAsync(dir) { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The value of "maxRetries" is out of range\./ + message: /^The value of "options\.maxRetries" is out of range\./ }); } diff --git a/test/parallel/test-fs-rmdir-recursive.js b/test/parallel/test-fs-rmdir-recursive.js index db8d4b14dac7cf..95607333d5540c 100644 --- a/test/parallel/test-fs-rmdir-recursive.js +++ b/test/parallel/test-fs-rmdir-recursive.js @@ -191,7 +191,7 @@ function removeAsync(dir) { }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', - message: /^The "recursive" argument must be of type boolean\./ + message: /^The "options\.recursive" property must be of type boolean\./ }); }); @@ -200,7 +200,7 @@ function removeAsync(dir) { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The value of "retryDelay" is out of range\./ + message: /^The value of "options\.retryDelay" is out of range\./ }); assert.throws(() => { @@ -208,6 +208,6 @@ function removeAsync(dir) { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The value of "maxRetries" is out of range\./ + message: /^The value of "options\.maxRetries" is out of range\./ }); } From 4d1d3f454db8ccf77a4d624f9e2ce812b11b7c3e Mon Sep 17 00:00:00 2001 From: Yash Ladha Date: Mon, 17 Aug 2020 16:23:01 +0530 Subject: [PATCH 55/82] src: reduced substring calls Reduced the number of substring calls by 1 as it is a linear time complexity function. Thus having a larger path might lead to decrease in performance. Also removed unnecessary string allocation happening in the block. PR-URL: https://github.com/nodejs/node/pull/34808 Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Franziska Hinkelmann Reviewed-By: Antoine du Hamel --- src/node_file.cc | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/node_file.cc b/src/node_file.cc index 247c1c530428e8..de5c455c7a2a85 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -84,19 +84,26 @@ const char* const kPathSeparator = "\\/"; #endif std::string Basename(const std::string& str, const std::string& extension) { - std::string ret = str; - // Remove everything leading up to and including the final path separator. - std::string::size_type pos = ret.find_last_of(kPathSeparator); - if (pos != std::string::npos) ret = ret.substr(pos + 1); + std::string::size_type pos = str.find_last_of(kPathSeparator); + + // Starting index for the resulting string + std::size_t start_pos = 0; + // String size to return + std::size_t str_size = str.size(); + if (pos != std::string::npos) { + start_pos = pos + 1; + str_size -= start_pos; + } // Strip away the extension, if any. - if (ret.size() >= extension.size() && - ret.substr(ret.size() - extension.size()) == extension) { - ret = ret.substr(0, ret.size() - extension.size()); + if (str_size >= extension.size() && + str.compare(str.size() - extension.size(), + extension.size(), extension) == 0) { + str_size -= extension.size(); } - return ret; + return str.substr(start_pos, str_size); } inline int64_t GetOffset(Local value) { From cb2f6ffd3e0a5f7b6766f03b97b6464720921ba9 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Sat, 10 Oct 2020 04:08:58 -0700 Subject: [PATCH 56/82] module: use Wasm CJS lexer when available PR-URL: https://github.com/nodejs/node/pull/35583 Reviewed-By: Matteo Collina Reviewed-By: Geoffrey Booth --- benchmark/esm/cjs-parse.js | 40 +++++++++++++++++++++++++ deps/cjs-module-lexer/dist/lexer.js | 1 + deps/cjs-module-lexer/dist/lexer.mjs | 2 ++ lib/internal/modules/esm/translators.js | 20 ++++++++++++- node.gyp | 1 + test/benchmark/test-benchmark-esm.js | 7 +++++ test/parallel/test-bootstrap-modules.js | 1 - 7 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 benchmark/esm/cjs-parse.js create mode 100644 deps/cjs-module-lexer/dist/lexer.js create mode 100644 deps/cjs-module-lexer/dist/lexer.mjs create mode 100644 test/benchmark/test-benchmark-esm.js diff --git a/benchmark/esm/cjs-parse.js b/benchmark/esm/cjs-parse.js new file mode 100644 index 00000000000000..325b362a057112 --- /dev/null +++ b/benchmark/esm/cjs-parse.js @@ -0,0 +1,40 @@ +'use strict'; +const fs = require('fs'); +const path = require('path'); +const common = require('../common.js'); +const { strictEqual } = require('assert'); + +const tmpdir = require('../../test/common/tmpdir'); +const benchmarkDirectory = + path.resolve(tmpdir.path, 'benchmark-esm-parse'); + +const bench = common.createBenchmark(main, { + n: [1e2] +}); + +async function main({ n }) { + tmpdir.refresh(); + + fs.mkdirSync(benchmarkDirectory); + + let sampleSource = 'try {\n'; + for (let i = 0; i < 1000; i++) { + sampleSource += 'sample.js(() => file = /test/);\n'; + } + sampleSource += '} catch {}\nexports.p = 5;\n'; + + for (let i = 0; i < n; i++) { + const sampleFile = path.join(benchmarkDirectory, `sample${i}.js`); + fs.writeFileSync(sampleFile, sampleSource); + } + + bench.start(); + for (let i = 0; i < n; i++) { + const sampleFile = path.join(benchmarkDirectory, `sample${i}.js`); + const m = await import('file:' + sampleFile); + strictEqual(m.p, 5); + } + bench.end(n); + + tmpdir.refresh(); +} diff --git a/deps/cjs-module-lexer/dist/lexer.js b/deps/cjs-module-lexer/dist/lexer.js new file mode 100644 index 00000000000000..1efa070407f16c --- /dev/null +++ b/deps/cjs-module-lexer/dist/lexer.js @@ -0,0 +1 @@ +"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E{const A=await WebAssembly.compile((Q="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","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} \ No newline at end of file diff --git a/deps/cjs-module-lexer/dist/lexer.mjs b/deps/cjs-module-lexer/dist/lexer.mjs new file mode 100644 index 00000000000000..f3d2aadf78f486 --- /dev/null +++ b/deps/cjs-module-lexer/dist/lexer.mjs @@ -0,0 +1,2 @@ +/* cjs-module-lexer 0.4.0 */ +const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;export function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E{const A=await WebAssembly.compile((Q="AGFzbQEAAAABVQxgAX8Bf2AAAGACf38AYAABf2ABfwBgA39/fwF/YAR/f39/AX9gBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX9gBX9/f39/AX9gCH9/f39/f39/AX8DPDsAAwMDAwMDAwICBgAABAcEAQEBAAAAAAEBAQEEAQELAQAIAwAAAAUKAAEAAAAABwYICQAAAAAAAAABBQQFAXABAwMFAwEAAQYIAX8AQbCYAgsHTQsGbWVtb3J5AgACc2EAAAFlAAECZXMAAgJlZQADA3JlcwAEA3JlZQAFAnJlAAYDcnJlAAcIcGFyc2VDSlMACgtfX2hlYXBfYmFzZQMACQgBAEEBCwIICQq2gQE7YAEBf0GYHygCACIBIABBAXRqIgBBADsBAEHIHyAAQQJqIgA2AgBBzB8gADYCAEGwH0EANgIAQbgfQQA2AgBBtB9BADYCAEG8H0EANgIAQcQfQQA2AgBBwB9BADYCACABCwgAQdAfKAIACxUAQbQfKAIAKAIAQZgfKAIAa0EBdQsVAEG0HygCACgCBEGYHygCAGtBAXULFQBBwB8oAgAoAgBBmB8oAgBrQQF1CxUAQcAfKAIAKAIEQZgfKAIAa0EBdQslAQF/QbQfQbQfKAIAIgBBCGpBsB8gABsoAgAiADYCACAAQQBHCyUBAX9BwB9BwB8oAgAiAEEIakG8HyAAGygCACIANgIAIABBAEcLSAEBf0G4HygCACICQQhqQbAfIAIbQcwfKAIAIgI2AgBBuB8gAjYCAEHMHyACQQxqNgIAIAJBADYCCCACIAE2AgQgAiAANgIAC0gBAX9BxB8oAgAiAkEIakG8HyACG0HMHygCACICNgIAQcQfIAI2AgBBzB8gAkEMajYCACACQQA2AgggAiABNgIEIAIgADYCAAuLDgEBf0HgPyABNgIAQZgfIAA2AgAgAgRAQZwfIAI2AgALIAMEQEGgHyADNgIAC0HoP0H//wM7AQBBgOAAQYDAADYCAEGQoAFBkOAANgIAQZSgAUHgHzYCAEHsP0GkHygCADYCAEGkoAEgAEF+aiICNgIAQaigASACIAFBAXRqIgM2AgBB5j9BADsBAEHkP0EAOwEAQfA/QQA6AABB0B9BADYCAEHUH0EAOgAAQZigAUEAOgAAQZygAUEANgIAQaCgAUEANgIAAkACQCAALwEAQSNHDQAgAC8BAkEhRw0AQQEhAiABQQJGDQFBpKABIABBAmo2AgAgAEEEaiEAA0ACQCAAIgJBfmogA08NACACQQJqIQAgAi8BAEF2aiIBQQNLDQEgAUEBaw4CAQEACwtBpKABIAI2AgALA0BBpKABIAJBAmoiADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIgA0kEQCAALwEAIgNBd2oiAUEXTUEAQQEgAXRBn4CABHEbDRkCQAJAQeY/LwEAIgFFBEAgA0Ghf2oiBEEOTQ0EIANBWWoiBEEITQ0FIANBhX9qIgRBAk0NBiADQSJGDQIgA0HPAEYNASADQfIARw0XAkBBABALRQ0AIAAQDEUNACACEA0LQew/QaSgASgCADYCAAwcCyADQVlqIgRBCE0NBiADQaB/aiIEQQVNDQcgA0GFf2oiBEECTQ0IIANBIkYNASADQc8ARg0AIANB7QBHDRYMFQsgAkEEakHiAEHqAEHlAEHjAEH0ABAORQ0VIAAQDEUNFSABRRAPDBULEBAMFAtBACECQeg/LwEAQf//A0cNGkHmPy8BAA0aQdQfLQAADRpBASECQZygASgCACIARQ0aIABBoKABKAIAQaAfKAIAEQIADBoLIARBAWsODgUSEg8SEBISEhQSEhIREwsgBEEBaw4IDQoREREREQUGCyAEQQFrDgIQCQoLIARBAWsOCAsKDw8PDw8DBAsgBEEBaw4FDg4LDgwBCyAEQQFrDgINAwcLQeg/LwEAQf7/A0cNAwwFCwJAIAIvAQQiAEEqRwRAIABBL0cNARARDBILEBIMEQtB8D8CfwJAAkBB7D8oAgAiAi8BACIAEBMEQCAAQVVqIgFBA0sNAgJAAkACQCABQQFrDgMFAgABCyACQX5qLwEAQVBqQf//A3FBCkkNAwwECyACQX5qLwEAQStGDQIMAwsgAkF+ai8BAEEtRg0BDAILAkAgAEH9AEcEQCAAQS9GDQEgAEEpRw0CQZCgASgCACABQQJ0aigCABAURQ0CDAMLQZCgASgCACABQQJ0aigCABAVDQIgAUGwoAFqLQAARQ0BDAILQfA/LQAADQELIAIQFiEBIABFDQBBASABRQ0BGgsQF0EACzoAAAwLCxAYDAoLQeY/IAFBf2oiAjsBACABQeg/LwEAIgBHDQFB5D9B5D8vAQBBf2oiADsBAEHoP0GA4AAoAgAgAEH//wNxQQF0ai8BADsBAAsQGQwICyAAQf//A0YgAkH//wNxIABPcg0HCxAaQQAPCyABQbCgAWpBmKABLQAAOgAAQeY/IAFBAWo7AQBBkKABKAIAIAFBAnRqQew/KAIANgIAQZigAUEAOgAADAULQeY/IAFBf2o7AQAMBAtB5j8gAUEBajsBAEGQoAEoAgAgAUECdGpB7D8oAgA2AgAMAwsgABAMRQ0CIAIvAQRB7ABHDQIgAi8BBkHhAEcNAiACLwEIQfMARw0CIAIvAQpB8wBHDQIgAi8BDCIAQXdqIgFBF01BAEEBIAF0QZ+AgARxG0VBACAAQaABRxsNAkGYoAFBAToAAAwCCyACQQRqQfgAQfAAQe8AQfIAQfQAEA5FDQEgABAMRQ0BIAIvAQ5B8wBGBEBBABAbDAILIAENARAcDAELIAJBBGpB7wBB5ABB9QBB7ABB5QAQDkUNACAAEAxFDQAQHQtB7D9BpKABKAIANgIADAQLIAJBBGpB3wBB5QBB+ABB8ABB7wBB8gBB9AAQHkUNAiAAEAxFBEAgAi8BAEEuRw0DC0GkoAEgAkESaiIANgIAIAIvARIiAUHTAEYEfyACLwEUQfQARw0DIAIvARZB4QBHDQMgAi8BGEHyAEcNA0GkoAEgAkEaaiIANgIAIAIvARoFIAELQf//A3FBKEcNAkGQoAEoAgBB7D8oAgA2AgBB5j9BATsBAEGkoAFBpKABKAIAIgFBAmoiADYCACABLwECQfIARw0CQQIQCxoMAQsgAkEEakHtAEHwAEHvAEHyAEH0ABAORQ0BIAAQDEUNARAfC0GkoAEoAgAhAAtB7D8gADYCAAtBqKABKAIAIQNBpKABKAIAIQIMAAsACyACC64CAQN/AkACQAJAQaSgASgCACIDQQJqQeUAQfEAQfUAQekAQfIAQeUAECEEQEGkoAEgA0EOajYCAAJAECJBKEcNAEGkoAFBpKABKAIAQQJqNgIAECIhAUGkoAEoAgBBAmohAiABQSJHBEAgAUEnRw0BEBhBpKABQaSgASgCACIBQQJqNgIAECJBKUcNASAAQX9qIgBBAU0EQCAAQQFrRQ0EDAULDAULEBBBpKABQaSgASgCACIBQQJqNgIAECJBKUcNACAAQX9qIgBBAU0EQCAAQQFrRQ0DDAQLDAQLQaSgASADQQxqNgIAC0EADwsgAiABQaAfKAIAEQIAQQEPC0GgoAEgATYCAEGcoAEgAjYCAEEBDwtBlKABKAIAIAI2AgBBlKABKAIAIAE2AgRBAQsbACAAQZgfKAIARgRAQQEPCyAAQX5qLwEAECAL7wIBBH9BmB8oAgAhAwNAAkAgAEF+aiEBIAAvAQAiAkEgRw0AIAAgA0sgASEADQELCwJAIAJBPUcNAANAAkAgAUF+aiEAIAEvAQBBIEcNACABIANLIAAhAQ0BCwsgAEECaiEBQQAhBANAAkAgARAjIgJFIAEgA01yDQAgAkHcAEYNAiACECRFDQAgAUF+QXwgAkGAgARJG2ohASACECUhBAwBCwsgBEEBcUUNACABLwEAQSBHDQBBlKABKAIAIgJBqB8oAgBGDQAgAiAAQQRqNgIMIAIgAUECajYCCCABQX5qIQBBICEBA0AgAUH//wNxQSBHIABBAmogA01yRQRAIAAvAQAhASAAQX5qIQAMAQsLIAFB//8DcUGOf2oiAUECSw0AAkACQAJAIAFBAWsOAgMBAAsgAEH2AEHhABAmDQEMAgsgAEHsAEHlABAmDQAgAEHjAEHvAEHuAEHzABAnRQ0BC0GUoAEgAkEQajYCAAsLOwEBfwJAIAAvAQAgAUcNACAALwECIAJHDQAgAC8BBCADRw0AIAAvAQYgBEcNACAALwEIIAVGIQYLIAYLzRQBCH9BpKABQaSgASgCACICQQxqNgIAIAJBCmohBQJAAkAQIkEuRw0AQaSgAUGkoAEoAgBBAmo2AgAQIiICQeQARgRAQaSgASgCACIAQQJqECpFDQFBpKABIABBHGo2AgAgAEEaaiEFECJBKEcNAUGkoAFBpKABKAIAQQJqNgIAECIQK0UNARAiQSxHDQFBpKABQaSgASgCAEECajYCABAiIgBBJ0dBACAAQSJHGw0BQaSgAUGkoAEoAgAiAkECaiIDNgIAIAIvAQIQKEUNASAAQaSgASgCACICLwEARw0BIAMgAkGcHygCABECAAwBCyAARSACQesAR3INAEGkoAEoAgAiAC8BAkHlAEcNACAALwEEQfkARw0AIAAvAQZB8wBHDQAgAEEGaiEFQaSgASAAQQhqNgIAECJBKEcNAEGkoAFBpKABKAIAQQJqNgIAECJBpKABKAIAIQcQKEUNAEGkoAEoAgAQIkEpRw0AQaSgAUGkoAEoAgAiBUECajYCABAiQS5HDQBBpKABQaSgASgCAEECajYCABAiQeYARw0AQaSgASgCACIAQQJqQe8AQfIAQcUAQeEAQeMAQegAECFFDQBBpKABIABBDmo2AgAQIkGkoAEoAgAiAkF+aiEFQShHDQBBpKABIAJBAmo2AgAQIkHmAEcNAEGkoAEoAgAiAEECakH1AEHuAEHjAEH0AEHpAEHvAEHuABAeRQ0AQaSgASAAQRBqNgIAECJBKEcNAEGkoAFBpKABKAIAQQJqNgIAECJBpKABKAIAIQAQKEUNAEGkoAEoAgAhAxAiQSlHDQBBpKABQaSgASgCAEECajYCABAiQfsARw0AQaSgAUGkoAEoAgBBAmo2AgAQIkHpAEcNAEGkoAEoAgAiAi8BAkHmAEcNACACLwEEQSBHDQBBpKABIAJBBmo2AgAQIkEoRw0AQaSgAUGkoAEoAgBBAmo2AgAQIhpBpKABKAIAIgEgACADIABrIgIQOg0AQaSgASABIAJBAXUiA0EBdGo2AgACQAJAECIiAUEhRwRAIAFBPUcNA0GkoAEoAgAiAS8BAkE9Rw0DIAEvAQRBPUcNA0GkoAEgAUEGajYCABAiIgFBJ0dBACABQSJHGw0DQaSgASgCACIEQQJqQeQAQeUAQeYAQeEAQfUAQewAQfQAEB5FDQNBpKABIARBEGo2AgAQIiABRw0DQaSgAUGkoAEoAgBBAmo2AgAQIkH8AEcNA0GkoAEoAgAiAS8BAkH8AEcNA0GkoAEgAUEEajYCABAiGkGkoAEoAgAiASAAIAIQOg0DQaSgASABIANBAXRqNgIAECJBPUcNA0GkoAEoAgAiAS8BAkE9Rw0DIAEvAQRBPUcNA0GkoAEgAUEGajYCABAiIgFBJ0dBACABQSJHGw0DQaSgASgCACIEQQJqECxFDQNBpKABIARBFmo2AgAQIiABRw0DQaSgAUGkoAEoAgBBAmo2AgAQIkEpRw0DQaSgAUGkoAEoAgBBAmo2AgAQIkHyAEcNA0GkoAEoAgAiAUECakHlAEH0AEH1AEHyAEHuABAORQ0DQaSgASABQQxqNgIAECJBO0YNAQwCC0GkoAEoAgAiAS8BAkE9Rw0CIAEvAQRBPUcNAkGkoAEgAUEGajYCABAiIgFBJ0dBACABQSJHGw0CQaSgASgCACIEQQJqQeQAQeUAQeYAQeEAQfUAQewAQfQAEB5FDQJBpKABIARBEGo2AgAQIiABRw0CQaSgAUGkoAEoAgBBAmo2AgAQIkEpRw0CC0GkoAFBpKABKAIAQQJqNgIACyAHayIGQQF1IQQCQBAiIgEQKwRAECJB2wBHDQJBpKABQaSgASgCAEECajYCABAiGkGkoAEoAgAiASAAIAIQOg0CQaSgASABIANBAXRqNgIAECJB3QBHDQJBpKABQaSgASgCAEECajYCABAiQT1HDQJBpKABQaSgASgCAEECajYCABAiGkGkoAEoAgAiASAHIAYQOg0CQaSgASABIARBAXRqNgIAECJB2wBHDQJBpKABQaSgASgCAEECajYCABAiGkGkoAEoAgAiASAAIAIQOg0CQaSgASABIANBAXRqNgIAECJB3QBHDQIMAQsgAUHPAEcNAUGkoAEoAgAiAUECakHiAEHqAEHlAEHjAEH0ABAORQ0BQaSgASABQQxqNgIAECJBLkcNAUGkoAFBpKABKAIAQQJqNgIAECJB5ABHDQFBpKABKAIAIgFBAmoQKkUNAUGkoAEgAUEcajYCABAiQShHDQFBpKABQaSgASgCAEECajYCABAiECtFDQEQIkEsRw0BQaSgAUGkoAEoAgBBAmo2AgAQIhpBpKABKAIAIgEgACACEDoNAUGkoAEgASADQQF0ajYCABAiQSxHDQFBpKABQaSgASgCAEECajYCABAiQfsARw0BQaSgAUGkoAEoAgBBAmo2AgAQIkHlAEcNAUGkoAEoAgAiAUECahAtRQ0BQaSgASABQRRqNgIAECJBOkcNAUGkoAFBpKABKAIAQQJqNgIAECJBpKABKAIAIQFB9ABHBEAgAS8BAkHyAEcNAiABLwEEQfUARw0CIAEvAQZB5QBHDQILQaSgASABQQhqNgIAECJBLEcNAUGkoAFBpKABKAIAQQJqNgIAECJB5wBHDQFBpKABKAIAIgEvAQJB5QBHDQEgAS8BBEH0AEcNAUGkoAEgAUEGajYCABAiQTpHDQFBpKABQaSgASgCAEECajYCABAiQeYARw0BQaSgASgCACIBQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEB5FDQFBpKABIAFBEGo2AgAQIkEoRw0BQaSgAUGkoAEoAgBBAmo2AgAQIkEpRw0BQaSgAUGkoAEoAgBBAmo2AgAQIkH7AEcNAUGkoAFBpKABKAIAQQJqNgIAECJB8gBHDQFBpKABKAIAIgFBAmpB5QBB9ABB9QBB8gBB7gAQDkUNAUGkoAEgAUEMajYCABAiGkGkoAEoAgAiASAHIAYQOg0BQaSgASABIARBAXRqNgIAECJB2wBHDQFBpKABQaSgASgCAEECajYCABAiGkGkoAEoAgAiASAAIAIQOg0BQaSgASABIANBAXRqNgIAECJB3QBHDQFBpKABQaSgASgCAEECajYCABAiIgBBO0YEf0GkoAFBpKABKAIAQQJqNgIAECIFIAALQf0ARw0BQaSgAUGkoAEoAgBBAmo2AgAQIkH9AEcNAUGkoAFBpKABKAIAQQJqNgIAECJBKUcNAQtBpKABQaSgASgCAEECajYCABAiIgBBO0YEf0GkoAFBpKABKAIAQQJqNgIAECIFIAALQf0ARw0AQaSgAUGkoAEoAgBBAmo2AgAQIkEpRw0AQZSgASgCACECQeAfIQADQCAAIAJGDQICQCAEIABBDGooAgAgAEEIaigCACIDa0EBdUcNACAHIAMgBhA6DQAgACgCACAAQQRqKAIAQaAfKAIAEQIADAILIABBEGohAAwACwALQaSgASAFNgIACwuSAQEEf0GkoAEoAgAhAEGooAEoAgAhAwNAAkAgACIBQQJqIQAgASADTw0AIAAvAQAiAkHcAEcEQCACQXZqIgFBA0sEQCACQSJHDQNBpKABIAA2AgAPCyABQQFrDgICAgELIAFBBGohACABLwEEQQ1HDQEgAUEGaiAAIAEvAQZBCkYbIQAMAQsLQaSgASAANgIAEBoLVAEEf0GkoAEoAgBBAmohAUGooAEoAgAhAgNAAkAgASIAQX5qIAJPDQAgAEECaiEBIAAvAQBBdmoiA0EDSw0BIANBAWsOAgEBAAsLQaSgASAANgIAC3sBAn9BpKABQaSgASgCACIAQQJqNgIAIABBBmohAEGooAEoAgAhAQNAAkACQCAAQXxqIAFJBEAgAEF+ai8BAEEqRw0CIAAvAQBBL0cNAkGkoAEgAEF+ajYCAAwBCyAAQX5qIQALQaSgASAANgIADwsgAEECaiEADAALAAtyAQF/AkAgAEEpRyAAQVhqQf//A3FBB0lxIABBRmpB//8DcUEGSXIgAEFfaiIBQQVNQQBBASABdEExcRtyDQACQCAAQaV/aiIBQQNLDQAgAUEBaw4CAAABCyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELPQEBf0EBIQECQCAAQfcAQegAQekAQewAQeUAEC4NACAAQeYAQe8AQfIAEC8NACAAQekAQeYAECYhAQsgAQuvAQEDf0EBIQMCQAJAAkACQAJAAkAgAC8BACIBQUVqIgJBA0sEQCABQZt/aiICQQNNDQEgAUEpRg0DIAFB+QBHDQIgAEF+akHmAEHpAEHuAEHhAEHsAEHsABAwDwsgAkEBaw4DAQEFAgsgAkEBaw4DAAADAgtBACEDCyADDwsgAEF+akHlAEHsAEHzABAvDwsgAEF+akHjAEHhAEH0AEHjABAnDwsgAEF+ai8BAEE9RgvNAwECfwJAIAAvAQBBnH9qIgFBE0sNAAJAAkACQAJAAkACQAJAAkAgAUEBaw4TAQIICAgICAgIAwQICAUIBggIBwALIABBfmovAQBBl39qIgFBA0sNBwJAAkAgAUEBaw4DCQkBAAsgAEF8akH2AEHvABAmDwsgAEF8akH5AEHpAEHlABAvDwsgAEF+ai8BAEGNf2oiAUEBSw0GIAFBAWsEQCAAQXxqLwEAIgFB4QBHBEAgAUHsAEcNCCAAQXpqQeUAEDEPCyAAQXpqQeMAEDEPCyAAQXxqQeQAQeUAQewAQeUAECcPCyAAQX5qLwEAQe8ARw0FIABBfGovAQBB5QBHDQUgAEF6ai8BACIBQfAARwRAIAFB4wBHDQYgAEF4akHpAEHuAEHzAEH0AEHhAEHuABAwDwsgAEF4akH0AEH5ABAmDwtBASECIABBfmoiAEHpABAxDQQgAEHyAEHlAEH0AEH1AEHyABAuDwsgAEF+akHkABAxDwsgAEF+ahAyDwsgAEF+akHhAEH3AEHhAEHpABAnDwsgAEF+ai8BACIBQe8ARwRAIAFB5QBHDQEgAEF8akHuABAxDwsgAEF8akH0AEHoAEHyABAvIQILIAILgAEBA38DQEGkoAFBpKABKAIAIgBBAmoiATYCAAJAAkACQCAAQaigASgCAE8NACABLwEAIgFBpX9qIgJBAU0NAiABQXZqIgBBA0sEQCABQS9HDQQMAgsgAEEBaw4CAwMACxAaCw8LIAJBAWsEQBA5BUGkoAEgAEEEajYCAAsMAAsAC5IBAQR/QaSgASgCACEAQaigASgCACEDA0ACQCAAIgFBAmohACABIANPDQAgAC8BACICQdwARwRAIAJBdmoiAUEDSwRAIAJBJ0cNA0GkoAEgADYCAA8LIAFBAWsOAgICAQsgAUEEaiEAIAEvAQRBDUcNASABQQZqIAAgAS8BBkEKRhshAAwBCwtBpKABIAA2AgAQGgvQAQEFf0GkoAEoAgAhAEGooAEoAgAhAgNAIAAiAUECaiEAAkAgASACSQRAIAAvAQAiA0Gkf2oiBEEETQ0BIANBJEcNAiABLwEEQfsARw0CQeQ/QeQ/LwEAIgBBAWo7AQBBgOAAKAIAIABBAXRqQeg/LwEAOwEAQaSgASABQQRqNgIAQeg/QeY/LwEAQQFqIgE7AQBB5j8gATsBAA8LQaSgASAANgIAEBoPCwJAAkAgBEEBaw4EAgICAAELQaSgASAANgIADwsgAUEEaiEADAALAAs4AQF/QdQfQQE6AABBpKABKAIAIQBBpKABQaigASgCAEECajYCAEHQHyAAQZgfKAIAa0EBdTYCAAu/AgEDf0GkoAFBpKABKAIAIgJBDmo2AgACQAJAECIiAUHbAEcEQCABQT1GDQEgAUEuRw0CQaSgAUGkoAEoAgBBAmo2AgAQIkGkoAEoAgAhARAoRQ0CQaSgASgCACEAECJBPUcNAiABIABBnB8oAgARAgAPC0GkoAFBpKABKAIAQQJqNgIAECIiAEEnR0EAIABBIkcbDQFBpKABQaSgASgCACIBQQJqIgM2AgAgAS8BAhAoRQ0BIABBpKABKAIAIgEvAQBHDQFBpKABIAFBAmo2AgAQIkHdAEcNAUGkoAFBpKABKAIAQQJqNgIAECJBPUcNASADIAFBnB8oAgARAgAMAQsgAEUNAEGkoAFBpKABKAIAQQJqNgIAECIiAEHyAEcEQCAAQfsARw0BECkPC0EBEAsaC0GkoAEgAkEMajYCAAs0AQJ/QaSgAUGkoAEoAgBBDGoiADYCABAiIQECQCAAQaSgASgCAEYEQCABEDhFDQELEBoLC2wBAX9BpKABQaSgASgCACIAQQxqNgIAAkAQIkEuRw0AQaSgAUGkoAEoAgBBAmo2AgAQIkHlAEcNAEGkoAEoAgBBAmpB+ABB8ABB7wBB8gBB9ABB8wAQIUUNAEEBEBsPC0GkoAEgAEEKajYCAAtPAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAIC6MBAQR/QaSgAUGkoAEoAgAiAUEMaiICNgIAAkACQAJAAkAQIiIAQVlqIgNBB0sEQCAAQSJGIABB+wBGcg0CDAELAkAgA0EBaw4HAAECAQEBAwILQeY/QeY/LwEAIgBBAWo7AQBBkKABKAIAIABBAnRqIAE2AgAPC0GkoAEoAgAgAkYNAgtB5j8vAQBFDQBBpKABQaSgASgCAEF+ajYCAA8LEBoLCyoAIABBgAFyQaABRiAAQXdqQf//A3FBBUlyBH9BAQUgABA4IABBLkdxCwtFAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZGIQcLIAcLdgEDf0GkoAEoAgAhAANAAkACQCAALwEAIgFBd2pBBUkgAUEgRnIgAUGgAUZyDQAgAUEvRw0BIAAvAQIiAEEqRwRAIABBL0cNAhARDAELEBILQaSgAUGkoAEoAgAiAkECaiIANgIAIAJBqKABKAIASQ0BCwsgAQs2AQF/IAAvAQAiAUGA+ANxQYC4A0YEfyABQf8HcSAAQX5qLwEAQf8HcUEKdHJBgIAEagUgAQsLcwEBfyAAQS9NBEAgAEEkRg8LAkAgAEE6SQ0AAkAgAEHBAEkNACAAQdsASQ0BIABB4ABNBEAgAEHfAEYPCyAAQfsASQ0BIABB//8DTQRAIABBqgFJDQEgABAzDwtBASEBIAAQNA0AIAAQNSEBCyABDwtBAQtdAQF/IABBwABNBEAgAEEkRg8LQQEhAQJAIABB2wBJDQAgAEHgAE0EQCAAQd8ARg8LIABB+wBJDQAgAEH//wNNBEBBACEBIABBqgFJDQEgABA2DwsgABA0IQELIAELRgEDfwJAIABBfmoiA0GYHygCACIESQ0AIAMvAQAgAUcNACAALwEAIAJHDQAgAyAERgRAQQEPCyAAQXxqLwEAECAhBQsgBQtgAQN/AkAgAEF6aiIFQZgfKAIAIgZJDQAgBS8BACABRw0AIABBfGovAQAgAkcNACAAQX5qLwEAIANHDQAgAC8BACAERw0AIAUgBkYEQEEBDwsgAEF4ai8BABAgIQcLIAcLegEBfyAAEDciABAlIQECfyAAQdwARwRAQQAgAUUNARoLQaSgASgCAEECQQQgAEGAgARJG2ohAAJAA0BBpKABIAA2AgAgAC8BABA3IgFFDQEgARAkBEAgAEECQQQgAUGAgARJG2ohAAwBCwtBACABQdwARg0BGgtBAQsL1gIBBH9BpKABKAIAIgBBfmohAwNAAkBBpKABIABBAmo2AgACQAJAIABBqKABKAIATw0AECIhAEGkoAEoAgAhAQJAAkAgABAoBEBBpKABKAIAIQICQBAiIgBBOkYEQEGkoAFBpKABKAIAQQJqNgIAECIQKEUNAUGkoAEoAgAvAQAhAAsgASACQZwfKAIAEQIADAILDAULIABBJ0dBACAAQSJHGw0BQaSgAUGkoAEoAgAiAUECaiICNgIAIAEvAQIQKEUNAEGkoAEoAgAiAS8BACAARw0AQaSgASABQQJqNgIAECIiAEE6Rw0AQaSgAUGkoAEoAgBBAmo2AgAQIhAoRQ0EQaSgASgCAC8BACEAIAIgAUGcHygCABECAAsgAEH//wNxIgBBLEYNAiAAQf0ARg0BDAMLQaSgASADNgIACw8LQaSgASgCACEADAELC0GkoAEgAzYCAAuYAQEBfwJAIAAvAQBB5QBHDQAgAC8BAkHmAEcNACAALwEEQekARw0AIAAvAQZB7gBHDQAgAC8BCEHlAEcNACAALwEKQdAARw0AIAAvAQxB8gBHDQAgAC8BDkHvAEcNACAALwEQQfAARw0AIAAvARJB5QBHDQAgAC8BFEHyAEcNACAALwEWQfQARw0AIAAvARhB+QBGIQELIAELmAEBAn9BpKABKAIAIQECQCAAQe0ARgR/IAFBAmpB7wBB5ABB9QBB7ABB5QAQDkUNAUGkoAEgAUEMajYCABAiQS5HDQFBpKABQaSgASgCAEECajYCABAiBSAAC0HlAEcNAEGkoAEoAgAiAEEOaiABIABBAmpB+ABB8ABB7wBB8gBB9ABB8wAQISICGyEBC0GkoAEgATYCACACC3cBAX8CQCAALwEAQd8ARw0AIAAvAQJB3wBHDQAgAC8BBEHlAEcNACAALwEGQfMARw0AIAAvAQhBzQBHDQAgAC8BCkHvAEcNACAALwEMQeQARw0AIAAvAQ5B9QBHDQAgAC8BEEHsAEcNACAALwESQeUARiEBCyABC2wBAX8CQCAALwEAQe4ARw0AIAAvAQJB9QBHDQAgAC8BBEHtAEcNACAALwEGQeUARw0AIAAvAQhB8gBHDQAgAC8BCkHhAEcNACAALwEMQeIARw0AIAAvAQ5B7ABHDQAgAC8BEEHlAEYhAQsgAQtDAQN/AkAgAEF4aiIGQZgfKAIAIgdJDQAgBiABIAIgAyAEIAUQDkUNACAGIAdGBEBBAQ8LIABBdmovAQAQICEICyAIC1MBA38CQCAAQXxqIgRBmB8oAgAiBUkNACAELwEAIAFHDQAgAEF+ai8BACACRw0AIAAvAQAgA0cNACAEIAVGBEBBAQ8LIABBemovAQAQICEGCyAGC0UBA38CQCAAQXZqIgdBmB8oAgAiCEkNACAHIAEgAiADIAQgBSAGECFFDQAgByAIRgRAQQEPCyAAQXRqLwEAECAhCQsgCQs3AQJ/AkBBmB8oAgAiAiAASw0AIAAvAQAgAUcNACAAIAJGBEBBAQ8LIABBfmovAQAQICEDCyADC04BA38CQCAAQXRqIgFBmB8oAgAiAkkNACABQeQAQeUAQeIAQfUAQecAQecAQeUAEB5FDQAgASACRgRAQQEPCyAAQXJqLwEAECAhAwsgAwvNEQECfwJAIAAQNiAAQfS/f2pBAklyIABBtwFGIABBgHpqQfAASXJyIABBhwdGIABB/XZqQQVJciAAQe90akEtSXJyDQAgAEHwc2pBC0kgAEG1c2pBH0lyIABBwXRqIgFBCE1BAEEBIAF0Qe0CcRtyDQAgAEHwDEYgAEGWcmpBBElyIABBqnJqIgFBEk1BAEEBIAF0Qf/8GXEbciAAQcBwakEKSSAAQdpwakELSXIgAEGRDkYgAEHQcWpBG0lycnIgAEGQcmpBCkkgAEHCbWpBEklyIABBxm1qQQNJIABBnW5qQSFJcnIgAEGtbmpBD0kgAEGnb2pBA0lyIABB129qQQVJIABB229qQQNJcnJyciAAQeVvakEJSSAAQepvakEESXIgAEH9D0YgAEGVcGpBCUlycnINACAAQZptakEKSSAAQa9taiIBQRJNQQBBASABdEH/gBhxG3INAAJAIABBxGxqIgFBJ0sEQCAAQf9sakEDSQ0CDAELIAFBAWsOJQABAQEBAQEBAAABAQAAAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAABCyAAQf4TRiAAQZpsakEKSXINACAAQfUURiAAQf9rakEDSXIgAEHEa2oiAUEVTUEAQQEgAXRB/bCOAXEbciAAQZprakEMSXINAAJAIABBxGpqIgFBJ0sEQCAAQf9qakEDSQ0CDAELIAFBAWsOJQABAQEBAQEBAQABAQEAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAABCyAAQZpqakEKSSAAQYZqakEGSXINAAJAIABBxGlqIgFBJ0sEQCAAQf9pakEDSQ0CDAELIAFBAWsOJQABAQEBAQEBAAABAQAAAQEBAAAAAAAAAAABAQAAAAAAAAAAAAABCyAAQZppakEKSQ0AIABBghdGIABBmmhqQQpJciAAQcJoaiIBQRlNQQBBASABdEGf7oMQcRtyDQACQCAAQcJnaiIBQSVLBEAgAEGAaGpBBUkNAgwBCyABQQdrDh0AAQEBAAEBAQEAAAAAAAAAAQEAAAAAAAAAAAAAAAELIABBmmdqQQpJDQACQCAAQcRmaiIBQSdLBEAgAEH/ZmpBA0kNAgwBCyABQQFrDiUAAQEBAQEBAQABAQEAAQEBAQAAAAAAAAABAQAAAAAAAAAAAAAAAQsgAEGaZmpBCkkNACAAQXxxIgFBgBpGDQACQCAAQcVlaiICQShLDQAgAkECaw4lAAEBAQEBAQEAAQEBAAEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAELIABBmmVqQQpJDQAgAEF4cUHYG0YgAEH+ZGpBAklyIABBtmRqIgJBDE1BAEEBIAJ0QeEvcRtyIABBmmRqQQpJcg0AIABBsR1GIABBjmRqQQJJciAAQc9jaiICQR1NQQBBASACdEH5h4D+A3EbciAAQbBjakEKSXINACAAQbhiakEGSSAAQeBhakEKSXIgAEHMYmoiAkEITUEAIAJBBkcbcg0AIABBAXIiAkGZHkYgAEGwYmpBCklyDQAgAkGHH0YgAEHzYGpBC0lyIABBy2FqIgJBCk1BAEEBIAJ0QZUMcRtyIABBj2FqQRRJIABB7lFqQQNJciAAQZdZakEJSSAAQaNZakEDSXJyciAAQfFeakEPSSAAQf5eakEMSXIgAEGPX2pBBEkgAEGZX2pBB0lyciAAQZ5fakEDSSAAQaJfakEDSXIgAEGqX2pBBEkgAEHAX2pBCklycnJyIABBxh9GIABB1V9qQRRJciAAQedgakEkSSAAQc5RakEDSXJyIABBrlFqQQJJIABBjlFqQQJJciAAQfVPakEDSSAAQaBQakEKSXJyciAAQd0vRiAAQcxQakEgSXIgAEGwRmpBA0kgAEGwR2pBCklyciAAQcBHakEKSSAAQdxHakEUSXIgAEGaSGpBDkkgAEHQSGpBCklycnJyciAAQd9IakENSSAAQYBJakEDSXIgAEGVSWpBCUkgAEGwSWpBCklyciAAQcxJakERSSAAQYBKakEFSXIgAEHQSmpBDkkgAEHwSmpBCklycnIgAEGBS2pBC0kgAEGgS2pBHUlyIABBq0tqQQpJIABB6UtqQQVJcnIgAEGwTGpBC0kgAEG6TWpBCklyIABB0E1qQQxJIABB4E1qQQxJcnJyciAAQakxRiAAQfBPakEKSXIgAEHARGpBOkkgAEGJRmpBA0lyciAAQe05RiAAQY5GakEDSXIgAEGsRmpBFUkgAEGFRGpBBUlycnJycg0AIABB4cEARiAAQZu+f2pBDElyIABBwb9/aiICQRVNQQBBASACdEGDgIABcRtyIABBsL5/akENSSAAQZGmf2pBA0lyIABB/9oARiAAQWBxQeDbAEZycnIgAEHWn39qQQZJIABB555/akECSXIgAEHvzAJGIABBjLN9akEKSXJyIABB4LN9akEKSXJyDQAgAEHisn1qQQJJIABBkLJ9akECSXIgAEH1r31qIgJBHE1BAEEBIAJ0QYGAgPgBcRtyDQACQCAAQf6vfWoiAkEESwRAIABBgK99akECSQ0CDAELIAJBAWsOAwAAAAELIAFBgNMCRiAAQc2sfWpBDklyIABBua19akENSSAAQdqtfWpBCElyciAAQYGufWpBC0kgAEGgrn1qQRJJciAAQcyufWpBEkkgAEGwrn1qQQpJcnJyIABB5dMCRiAAQderfWpBDklyIABBX3FBsKx9akEKSXJyDQAgAEGwq31qQQpJIABBvat9aiIBQQpNQQBBASABdEGBDHEbcg0AIABBnah9aiIBQQpNQQAgAUEIRxsNACAAQdCqfWoiAUERTUEAQQEgAXRBnYMLcRsNACAAQYWrfWpBA0kgAEGVqn1qIgFBC01BAEEBIAF0QZ8YcRtyDQAgAEFwcSIBQYD8A0YgAEGe9gNGciAAQZCofWpBCklyDQAgAUGg/ANGIABBzYN8akECSXIgAEGzg3xqQQNJciAAQfCBfGpBCklyIABBv/4DRnIPC0EBC1gBBX9BgIAEIQFBkAghAkF+IQMCQANAIANBAmoiA0HnA0sNASACKAIAIAFqIgEgAEsNASACQQRqIQQgAkEIaiECIAEgBCgCAGoiASAASQ0AC0EBIQULIAULWAEFf0GAgAQhAUGwFyECQX4hAwJAA0AgA0ECaiIDQfkBSw0BIAIoAgAgAWoiASAASw0BIAJBBGohBCACQQhqIQIgASAEKAIAaiIBIABJDQALQQEhBQsgBQvkHAEFfwJAAkAgAEG6empBDEkgAEGIfmpBygNJciAAQdZ+aiIBQRBNQQBBASABdEGBkARxG3IgAEHAfmpBF0kgAEGofmpBH0lycg0AIABBkHlqIgFBHE1BAEEBIAF0Qd/5groBcRsNACAAQfZ2akGmAUkgAEGJeGpBiwFJciAAQaB6aiIBQQ5NQQBBASABdEGfoAFxG3IgAEHyeGpBFEkgAEHdeGpB0wBJciAAQZF0akEESSAAQbB0akEbSXJyciAAQdkKRiAAQaB1akEpSXIgAEHPdWpBJklyIABBj3NqQeMASXJyDQAgAEEBciIEQe8MRiAAQeBzakErSXINACAAQe5xakEeSSAAQbZwakEhSXJBACAAQatyaiIBQTxJQoGAjLCAnIGACCABrYhCAYNQG3IgAEGxD0YgAEGzcWpB2QBJcnINACAAQYBwakEWSSAAQYxwaiIBQQZNQQBBASABdEHDAHEbcg0AAkAgAEHcb2oiAUEESwRAIABBmhBGDQIMAQsgAUEBaw4DAAAAAQsgAEH8bWpBNkkgAEHKbmpBCElyIABB4G5qQRVJIABBwG9qQRlJcnIgAEG9EkYgAEGgb2pBC0lyIABB0BJGIABBqG1qQQpJcnJyIABBj21qQRBJcg0AIABB7WxqQRZJIABB+2xqIgFBDElBAEH/GSABQf//A3F2QQFxG3INACAAQdZsakEHSSAAQYRsaiIBQRRNQQBBASABdEGB/OEAcRtyDQAgAEHObGoiAUEcTUEAQQEgAXRB8ZGAgAFxGw0AIABB7WtqQRZJIABBpGxqIgFBFU1BAEEBIAF0QbuAwAFxG3INACAAQe1qakEWSSAAQfFqakEDSXJBACAAQdZraiIBQTVJQv+2g4CAgOALIAGtiEIBg1AbciAAQY5rakEDSSAAQftqakEJSXJyDQACQAJAIABB1mpqIgFBJksEQCAAQYdqaiIBQRdLQQEgAXRBgeC/BnFFcg0BDAMLIAFBB2sOHwECAgECAgICAgEBAQIBAQEBAQEBAQEBAQEBAQEBAQECCyAAQaBqakECSQ0BCyAAQe1pakEWSQ0AAkACQCAAQY9paiIBQTNLBEAgAEHWaWoiAUETS0EBIAF0Qf/2I3FFcg0BDAMLIAFBAWsOMQEBAQEBAQEBAQEBAQEBAQEBAgECAgICAgIBAQECAgIBAgICAgEBAQICAQIBAgIBAQECCyAAQaRpaiIBQQVLDQAgAUECRw0BCyAAQdhoakEDSSAAQe5nakEXSXIgAEHyZ2pBA0kgAEH7Z2pBCElyciAAQdAXRiAAQdJoakEMSXIgAEG9GEYgAEHWZ2pBEElycnINACAAQdZmakEKSSAAQe5makEXSXJBACAAQahnaiIBQSlJQoeGgICAICABrYhCAYNQG3IgAEH7ZmpBCEkgAEHyZmpBA0lycg0AIABB+2VqIgFBC01BACABQQhHGw0AIABBy2ZqIgFBCE1BAEEBIAF0QZ8CcRsNACAAQb0aRiAAQe5lakEpSXIgAEGiZmoiAUEUTUEAQQEgAXRBjYDgAHEbciAAQc4aRiAAQc1kakEJSXIgAEHmZGpBGEkgAEH7ZGpBEklycnIgAEGGZWpBBkkgAEGsZWpBA0lyIABBoWVqQQNJcnINACAEQbMcRiAAQf9jakEwSXIgAEHDZGoiAUEKSUEAQfkHIAFB//8DcXZBAXEbciAAQcBjakEHSXINACAAQf9iaiIBQQxNQQBBASABdEHLJXEbDQAgAEF8cSIBQZQdRiAAQediakEHSXINACAAQYBgakErSSAAQfhgakEFSXJBACAAQd9iaiIDQSZJQtfsm4D5BSADrYhCAYNQG3IgAEG3YWpBJElyDQAgAEF4cSICQcAeRiAAQYAeRnIgAUHcHUZyDQAgAEGSX2pBA0kgAEHgXmpBJklyQQAgAEHBX2oiA0EoSUKBgPjDxxggA62IQgGDUBtyIABBjiFGIABBi19qQQ1JciAAQcchRiAAQc0hRnJyciAAQbZbakEESSAAQbBeakErSXIgAEGEXmpBzQJJcnINACAAQc5aakEESSAAQfBaakEhSXIgAEGwW2oiA0EJSUEAQf8CIANB//8DcXZBAXEbciAAQfZaakEESSAAQaZbakEESXIgAEGgW2pBKUlycg0AIABBgFFqQTRJIABBklFqQQNJciAAQchaaiIDQQlJQQBB/wIgA0H//wNxdkEBcRtyIABBoFFqQQ1JIABBwFFqQRJJciAAQeBRakESSSAAQfJRakEESXJyciAAQYBSakENSSAAQZJSakELSXIgAEHgUmpBywBJIABB/1JqQRpJcnIgAEGRU2pBEUkgAEH/V2pB7ARJciAAQYhYakEGSSAAQeBYakHWAElycnJyDQAgAEFwcSIDQYAnRiAAQehZakHDAElyIABB7llqQQRJIABBqFpqQTlJcnIgAEG+WmpBBEkgAEG4WmpBD0lyIABB1y9GIABB3C9GcnJyIABB4E9qQdkASSAAQYBMakEXSXIgAEHQTGpBGkkgAEGATWpBLElyciAAQZBNakEFSSAAQbBNakEeSXIgAEGATmpBH0kgAEHQTmpBxgBJcnJycg0AIABBqjFGIABBgE9qQSlJciAAQbtJakEHSSAAQftJakEvSXJyIABBpzVGIABB4EtqQTVJciAAQZdGakEESSAAQcNGakEDSXJyciAAQfBGakErSSAAQYBHakEJSXIgAEGmR2pBJEkgAEGzR2pBA0lyciAAQYBIakEkSSAAQcZIakEsSXIgBEGvN0YgAEH9SGpBHklycnJyDQEgAEGSRmoiBUEJSUEAQY8DIAVB//8DcXZBAXEbDQAgAkHQPkYgAEG4QWpBBklyIABB4EFqQSZJIABB6EFqQQZJcnIgAEGARmpBwAFJIABBgERqQZYCSXJyDQEgAEGhQWpBH0kgAEGAQWpBNUlyIABBp0FqIgJBBE1BAEEBIAJ0QRVxG3INASAAQcpAaiICQQlJQQBB/wIgAkH//wNxdkEBcRsNACAAQY5AakEDSSAAQaBAakENSXIgAUHQP0YgAEGqQGpBBklyciAAQb5AakEDSSAAQbpAakEHSXIgAEHxwABGIABBikBqQQdJcnJyIABB/8AARiAAQfC+f2pBDUlyIABBgsIARiAAQYfCAEZyciAAQZXCAEYgAEH2vX9qQQpJcnJyDQEgAEHovX9qIgJBEUlBAEG/oAUgAnZBAXEbDQAgAUG8wgBGIABB1r1/akEQSXINASAAQbu9f2oiAkEKSUEAQZ8EIAJB//8DcXZBAXEbDQAgAEGgp39qQYUBSSAAQdCnf2pBL0lyIABBoL1/akEpSSAAQYCof2pBL0lycg0BIABBlaZ/aiICQQlJQQBBjwMgAkH//wNxdkEBcRsNACAAQafaAEYgAEGApn9qQSZJciAAQa3aAEYgAEGAtn1qQY0CSXJyIABBsLZ9akEuSSAAQYDAfWpBjQlJciAAQYDkfmpB8KMBSSAAQYCYf2pBtjNJcnJyIANB8OMARiAAQeCcf2pBG0lyIABBz51/akHeAEkgAEH7nX9qQStJcnIgAUH84QBGIABB355/akHaAElyIABB5Z5/akEFSSAAQb+ff2pB1gBJcnJyciAAQciff2pBBUkgAEHPn39qQQVJciAAQd+ff2pBCUkgAEH7n39qQQNJcnIgAEGopH9qQQdJIABBsKR/akEHSXIgAEG4pH9qQQdJIABBwKR/akEHSXJyciAAQcikf2pBB0kgAEHQpH9qQQdJciAAQdikf2pBB0kgAEHgpH9qQQdJcnIgAEHv2gBGIABBgKV/akEXSXIgAEHQpX9qQThJIABB/q59akEySXJycnJyIABBwK99akE0SSAAQfSvfWpBF0lyIABB+a99akEESSAAQf2vfWpBA0lyciAAQYmwfWpBC0kgAEH1sH1qQS9JciAAQd6xfWpB5wBJIABB6bF9akEJSXJyciAAQeCyfWpB0ABJIABBgbN9akEfSXIgBEGrzAJGIABBwLN9akEvSXJyIANBkMwCRnJycg0BIABBjq59aiIBQQ1JQQBBvzQgAUH//wNxdkEBcRsNACAAQaCtfWpBHUkgAEH2rX1qQRxJciAAQdCtfWpBF0kgAEG8q31qQQhJcnIgAEHAq31qQQNJIABBgKx9akEpSXIgAEGGrH1qQQVJIABBmqx9akEKSXJyciAAQc/TAkYgAEGgrH1qQQVJciAAQfysfWpBL0kgAEGCq31qQTJJcnIgAEH61AJGIABBoKt9akEXSXJycg0BIABBz6p9aiIBQRJJQQBBsb4KIAF2QQFxGw0AIABBgIp8akEHSSAAQZCLfGpB6gBJciAAQYCOfGpB7gJJIABBtdB8akExSXJyIABB0NB8akEXSSAAQYCofWpBpNcASXIgAEGQqX1qQfMASSAAQaSpfWpBCklycnIgAEHQqX1qQStJIABB2Kl9akEHSXIgAEHgqX1qQQdJIABB76l9akEGSXJyIABBd3FB/6l9akEGSSAAQY6qfWpBA0lyIABBpap9akEDSSAAQaCqfWpBC0lycnJyDQEgAEHtiXxqIgFBC0lBAEGfCCABQf//A3F2QQFxGw0AIABB4Yl8akEKSSAAQdaJfGpBDUlyDQEgAEHIiXxqIgFBDUlBAEHfNiABQf//A3F2QQFxGw0AIABBroB8akEGSSAAQbaAfGpBBklyIABBvoB8akEGSSAAQZqBfGpB2QBJcnIgAEG/gXxqQRpJIABB34F8akEaSXIgAEGKg3xqQYcBSSAAQZCDfGpBBUlycnIgAEGQhHxqQQxJIABB7oR8akE2SXIgAEGwhXxqQcAASSAAQbqJfGpB7ABJcnJyDQEgAEGtiHxqQesCSQ0AIABBpoB8akEDSQ8LQQEPC0EBCzIAIABBgPgDcUGAsANGBH8gAEEKdEGA+D9xQaSgASgCAC8BAkH/B3FyQYCABGoFIAALC2IBAn9BASECAkAgAEH4/wNxQShGIABBRmpB//8DcUEGSXIgAEFfaiIBQQVNQQBBASABdEExcRtyDQAgAEGlf2oiAUEDTUEAIAFBAUcbDQAgAEGFf2pB//8DcUEESSECCyACC4QBAQV/QaSgASgCACEAQaigASgCACEDA38gAEECaiEBAkACQCAAIANPDQAgAS8BACIEQaR/aiICQQFNDQEgASEAIARBdmoiAkEDSw0CIAJBAWsOAgICAAtBpKABIAE2AgAQGg8LIAJBAWsEfyAAQQRqIQAMAQVBpKABIAE2AgBB3QALCxoLQwEDfwJAIAJFDQADQCAALQAAIgMgAS0AACIERgRAIAFBAWohASAAQQFqIQAgAkF/aiICDQEMAgsLIAMgBGshBQsgBQsLoRcCAEGUCAuBFwsAAAACAAAAGQAAAAIAAAASAAAAAgAAAAEAAAACAAAADgAAAAMAAAANAAAAIwAAAHoAAABGAAAANAAAAAwBAAAcAAAABAAAADAAAAAwAAAAHwAAAA4AAAAdAAAABgAAACUAAAALAAAAHQAAAAMAAAAjAAAABQAAAAcAAAACAAAABAAAACsAAACdAAAAEwAAACMAAAAFAAAAIwAAAAUAAAAnAAAACQAAADMAAACdAAAANgEAAAoAAAAVAAAACwAAAAcAAACZAAAABQAAAAMAAAAAAAAAAgAAACsAAAACAAAAAQAAAAQAAAAAAAAAAwAAABYAAAALAAAAFgAAAAoAAAAeAAAAQgAAABIAAAACAAAAAQAAAAsAAAAVAAAACwAAABkAAABHAAAANwAAAAcAAAABAAAAQQAAAAAAAAAQAAAAAwAAAAIAAAACAAAAAgAAABwAAAArAAAAHAAAAAQAAAAcAAAAJAAAAAcAAAACAAAAGwAAABwAAAA1AAAACwAAABUAAAALAAAAEgAAAA4AAAARAAAAbwAAAEgAAAA4AAAAMgAAAA4AAAAyAAAADgAAACMAAABdAQAAKQAAAAcAAAABAAAATwAAABwAAAALAAAAAAAAAAkAAAAVAAAAawAAABQAAAAcAAAAFgAAAA0AAAA0AAAATAAAACwAAAAhAAAAGAAAABsAAAAjAAAAHgAAAAAAAAADAAAAAAAAAAkAAAAiAAAABAAAAAAAAAANAAAALwAAAA8AAAADAAAAFgAAAAAAAAACAAAAAAAAACQAAAARAAAAAgAAABgAAABVAAAABgAAAAIAAAAAAAAAAgAAAAMAAAACAAAADgAAAAIAAAAJAAAACAAAAC4AAAAnAAAABwAAAAMAAAABAAAAAwAAABUAAAACAAAABgAAAAIAAAABAAAAAgAAAAQAAAAEAAAAAAAAABMAAAAAAAAADQAAAAQAAACfAAAANAAAABMAAAADAAAAFQAAAAIAAAAfAAAALwAAABUAAAABAAAAAgAAAAAAAAC5AAAALgAAACoAAAADAAAAJQAAAC8AAAAVAAAAAAAAADwAAAAqAAAADgAAAAAAAABIAAAAGgAAAOYAAAArAAAAdQAAAD8AAAAgAAAABwAAAAMAAAAAAAAAAwAAAAcAAAACAAAAAQAAAAIAAAAXAAAAEAAAAAAAAAACAAAAAAAAAF8AAAAHAAAAAwAAACYAAAARAAAAAAAAAAIAAAAAAAAAHQAAAAAAAAALAAAAJwAAAAgAAAAAAAAAFgAAAAAAAAAMAAAALQAAABQAAAAAAAAAIwAAADgAAAAIAQAACAAAAAIAAAAkAAAAEgAAAAAAAAAyAAAAHQAAAHEAAAAGAAAAAgAAAAEAAAACAAAAJQAAABYAAAAAAAAAGgAAAAUAAAACAAAAAQAAAAIAAAAfAAAADwAAAAAAAABIAQAAEgAAAL4AAAAAAAAAUAAAAJkDAABnAAAAbgAAABIAAADDAAAAvQoAAC4EAADSDwAARgIAALohAAA4AgAACAAAAB4AAAByAAAAHQAAABMAAAAvAAAAEQAAAAMAAAAgAAAAFAAAAAYAAAASAAAAsQIAAD8AAACBAAAASgAAAAYAAAAAAAAAQwAAAAwAAABBAAAAAQAAAAIAAAAAAAAAHQAAAPcXAAAJAAAA1QQAACsAAAAIAAAA+CIAAB4BAAAyAAAAAgAAABIAAAADAAAACQAAAIsBAAAFCQAAagAAAAYAAAAMAAAABAAAAAgAAAAIAAAACQAAAGcXAABUAAAAAgAAAEYAAAACAAAAAQAAAAMAAAAAAAAAAwAAAAEAAAADAAAAAwAAAAIAAAALAAAAAgAAAAAAAAACAAAABgAAAAIAAABAAAAAAgAAAAMAAAADAAAABwAAAAIAAAAGAAAAAgAAABsAAAACAAAAAwAAAAIAAAAEAAAAAgAAAAAAAAAEAAAABgAAAAIAAABTAQAAAwAAABgAAAACAAAAGAAAAAIAAAAeAAAAAgAAABgAAAACAAAAHgAAAAIAAAAYAAAAAgAAAB4AAAACAAAAGAAAAAIAAAAeAAAAAgAAABgAAAACAAAABwAAADUJAAAsAAAACwAAAAYAAAARAAAAAAAAAHIBAAArAAAAFQUAAMQAAAA8AAAAQwAAAAgAAAAAAAAAtQQAAAMAAAACAAAAGgAAAAIAAAABAAAAAgAAAAAAAAADAAAAAAAAAAIAAAAJAAAAAgAAAAMAAAACAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAFAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAgAAAAIAAAABAAAAAgAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAAAAAAMAAAADAAAAAgAAAAYAAAACAAAAAwAAAAIAAAADAAAAAgAAAAAAAAACAAAACQAAAAIAAAAQAAAABgAAAAIAAAACAAAABAAAAAIAAAAQAAAARREAAN2mAAAjAAAANBAAAAwAAADdAAAAAwAAAIEWAAAPAAAAMB0AACAMAAAdAgAA4wUAAEoTAAD9AQAAAAAAAOMAAAAAAAAAlgAAAAQAAAAmAQAACQAAAFgFAAACAAAAAgAAAAEAAAAGAAAAAwAAACkAAAACAAAABQAAAAAAAACmAAAAAQAAAD4CAAADAAAACQAAAAkAAAByAQAAAQAAAJoAAAAKAAAAsAAAAAIAAAA2AAAADgAAACAAAAAJAAAAEAAAAAMAAAAuAAAACgAAADYAAAAJAAAABwAAAAIAAAAlAAAADQAAAAIAAAAJAAAABgAAAAEAAAAtAAAAAAAAAA0AAAACAAAAMQAAAA0AAAAJAAAAAwAAAAIAAAALAAAAUwAAAAsAAAAHAAAAAAAAAKEAAAALAAAABgAAAAkAAAAHAAAAAwAAADgAAAABAAAAAgAAAAYAAAADAAAAAQAAAAMAAAACAAAACgAAAAAAAAALAAAAAQAAAAMAAAAGAAAABAAAAAQAAADBAAAAEQAAAAoAAAAJAAAABQAAAAAAAABSAAAAEwAAAA0AAAAJAAAA1gAAAAYAAAADAAAACAAAABwAAAABAAAAUwAAABAAAAAQAAAACQAAAFIAAAAMAAAACQAAAAkAAABUAAAADgAAAAUAAAAJAAAA8wAAAA4AAACmAAAACQAAAEcAAAAFAAAAAgAAAAEAAAADAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAANAAAACQAAAHgAAAAGAAAAAwAAAAYAAAAEAAAAAAAAAB0AAAAJAAAAKQAAAAYAAAACAAAAAwAAAAkAAAAAAAAACgAAAAoAAAAvAAAADwAAAJYBAAAHAAAAAgAAAAcAAAARAAAACQAAADkAAAAVAAAAAgAAAA0AAAB7AAAABQAAAAQAAAAAAAAAAgAAAAEAAAACAAAABgAAAAIAAAAAAAAACQAAAAkAAAAxAAAABAAAAAIAAAABAAAAAgAAAAQAAAAJAAAACQAAAEoBAAADAAAAaksAAAkAAACHAAAABAAAADwAAAAGAAAAGgAAAAkAAAD2AwAAAAAAAAIAAAA2AAAACAAAAAMAAABSAAAAAAAAAAwAAAABAAAArEwAAAEAAADHFAAABAAAAAQAAAAFAAAACQAAAAcAAAADAAAABgAAAB8AAAADAAAAlQAAAAIAAACKBQAAMQAAAAECAAA2AAAABQAAADEAAAAJAAAAAAAAAA8AAAAAAAAAFwAAAAQAAAACAAAADgAAAFEFAAAGAAAAAgAAABAAAAADAAAABgAAAAIAAAABAAAAAgAAAAQAAAAGAQAABgAAAAoAAAAJAAAAowEAAA0AAADXBQAABgAAAG4AAAAGAAAABgAAAAkAAACXEgAACQAAAAcFDADvAEGYHwsSMIwAAAEAAAACAAAAAAQAANAf","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} \ No newline at end of file diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index f9a76d599e880a..9b2fd759f9a51a 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -56,9 +56,26 @@ const { getOptionValue } = require('internal/options'); const experimentalImportMetaResolve = getOptionValue('--experimental-import-meta-resolve'); const asyncESM = require('internal/process/esm_loader'); -const cjsParse = require('internal/deps/cjs-module-lexer/lexer'); const { emitWarningSync } = require('internal/process/warning'); +let cjsParse; +async function initCJSParse() { + if (typeof WebAssembly !== 'undefined') { + const { parse, init } = + require('internal/deps/cjs-module-lexer/dist/lexer'); + await init(); + let exports; + try { + ({ exports } = parse('exports.a=1')); + if (exports.length === 1) { + cjsParse = parse; + return; + } + } catch {} + } + cjsParse = require('internal/deps/cjs-module-lexer/lexer'); +} + const translators = new SafeMap(); exports.translators = translators; exports.enrichCJSError = enrichCJSError; @@ -164,6 +181,7 @@ translators.set('commonjs', async function commonjsStrategy(url, isMain) { if (isWindows) filename = StringPrototypeReplace(filename, winSepRegEx, '\\'); + if (!cjsParse) await initCJSParse(); const { module, exportNames } = cjsPreparseModuleExports(filename); const namesWithDefault = exportNames.has('default') ? [...exportNames] : ['default', ...exportNames]; diff --git a/node.gyp b/node.gyp index 4a0acda56bf2b5..2c919528490138 100644 --- a/node.gyp +++ b/node.gyp @@ -253,6 +253,7 @@ 'deps/acorn-plugins/acorn-private-methods/index.js', 'deps/acorn-plugins/acorn-static-class-features/index.js', 'deps/cjs-module-lexer/lexer.js', + 'deps/cjs-module-lexer/dist/lexer.js', ], 'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)', 'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)', diff --git a/test/benchmark/test-benchmark-esm.js b/test/benchmark/test-benchmark-esm.js new file mode 100644 index 00000000000000..cd10ff9cb160de --- /dev/null +++ b/test/benchmark/test-benchmark-esm.js @@ -0,0 +1,7 @@ +'use strict'; + +require('../common'); + +const runBenchmark = require('../common/benchmark'); + +runBenchmark('esm', { NODEJS_BENCHMARK_ZERO_ALLOWED: 1 }); diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 5bb05d6f209116..f7f1d2583d928c 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -53,7 +53,6 @@ const expectedModules = new Set([ 'NativeModule internal/modules/cjs/helpers', 'NativeModule internal/modules/cjs/loader', 'NativeModule internal/modules/esm/create_dynamic_module', - 'NativeModule internal/deps/cjs-module-lexer/lexer', 'NativeModule internal/modules/esm/get_format', 'NativeModule internal/modules/esm/get_source', 'NativeModule internal/modules/esm/loader', From 970975b5885d5106ef1e5895ec5232bf4fb7070f Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 10 Oct 2020 05:30:20 -0700 Subject: [PATCH 57/82] doc: use kbd element in process doc PR-URL: https://github.com/nodejs/node/pull/35584 Reviewed-By: Antoine du Hamel Reviewed-By: Luigi Pinca Reviewed-By: Anna Henningsen Reviewed-By: Daijiro Wachi --- doc/api/process.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/api/process.md b/doc/api/process.md index bd6662fe390fb7..179e1bd4d852db 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -509,11 +509,12 @@ process.on('SIGTERM', handle); installed its default behavior will be removed. * `'SIGTERM'` is not supported on Windows, it can be listened on. * `'SIGINT'` from the terminal is supported on all platforms, and can usually be - generated with `+C` (though this may be configurable). It is not - generated when [terminal raw mode][] is enabled and `+C` is used. -* `'SIGBREAK'` is delivered on Windows when `+` is pressed, on - non-Windows platforms it can be listened on, but there is no way to send or - generate it. + generated with Ctrl+C (though this may be configurable). + It is not generated when [terminal raw mode][] is enabled and + Ctrl+C is used. +* `'SIGBREAK'` is delivered on Windows when Ctrl+Break is + pressed. On non-Windows platforms, it can be listened on, but there is no way + to send or generate it. * `'SIGWINCH'` is delivered when the console has been resized. On Windows, this will only happen on write to the console when the cursor is being moved, or when a readable tty is used in raw mode. From c1bb3641051b182cf0409cbb91caa592885634fe Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Fri, 9 Oct 2020 15:43:16 -0400 Subject: [PATCH 58/82] doc: run license builder License is out of date PR-URL: https://github.com/nodejs/node/pull/35577 Reviewed-By: Antoine du Hamel Reviewed-By: Richard Lau Reviewed-By: Beth Griggs Reviewed-By: Mary Marchini Reviewed-By: Shelley Vohr Reviewed-By: Rich Trott Reviewed-By: Jiawen Geng --- LICENSE | 1 + 1 file changed, 1 insertion(+) diff --git a/LICENSE b/LICENSE index 1f20a4a22cab15..50e6bf6344b0e2 100644 --- a/LICENSE +++ b/LICENSE @@ -1059,6 +1059,7 @@ The externally maintained libraries used by Node.js are: - GYP, located at tools/gyp, is licensed as follows: """ + Copyright (c) 2020 Node.js contributors. All rights reserved. Copyright (c) 2009 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without From 9d1b7ac334943cadf0c13998ffedc43eee788193 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 5 Oct 2020 06:48:40 -0700 Subject: [PATCH 59/82] doc: edit fs.md for minor style changes Prefer present tense and use "might" for possibility. PR-URL: https://github.com/nodejs/node/pull/35505 Reviewed-By: Daijiro Wachi --- doc/api/fs.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index 58e4e96988c081..4ab97ade9a3805 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -384,7 +384,7 @@ an [`fs.Dirent`][], or `null` if there are no more directory entries to read. Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory may or may not be +Entries added or removed while iterating over the directory might not be included in the iteration results. ### `dir.read(callback)` @@ -404,7 +404,7 @@ After the read is completed, the `callback` will be called with an Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory may or may not be +Entries added or removed while iterating over the directory might not be included in the iteration results. ### `dir.readSync()` @@ -421,7 +421,7 @@ If there are no more directory entries to read, `null` will be returned. Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory may or may not be +Entries added or removed while iterating over the directory might not be included in the iteration results. ### `dir[Symbol.asyncIterator]()` @@ -441,7 +441,7 @@ See [`fs.Dir`][] for an example. Directory entries returned by this iterator are in no particular order as provided by the operating system's underlying directory mechanisms. -Entries added or removed while iterating over the directory may or may not be +Entries added or removed while iterating over the directory might not be included in the iteration results. ## Class: `fs.Dirent` @@ -3508,7 +3508,7 @@ changes: * `path` {string|Buffer|URL} * `options` {Object} * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js will retry the operation with a linear + `EPERM` error is encountered, Node.js retries the operation with a linear backoff wait of `retryDelay` milliseconds longer on each try. This option represents the number of retries. This option is ignored if the `recursive` option is not `true`. **Default:** `0`. @@ -3559,7 +3559,7 @@ changes: * `path` {string|Buffer|URL} * `options` {Object} * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js will retry the operation with a linear + `EPERM` error is encountered, Node.js retries the operation with a linear backoff wait of `retryDelay` milliseconds longer on each try. This option represents the number of retries. This option is ignored if the `recursive` option is not `true`. **Default:** `0`. @@ -4411,8 +4411,8 @@ fs.write(fd, Buffer.from(data, options.encoding), callback); ``` The difference from directly calling `fs.write()` is that under some unusual -conditions, `fs.write()` may write only part of the buffer and will need to be -retried to write the remaining data, whereas `fs.writeFile()` will retry until +conditions, `fs.write()` might write only part of the buffer and need to be +retried to write the remaining data, whereas `fs.writeFile()` retries until the data is entirely written (or an error occurs). The implications of this are a common source of confusion. In @@ -5495,7 +5495,7 @@ changes: * `path` {string|Buffer|URL} * `options` {Object} * `maxRetries` {integer} If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or - `EPERM` error is encountered, Node.js will retry the operation with a linear + `EPERM` error is encountered, Node.js retries the operation with a linear backoff wait of `retryDelay` milliseconds longer on each try. This option represents the number of retries. This option is ignored if the `recursive` option is not `true`. **Default:** `0`. @@ -5995,7 +5995,7 @@ or `O_EXCL|O_CREAT` to `CREATE_NEW`, as accepted by `CreateFileW`. The exclusive flag `'x'` (`O_EXCL` flag in open(2)) causes the operation to return an error if the path already exists. On POSIX, if the path is a symbolic link, using `O_EXCL` returns an error even if the link is to a path that does -not exist. The exclusive flag may or may not work with network file systems. +not exist. The exclusive flag might not work with network file systems. On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to From 809cd07968490e0170104a1ff9bfa28aa0773056 Mon Sep 17 00:00:00 2001 From: bcoe Date: Fri, 9 Oct 2020 14:56:56 -0700 Subject: [PATCH 60/82] doc: document rmdir/recursive deprecation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document deprecation of rmdir/recursive permissive functionality PR-URL: https://github.com/nodejs/node/pull/35579 Refs: https://github.com/nodejs/node/pull/35562 Reviewed-By: Rich Trott Reviewed-By: Antoine du Hamel Reviewed-By: Michaël Zasso --- doc/api/deprecations.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index d34abbc230fbee..1f16a9a575656f 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -2628,6 +2628,20 @@ Type: Documentation-only The [`crypto.Certificate()` constructor][] is deprecated. Use [static methods of `crypto.Certificate()`][] instead. +### DEP0XXX: `fs.rmdir(path, { recursive: true })` + + +Type: Documentation-only + +In future versions of Node.js, `fs.rmdir(path, { recursive: true })` will throw +on nonexistent paths, or when given a file as a target. +Use `fs.rm(path, { recursive: true, force: true })` instead. + [Legacy URL API]: url.md#url_legacy_url_api [NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf [RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3 From 4a2ba4384bc7d37327fae98a645386033cffee1c Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Thu, 8 Oct 2020 20:50:21 +0200 Subject: [PATCH 61/82] test: do not use the same EventEmitter instance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prevent multiple listeners for the `'error'` event to be added to the same `EventEmitter` instance. PR-URL: https://github.com/nodejs/node/pull/35560 Refs: https://github.com/nodejs/node/pull/35557#issuecomment-705476640 Reviewed-By: Anna Henningsen Reviewed-By: Gerhard Stöbich Reviewed-By: Michael Dawson Reviewed-By: Colin Ihrig Reviewed-By: Robert Nagy Reviewed-By: Rich Trott --- test/parallel/test-stream2-readable-wrap-error.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-stream2-readable-wrap-error.js b/test/parallel/test-stream2-readable-wrap-error.js index ac1f64f69810f0..a05ae8179b06ef 100644 --- a/test/parallel/test-stream2-readable-wrap-error.js +++ b/test/parallel/test-stream2-readable-wrap-error.js @@ -5,12 +5,14 @@ const assert = require('assert'); const Readable = require('_stream_readable'); const EE = require('events').EventEmitter; -const oldStream = new EE(); -oldStream.pause = () => {}; -oldStream.resume = () => {}; +class LegacyStream extends EE { + pause() {} + resume() {} +} { const err = new Error(); + const oldStream = new LegacyStream(); const r = new Readable({ autoDestroy: true }) .wrap(oldStream) .on('error', common.mustCall(() => { @@ -23,6 +25,7 @@ oldStream.resume = () => {}; { const err = new Error(); + const oldStream = new LegacyStream(); const r = new Readable({ autoDestroy: false }) .wrap(oldStream) .on('error', common.mustCall(() => { From 4025fc811d9194a3d32a4d1bd45275385637d2a5 Mon Sep 17 00:00:00 2001 From: "Pooja D.P" Date: Fri, 11 Sep 2020 12:05:16 +0000 Subject: [PATCH 62/82] doc: add PoojaDurgad as a triager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I would like to apply for a triager in this project. My motivation to become a triager is to help with the issues in this repo and the help repo, as well as learn deeper internals of node.js, and to eventually become a collaborator! I hear by declare that I read and understood the project’s Code of Conduct, and will adhere to that. PR-URL: https://github.com/nodejs/node/pull/35153 Reviewed-By: Gireesh Punathil Reviewed-By: Derek Lewis --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index a43dcc0bfa813c..a5066a675f0a8e 100644 --- a/README.md +++ b/README.md @@ -570,6 +570,11 @@ For information about the governance of the Node.js project, see Collaborators follow the [Collaborator Guide](./doc/guides/collaborator-guide.md) in maintaining the Node.js project. +### Triagers + +* [PoojaDurgad](https://github.com/PoojaDurgad) - +**Pooja Durgad** <Pooja.D.P@ibm.com> + ### Release Keys Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys): From 59a2cb5ebb228a1e4df4487b471f5a038bc4ad97 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Fri, 9 Oct 2020 09:12:40 -0700 Subject: [PATCH 63/82] inspector: do not hardcode Debugger.CallFrameId in tests Debugger.CallFrameId is defined as an opaque string [1]. Some tests currently hardcode the value, relying on undocumented internal details of V8. This makes it hard for V8 to change the internal representation. We should instead use the reported call frame id from the Debugger.paused event directly. This is how every inspector client does it. [1] https://chromedevtools.github.io/devtools-protocol/tot/Debugger/#type-CallFrameId PR-URL: https://github.com/nodejs/node/pull/35570 Reviewed-By: Aleksei Koziatinskii Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott --- test/common/inspector-helper.js | 9 +++++++++ test/parallel/test-inspector-esm.js | 2 +- test/sequential/test-inspector.js | 6 +++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/test/common/inspector-helper.js b/test/common/inspector-helper.js index 77d7928af135a6..5aea807b7c0b81 100644 --- a/test/common/inspector-helper.js +++ b/test/common/inspector-helper.js @@ -130,6 +130,7 @@ class InspectorSession { this._unprocessedNotifications = []; this._notificationCallback = null; this._scriptsIdsByUrl = new Map(); + this._pausedDetails = null; let buffer = Buffer.alloc(0); socket.on('data', (data) => { @@ -179,6 +180,10 @@ class InspectorSession { this.mainScriptId = scriptId; } } + if (message.method === 'Debugger.paused') + this._pausedDetails = message.params; + if (message.method === 'Debugger.resumed') + this._pausedDetails = null; if (this._notificationCallback) { // In case callback needs to install another @@ -267,6 +272,10 @@ class InspectorSession { `break on ${url}:${line}`); } + pausedDetails() { + return this._pausedDetails; + } + _matchesConsoleOutputNotification(notification, type, values) { if (!Array.isArray(values)) values = [ values ]; diff --git a/test/parallel/test-inspector-esm.js b/test/parallel/test-inspector-esm.js index 707fa7bb56f9e5..b9813e50c29ded 100644 --- a/test/parallel/test-inspector-esm.js +++ b/test/parallel/test-inspector-esm.js @@ -78,7 +78,7 @@ async function testBreakpoint(session) { let { result } = await session.send({ 'method': 'Debugger.evaluateOnCallFrame', 'params': { - 'callFrameId': '{"ordinal":0,"injectedScriptId":1}', + 'callFrameId': session.pausedDetails().callFrames[0].callFrameId, 'expression': 'k + t', 'objectGroup': 'console', 'includeCommandLineAPI': true, diff --git a/test/sequential/test-inspector.js b/test/sequential/test-inspector.js index a1ef109cf1a9a0..b58d70c864263a 100644 --- a/test/sequential/test-inspector.js +++ b/test/sequential/test-inspector.js @@ -116,7 +116,7 @@ async function testBreakpoint(session) { let { result } = await session.send({ 'method': 'Debugger.evaluateOnCallFrame', 'params': { - 'callFrameId': '{"ordinal":0,"injectedScriptId":1}', + 'callFrameId': session.pausedDetails().callFrames[0].callFrameId, 'expression': 'k + t', 'objectGroup': 'console', 'includeCommandLineAPI': true, @@ -150,7 +150,7 @@ async function testI18NCharacters(session) { const chars = 'טֶ字и'; session.send({ 'method': 'Debugger.evaluateOnCallFrame', 'params': { - 'callFrameId': '{"ordinal":0,"injectedScriptId":1}', + 'callFrameId': session.pausedDetails().callFrames[0].callFrameId, 'expression': `console.log("${chars}")`, 'objectGroup': 'console', 'includeCommandLineAPI': true, @@ -276,7 +276,7 @@ async function testCommandLineAPI(session) { result = await session.send( { 'method': 'Debugger.evaluateOnCallFrame', 'params': { - 'callFrameId': '{"ordinal":0,"injectedScriptId":1}', + 'callFrameId': session.pausedDetails().callFrames[0].callFrameId, 'expression': `( require(${printBModuleStr}), require.cache[${printBModuleStr}].parent.id From 7e7afc518662120634f522566c3981b804d225dd Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 7 Oct 2020 09:36:09 -0700 Subject: [PATCH 64/82] crypto: update certdata to NSS 3.56 This is the certdata.txt[0] from NSS 3.56, released on 2020-08-21. [0] https://hg.mozilla.org/projects/nss/raw-file/NSS_3_56_RTM/lib/ckfw/builtins/certdata.txt crypto: update root certificates Update the list of root certificates in src/node_root_certs.h with tools/mk-ca-bundle.pl. Certificates added: - Microsoft ECC Root Certificate Authority 2017 - Microsoft RSA Root Certificate Authority 2017 - e-Szigno Root CA 2017 - certSIGN Root CA G2 Certificates removed: - Verisign Class 3 Public Primary Certification Authority - G3 - AddTrust External Root - Staat der Nederlanden Root CA - G2 - LuxTrust Global Root 2 PR-URL: https://github.com/nodejs/node/pull/35546 Reviewed-By: Jiawen Geng Reviewed-By: Rich Trott Reviewed-By: Evan Lucas Reviewed-By: James M Snell --- src/node_root_certs.h | 205 ++--- tools/certdata.txt | 2005 ++++++++++++++--------------------------- 2 files changed, 788 insertions(+), 1422 deletions(-) diff --git a/src/node_root_certs.h b/src/node_root_certs.h index f8e84e7d231e33..47beb730f4b853 100644 --- a/src/node_root_certs.h +++ b/src/node_root_certs.h @@ -43,30 +43,6 @@ "jmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==\n" "-----END CERTIFICATE-----", -/* Verisign Class 3 Public Primary Certification Authority - G3 */ -"-----BEGIN CERTIFICATE-----\n" -"MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQG\n" -"EwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0\n" -"IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv\n" -"cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1h\n" -"cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3\n" -"MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd\n" -"BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlT\n" -"aWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu\n" -"IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCC\n" -"ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2\n" -"R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6\n" -"yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFU\n" -"okWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyo\n" -"w0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBte\n" -"HRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my\n" -"/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe\n" -"DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC/Y4wjylG\n" -"sB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0xuKh\n" -"XFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa\n" -"t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==\n" -"-----END CERTIFICATE-----", - /* Entrust.net Premium 2048 Secure Server CA */ "-----BEGIN CERTIFICATE-----\n" "MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVz\n" @@ -112,31 +88,6 @@ "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n" "-----END CERTIFICATE-----", -/* AddTrust External Root */ -"-----BEGIN CERTIFICATE-----\n" -"MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UE\n" -"ChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3Jr\n" -"MSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoX\n" -"DTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYw\n" -"JAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1\n" -"c3QgRXh0ZXJuYWwgQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3\n" -"GjPm8gAELTngTlvtH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCw\n" -"SXrbLpX9uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\n" -"mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63u\n" -"bUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5\n" -"aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0WicCAwEAAaOB3DCB2TAdBgNV\n" -"HQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMB\n" -"Af8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYT\n" -"AlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwg\n" -"VFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJ\n" -"KoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\n" -"YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw56wwCURQt\n" -"jr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355e6cJ\n" -"DUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u\n" -"G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49O\n" -"hgQ=\n" -"-----END CERTIFICATE-----", - /* Entrust Root Certification Authority */ "-----BEGIN CERTIFICATE-----\n" "MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAU\n" @@ -1110,38 +1061,6 @@ "dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=\n" "-----END CERTIFICATE-----", -/* Staat der Nederlanden Root CA - G2 */ -"-----BEGIN CERTIFICATE-----\n" -"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\n" -"nR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==\n" -"-----END CERTIFICATE-----", - /* Hongkong Post Root CA 1 */ "-----BEGIN CERTIFICATE-----\n" "MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNV\n" @@ -2818,38 +2737,6 @@ "ElMzrdfkviT8tQp21KW8EA==\n" "-----END CERTIFICATE-----", -/* LuxTrust Global Root 2 */ -"-----BEGIN CERTIFICATE-----\n" -"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\n" -"KuGUaJPHZnJED4AhMmwlxyOAgwrr\n" -"-----END CERTIFICATE-----", - /* TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 */ "-----BEGIN CERTIFICATE-----\n" "MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNV\n" @@ -3455,4 +3342,96 @@ "jnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh\n" "7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==\n" "-----END CERTIFICATE-----", + +/* Microsoft ECC Root Certificate Authority 2017 */ +"-----BEGIN CERTIFICATE-----\n" +"MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQG\n" +"EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3Nv\n" +"ZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1\n" +"WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENv\n" +"cnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0\n" +"aG9yaXR5IDIwMTcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiB\n" +"YgtlzPbKnR5vSmZRogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC\n" +"48Zo9OYbhGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E\n" +"BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIB\n" +"ADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG\n" +"7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUBiudQZsIxtzm6uBoiB078a1QW\n" +"IP8rtedMDE2mT3M=\n" +"-----END CERTIFICATE-----", + +/* Microsoft RSA Root Certificate Authority 2017 */ +"-----BEGIN CERTIFICATE-----\n" +"MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYD\n" +"VQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy\n" +"b3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1\n" +"MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0\n" +"IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUg\n" +"QXV0aG9yaXR5IDIwMTcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wp\n" +"lZEWCpW9R2LBifOZNt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xzto\n" +"kLaCLeX0ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1\n" +"HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu\n" +"+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwS\n" +"lq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUcaDDv70ngNXtk55iwlNpNhTs+\n" +"VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRSMLl6IE9vDzhTyzMMEyuP1pq9Ksgt\n" +"sRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92\n" +"kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK\n" +"0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avN\n" +"JVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/\n" +"BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGCNxUBBAMC\n" +"AQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og6Lq4\n" +"6BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80\n" +"dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl\n" +"3JPk+ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbL\n" +"wVaZOjex/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7\n" +"o7P4NHmJweDyAmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5T\n" +"kshGsRGRxpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp\n" +"GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy\n" +"4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39l\n" +"t2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E\n" +"-----END CERTIFICATE-----", + +/* e-Szigno Root CA 2017 */ +"-----BEGIN CERTIFICATE-----\n" +"MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhV\n" +"MREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwO\n" +"VkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4\n" +"MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRh\n" +"cGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcx\n" +"HjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEH\n" +"A0IABJbcPYrYsHtvxie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9o\n" +"MrWGQd+HWyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\n" +"A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87G\n" +"yZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz\n" +"7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ+efcMQ==\n" +"-----END CERTIFICATE-----", + +/* certSIGN Root CA G2 */ +"-----BEGIN CERTIFICATE-----\n" +"MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJP\n" +"MRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAe\n" +"Fw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQK\n" +"EwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZI\n" +"hvcNAQEBBQADggIPADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC\n" +"46+CjobXXo9X69MhWf05N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UP\n" +"HULlj88F0+7cDBrZuIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTE\n" +"CMYmzPhpn+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs\n" +"cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7l\n" +"zw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMq\n" +"z6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiFDsGJ6x9nxUWO/203Nit4ZoOR\n" +"USs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf95xhszWYijqy7DwaNz9+j5LP2RIU\n" +"ZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwy\n" +"c6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGj\n" +"QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg\n" +"4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq\n" +"kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UCb6741jH/\n" +"JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB/AYm\n" +"/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5\n" +"8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvR\n" +"Cjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9\n" +"o4JFWklWatKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq\n" +"2LxndD0UF/tUSxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55\n" +"CJD2AhZkPuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE\n" +"1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3Ng\n" +"hVdJIgc=\n" +"-----END CERTIFICATE-----", #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS diff --git a/tools/certdata.txt b/tools/certdata.txt index ea14926063b4b5..fcef935cbfc96c 100644 --- a/tools/certdata.txt +++ b/tools/certdata.txt @@ -674,285 +674,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE -# -# Certificate "Verisign Class 3 Public Primary Certification Authority - G3" -# -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Serial Number:00:9b:7e:06:49:a3:3e:62:b9:d5:ee:90:48:71:29:ef:57 -# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Not Valid Before: Fri Oct 01 00:00:00 1999 -# Not Valid After : Wed Jul 16 23:59:59 2036 -# Fingerprint (MD5): CD:68:B6:A7:C7:C4:CE:75:E0:1D:4F:57:44:61:92:09 -# Fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6 -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G3" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 -\051\357\127 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\004\032\060\202\003\002\002\021\000\233\176\006\111\243 -\076\142\271\325\356\220\110\161\051\357\127\060\015\006\011\052 -\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 -\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 -\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 -\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 -\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 -\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 -\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 -\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 -\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 -\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 -\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 -\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 -\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 -\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 -\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 -\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 -\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 -\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 -\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 -\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 -\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 -\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 -\040\103\154\141\163\163\040\063\040\120\165\142\154\151\143\040 -\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 -\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 -\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 -\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 -\002\202\001\001\000\313\272\234\122\374\170\037\032\036\157\033 -\067\163\275\370\311\153\224\022\060\117\360\066\107\365\320\221 -\012\365\027\310\245\141\301\026\100\115\373\212\141\220\345\166 -\040\301\021\006\175\253\054\156\246\365\021\101\216\372\055\255 -\052\141\131\244\147\046\114\320\350\274\122\133\160\040\004\130 -\321\172\311\244\151\274\203\027\144\255\005\213\274\320\130\316 -\215\214\365\353\360\102\111\013\235\227\047\147\062\156\341\256 -\223\025\034\160\274\040\115\057\030\336\222\210\350\154\205\127 -\021\032\351\176\343\046\021\124\242\105\226\125\203\312\060\211 -\350\334\330\243\355\052\200\077\177\171\145\127\076\025\040\146 -\010\057\225\223\277\252\107\057\250\106\227\360\022\342\376\302 -\012\053\121\346\166\346\267\106\267\342\015\246\314\250\303\114 -\131\125\211\346\350\123\134\034\352\235\360\142\026\013\247\311 -\137\014\360\336\302\166\316\257\367\152\362\372\101\246\242\063 -\024\311\345\172\143\323\236\142\067\325\205\145\236\016\346\123 -\044\164\033\136\035\022\123\133\307\054\347\203\111\073\025\256 -\212\150\271\127\227\002\003\001\000\001\060\015\006\011\052\206 -\110\206\367\015\001\001\005\005\000\003\202\001\001\000\021\024 -\226\301\253\222\010\367\077\057\311\262\376\344\132\237\144\336 -\333\041\117\206\231\064\166\066\127\335\320\025\057\305\255\177 -\025\037\067\142\163\076\324\347\137\316\027\003\333\065\372\053 -\333\256\140\011\137\036\137\217\156\273\013\075\352\132\023\036 -\014\140\157\265\300\265\043\042\056\007\013\313\251\164\313\107 -\273\035\301\327\245\153\314\057\322\102\375\111\335\247\211\317 -\123\272\332\000\132\050\277\202\337\370\272\023\035\120\206\202 -\375\216\060\217\051\106\260\036\075\065\332\070\142\026\030\112 -\255\346\266\121\154\336\257\142\353\001\320\036\044\376\172\217 -\022\032\022\150\270\373\146\231\024\024\105\134\256\347\256\151 -\027\201\053\132\067\311\136\052\364\306\342\241\134\124\233\246 -\124\000\317\360\361\301\307\230\060\032\073\066\026\333\243\156 -\352\375\255\262\302\332\357\002\107\023\212\300\361\263\061\255 -\117\034\341\117\234\257\017\014\235\367\170\015\330\364\065\126 -\200\332\267\155\027\217\235\036\201\144\341\376\305\105\272\255 -\153\271\012\172\116\117\113\204\356\113\361\175\335\021 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority - G3" -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Serial Number:00:9b:7e:06:49:a3:3e:62:b9:d5:ee:90:48:71:29:ef:57 -# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Not Valid Before: Fri Oct 01 00:00:00 1999 -# Not Valid After : Wed Jul 16 23:59:59 2036 -# Fingerprint (MD5): CD:68:B6:A7:C7:C4:CE:75:E0:1D:4F:57:44:61:92:09 -# Fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G3" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\023\055\015\105\123\113\151\227\315\262\325\303\071\342\125\166 -\140\233\134\306 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\315\150\266\247\307\304\316\165\340\035\117\127\104\141\222\011 -END -CKA_ISSUER MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 -\051\357\127 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 1/3)" -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Serial Number:4c:00:36:1b:e5:08:2b:a9:aa:ce:74:0a:05:3e:fb:34 -# Subject: CN=Egypt Trust Class 3 Managed PKI Enterprise Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG -# Not Valid Before: Sun May 18 00:00:00 2008 -# Not Valid After : Thu May 17 23:59:59 2018 -# Fingerprint (MD5): A7:91:05:96:B1:56:01:26:4E:BF:80:80:08:86:1B:4D -# Fingerprint (SHA1): 6A:2C:5C:B0:94:D5:E0:B7:57:FB:0F:58:42:AA:C8:13:A5:80:2F:E1 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 1/3)" -CKA_ISSUER MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\114\000\066\033\345\010\053\251\252\316\164\012\005\076 -\373\064 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - - -# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 2/3)" -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Serial Number:3e:0c:9e:87:69:aa:95:5c:ea:23:d8:45:9e:d4:5b:51 -# Subject: CN=Egypt Trust Class 3 Managed PKI Operational Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG -# Not Valid Before: Sun May 18 00:00:00 2008 -# Not Valid After : Thu May 17 23:59:59 2018 -# Fingerprint (MD5): D0:C3:71:17:3E:39:80:C6:50:4F:04:22:DF:40:E1:34 -# Fingerprint (SHA1): 9C:65:5E:D5:FA:E3:B8:96:4D:89:72:F6:3A:63:53:59:3F:5E:B4:4E -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 2/3)" -CKA_ISSUER MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\076\014\236\207\151\252\225\134\352\043\330\105\236\324 -\133\121 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 3/3)" -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US -# Serial Number:12:bd:26:a2:ae:33:c0:7f:24:7b:6a:58:69:f2:0a:76 -# Subject: CN=Egypt Trust Class 3 Managed PKI SCO Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG -# Not Valid Before: Sun May 18 00:00:00 2008 -# Not Valid After : Thu May 17 23:59:59 2018 -# Fingerprint (MD5): C2:13:5E:B2:67:8A:5C:F7:91:EF:8F:29:0F:9B:77:6E -# Fingerprint (SHA1): 83:23:F1:4F:BC:9F:9B:80:B7:9D:ED:14:CD:01:57:CD:FB:08:95:D2 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 3/3)" -CKA_ISSUER MULTILINE_OCTAL -\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 -\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 -\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 -\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 -\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 -\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 -\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 -\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 -\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 -\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 -\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 -\165\164\150\157\162\151\164\171\040\055\040\107\063 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\022\275\046\242\256\063\300\177\044\173\152\130\151\362 -\012\166 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - # # Certificate "Entrust.net Premium 2048 Secure Server CA" # @@ -1251,351 +972,52 @@ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE # -# Certificate "AddTrust Low-Value Services Root" +# Certificate "Entrust Root Certification Authority" # -# Issuer: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE -# Serial Number: 1 (0x1) -# Subject: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE -# Not Valid Before: Tue May 30 10:38:31 2000 -# Not Valid After : Sat May 30 10:38:31 2020 -# Fingerprint (MD5): 1E:42:95:02:33:92:6B:B9:5F:C0:7F:DA:D6:B2:4B:FC -# Fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D +# Issuer: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Serial Number: 1164660820 (0x456b5054) +# Subject: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Not Valid Before: Mon Nov 27 20:23:42 2006 +# Not Valid After : Fri Nov 27 20:53:42 2026 +# Fingerprint (MD5): D6:A5:C3:ED:5D:DD:3E:00:C1:3D:87:92:1F:1D:3F:E4 +# Fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9 CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE CKA_TOKEN CK_BBOOL CK_TRUE CKA_PRIVATE CK_BBOOL CK_FALSE CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "AddTrust Low-Value Services Root" +CKA_LABEL UTF8 "Entrust Root Certification Authority" CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 CKA_SUBJECT MULTILINE_OCTAL -\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 -\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 -\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 -\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 -\103\101\040\122\157\157\164 +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171 END CKA_ID UTF8 "0" CKA_ISSUER MULTILINE_OCTAL -\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 -\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 -\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 -\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 -\103\101\040\122\157\157\164 +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171 END CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\001\001 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\004\030\060\202\003\000\240\003\002\001\002\002\001\001 -\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 -\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 -\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 -\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 -\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 -\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144 -\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103 -\101\040\122\157\157\164\060\036\027\015\060\060\060\065\063\060 -\061\060\063\070\063\061\132\027\015\062\060\060\065\063\060\061 -\060\063\070\063\061\132\060\145\061\013\060\011\006\003\125\004 -\006\023\002\123\105\061\024\060\022\006\003\125\004\012\023\013 -\101\144\144\124\162\165\163\164\040\101\102\061\035\060\033\006 -\003\125\004\013\023\024\101\144\144\124\162\165\163\164\040\124 -\124\120\040\116\145\164\167\157\162\153\061\041\060\037\006\003 -\125\004\003\023\030\101\144\144\124\162\165\163\164\040\103\154 -\141\163\163\040\061\040\103\101\040\122\157\157\164\060\202\001 -\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 -\003\202\001\017\000\060\202\001\012\002\202\001\001\000\226\226 -\324\041\111\140\342\153\350\101\007\014\336\304\340\334\023\043 -\315\301\065\307\373\326\116\021\012\147\136\365\006\133\153\245 -\010\073\133\051\026\072\347\207\262\064\006\305\274\005\245\003 -\174\202\313\051\020\256\341\210\201\275\326\236\323\376\055\126 -\301\025\316\343\046\235\025\056\020\373\006\217\060\004\336\247 -\264\143\264\377\261\234\256\074\257\167\266\126\305\265\253\242 -\351\151\072\075\016\063\171\062\077\160\202\222\231\141\155\215 -\060\010\217\161\077\246\110\127\031\370\045\334\113\146\134\245 -\164\217\230\256\310\371\300\006\042\347\254\163\337\245\056\373 -\122\334\261\025\145\040\372\065\146\151\336\337\054\361\156\274 -\060\333\054\044\022\333\353\065\065\150\220\313\000\260\227\041 -\075\164\041\043\145\064\053\273\170\131\243\326\341\166\071\232 -\244\111\216\214\164\257\156\244\232\243\331\233\322\070\134\233 -\242\030\314\165\043\204\276\353\342\115\063\161\216\032\360\302 -\370\307\035\242\255\003\227\054\370\317\045\306\366\270\044\061 -\261\143\135\222\177\143\360\045\311\123\056\037\277\115\002\003 -\001\000\001\243\201\322\060\201\317\060\035\006\003\125\035\016 -\004\026\004\024\225\261\264\360\224\266\275\307\332\321\021\011 -\041\276\301\257\111\375\020\173\060\013\006\003\125\035\017\004 -\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 -\005\060\003\001\001\377\060\201\217\006\003\125\035\043\004\201 -\207\060\201\204\200\024\225\261\264\360\224\266\275\307\332\321 -\021\011\041\276\301\257\111\375\020\173\241\151\244\147\060\145 -\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024\060 -\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163\164 -\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101\144 -\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167\157 -\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144\144 -\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103\101 -\040\122\157\157\164\202\001\001\060\015\006\011\052\206\110\206 -\367\015\001\001\005\005\000\003\202\001\001\000\054\155\144\033 -\037\315\015\335\271\001\372\226\143\064\062\110\107\231\256\227 -\355\375\162\026\246\163\107\132\364\353\335\351\365\326\373\105 -\314\051\211\104\135\277\106\071\075\350\356\274\115\124\206\036 -\035\154\343\027\047\103\341\211\126\053\251\157\162\116\111\063 -\343\162\174\052\043\232\274\076\377\050\052\355\243\377\034\043 -\272\103\127\011\147\115\113\142\006\055\370\377\154\235\140\036 -\330\034\113\175\265\061\057\331\320\174\135\370\336\153\203\030 -\170\067\127\057\350\063\007\147\337\036\307\153\052\225\166\256 -\217\127\243\360\364\122\264\251\123\010\317\340\117\323\172\123 -\213\375\273\034\126\066\362\376\262\266\345\166\273\325\042\145 -\247\077\376\321\146\255\013\274\153\231\206\357\077\175\363\030 -\062\312\173\306\343\253\144\106\225\370\046\151\331\125\203\173 -\054\226\007\377\131\054\104\243\306\345\351\251\334\241\143\200 -\132\041\136\041\317\123\124\360\272\157\211\333\250\252\225\317 -\213\343\161\314\036\033\040\104\010\300\172\266\100\375\304\344 -\065\341\035\026\034\320\274\053\216\326\161\331 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for Certificate "AddTrust Low-Value Services Root" -# Issuer: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE -# Serial Number: 1 (0x1) -# Subject: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE -# Not Valid Before: Tue May 30 10:38:31 2000 -# Not Valid After : Sat May 30 10:38:31 2020 -# Fingerprint (MD5): 1E:42:95:02:33:92:6B:B9:5F:C0:7F:DA:D6:B2:4B:FC -# Fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "AddTrust Low-Value Services Root" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\314\253\016\240\114\043\001\326\151\173\335\067\237\315\022\353 -\044\343\224\235 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\036\102\225\002\063\222\153\271\137\300\177\332\326\262\113\374 -END -CKA_ISSUER MULTILINE_OCTAL -\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 -\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 -\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 -\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 -\103\101\040\122\157\157\164 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\001\001 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# -# Certificate "AddTrust External Root" -# -# Issuer: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE -# Serial Number: 1 (0x1) -# Subject: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE -# Not Valid Before: Tue May 30 10:48:38 2000 -# Not Valid After : Sat May 30 10:48:38 2020 -# Fingerprint (MD5): 1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F -# Fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "AddTrust External Root" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 -\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 -\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 -\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 -\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 -\164 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 -\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 -\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 -\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 -\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 -\164 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\001\001 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\004\066\060\202\003\036\240\003\002\001\002\002\001\001 -\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 -\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 -\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 -\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035\101 -\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141\154 -\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060\040 -\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164\040 -\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157\164 -\060\036\027\015\060\060\060\065\063\060\061\060\064\070\063\070 -\132\027\015\062\060\060\065\063\060\061\060\064\070\063\070\132 -\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 -\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 -\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 -\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 -\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 -\164\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 -\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 -\001\000\267\367\032\063\346\362\000\004\055\071\340\116\133\355 -\037\274\154\017\315\265\372\043\266\316\336\233\021\063\227\244 -\051\114\175\223\237\275\112\274\223\355\003\032\343\217\317\345 -\155\120\132\326\227\051\224\132\200\260\111\172\333\056\225\375 -\270\312\277\067\070\055\036\076\221\101\255\160\126\307\360\117 -\077\350\062\236\164\312\310\220\124\351\306\137\017\170\235\232 -\100\074\016\254\141\252\136\024\217\236\207\241\152\120\334\327 -\232\116\257\005\263\246\161\224\234\161\263\120\140\012\307\023 -\235\070\007\206\002\250\351\250\151\046\030\220\253\114\260\117 -\043\253\072\117\204\330\337\316\237\341\151\157\273\327\102\327 -\153\104\344\307\255\356\155\101\137\162\132\161\010\067\263\171 -\145\244\131\240\224\067\367\000\057\015\302\222\162\332\320\070 -\162\333\024\250\105\304\135\052\175\267\264\326\304\356\254\315 -\023\104\267\311\053\335\103\000\045\372\141\271\151\152\130\043 -\021\267\247\063\217\126\165\131\365\315\051\327\106\267\012\053 -\145\266\323\102\157\025\262\270\173\373\357\351\135\123\325\064 -\132\047\002\003\001\000\001\243\201\334\060\201\331\060\035\006 -\003\125\035\016\004\026\004\024\255\275\230\172\064\264\046\367 -\372\304\046\124\357\003\275\340\044\313\124\032\060\013\006\003 -\125\035\017\004\004\003\002\001\006\060\017\006\003\125\035\023 -\001\001\377\004\005\060\003\001\001\377\060\201\231\006\003\125 -\035\043\004\201\221\060\201\216\200\024\255\275\230\172\064\264 -\046\367\372\304\046\124\357\003\275\340\044\313\124\032\241\163 -\244\161\060\157\061\013\060\011\006\003\125\004\006\023\002\123 -\105\061\024\060\022\006\003\125\004\012\023\013\101\144\144\124 -\162\165\163\164\040\101\102\061\046\060\044\006\003\125\004\013 -\023\035\101\144\144\124\162\165\163\164\040\105\170\164\145\162 -\156\141\154\040\124\124\120\040\116\145\164\167\157\162\153\061 -\042\060\040\006\003\125\004\003\023\031\101\144\144\124\162\165 -\163\164\040\105\170\164\145\162\156\141\154\040\103\101\040\122 -\157\157\164\202\001\001\060\015\006\011\052\206\110\206\367\015 -\001\001\005\005\000\003\202\001\001\000\260\233\340\205\045\302 -\326\043\342\017\226\006\222\235\101\230\234\331\204\171\201\331 -\036\133\024\007\043\066\145\217\260\330\167\273\254\101\154\107 -\140\203\121\260\371\062\075\347\374\366\046\023\307\200\026\245 -\277\132\374\207\317\170\171\211\041\232\342\114\007\012\206\065 -\274\362\336\121\304\322\226\267\334\176\116\356\160\375\034\071 -\353\014\002\121\024\055\216\275\026\340\301\337\106\165\347\044 -\255\354\364\102\264\205\223\160\020\147\272\235\006\065\112\030 -\323\053\172\314\121\102\241\172\143\321\346\273\241\305\053\302 -\066\276\023\015\346\275\143\176\171\173\247\011\015\100\253\152 -\335\217\212\303\366\366\214\032\102\005\121\324\105\365\237\247 -\142\041\150\025\040\103\074\231\347\174\275\044\330\251\221\027 -\163\210\077\126\033\061\070\030\264\161\017\232\315\310\016\236 -\216\056\033\341\214\230\203\313\037\061\361\104\114\306\004\163 -\111\166\140\017\307\370\275\027\200\153\056\351\314\114\016\132 -\232\171\017\040\012\056\325\236\143\046\036\125\222\224\330\202 -\027\132\173\320\274\307\217\116\206\004 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for Certificate "AddTrust External Root" -# Issuer: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE -# Serial Number: 1 (0x1) -# Subject: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE -# Not Valid Before: Tue May 30 10:48:38 2000 -# Not Valid After : Sat May 30 10:48:38 2020 -# Fingerprint (MD5): 1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F -# Fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "AddTrust External Root" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\002\372\363\342\221\103\124\150\140\170\127\151\115\365\344\133 -\150\205\030\150 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\035\065\124\004\205\170\260\077\102\102\115\277\040\163\012\077 -END -CKA_ISSUER MULTILINE_OCTAL -\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 -\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 -\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 -\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 -\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 -\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 -\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 -\164 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\001\001 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# -# Certificate "Entrust Root Certification Authority" -# -# Issuer: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US -# Serial Number: 1164660820 (0x456b5054) -# Subject: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US -# Not Valid Before: Mon Nov 27 20:23:42 2006 -# Not Valid After : Fri Nov 27 20:53:42 2026 -# Fingerprint (MD5): D6:A5:C3:ED:5D:DD:3E:00:C1:3D:87:92:1F:1D:3F:E4 -# Fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9 -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Entrust Root Certification Authority" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 -\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 -\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 -\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 -\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 -\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 -\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 -\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 -\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 -\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 -\151\164\171 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 -\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 -\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 -\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 -\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 -\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 -\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 -\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 -\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 -\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 -\151\164\171 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\004\105\153\120\124 +\002\004\105\153\120\124 END CKA_VALUE MULTILINE_OCTAL \060\202\004\221\060\202\003\171\240\003\002\001\002\002\004\105 @@ -1847,7 +1269,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \002\003\002\064\126 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -2012,7 +1434,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \002\001\001 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -2177,7 +1599,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \002\001\001 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -4178,7 +3600,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \136\366 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -5727,7 +5149,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \073\112 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -7304,7 +6726,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \017\037 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -7744,7 +7166,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \303\153 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -8082,7 +7504,7 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL \254\263 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE @@ -8245,177 +7667,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE -# -# Certificate "Staat der Nederlanden Root CA - G2" -# -# Issuer: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL -# Serial Number: 10000012 (0x98968c) -# Subject: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL -# Not Valid Before: Wed Mar 26 11:18:17 2008 -# Not Valid After : Wed Mar 25 11:03:10 2020 -# Fingerprint (MD5): 7C:A5:0F:F8:5B:9A:7D:6D:30:AE:54:5A:E3:42:A2:8A -# Fingerprint (SHA1): 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16 -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Staat der Nederlanden Root CA - G2" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 -\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 -\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 -\122\157\157\164\040\103\101\040\055\040\107\062 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 -\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 -\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 -\122\157\157\164\040\103\101\040\055\040\107\062 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\004\000\230\226\214 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\005\312\060\202\003\262\240\003\002\001\002\002\004\000 -\230\226\214\060\015\006\011\052\206\110\206\367\015\001\001\013 -\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 -\114\061\036\060\034\006\003\125\004\012\014\025\123\164\141\141 -\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 -\156\061\053\060\051\006\003\125\004\003\014\042\123\164\141\141 -\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 -\156\040\122\157\157\164\040\103\101\040\055\040\107\062\060\036 -\027\015\060\070\060\063\062\066\061\061\061\070\061\067\132\027 -\015\062\060\060\063\062\065\061\061\060\063\061\060\132\060\132 -\061\013\060\011\006\003\125\004\006\023\002\116\114\061\036\060 -\034\006\003\125\004\012\014\025\123\164\141\141\164\040\144\145 -\162\040\116\145\144\145\162\154\141\156\144\145\156\061\053\060 -\051\006\003\125\004\003\014\042\123\164\141\141\164\040\144\145 -\162\040\116\145\144\145\162\154\141\156\144\145\156\040\122\157 -\157\164\040\103\101\040\055\040\107\062\060\202\002\042\060\015 -\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 -\017\000\060\202\002\012\002\202\002\001\000\305\131\347\157\165 -\252\076\113\234\265\270\254\236\013\344\371\331\312\253\135\217 -\265\071\020\202\327\257\121\340\073\341\000\110\152\317\332\341 -\006\103\021\231\252\024\045\022\255\042\350\000\155\103\304\251 -\270\345\037\211\113\147\275\141\110\357\375\322\340\140\210\345 -\271\030\140\050\303\167\053\255\260\067\252\067\336\144\131\052 -\106\127\344\113\271\370\067\174\325\066\347\200\301\266\363\324 -\147\233\226\350\316\327\306\012\123\320\153\111\226\363\243\013 -\005\167\110\367\045\345\160\254\060\024\040\045\343\177\165\132 -\345\110\370\116\173\003\007\004\372\202\141\207\156\360\073\304 -\244\307\320\365\164\076\245\135\032\010\362\233\045\322\366\254 -\004\046\076\125\072\142\050\245\173\262\060\257\370\067\302\321 -\272\326\070\375\364\357\111\060\067\231\046\041\110\205\001\251 -\345\026\347\334\220\125\337\017\350\070\315\231\067\041\117\135 -\365\042\157\152\305\022\026\140\027\125\362\145\146\246\247\060 -\221\070\301\070\035\206\004\204\272\032\045\170\136\235\257\314 -\120\140\326\023\207\122\355\143\037\155\145\175\302\025\030\164 -\312\341\176\144\051\214\162\330\026\023\175\013\111\112\361\050 -\033\040\164\153\305\075\335\260\252\110\011\075\056\202\224\315 -\032\145\331\053\210\232\231\274\030\176\237\356\175\146\174\076 -\275\224\270\201\316\315\230\060\170\301\157\147\320\276\137\340 -\150\355\336\342\261\311\054\131\170\222\252\337\053\140\143\362 -\345\136\271\343\312\372\177\120\206\076\242\064\030\014\011\150 -\050\021\034\344\341\271\134\076\107\272\062\077\030\314\133\204 -\365\363\153\164\304\162\164\341\343\213\240\112\275\215\146\057 -\352\255\065\332\040\323\210\202\141\360\022\042\266\274\320\325 -\244\354\257\124\210\045\044\074\247\155\261\162\051\077\076\127 -\246\177\125\257\156\046\306\376\347\314\100\134\121\104\201\012 -\170\336\112\316\125\277\035\325\331\267\126\357\360\166\377\013 -\171\265\257\275\373\251\151\221\106\227\150\200\024\066\035\263 -\177\273\051\230\066\245\040\372\202\140\142\063\244\354\326\272 -\007\247\156\305\317\024\246\347\326\222\064\330\201\365\374\035 -\135\252\134\036\366\243\115\073\270\367\071\002\003\001\000\001 -\243\201\227\060\201\224\060\017\006\003\125\035\023\001\001\377 -\004\005\060\003\001\001\377\060\122\006\003\125\035\040\004\113 -\060\111\060\107\006\004\125\035\040\000\060\077\060\075\006\010 -\053\006\001\005\005\007\002\001\026\061\150\164\164\160\072\057 -\057\167\167\167\056\160\153\151\157\166\145\162\150\145\151\144 -\056\156\154\057\160\157\154\151\143\151\145\163\057\162\157\157 -\164\055\160\157\154\151\143\171\055\107\062\060\016\006\003\125 -\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 -\035\016\004\026\004\024\221\150\062\207\025\035\211\342\265\361 -\254\066\050\064\215\013\174\142\210\353\060\015\006\011\052\206 -\110\206\367\015\001\001\013\005\000\003\202\002\001\000\250\101 -\112\147\052\222\201\202\120\156\341\327\330\263\071\073\363\002 -\025\011\120\121\357\055\275\044\173\210\206\073\371\264\274\222 -\011\226\271\366\300\253\043\140\006\171\214\021\116\121\322\171 -\200\063\373\235\110\276\354\101\103\201\037\176\107\100\034\345 -\172\010\312\252\213\165\255\024\304\302\350\146\074\202\007\247 -\346\047\202\133\030\346\017\156\331\120\076\212\102\030\051\306 -\264\126\374\126\020\240\005\027\275\014\043\177\364\223\355\234 -\032\121\276\335\105\101\277\221\044\264\037\214\351\137\317\173 -\041\231\237\225\237\071\072\106\034\154\371\315\173\234\220\315 -\050\251\307\251\125\273\254\142\064\142\065\023\113\024\072\125 -\203\271\206\215\222\246\306\364\007\045\124\314\026\127\022\112 -\202\170\310\024\331\027\202\046\055\135\040\037\171\256\376\324 -\160\026\026\225\203\330\065\071\377\122\135\165\034\026\305\023 -\125\317\107\314\165\145\122\112\336\360\260\247\344\012\226\013 -\373\255\302\342\045\204\262\335\344\275\176\131\154\233\360\360 -\330\347\312\362\351\227\070\176\211\276\314\373\071\027\141\077 -\162\333\072\221\330\145\001\031\035\255\120\244\127\012\174\113 -\274\234\161\163\052\105\121\031\205\314\216\375\107\247\164\225 -\035\250\321\257\116\027\261\151\046\302\252\170\127\133\305\115 -\247\345\236\005\027\224\312\262\137\240\111\030\215\064\351\046 -\154\110\036\252\150\222\005\341\202\163\132\233\334\007\133\010 -\155\175\235\327\215\041\331\374\024\040\252\302\105\337\077\347 -\000\262\121\344\302\370\005\271\171\032\214\064\363\236\133\344 -\067\133\153\112\337\054\127\212\100\132\066\272\335\165\104\010 -\067\102\160\014\376\334\136\041\240\243\212\300\220\234\150\332 -\120\346\105\020\107\170\266\116\322\145\311\303\067\337\341\102 -\143\260\127\067\105\055\173\212\234\277\005\352\145\125\063\367 -\071\020\305\050\052\041\172\033\212\304\044\371\077\025\310\232 -\025\040\365\125\142\226\355\155\223\120\274\344\252\170\255\331 -\313\012\145\207\246\146\301\304\201\243\167\072\130\036\013\356 -\203\213\235\036\322\122\244\314\035\157\260\230\155\224\061\265 -\370\161\012\334\271\374\175\062\140\346\353\257\212\001 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for Certificate "Staat der Nederlanden Root CA - G2" -# Issuer: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL -# Serial Number: 10000012 (0x98968c) -# Subject: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL -# Not Valid Before: Wed Mar 26 11:18:17 2008 -# Not Valid After : Wed Mar 25 11:03:10 2020 -# Fingerprint (MD5): 7C:A5:0F:F8:5B:9A:7D:6D:30:AE:54:5A:E3:42:A2:8A -# Fingerprint (SHA1): 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Staat der Nederlanden Root CA - G2" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\131\257\202\171\221\206\307\264\165\007\313\317\003\127\106\353 -\004\335\267\026 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\174\245\017\370\133\232\175\155\060\256\124\132\343\102\242\212 -END -CKA_ISSUER MULTILINE_OCTAL -\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 -\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 -\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 -\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 -\122\157\157\164\040\103\101\040\055\040\107\062 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\004\000\230\226\214 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - # # Certificate "Hongkong Post Root CA 1" # @@ -19007,176 +18258,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE -# -# Certificate "LuxTrust Global Root 2" -# -# Issuer: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU -# Serial Number:0a:7e:a6:df:4b:44:9e:da:6a:24:85:9e:e6:b8:15:d3:16:7f:bb:b1 -# Subject: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU -# Not Valid Before: Thu Mar 05 13:21:57 2015 -# Not Valid After : Mon Mar 05 13:21:57 2035 -# Fingerprint (SHA-256): 54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5 -# Fingerprint (SHA1): 1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "LuxTrust Global Root 2" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 -\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 -\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 -\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 -\154\040\122\157\157\164\040\062 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 -\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 -\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 -\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 -\154\040\122\157\157\164\040\062 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\024\012\176\246\337\113\104\236\332\152\044\205\236\346\270 -\025\323\026\177\273\261 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\005\303\060\202\003\253\240\003\002\001\002\002\024\012 -\176\246\337\113\104\236\332\152\044\205\236\346\270\025\323\026 -\177\273\261\060\015\006\011\052\206\110\206\367\015\001\001\013 -\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\114 -\125\061\026\060\024\006\003\125\004\012\014\015\114\165\170\124 -\162\165\163\164\040\123\056\101\056\061\037\060\035\006\003\125 -\004\003\014\026\114\165\170\124\162\165\163\164\040\107\154\157 -\142\141\154\040\122\157\157\164\040\062\060\036\027\015\061\065 -\060\063\060\065\061\063\062\061\065\067\132\027\015\063\065\060 -\063\060\065\061\063\062\061\065\067\132\060\106\061\013\060\011 -\006\003\125\004\006\023\002\114\125\061\026\060\024\006\003\125 -\004\012\014\015\114\165\170\124\162\165\163\164\040\123\056\101 -\056\061\037\060\035\006\003\125\004\003\014\026\114\165\170\124 -\162\165\163\164\040\107\154\157\142\141\154\040\122\157\157\164 -\040\062\060\202\002\042\060\015\006\011\052\206\110\206\367\015 -\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 -\002\001\000\327\205\227\277\021\230\351\360\142\203\114\074\207 -\371\123\152\067\013\362\017\074\207\316\157\334\046\051\275\305 -\211\272\311\203\075\367\356\312\133\306\155\111\163\264\311\106 -\243\033\064\023\077\301\211\105\127\364\331\261\373\066\145\113 -\373\010\342\110\161\021\310\156\073\236\235\337\211\145\067\246 -\205\366\073\104\030\266\306\067\060\142\104\222\227\151\175\102 -\060\044\344\015\014\211\153\143\336\305\341\337\116\251\024\154 -\123\340\141\316\366\027\057\035\074\275\346\042\114\035\223\365 -\020\304\241\166\354\152\336\305\154\337\226\264\126\100\102\300 -\142\222\060\241\055\025\224\240\322\040\006\011\156\152\155\345 -\353\267\276\324\360\361\025\174\213\346\116\272\023\314\113\047 -\136\231\074\027\135\217\201\177\063\075\117\323\077\033\354\134 -\077\360\074\114\165\156\362\246\325\235\332\055\007\143\002\306 -\162\351\224\274\114\111\225\117\210\122\310\333\350\151\202\370 -\314\064\133\042\360\206\247\211\275\110\012\155\146\201\155\310 -\310\144\373\001\341\364\341\336\331\236\335\333\133\324\052\231 -\046\025\033\036\114\222\051\202\236\325\222\201\222\101\160\031 -\367\244\345\223\113\274\167\147\061\335\034\375\061\160\015\027 -\231\014\371\014\071\031\052\027\265\060\161\125\325\017\256\130 -\341\075\057\064\233\317\237\366\170\205\302\223\172\162\076\146 -\217\234\026\021\140\217\236\211\157\147\276\340\107\132\073\014 -\232\147\213\317\106\306\256\070\243\362\247\274\346\326\205\153 -\063\044\160\042\113\313\010\233\273\310\370\002\051\035\276\040 -\014\106\277\153\207\233\263\052\146\102\065\106\154\252\272\255 -\371\230\173\351\120\125\024\061\277\261\332\055\355\200\255\150 -\044\373\151\253\330\161\023\060\346\147\263\207\100\375\211\176 -\362\103\321\021\337\057\145\057\144\316\137\024\271\261\277\061 -\275\207\170\132\131\145\210\252\374\131\062\110\206\326\114\271 -\051\113\225\323\166\363\167\045\155\102\034\070\203\115\375\243 -\137\233\177\055\254\171\033\016\102\061\227\143\244\373\212\151 -\325\042\015\064\220\060\056\250\264\340\155\266\224\254\274\213 -\116\327\160\374\305\070\216\144\045\341\115\071\220\316\311\207 -\204\130\161\002\003\001\000\001\243\201\250\060\201\245\060\017 -\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 -\102\006\003\125\035\040\004\073\060\071\060\067\006\007\053\201 -\053\001\001\001\012\060\054\060\052\006\010\053\006\001\005\005 -\007\002\001\026\036\150\164\164\160\163\072\057\057\162\145\160 -\157\163\151\164\157\162\171\056\154\165\170\164\162\165\163\164 -\056\154\165\060\016\006\003\125\035\017\001\001\377\004\004\003 -\002\001\006\060\037\006\003\125\035\043\004\030\060\026\200\024 -\377\030\050\166\371\110\005\054\241\256\361\053\033\053\262\123 -\370\113\174\263\060\035\006\003\125\035\016\004\026\004\024\377 -\030\050\166\371\110\005\054\241\256\361\053\033\053\262\123\370 -\113\174\263\060\015\006\011\052\206\110\206\367\015\001\001\013 -\005\000\003\202\002\001\000\152\031\024\355\156\171\301\054\207 -\324\015\160\176\327\366\170\311\013\004\116\304\261\316\223\160 -\376\260\124\300\062\315\231\060\144\027\277\017\345\342\063\375 -\007\066\100\162\016\032\266\152\131\326\000\345\150\040\335\056 -\162\015\037\152\144\061\040\204\175\111\246\132\067\353\105\311 -\205\365\324\307\027\231\007\346\233\125\344\014\350\251\264\316 -\214\133\265\021\134\317\212\016\015\326\254\167\201\376\062\234 -\044\236\162\316\124\363\320\157\242\126\326\354\303\067\054\145 -\130\276\127\000\032\362\065\372\353\173\061\135\302\301\022\075 -\226\201\210\226\211\301\131\134\172\346\177\160\064\347\203\342 -\261\341\341\270\130\357\324\225\344\140\234\360\226\227\162\214 -\353\204\002\056\145\217\244\267\322\177\147\335\310\323\236\134 -\252\251\244\240\045\024\006\233\354\117\176\055\013\177\035\165 -\361\063\330\355\316\270\165\155\076\133\271\230\035\061\015\126 -\330\103\017\060\221\262\004\153\335\126\276\225\200\125\147\276 -\330\315\203\331\030\356\056\017\206\055\222\236\160\023\354\336 -\121\311\103\170\002\245\115\310\371\137\304\221\130\106\026\167 -\132\164\252\100\274\007\237\060\271\261\367\022\027\335\343\377 -\044\100\035\172\152\321\117\030\012\252\220\035\353\100\036\337 -\241\036\104\222\020\232\362\215\341\321\113\106\236\350\105\102 -\227\352\105\231\363\354\146\325\002\372\362\246\112\044\252\336 -\316\271\312\371\077\223\157\371\243\272\352\245\076\231\255\375 -\377\173\231\365\145\356\360\131\050\147\327\220\225\244\023\204 -\251\204\301\350\316\316\165\223\143\032\274\074\352\325\144\037 -\055\052\022\071\306\303\132\062\355\107\221\026\016\274\070\301 -\120\336\217\312\052\220\064\034\356\101\224\234\136\031\056\370 -\105\111\231\164\221\260\004\157\343\004\132\261\253\052\253\376 -\307\320\226\266\332\341\112\144\006\156\140\115\275\102\116\377 -\170\332\044\312\033\264\327\226\071\154\256\361\016\252\247\175 -\110\213\040\114\317\144\326\270\227\106\260\116\321\052\126\072 -\240\223\275\257\200\044\340\012\176\347\312\325\312\350\205\125 -\334\066\052\341\224\150\223\307\146\162\104\017\200\041\062\154 -\045\307\043\200\203\012\353 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for "LuxTrust Global Root 2" -# Issuer: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU -# Serial Number:0a:7e:a6:df:4b:44:9e:da:6a:24:85:9e:e6:b8:15:d3:16:7f:bb:b1 -# Subject: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU -# Not Valid Before: Thu Mar 05 13:21:57 2015 -# Not Valid After : Mon Mar 05 13:21:57 2035 -# Fingerprint (SHA-256): 54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5 -# Fingerprint (SHA1): 1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "LuxTrust Global Root 2" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\036\016\126\031\012\321\213\045\230\262\004\104\377\146\212\004 -\027\231\137\077 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\262\341\011\000\141\257\367\361\221\157\304\255\215\136\073\174 -END -CKA_ISSUER MULTILINE_OCTAL -\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 -\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 -\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 -\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 -\154\040\122\157\157\164\040\062 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\024\012\176\246\337\113\104\236\332\152\044\205\236\346\270 -\025\323\026\177\273\261 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - # # Certificate "Symantec Class 1 Public Primary Certification Authority - G6" # @@ -19380,363 +18461,93 @@ CKA_SERIAL_NUMBER MULTILINE_OCTAL END CKA_VALUE MULTILINE_OCTAL \060\202\003\366\060\202\002\336\240\003\002\001\002\002\020\144 -\202\236\374\067\036\164\135\374\227\377\227\310\261\377\101\060 -\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 -\224\061\013\060\011\006\003\125\004\006\023\002\125\123\061\035 -\060\033\006\003\125\004\012\023\024\123\171\155\141\156\164\145 -\143\040\103\157\162\160\157\162\141\164\151\157\156\061\037\060 -\035\006\003\125\004\013\023\026\123\171\155\141\156\164\145\143 -\040\124\162\165\163\164\040\116\145\164\167\157\162\153\061\105 -\060\103\006\003\125\004\003\023\074\123\171\155\141\156\164\145 -\143\040\103\154\141\163\163\040\062\040\120\165\142\154\151\143 -\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 -\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 -\040\055\040\107\066\060\036\027\015\061\061\061\060\061\070\060 -\060\060\060\060\060\132\027\015\063\067\061\062\060\061\062\063 -\065\071\065\071\132\060\201\224\061\013\060\011\006\003\125\004 -\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 -\123\171\155\141\156\164\145\143\040\103\157\162\160\157\162\141 -\164\151\157\156\061\037\060\035\006\003\125\004\013\023\026\123 -\171\155\141\156\164\145\143\040\124\162\165\163\164\040\116\145 -\164\167\157\162\153\061\105\060\103\006\003\125\004\003\023\074 -\123\171\155\141\156\164\145\143\040\103\154\141\163\163\040\062 -\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040 -\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 -\164\150\157\162\151\164\171\040\055\040\107\066\060\202\001\042 -\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 -\202\001\017\000\060\202\001\012\002\202\001\001\000\315\314\351 -\005\310\143\205\313\077\100\143\027\275\030\372\065\346\004\147 -\127\145\230\051\244\117\311\134\217\017\064\322\370\332\250\023 -\142\252\270\036\120\147\170\260\026\114\240\071\251\025\172\256 -\355\322\242\300\360\220\067\051\030\046\134\350\015\074\266\154 -\111\077\301\340\334\331\113\266\024\031\013\246\323\226\341\326 -\011\343\031\046\034\371\037\145\113\371\032\103\034\000\203\326 -\320\252\111\242\324\333\346\142\070\272\120\024\103\155\371\061 -\370\126\026\331\070\002\221\317\353\154\335\273\071\116\231\341 -\060\147\105\361\324\360\215\303\337\376\362\070\007\041\175\000 -\136\126\104\263\344\140\275\221\053\234\253\133\004\162\017\262 -\050\331\162\253\005\040\102\045\251\133\003\152\040\020\314\061 -\360\053\332\065\054\320\373\232\227\116\360\202\113\053\330\137 -\066\243\013\055\257\143\015\035\045\177\241\156\134\142\241\215 -\050\076\241\374\034\040\370\001\057\272\125\232\021\260\031\322 -\310\120\171\153\016\152\005\327\252\004\066\262\243\362\341\137 -\167\247\167\234\345\036\334\351\337\152\301\145\135\002\003\001 -\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 -\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 -\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 -\004\024\207\214\040\225\310\230\112\321\326\200\006\112\220\064 -\104\337\034\115\277\260\060\015\006\011\052\206\110\206\367\015 -\001\001\013\005\000\003\202\001\001\000\201\216\262\245\146\226 -\267\041\245\266\357\157\043\132\137\333\201\305\102\245\170\301 -\151\375\364\074\327\371\134\153\160\162\032\374\132\227\115\000 -\200\210\210\202\212\303\161\015\216\305\211\233\054\355\215\013 -\322\162\124\365\175\324\134\103\127\351\363\256\245\002\021\366 -\166\053\201\127\335\175\332\164\060\375\124\107\366\340\026\156 -\246\264\012\110\346\347\165\007\017\051\031\071\316\171\364\266 -\154\305\137\231\325\037\113\372\337\155\054\074\015\124\200\160 -\360\210\013\200\317\306\150\242\270\035\160\331\166\214\374\356 -\245\311\317\255\035\317\231\045\127\132\142\105\313\026\153\275 -\111\315\245\243\214\151\171\045\256\270\114\154\213\100\146\113 -\026\077\317\002\032\335\341\154\153\007\141\152\166\025\051\231 -\177\033\335\210\200\301\277\265\217\163\305\246\226\043\204\246 -\050\206\044\063\152\001\056\127\163\045\266\136\277\217\346\035 -\141\250\100\051\147\035\207\233\035\177\233\237\231\315\061\326 -\124\276\142\273\071\254\150\022\110\221\040\245\313\261\335\376 -\157\374\132\344\202\125\131\257\061\251 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for "Symantec Class 2 Public Primary Certification Authority - G6" -# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Serial Number:64:82:9e:fc:37:1e:74:5d:fc:97:ff:97:c8:b1:ff:41 -# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Not Valid Before: Tue Oct 18 00:00:00 2011 -# Not Valid After : Tue Dec 01 23:59:59 2037 -# Fingerprint (SHA-256): CB:62:7D:18:B5:8A:D5:6D:DE:33:1A:30:45:6B:C6:5C:60:1A:4E:9B:18:DE:DC:EA:08:E7:DA:AA:07:81:5F:F0 -# Fingerprint (SHA1): 40:B3:31:A0:E9:BF:E8:55:BC:39:93:CA:70:4F:4E:C2:51:D4:1D:8F -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G6" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\100\263\061\240\351\277\350\125\274\071\223\312\160\117\116\302 -\121\324\035\217 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\175\013\203\345\373\174\255\007\117\040\251\265\337\143\355\171 -END -CKA_ISSUER MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\066 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\144\202\236\374\067\036\164\135\374\227\377\227\310\261 -\377\101 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# -# Certificate "Symantec Class 1 Public Primary Certification Authority - G4" -# -# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Serial Number:21:6e:33:a5:cb:d3:88:a4:6f:29:07:b4:27:3c:c4:d8 -# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Not Valid Before: Wed Oct 05 00:00:00 2011 -# Not Valid After : Mon Jan 18 23:59:59 2038 -# Fingerprint (SHA-256): 36:3F:3C:84:9E:AB:03:B0:A2:A0:F6:36:D7:B8:6D:04:D3:AC:7F:CF:E2:6A:0A:91:21:AB:97:95:F6:E1:76:DF -# Fingerprint (SHA1): 84:F2:E3:DD:83:13:3E:A9:1D:19:52:7F:02:D7:29:BF:C1:5F:E6:67 -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Symantec Class 1 Public Primary Certification Authority - G4" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\041\156\063\245\313\323\210\244\157\051\007\264\047\074 -\304\330 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\002\250\060\202\002\055\240\003\002\001\002\002\020\041 -\156\063\245\313\323\210\244\157\051\007\264\047\074\304\330\060 -\012\006\010\052\206\110\316\075\004\003\003\060\201\224\061\013 -\060\011\006\003\125\004\006\023\002\125\123\061\035\060\033\006 -\003\125\004\012\023\024\123\171\155\141\156\164\145\143\040\103 -\157\162\160\157\162\141\164\151\157\156\061\037\060\035\006\003 -\125\004\013\023\026\123\171\155\141\156\164\145\143\040\124\162 -\165\163\164\040\116\145\164\167\157\162\153\061\105\060\103\006 -\003\125\004\003\023\074\123\171\155\141\156\164\145\143\040\103 -\154\141\163\163\040\061\040\120\165\142\154\151\143\040\120\162 -\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164 -\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040 -\107\064\060\036\027\015\061\061\061\060\060\065\060\060\060\060 -\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 -\071\132\060\201\224\061\013\060\011\006\003\125\004\006\023\002 -\125\123\061\035\060\033\006\003\125\004\012\023\024\123\171\155 -\141\156\164\145\143\040\103\157\162\160\157\162\141\164\151\157 -\156\061\037\060\035\006\003\125\004\013\023\026\123\171\155\141 -\156\164\145\143\040\124\162\165\163\164\040\116\145\164\167\157 -\162\153\061\105\060\103\006\003\125\004\003\023\074\123\171\155 -\141\156\164\145\143\040\103\154\141\163\163\040\061\040\120\165 -\142\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162 -\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 -\162\151\164\171\040\055\040\107\064\060\166\060\020\006\007\052 -\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 -\004\327\146\265\033\333\256\263\140\356\106\352\210\143\165\073 -\052\224\155\363\137\022\366\343\017\236\266\012\024\123\110\122 -\310\334\072\263\313\110\040\046\022\116\372\211\204\324\337\221 -\344\051\175\050\001\331\333\030\103\151\241\037\265\323\206\026 -\334\307\177\147\043\337\337\061\061\203\003\065\160\261\113\267 -\310\027\273\121\313\334\224\027\333\352\011\073\166\022\336\252 -\265\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 -\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 -\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 -\024\145\300\215\045\365\014\272\227\167\220\077\236\056\340\132 -\365\316\325\341\344\060\012\006\010\052\206\110\316\075\004\003 -\003\003\151\000\060\146\002\061\000\245\256\343\106\123\370\230 -\066\343\042\372\056\050\111\015\356\060\176\063\363\354\077\161 -\136\314\125\211\170\231\254\262\375\334\034\134\063\216\051\271 -\153\027\310\021\150\265\334\203\007\002\061\000\234\310\104\332 -\151\302\066\303\124\031\020\205\002\332\235\107\357\101\347\154 -\046\235\011\075\367\155\220\321\005\104\057\260\274\203\223\150 -\362\014\105\111\071\277\231\004\034\323\020\240 -END -CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE -CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE -CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE - -# Trust for "Symantec Class 1 Public Primary Certification Authority - G4" -# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Serial Number:21:6e:33:a5:cb:d3:88:a4:6f:29:07:b4:27:3c:c4:d8 -# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Not Valid Before: Wed Oct 05 00:00:00 2011 -# Not Valid After : Mon Jan 18 23:59:59 2038 -# Fingerprint (SHA-256): 36:3F:3C:84:9E:AB:03:B0:A2:A0:F6:36:D7:B8:6D:04:D3:AC:7F:CF:E2:6A:0A:91:21:AB:97:95:F6:E1:76:DF -# Fingerprint (SHA1): 84:F2:E3:DD:83:13:3E:A9:1D:19:52:7F:02:D7:29:BF:C1:5F:E6:67 -CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Symantec Class 1 Public Primary Certification Authority - G4" -CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\204\362\343\335\203\023\076\251\035\031\122\177\002\327\051\277 -\301\137\346\147 -END -CKA_CERT_MD5_HASH MULTILINE_OCTAL -\004\345\200\077\125\377\131\207\244\062\322\025\245\345\252\346 -END -CKA_ISSUER MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\041\156\063\245\313\323\210\244\157\051\007\264\047\074 -\304\330 -END -CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR -CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST -CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE - -# -# Certificate "Symantec Class 2 Public Primary Certification Authority - G4" -# -# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Serial Number:34:17:65:12:40:3b:b7:56:80:2d:80:cb:79:55:a6:1e -# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Not Valid Before: Wed Oct 05 00:00:00 2011 -# Not Valid After : Mon Jan 18 23:59:59 2038 -# Fingerprint (SHA-256): FE:86:3D:08:22:FE:7A:23:53:FA:48:4D:59:24:E8:75:65:6D:3D:C9:FB:58:77:1F:6F:61:6F:9D:57:1B:C5:92 -# Fingerprint (SHA1): 67:24:90:2E:48:01:B0:22:96:40:10:46:B4:B1:67:2C:A9:75:FD:2B -CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE -CKA_TOKEN CK_BBOOL CK_TRUE -CKA_PRIVATE CK_BBOOL CK_FALSE -CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G4" -CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 -CKA_SUBJECT MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 -END -CKA_ID UTF8 "0" -CKA_ISSUER MULTILINE_OCTAL -\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 -\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 -\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 -\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 -\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 -\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 -\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 -\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 -\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 -END -CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\064\027\145\022\100\073\267\126\200\055\200\313\171\125 -\246\036 -END -CKA_VALUE MULTILINE_OCTAL -\060\202\002\250\060\202\002\055\240\003\002\001\002\002\020\064 -\027\145\022\100\073\267\126\200\055\200\313\171\125\246\036\060 -\012\006\010\052\206\110\316\075\004\003\003\060\201\224\061\013 -\060\011\006\003\125\004\006\023\002\125\123\061\035\060\033\006 -\003\125\004\012\023\024\123\171\155\141\156\164\145\143\040\103 -\157\162\160\157\162\141\164\151\157\156\061\037\060\035\006\003 -\125\004\013\023\026\123\171\155\141\156\164\145\143\040\124\162 -\165\163\164\040\116\145\164\167\157\162\153\061\105\060\103\006 -\003\125\004\003\023\074\123\171\155\141\156\164\145\143\040\103 -\154\141\163\163\040\062\040\120\165\142\154\151\143\040\120\162 -\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164 -\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040 -\107\064\060\036\027\015\061\061\061\060\060\065\060\060\060\060 -\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 -\071\132\060\201\224\061\013\060\011\006\003\125\004\006\023\002 -\125\123\061\035\060\033\006\003\125\004\012\023\024\123\171\155 -\141\156\164\145\143\040\103\157\162\160\157\162\141\164\151\157 -\156\061\037\060\035\006\003\125\004\013\023\026\123\171\155\141 -\156\164\145\143\040\124\162\165\163\164\040\116\145\164\167\157 -\162\153\061\105\060\103\006\003\125\004\003\023\074\123\171\155 -\141\156\164\145\143\040\103\154\141\163\163\040\062\040\120\165 -\142\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162 -\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 -\162\151\164\171\040\055\040\107\064\060\166\060\020\006\007\052 -\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 -\004\321\331\112\216\114\015\204\112\121\272\174\357\323\314\372 -\072\232\265\247\143\023\075\001\340\111\076\372\301\107\311\222 -\263\072\327\376\157\234\367\232\072\017\365\016\012\012\303\077 -\310\347\022\024\216\325\325\155\230\054\263\161\062\012\353\052 -\275\366\327\152\040\013\147\105\234\322\262\277\123\042\146\011 -\135\333\021\363\361\005\063\130\243\342\270\317\174\315\202\233 -\275\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 -\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 -\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 -\024\075\062\363\072\251\014\220\204\371\242\214\151\006\141\124 -\057\207\162\376\005\060\012\006\010\052\206\110\316\075\004\003 -\003\003\151\000\060\146\002\061\000\310\246\251\257\101\177\265 -\311\021\102\026\150\151\114\134\270\047\030\266\230\361\300\177 -\220\155\207\323\214\106\027\360\076\117\374\352\260\010\304\172 -\113\274\010\057\307\342\247\157\145\002\061\000\326\131\336\206 -\316\137\016\312\124\325\306\320\025\016\374\213\224\162\324\216 -\000\130\123\317\176\261\113\015\345\120\206\353\236\153\337\377 -\051\246\330\107\331\240\226\030\333\362\105\263 +\202\236\374\067\036\164\135\374\227\377\227\310\261\377\101\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\224\061\013\060\011\006\003\125\004\006\023\002\125\123\061\035 +\060\033\006\003\125\004\012\023\024\123\171\155\141\156\164\145 +\143\040\103\157\162\160\157\162\141\164\151\157\156\061\037\060 +\035\006\003\125\004\013\023\026\123\171\155\141\156\164\145\143 +\040\124\162\165\163\164\040\116\145\164\167\157\162\153\061\105 +\060\103\006\003\125\004\003\023\074\123\171\155\141\156\164\145 +\143\040\103\154\141\163\163\040\062\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\066\060\036\027\015\061\061\061\060\061\070\060 +\060\060\060\060\060\132\027\015\063\067\061\062\060\061\062\063 +\065\071\065\071\132\060\201\224\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 +\123\171\155\141\156\164\145\143\040\103\157\162\160\157\162\141 +\164\151\157\156\061\037\060\035\006\003\125\004\013\023\026\123 +\171\155\141\156\164\145\143\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\105\060\103\006\003\125\004\003\023\074 +\123\171\155\141\156\164\145\143\040\103\154\141\163\163\040\062 +\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 +\164\150\157\162\151\164\171\040\055\040\107\066\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\315\314\351 +\005\310\143\205\313\077\100\143\027\275\030\372\065\346\004\147 +\127\145\230\051\244\117\311\134\217\017\064\322\370\332\250\023 +\142\252\270\036\120\147\170\260\026\114\240\071\251\025\172\256 +\355\322\242\300\360\220\067\051\030\046\134\350\015\074\266\154 +\111\077\301\340\334\331\113\266\024\031\013\246\323\226\341\326 +\011\343\031\046\034\371\037\145\113\371\032\103\034\000\203\326 +\320\252\111\242\324\333\346\142\070\272\120\024\103\155\371\061 +\370\126\026\331\070\002\221\317\353\154\335\273\071\116\231\341 +\060\147\105\361\324\360\215\303\337\376\362\070\007\041\175\000 +\136\126\104\263\344\140\275\221\053\234\253\133\004\162\017\262 +\050\331\162\253\005\040\102\045\251\133\003\152\040\020\314\061 +\360\053\332\065\054\320\373\232\227\116\360\202\113\053\330\137 +\066\243\013\055\257\143\015\035\045\177\241\156\134\142\241\215 +\050\076\241\374\034\040\370\001\057\272\125\232\021\260\031\322 +\310\120\171\153\016\152\005\327\252\004\066\262\243\362\341\137 +\167\247\167\234\345\036\334\351\337\152\301\145\135\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\207\214\040\225\310\230\112\321\326\200\006\112\220\064 +\104\337\034\115\277\260\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\001\001\000\201\216\262\245\146\226 +\267\041\245\266\357\157\043\132\137\333\201\305\102\245\170\301 +\151\375\364\074\327\371\134\153\160\162\032\374\132\227\115\000 +\200\210\210\202\212\303\161\015\216\305\211\233\054\355\215\013 +\322\162\124\365\175\324\134\103\127\351\363\256\245\002\021\366 +\166\053\201\127\335\175\332\164\060\375\124\107\366\340\026\156 +\246\264\012\110\346\347\165\007\017\051\031\071\316\171\364\266 +\154\305\137\231\325\037\113\372\337\155\054\074\015\124\200\160 +\360\210\013\200\317\306\150\242\270\035\160\331\166\214\374\356 +\245\311\317\255\035\317\231\045\127\132\142\105\313\026\153\275 +\111\315\245\243\214\151\171\045\256\270\114\154\213\100\146\113 +\026\077\317\002\032\335\341\154\153\007\141\152\166\025\051\231 +\177\033\335\210\200\301\277\265\217\163\305\246\226\043\204\246 +\050\206\044\063\152\001\056\127\163\045\266\136\277\217\346\035 +\141\250\100\051\147\035\207\233\035\177\233\237\231\315\061\326 +\124\276\142\273\071\254\150\022\110\221\040\245\313\261\335\376 +\157\374\132\344\202\125\131\257\061\251 END CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE -# Trust for "Symantec Class 2 Public Primary Certification Authority - G4" -# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Serial Number:34:17:65:12:40:3b:b7:56:80:2d:80:cb:79:55:a6:1e -# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US -# Not Valid Before: Wed Oct 05 00:00:00 2011 -# Not Valid After : Mon Jan 18 23:59:59 2038 -# Fingerprint (SHA-256): FE:86:3D:08:22:FE:7A:23:53:FA:48:4D:59:24:E8:75:65:6D:3D:C9:FB:58:77:1F:6F:61:6F:9D:57:1B:C5:92 -# Fingerprint (SHA1): 67:24:90:2E:48:01:B0:22:96:40:10:46:B4:B1:67:2C:A9:75:FD:2B +# Trust for "Symantec Class 2 Public Primary Certification Authority - G6" +# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:64:82:9e:fc:37:1e:74:5d:fc:97:ff:97:c8:b1:ff:41 +# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Tue Oct 18 00:00:00 2011 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (SHA-256): CB:62:7D:18:B5:8A:D5:6D:DE:33:1A:30:45:6B:C6:5C:60:1A:4E:9B:18:DE:DC:EA:08:E7:DA:AA:07:81:5F:F0 +# Fingerprint (SHA1): 40:B3:31:A0:E9:BF:E8:55:BC:39:93:CA:70:4F:4E:C2:51:D4:1D:8F CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST CKA_TOKEN CK_BBOOL CK_TRUE CKA_PRIVATE CK_BBOOL CK_FALSE CKA_MODIFIABLE CK_BBOOL CK_FALSE -CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G4" +CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G6" CKA_CERT_SHA1_HASH MULTILINE_OCTAL -\147\044\220\056\110\001\260\042\226\100\020\106\264\261\147\054 -\251\165\375\053 +\100\263\061\240\351\277\350\125\274\071\223\312\160\117\116\302 +\121\324\035\217 END CKA_CERT_MD5_HASH MULTILINE_OCTAL -\160\325\060\361\332\224\227\324\327\164\337\276\355\150\336\226 +\175\013\203\345\373\174\255\007\117\040\251\265\337\143\355\171 END CKA_ISSUER MULTILINE_OCTAL \060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 @@ -19748,11 +18559,11 @@ CKA_ISSUER MULTILINE_OCTAL \164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 \151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 \146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 -\164\171\040\055\040\107\064 +\164\171\040\055\040\107\066 END CKA_SERIAL_NUMBER MULTILINE_OCTAL -\002\020\064\027\145\022\100\073\267\126\200\055\200\313\171\125 -\246\036 +\002\020\144\202\236\374\067\036\164\135\374\227\377\227\310\261 +\377\101 END CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR @@ -23590,3 +22401,579 @@ CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Microsoft ECC Root Certificate Authority 2017" +# +# Issuer: CN=Microsoft ECC Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Serial Number:66:f2:3d:af:87:de:8b:b1:4a:ea:0c:57:31:01:c2:ec +# Subject: CN=Microsoft ECC Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Not Valid Before: Wed Dec 18 23:06:45 2019 +# Not Valid After : Fri Jul 18 23:16:04 2042 +# Fingerprint (SHA-256): 35:8D:F3:9D:76:4A:F9:E1:B7:66:E9:C9:72:DF:35:2E:E1:5C:FA:C2:27:AF:6A:D1:D7:0E:8E:4A:6E:DC:BA:02 +# Fingerprint (SHA1): 99:9A:64:C3:7F:F4:7D:9F:AB:95:F1:47:69:89:14:60:EE:C4:C3:C5 +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsoft ECC Root Certificate Authority 2017" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\105\103\103\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\105\103\103\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\146\362\075\257\207\336\213\261\112\352\014\127\061\001 +\302\354 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\131\060\202\001\337\240\003\002\001\002\002\020\146 +\362\075\257\207\336\213\261\112\352\014\127\061\001\302\354\060 +\012\006\010\052\206\110\316\075\004\003\003\060\145\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\036\060\034\006\003 +\125\004\012\023\025\115\151\143\162\157\163\157\146\164\040\103 +\157\162\160\157\162\141\164\151\157\156\061\066\060\064\006\003 +\125\004\003\023\055\115\151\143\162\157\163\157\146\164\040\105 +\103\103\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\062\060 +\061\067\060\036\027\015\061\071\061\062\061\070\062\063\060\066 +\064\065\132\027\015\064\062\060\067\061\070\062\063\061\066\060 +\064\132\060\145\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\036\060\034\006\003\125\004\012\023\025\115\151\143\162 +\157\163\157\146\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\066\060\064\006\003\125\004\003\023\055\115\151\143\162 +\157\163\157\146\164\040\105\103\103\040\122\157\157\164\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171\040\062\060\061\067\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\324\274\075\002\102\165\101\023\043\315\200\004\206\002\121 +\057\152\250\201\142\013\145\314\366\312\235\036\157\112\146\121 +\242\003\331\235\221\372\266\026\261\214\156\336\174\315\333\171 +\246\057\316\273\316\161\057\345\245\253\050\354\143\004\146\231 +\370\372\362\223\020\005\341\201\050\102\343\306\150\364\346\033 +\204\140\112\211\257\355\171\017\073\316\361\366\104\365\001\170 +\300\243\124\060\122\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\310\313\231\162\160\122\014\370\346\276\262\004\127\051\052 +\317\102\020\355\065\060\020\006\011\053\006\001\004\001\202\067 +\025\001\004\003\002\001\000\060\012\006\010\052\206\110\316\075 +\004\003\003\003\150\000\060\145\002\060\130\362\115\352\014\371 +\137\136\356\140\051\313\072\362\333\326\062\204\031\077\174\325 +\057\302\261\314\223\256\120\273\011\062\306\306\355\176\311\066 +\224\022\344\150\205\006\242\033\320\057\002\061\000\231\351\026 +\264\016\372\126\110\324\244\060\026\221\170\333\124\214\145\001 +\212\347\120\146\302\061\267\071\272\270\032\042\007\116\374\153 +\124\026\040\377\053\265\347\114\014\115\246\117\163 +END +CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE +CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE +CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE + +# Trust for "Microsoft ECC Root Certificate Authority 2017" +# Issuer: CN=Microsoft ECC Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Serial Number:66:f2:3d:af:87:de:8b:b1:4a:ea:0c:57:31:01:c2:ec +# Subject: CN=Microsoft ECC Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Not Valid Before: Wed Dec 18 23:06:45 2019 +# Not Valid After : Fri Jul 18 23:16:04 2042 +# Fingerprint (SHA-256): 35:8D:F3:9D:76:4A:F9:E1:B7:66:E9:C9:72:DF:35:2E:E1:5C:FA:C2:27:AF:6A:D1:D7:0E:8E:4A:6E:DC:BA:02 +# Fingerprint (SHA1): 99:9A:64:C3:7F:F4:7D:9F:AB:95:F1:47:69:89:14:60:EE:C4:C3:C5 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsoft ECC Root Certificate Authority 2017" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\231\232\144\303\177\364\175\237\253\225\361\107\151\211\024\140 +\356\304\303\305 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\335\241\003\346\112\223\020\321\277\360\031\102\313\376\355\147 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\105\103\103\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\146\362\075\257\207\336\213\261\112\352\014\127\061\001 +\302\354 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Microsoft RSA Root Certificate Authority 2017" +# +# Issuer: CN=Microsoft RSA Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Serial Number:1e:d3:97:09:5f:d8:b4:b3:47:70:1e:aa:be:7f:45:b3 +# Subject: CN=Microsoft RSA Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Not Valid Before: Wed Dec 18 22:51:22 2019 +# Not Valid After : Fri Jul 18 23:00:23 2042 +# Fingerprint (SHA-256): C7:41:F7:0F:4B:2A:8D:88:BF:2E:71:C1:41:22:EF:53:EF:10:EB:A0:CF:A5:E6:4C:FA:20:F4:18:85:30:73:E0 +# Fingerprint (SHA1): 73:A5:E6:4A:3B:FF:83:16:FF:0E:DC:CC:61:8A:90:6E:4E:AE:4D:74 +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsoft RSA Root Certificate Authority 2017" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\122\123\101\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\122\123\101\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\036\323\227\011\137\330\264\263\107\160\036\252\276\177 +\105\263 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\250\060\202\003\220\240\003\002\001\002\002\020\036 +\323\227\011\137\330\264\263\107\160\036\252\276\177\105\263\060 +\015\006\011\052\206\110\206\367\015\001\001\014\005\000\060\145 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\036\060 +\034\006\003\125\004\012\023\025\115\151\143\162\157\163\157\146 +\164\040\103\157\162\160\157\162\141\164\151\157\156\061\066\060 +\064\006\003\125\004\003\023\055\115\151\143\162\157\163\157\146 +\164\040\122\123\101\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +\040\062\060\061\067\060\036\027\015\061\071\061\062\061\070\062 +\062\065\061\062\062\132\027\015\064\062\060\067\061\070\062\063 +\060\060\062\063\132\060\145\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\036\060\034\006\003\125\004\012\023\025\115 +\151\143\162\157\163\157\146\164\040\103\157\162\160\157\162\141 +\164\151\157\156\061\066\060\064\006\003\125\004\003\023\055\115 +\151\143\162\157\163\157\146\164\040\122\123\101\040\122\157\157 +\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165 +\164\150\157\162\151\164\171\040\062\060\061\067\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\312\133\276 +\224\063\214\051\225\221\026\012\225\275\107\142\301\211\363\231 +\066\337\106\220\311\245\355\170\152\157\107\221\150\370\047\147 +\120\063\035\241\246\373\340\345\103\243\204\002\127\001\135\234 +\110\100\202\123\020\274\277\307\073\150\220\266\202\055\345\364 +\145\320\314\155\031\314\225\371\173\254\112\224\255\016\336\113 +\103\035\207\007\222\023\220\200\203\144\065\071\004\374\345\351 +\154\263\266\037\120\224\070\145\120\134\027\106\271\266\205\265 +\034\265\027\350\326\105\235\330\262\046\260\312\304\160\112\256 +\140\244\335\263\331\354\374\073\325\127\162\274\077\310\311\262 +\336\113\153\370\043\154\003\300\005\275\225\307\315\163\073\146 +\200\144\343\032\254\056\371\107\005\362\006\266\233\163\365\170 +\063\133\307\241\373\047\052\241\264\232\221\214\221\323\072\202 +\076\166\100\264\315\122\141\121\160\050\077\305\305\132\362\311 +\214\111\273\024\133\115\310\377\147\115\114\022\226\255\365\376 +\170\250\227\207\327\375\136\040\200\334\241\113\042\373\324\211 +\255\272\316\107\227\107\125\173\217\105\310\147\050\204\225\034 +\150\060\357\357\111\340\065\173\144\347\230\260\224\332\115\205 +\073\076\125\304\050\257\127\363\236\023\333\106\047\237\036\242 +\136\104\203\244\245\312\325\023\263\113\077\304\343\302\346\206 +\141\244\122\060\271\172\040\117\157\017\070\123\313\063\014\023 +\053\217\326\232\275\052\310\055\261\034\175\113\121\312\107\321 +\110\047\162\135\207\353\325\105\346\110\145\235\257\122\220\272 +\133\242\030\145\127\022\237\150\271\324\025\153\224\304\151\042 +\230\364\063\340\355\371\121\216\101\120\311\064\117\166\220\254 +\374\070\301\330\341\173\271\343\343\224\341\106\151\313\016\012 +\120\153\023\272\254\017\067\132\267\022\265\220\201\036\126\256 +\127\042\206\331\311\322\321\327\121\343\253\073\306\125\375\036 +\016\323\164\012\321\332\252\352\151\270\227\050\217\110\304\007 +\370\122\103\072\364\312\125\065\054\260\246\152\300\234\371\362 +\201\341\022\152\300\105\331\147\263\316\377\043\242\211\012\124 +\324\024\271\052\250\327\354\371\253\315\045\130\062\171\217\220 +\133\230\071\304\010\006\301\254\177\016\075\000\245\002\003\001 +\000\001\243\124\060\122\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\011\313\131\177\206\262\160\217\032\303\071\343\300\331 +\351\277\273\115\262\043\060\020\006\011\053\006\001\004\001\202 +\067\025\001\004\003\002\001\000\060\015\006\011\052\206\110\206 +\367\015\001\001\014\005\000\003\202\002\001\000\254\257\076\135 +\302\021\226\211\216\243\347\222\326\227\025\270\023\242\246\102 +\056\002\315\026\005\131\047\312\040\350\272\270\350\032\354\115 +\250\227\126\256\145\103\261\217\000\233\122\315\125\315\123\071 +\155\142\114\213\015\133\174\056\104\277\203\020\217\363\123\202 +\200\303\117\072\307\156\021\077\346\343\026\221\204\373\155\204 +\177\064\164\255\211\247\316\271\327\327\237\204\144\222\276\225 +\241\255\011\123\063\335\356\012\352\112\121\216\157\125\253\272 +\265\224\106\256\214\177\330\242\120\045\145\140\200\106\333\063 +\004\256\154\265\230\164\124\045\334\223\344\370\343\125\025\075 +\270\155\303\012\244\022\301\151\205\156\337\144\361\123\231\341 +\112\165\040\235\225\017\344\326\334\003\361\131\030\350\107\211 +\262\127\132\224\266\251\330\027\053\027\111\345\166\313\301\126 +\231\072\067\261\377\151\054\221\221\223\341\337\114\243\067\166 +\115\241\237\370\155\036\035\323\372\354\373\364\105\035\023\155 +\317\367\131\345\042\047\162\053\206\363\127\273\060\355\044\115 +\334\175\126\273\243\263\370\064\171\211\301\340\362\002\141\367 +\246\374\017\273\034\027\013\256\101\331\174\275\047\243\375\056 +\072\321\223\224\261\163\035\044\213\257\133\040\211\255\267\147 +\146\171\365\072\306\246\226\063\376\123\222\310\106\261\021\221 +\306\231\177\217\311\326\146\061\040\101\020\207\055\014\326\301 +\257\064\230\312\144\203\373\023\127\321\301\360\074\172\214\245 +\301\375\225\041\240\161\301\223\147\161\022\352\217\210\012\151 +\031\144\231\043\126\373\254\052\056\160\276\146\304\014\204\357 +\345\213\363\223\001\370\152\220\223\147\113\262\150\243\265\142 +\217\351\077\214\172\073\136\017\347\214\270\306\174\357\067\375 +\164\342\310\117\063\162\341\224\071\155\275\022\257\276\014\116 +\160\174\033\157\215\263\062\223\163\104\026\155\350\364\367\340 +\225\200\217\226\135\070\244\364\253\336\012\060\207\223\330\115 +\000\161\142\105\047\113\072\102\204\133\177\145\267\147\064\122 +\055\234\026\153\252\250\330\173\243\102\114\161\307\014\312\076 +\203\344\246\357\267\001\060\136\121\243\171\365\160\151\246\101 +\104\017\206\260\054\221\306\075\352\256\017\204 +END +CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE +CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE +CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE + +# Trust for "Microsoft RSA Root Certificate Authority 2017" +# Issuer: CN=Microsoft RSA Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Serial Number:1e:d3:97:09:5f:d8:b4:b3:47:70:1e:aa:be:7f:45:b3 +# Subject: CN=Microsoft RSA Root Certificate Authority 2017,O=Microsoft Corporation,C=US +# Not Valid Before: Wed Dec 18 22:51:22 2019 +# Not Valid After : Fri Jul 18 23:00:23 2042 +# Fingerprint (SHA-256): C7:41:F7:0F:4B:2A:8D:88:BF:2E:71:C1:41:22:EF:53:EF:10:EB:A0:CF:A5:E6:4C:FA:20:F4:18:85:30:73:E0 +# Fingerprint (SHA1): 73:A5:E6:4A:3B:FF:83:16:FF:0E:DC:CC:61:8A:90:6E:4E:AE:4D:74 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsoft RSA Root Certificate Authority 2017" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\163\245\346\112\073\377\203\026\377\016\334\314\141\212\220\156 +\116\256\115\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\020\377\000\377\317\311\370\307\172\300\356\065\216\311\017\107 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\036\060\034\006\003\125\004\012\023\025\115\151\143\162\157\163 +\157\146\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\066\060\064\006\003\125\004\003\023\055\115\151\143\162\157\163 +\157\146\164\040\122\123\101\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\040\062\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\036\323\227\011\137\330\264\263\107\160\036\252\276\177 +\105\263 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "e-Szigno Root CA 2017" +# +# Issuer: CN=e-Szigno Root CA 2017,OID.2.5.4.97=VATHU-23584497,O=Microsec Ltd.,L=Budapest,C=HU +# Serial Number:01:54:48:ef:21:fd:97:59:0d:f5:04:0a +# Subject: CN=e-Szigno Root CA 2017,OID.2.5.4.97=VATHU-23584497,O=Microsec Ltd.,L=Budapest,C=HU +# Not Valid Before: Tue Aug 22 12:07:06 2017 +# Not Valid After : Fri Aug 22 12:07:06 2042 +# Fingerprint (SHA-256): BE:B0:0B:30:83:9B:9B:C3:2C:32:E4:44:79:05:95:06:41:F2:64:21:B1:5E:D0:89:19:8B:51:8A:E2:EA:1B:99 +# Fingerprint (SHA1): 89:D4:83:03:4F:9E:9A:48:80:5F:72:37:D4:A9:A6:EF:CB:7C:1F:D1 +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "e-Szigno Root CA 2017" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\027\060\025\006\003 +\125\004\141\014\016\126\101\124\110\125\055\062\063\065\070\064 +\064\071\067\061\036\060\034\006\003\125\004\003\014\025\145\055 +\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040\062 +\060\061\067 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\027\060\025\006\003 +\125\004\141\014\016\126\101\124\110\125\055\062\063\065\070\064 +\064\071\067\061\036\060\034\006\003\125\004\003\014\025\145\055 +\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040\062 +\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\014\001\124\110\357\041\375\227\131\015\365\004\012 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\100\060\202\001\345\240\003\002\001\002\002\014\001 +\124\110\357\041\375\227\131\015\365\004\012\060\012\006\010\052 +\206\110\316\075\004\003\002\060\161\061\013\060\011\006\003\125 +\004\006\023\002\110\125\061\021\060\017\006\003\125\004\007\014 +\010\102\165\144\141\160\145\163\164\061\026\060\024\006\003\125 +\004\012\014\015\115\151\143\162\157\163\145\143\040\114\164\144 +\056\061\027\060\025\006\003\125\004\141\014\016\126\101\124\110 +\125\055\062\063\065\070\064\064\071\067\061\036\060\034\006\003 +\125\004\003\014\025\145\055\123\172\151\147\156\157\040\122\157 +\157\164\040\103\101\040\062\060\061\067\060\036\027\015\061\067 +\060\070\062\062\061\062\060\067\060\066\132\027\015\064\062\060 +\070\062\062\061\062\060\067\060\066\132\060\161\061\013\060\011 +\006\003\125\004\006\023\002\110\125\061\021\060\017\006\003\125 +\004\007\014\010\102\165\144\141\160\145\163\164\061\026\060\024 +\006\003\125\004\012\014\015\115\151\143\162\157\163\145\143\040 +\114\164\144\056\061\027\060\025\006\003\125\004\141\014\016\126 +\101\124\110\125\055\062\063\065\070\064\064\071\067\061\036\060 +\034\006\003\125\004\003\014\025\145\055\123\172\151\147\156\157 +\040\122\157\157\164\040\103\101\040\062\060\061\067\060\131\060 +\023\006\007\052\206\110\316\075\002\001\006\010\052\206\110\316 +\075\003\001\007\003\102\000\004\226\334\075\212\330\260\173\157 +\306\047\276\104\220\261\263\126\025\173\216\103\044\175\032\204 +\131\356\143\150\262\306\136\207\320\025\110\036\250\220\255\275 +\123\242\332\336\072\220\246\140\137\150\062\265\206\101\337\207 +\133\054\173\305\376\174\172\332\243\143\060\141\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\207\021\025\010\321\252\301\170 +\014\261\257\316\306\311\220\357\277\060\004\300\060\037\006\003 +\125\035\043\004\030\060\026\200\024\207\021\025\010\321\252\301 +\170\014\261\257\316\306\311\220\357\277\060\004\300\060\012\006 +\010\052\206\110\316\075\004\003\002\003\111\000\060\106\002\041 +\000\265\127\335\327\212\125\013\066\341\206\104\372\324\331\150 +\215\270\334\043\212\212\015\324\057\175\352\163\354\277\115\154 +\250\002\041\000\313\245\264\022\372\347\265\350\317\176\223\374 +\363\065\217\157\116\132\174\264\274\116\262\374\162\252\133\131 +\371\347\334\061 +END +CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE +CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE +CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE + +# Trust for "e-Szigno Root CA 2017" +# Issuer: CN=e-Szigno Root CA 2017,OID.2.5.4.97=VATHU-23584497,O=Microsec Ltd.,L=Budapest,C=HU +# Serial Number:01:54:48:ef:21:fd:97:59:0d:f5:04:0a +# Subject: CN=e-Szigno Root CA 2017,OID.2.5.4.97=VATHU-23584497,O=Microsec Ltd.,L=Budapest,C=HU +# Not Valid Before: Tue Aug 22 12:07:06 2017 +# Not Valid After : Fri Aug 22 12:07:06 2042 +# Fingerprint (SHA-256): BE:B0:0B:30:83:9B:9B:C3:2C:32:E4:44:79:05:95:06:41:F2:64:21:B1:5E:D0:89:19:8B:51:8A:E2:EA:1B:99 +# Fingerprint (SHA1): 89:D4:83:03:4F:9E:9A:48:80:5F:72:37:D4:A9:A6:EF:CB:7C:1F:D1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "e-Szigno Root CA 2017" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\211\324\203\003\117\236\232\110\200\137\162\067\324\251\246\357 +\313\174\037\321 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\336\037\366\236\204\256\247\264\041\316\036\130\175\321\204\230 +END +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\027\060\025\006\003 +\125\004\141\014\016\126\101\124\110\125\055\062\063\065\070\064 +\064\071\067\061\036\060\034\006\003\125\004\003\014\025\145\055 +\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040\062 +\060\061\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\014\001\124\110\357\041\375\227\131\015\365\004\012 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "certSIGN Root CA G2" +# +# Issuer: OU=certSIGN ROOT CA G2,O=CERTSIGN SA,C=RO +# Serial Number:11:00:34:b6:4e:c6:36:2d:36 +# Subject: OU=certSIGN ROOT CA G2,O=CERTSIGN SA,C=RO +# Not Valid Before: Mon Feb 06 09:27:35 2017 +# Not Valid After : Thu Feb 06 09:27:35 2042 +# Fingerprint (SHA-256): 65:7C:FE:2F:A7:3F:AA:38:46:25:71:F3:32:A2:36:3A:46:FC:E7:02:09:51:71:07:02:CD:FB:B6:EE:DA:33:05 +# Fingerprint (SHA1): 26:F9:93:B4:ED:3D:28:27:B0:B9:4B:A7:E9:15:1D:A3:8D:92:E5:32 +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "certSIGN Root CA G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\024\060\022\006\003\125\004\012\023\013\103\105\122\124\123\111 +\107\116\040\123\101\061\034\060\032\006\003\125\004\013\023\023 +\143\145\162\164\123\111\107\116\040\122\117\117\124\040\103\101 +\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\024\060\022\006\003\125\004\012\023\013\103\105\122\124\123\111 +\107\116\040\123\101\061\034\060\032\006\003\125\004\013\023\023 +\143\145\162\164\123\111\107\116\040\122\117\117\124\040\103\101 +\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\021\000\064\266\116\306\066\055\066 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\107\060\202\003\057\240\003\002\001\002\002\011\021 +\000\064\266\116\306\066\055\066\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\060\101\061\013\060\011\006\003\125 +\004\006\023\002\122\117\061\024\060\022\006\003\125\004\012\023 +\013\103\105\122\124\123\111\107\116\040\123\101\061\034\060\032 +\006\003\125\004\013\023\023\143\145\162\164\123\111\107\116\040 +\122\117\117\124\040\103\101\040\107\062\060\036\027\015\061\067 +\060\062\060\066\060\071\062\067\063\065\132\027\015\064\062\060 +\062\060\066\060\071\062\067\063\065\132\060\101\061\013\060\011 +\006\003\125\004\006\023\002\122\117\061\024\060\022\006\003\125 +\004\012\023\013\103\105\122\124\123\111\107\116\040\123\101\061 +\034\060\032\006\003\125\004\013\023\023\143\145\162\164\123\111 +\107\116\040\122\117\117\124\040\103\101\040\107\062\060\202\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\300\305 +\165\031\221\175\104\164\164\207\376\016\073\226\334\330\001\026 +\314\356\143\221\347\013\157\316\073\012\151\032\174\302\343\257 +\202\216\206\327\136\217\127\353\323\041\131\375\071\067\102\060 +\276\120\352\266\017\251\210\330\056\055\151\041\347\321\067\030 +\116\175\221\325\026\137\153\133\000\302\071\103\015\066\205\122 +\271\123\145\017\035\102\345\217\317\005\323\356\334\014\032\331 +\270\213\170\042\147\344\151\260\150\305\074\344\154\132\106\347 +\315\307\372\357\304\354\113\275\152\244\254\375\314\050\121\357 +\222\264\051\253\253\065\232\114\344\304\010\306\046\314\370\151 +\237\344\234\360\051\323\134\371\306\026\045\236\043\303\040\301 +\075\017\077\070\100\260\376\202\104\070\252\132\032\212\153\143 +\130\070\264\025\323\266\021\151\173\036\124\356\214\032\042\254 +\162\227\077\043\131\233\311\042\204\301\007\117\314\177\342\127 +\312\022\160\273\246\145\363\151\165\143\275\225\373\033\227\315 +\344\250\257\366\321\116\250\331\212\161\044\315\066\075\274\226 +\304\361\154\251\256\345\317\015\156\050\015\260\016\265\312\121 +\173\170\024\303\040\057\177\373\024\125\341\021\231\375\325\012 +\241\236\002\343\142\137\353\065\113\054\270\162\350\076\075\117 +\254\054\273\056\206\342\243\166\217\345\223\052\317\245\253\310 +\134\215\113\006\377\022\106\254\170\313\024\007\065\340\251\337 +\213\351\257\025\117\026\211\133\275\366\215\306\131\256\210\205 +\016\301\211\353\037\147\305\105\216\377\155\067\066\053\170\146 +\203\221\121\053\075\377\121\167\166\142\241\354\147\076\076\201 +\203\340\126\251\120\037\037\172\231\253\143\277\204\027\167\361 +\015\073\337\367\234\141\263\065\230\212\072\262\354\074\032\067 +\077\176\217\222\317\331\022\024\144\332\020\002\025\101\377\117 +\304\353\034\243\311\372\231\367\106\351\341\030\331\261\270\062 +\055\313\024\014\120\330\203\145\203\356\271\134\317\313\005\132 +\114\372\031\227\153\326\135\023\323\302\134\124\274\062\163\240 +\170\365\361\155\036\313\237\245\246\237\042\334\321\121\236\202 +\171\144\140\051\023\076\243\375\117\162\152\253\342\324\345\270 +\044\125\054\104\113\212\210\104\234\312\204\323\052\073\002\003 +\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016\004 +\026\004\024\202\041\055\146\306\327\240\340\025\353\316\114\011 +\167\304\140\236\124\156\003\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\002\001\000\140\336\032\270\347 +\362\140\202\325\003\063\201\313\006\212\361\042\111\351\350\352 +\221\177\306\063\136\150\031\003\206\073\103\001\317\007\160\344 +\010\036\145\205\221\346\021\042\267\365\002\043\216\256\271\036 +\175\037\176\154\346\275\045\325\225\032\362\005\246\257\205\002 +\157\256\370\326\061\377\045\311\112\310\307\212\251\331\237\113 +\111\233\021\127\231\222\103\021\336\266\063\244\314\327\215\144 +\175\324\315\074\050\054\264\232\226\352\115\365\304\104\304\045 +\252\040\200\330\051\125\367\340\101\374\006\046\377\271\066\365 +\103\024\003\146\170\341\021\261\332\040\137\106\000\170\000\041 +\245\036\000\050\141\170\157\250\001\001\217\235\064\232\377\364 +\070\220\373\270\321\263\162\006\311\161\346\201\305\171\355\013 +\246\171\362\023\013\234\367\135\016\173\044\223\264\110\333\206 +\137\336\120\206\170\347\100\346\061\250\220\166\160\141\257\234 +\067\054\021\265\202\267\252\256\044\064\133\162\014\151\015\315 +\131\237\366\161\257\234\013\321\012\070\371\006\042\203\123\045 +\014\374\121\304\346\276\342\071\225\013\044\255\257\321\225\344 +\226\327\164\144\153\161\116\002\074\252\205\363\040\243\103\071 +\166\133\154\120\376\232\234\024\036\145\024\212\025\275\243\202 +\105\132\111\126\152\322\234\261\143\062\345\141\340\123\042\016 +\247\012\111\352\313\176\037\250\342\142\200\366\020\105\122\230 +\006\030\336\245\315\057\177\252\324\351\076\010\162\354\043\003 +\002\074\246\252\330\274\147\164\075\024\027\373\124\113\027\343 +\323\171\075\155\153\111\311\050\016\056\164\120\277\014\331\106 +\072\020\206\311\247\077\351\240\354\177\353\245\167\130\151\161 +\346\203\012\067\362\206\111\152\276\171\010\220\366\002\026\144 +\076\345\332\114\176\014\064\311\371\137\266\263\050\121\247\247 +\053\252\111\372\215\145\051\116\343\153\023\247\224\243\055\121 +\155\170\014\104\313\337\336\010\157\316\243\144\253\323\225\204 +\324\271\122\124\162\173\226\045\314\274\151\343\110\156\015\320 +\307\235\047\232\252\370\023\222\335\036\337\143\237\065\251\026 +\066\354\214\270\203\364\075\211\217\315\264\027\136\327\263\027 +\101\020\135\047\163\140\205\127\111\042\007 +END +CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE +CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE +CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE + +# Trust for "certSIGN Root CA G2" +# Issuer: OU=certSIGN ROOT CA G2,O=CERTSIGN SA,C=RO +# Serial Number:11:00:34:b6:4e:c6:36:2d:36 +# Subject: OU=certSIGN ROOT CA G2,O=CERTSIGN SA,C=RO +# Not Valid Before: Mon Feb 06 09:27:35 2017 +# Not Valid After : Thu Feb 06 09:27:35 2042 +# Fingerprint (SHA-256): 65:7C:FE:2F:A7:3F:AA:38:46:25:71:F3:32:A2:36:3A:46:FC:E7:02:09:51:71:07:02:CD:FB:B6:EE:DA:33:05 +# Fingerprint (SHA1): 26:F9:93:B4:ED:3D:28:27:B0:B9:4B:A7:E9:15:1D:A3:8D:92:E5:32 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "certSIGN Root CA G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\046\371\223\264\355\075\050\047\260\271\113\247\351\025\035\243 +\215\222\345\062 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\214\361\165\212\306\031\317\224\267\367\145\040\207\303\227\307 +END +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\024\060\022\006\003\125\004\012\023\013\103\105\122\124\123\111 +\107\116\040\123\101\061\034\060\032\006\003\125\004\013\023\023 +\143\145\162\164\123\111\107\116\040\122\117\117\124\040\103\101 +\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\021\000\064\266\116\306\066\055\066 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE From cad86d40de5033ab6201d9f3e788858456d76858 Mon Sep 17 00:00:00 2001 From: "Pooja D.P" Date: Sat, 10 Oct 2020 23:15:12 +0400 Subject: [PATCH 65/82] doc: add symlink information for process.execpath PR-URL: https://github.com/nodejs/node/pull/35590 Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca --- doc/api/process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/process.md b/doc/api/process.md index 179e1bd4d852db..5c5a46e85c1148 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1185,7 +1185,7 @@ added: v0.1.100 * {string} The `process.execPath` property returns the absolute pathname of the executable -that started the Node.js process. +that started the Node.js process. Symbolic links, if any, are resolved. ```js From 16f8298170245f81f91ea14af3a98fa7f2b22a10 Mon Sep 17 00:00:00 2001 From: "Pooja D.P" Date: Sat, 10 Oct 2020 22:42:37 +0400 Subject: [PATCH 66/82] doc: revise description of process.ppid PR-URL: https://github.com/nodejs/node/pull/35589 Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott Reviewed-By: James M Snell --- doc/api/process.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/api/process.md b/doc/api/process.md index 5c5a46e85c1148..841b93540a246d 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1735,7 +1735,8 @@ added: * {integer} -The `process.ppid` property returns the PID of the current parent process. +The `process.ppid` property returns the PID of the parent of the +current process. ```js console.log(`The parent process is pid ${process.ppid}`); From 9288f9d74bd1ba56196adffee4fd1861b2b4ebe0 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 9 Oct 2020 21:08:06 +0200 Subject: [PATCH 67/82] doc: harmonize YAML comments Refs: https://github.com/nodejs/remark-preset-lint-node/pull/139 PR-URL: https://github.com/nodejs/node/pull/35575 Reviewed-By: Rich Trott Reviewed-By: Ben Coe Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- doc/api/buffer.md | 4 +++- doc/api/deprecations.md | 13 ++++++++++--- doc/api/errors.md | 3 ++- doc/api/http.md | 2 +- doc/api/http2.md | 9 +++++++++ doc/api/util.md | 4 ++-- 6 files changed, 27 insertions(+), 8 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 118ebf86e77e0c..015f87a169cc86 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -2756,7 +2756,9 @@ console.log(buf); @@ -2121,6 +2121,9 @@ The `crypto._toBuf()` function was not designed to be used by modules outside of Node.js core and was removed. ### DEP0115: `crypto.prng()`, `crypto.pseudoRandomBytes()`, `crypto.rng()` + + + + + Type: Documentation-only (supports [`--pending-deprecation`][]) In recent versions of Node.js, there is no difference between @@ -2505,7 +2510,9 @@ purpose and is only available on CommonJS environment. ### DEP0139: `process.umask()` with no arguments @@ -2631,7 +2638,7 @@ The [`crypto.Certificate()` constructor][] is deprecated. Use ### DEP0XXX: `fs.rmdir(path, { recursive: true })` diff --git a/doc/api/errors.md b/doc/api/errors.md index 79a5ac279de239..4c963210ad9c56 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -2208,7 +2208,8 @@ changes: - version: - v11.4.0 - v10.15.0 - pr-url: https://github.com/nodejs/node/commit/186035243fad247e3955f + commit: 186035243fad247e3955f + pr-url: https://github.com/nodejs-private/node-private/pull/143 description: Max header size in `http_parser` was set to 8KB. --> diff --git a/doc/api/http.md b/doc/api/http.md index e84b0bb67f18aa..552ffe4670f416 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1182,7 +1182,7 @@ per connection (in the case of HTTP Keep-Alive connections). added: v0.1.94 changes: - version: v10.0.0 - pr-url: v10.0.0 + pr-url: https://github.com/nodejs/node/pull/19981 description: Not listening to this event no longer causes the socket to be destroyed if a client sends an Upgrade header. --> diff --git a/doc/api/http2.md b/doc/api/http2.md index 9679ed23f6966b..133cb564f6e8d0 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -2054,6 +2054,9 @@ added: v8.4.0 changes: - version: - v14.4.0 + - v12.18.0 + - v10.21.0 + commit: 3948830ce6408be620b09a70bf66158623022af0 pr-url: https://github.com/nodejs-private/node-private/pull/204 description: Added `maxSettings` option with a default of 32. - version: @@ -2193,6 +2196,9 @@ added: v8.4.0 changes: - version: - v14.4.0 + - v12.18.0 + - v10.21.0 + commit: 3948830ce6408be620b09a70bf66158623022af0 pr-url: https://github.com/nodejs-private/node-private/pull/204 description: Added `maxSettings` option with a default of 32. - version: @@ -2319,6 +2325,9 @@ added: v8.4.0 changes: - version: - v14.4.0 + - v12.18.0 + - v10.21.0 + commit: 3948830ce6408be620b09a70bf66158623022af0 pr-url: https://github.com/nodejs-private/node-private/pull/204 description: Added `maxSettings` option with a default of 32. - version: v13.0.0 diff --git a/doc/api/util.md b/doc/api/util.md index c36636db48991b..f50ef6b3b2a684 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -1180,7 +1180,7 @@ is not supported. added: v8.3.0 changes: - version: v11.0.0 - pr-url: v11.0.0 + pr-url: https://github.com/nodejs/node/pull/22281 description: The class is now available on the global object. --> @@ -1241,7 +1241,7 @@ mark. added: v8.3.0 changes: - version: v11.0.0 - pr-url: v11.0.0 + pr-url: https://github.com/nodejs/node/pull/22281 description: The class is now available on the global object. --> From cd0b1365ae4965f9570f2b6cd4e0b4b5c9c5b02e Mon Sep 17 00:00:00 2001 From: Daniil Demidovich Date: Tue, 22 Sep 2020 13:44:58 +0300 Subject: [PATCH 68/82] lib: fix readFile flag option typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/35292 Reviewed-By: Andrey Pechkurov Reviewed-By: Ruben Bridgewater Reviewed-By: Masashi Hirano Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum Reviewed-By: Zeyu Yang Reviewed-By: Gerhard Stöbich --- lib/fs.js | 2 +- test/parallel/test-fs-readfile-flags.js | 51 +++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 test/parallel/test-fs-readfile-flags.js diff --git a/lib/fs.js b/lib/fs.js index c570a8c9f4fc2e..8e26339e215c89 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -322,7 +322,7 @@ function readFile(path, options, callback) { return; } - const flagsNumber = stringToFlags(options.flags); + const flagsNumber = stringToFlags(options.flag); path = getValidatedPath(path); const req = new FSReqCallback(); diff --git a/test/parallel/test-fs-readfile-flags.js b/test/parallel/test-fs-readfile-flags.js new file mode 100644 index 00000000000000..2aceee25506419 --- /dev/null +++ b/test/parallel/test-fs-readfile-flags.js @@ -0,0 +1,51 @@ +'use strict'; + +// Test of fs.readFile with different flags. +const common = require('../common'); +const fs = require('fs'); +const assert = require('assert'); +const path = require('path'); +const tmpdir = require('../common/tmpdir'); + +tmpdir.refresh(); + +{ + const emptyFile = path.join(tmpdir.path, 'empty.txt'); + fs.closeSync(fs.openSync(emptyFile, 'w')); + + fs.readFile( + emptyFile, + // With `a+` the file is created if it does not exist + { encoding: 'utf8', flag: 'a+' }, + common.mustCall((err, data) => { assert.strictEqual(data, ''); }) + ); + + fs.readFile( + emptyFile, + // Like `a+` but fails if the path exists. + { encoding: 'utf8', flag: 'ax+' }, + common.mustCall((err, data) => { assert.strictEqual(err.code, 'EEXIST'); }) + ); +} + +{ + const willBeCreated = path.join(tmpdir.path, 'will-be-created'); + + fs.readFile( + willBeCreated, + // With `a+` the file is created if it does not exist + { encoding: 'utf8', flag: 'a+' }, + common.mustCall((err, data) => { assert.strictEqual(data, ''); }) + ); +} + +{ + const willNotBeCreated = path.join(tmpdir.path, 'will-not-be-created'); + + fs.readFile( + willNotBeCreated, + // Default flag is `r`. An exception occurs if the file does not exist. + { encoding: 'utf8' }, + common.mustCall((err, data) => { assert.strictEqual(err.code, 'ENOENT'); }) + ); +} From 939f8e8bfa19f8415b1004792fff0f45774df58f Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sun, 11 Oct 2020 13:12:50 -0400 Subject: [PATCH 69/82] fs: throw rm() validation errors This commit updates validateRmOptions() to throw on input validation failures. This is consistent with how Node handles validation in most places across the codebase. PR-URL: https://github.com/nodejs/node/pull/35602 Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel Reviewed-By: Joyee Cheung Reviewed-By: Rich Trott Reviewed-By: Richard Lau --- lib/internal/fs/utils.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 300d8bf9b956da..f14e34e7c62e06 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -673,12 +673,8 @@ const defaultRmdirOptions = { }; const validateRmOptions = hideStackFrames((path, options, callback) => { - try { - options = validateRmdirOptions(options, defaultRmOptions); - validateBoolean(options.force, 'options.force'); - } catch (err) { - return callback(err); - } + options = validateRmdirOptions(options, defaultRmOptions); + validateBoolean(options.force, 'options.force'); lazyLoadFs().stat(path, (err, stats) => { if (err) { From 3d21792f8624d3f8d406700b5a661d7ef9e86f84 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Sat, 10 Oct 2020 10:45:03 -0700 Subject: [PATCH 70/82] test: mark test-webcrypto-encrypt-decrypt-aes flaky Appears to be flaky only on rhe17-390x. Will be investigating refs: https://github.com/nodejs/node/issues/35586 PR-URL: https://github.com/nodejs/node/pull/35587 Refs: https://github.com/nodejs/node/issues/35586 Reviewed-By: Rich Trott Reviewed-By: Matteo Collina --- test/parallel/parallel.status | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 811fb9a9c6f985..2805b135d55951 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -27,6 +27,7 @@ test-worker-memory: PASS,FLAKY test-worker-message-port-transfer-terminate: PASS,FLAKY [$system==linux] +test-webcrypto-encrypt-decrypt-aes: PASS,FLAKY [$system==macos] From 00eff4a534f0a1f502dce6d548cbadfb122744cb Mon Sep 17 00:00:00 2001 From: bcoe Date: Tue, 13 Oct 2020 08:23:05 -0700 Subject: [PATCH 71/82] doc: add missing deprecation number PR-URL: https://github.com/nodejs/node/pull/35630 Reviewed-By: Richard Lau Reviewed-By: Antoine du Hamel --- doc/api/deprecations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 64b8ca6a8dd7dd..6b3229168ba415 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -2635,7 +2635,7 @@ Type: Documentation-only The [`crypto.Certificate()` constructor][] is deprecated. Use [static methods of `crypto.Certificate()`][] instead. -### DEP0XXX: `fs.rmdir(path, { recursive: true })` +### DEP0147: `fs.rmdir(path, { recursive: true })` diff --git a/doc/api/fs.md b/doc/api/fs.md index 4ab97ade9a3805..38ea82e854ffc7 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -3583,7 +3583,7 @@ the future. ## `fs.rm(path[, options], callback)` * `path` {string|Buffer|URL} @@ -3609,7 +3609,7 @@ completion callback. ## `fs.rmSync(path[, options])` * `path` {string|Buffer|URL} @@ -5522,7 +5522,7 @@ the future. ## `fsPromises.rm(path[, options])` * `path` {string|Buffer|URL} diff --git a/doc/api/http.md b/doc/api/http.md index 552ffe4670f416..d859e22876691e 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1786,7 +1786,7 @@ the request body should be sent. See the [`'checkContinue'`][] event on > Stability: 1 - Experimental @@ -4221,7 +4221,7 @@ ECMA-262 specification. #### napi_object_seal > Stability: 1 - Experimental diff --git a/doc/changelogs/CHANGELOG_V14.md b/doc/changelogs/CHANGELOG_V14.md index 2c8f05c7f30f28..b01680c3801114 100644 --- a/doc/changelogs/CHANGELOG_V14.md +++ b/doc/changelogs/CHANGELOG_V14.md @@ -10,6 +10,7 @@ +14.14.0
14.13.0
14.12.0
14.11.0
@@ -45,6 +46,101 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + +## 2020-10-15, Version 14.14.0 (Current), @MylesBorins + +### Notable Changes + +* [[`7e7afc5186`](https://github.com/nodejs/node/commit/7e7afc5186)] - **crypto**: update certdata to NSS 3.56 (Shelley Vohr) [#35546](https://github.com/nodejs/node/pull/35546) +* [[`8877430530`](https://github.com/nodejs/node/commit/8877430530)] - **doc**: add aduh95 to collaborators (Antoine du Hamel) [#35542](https://github.com/nodejs/node/pull/35542) +* [[`1610728d7c`](https://github.com/nodejs/node/commit/1610728d7c)] - **(SEMVER-MINOR)** **fs**: add rm method (Ian Sutherland) [#35494](https://github.com/nodejs/node/pull/35494) +* [[`6ff152cc67`](https://github.com/nodejs/node/commit/6ff152cc67)] - **(SEMVER-MINOR)** **http**: allow passing array of key/val into writeHead (Robert Nagy) [#35274](https://github.com/nodejs/node/pull/35274) +* [[`93f947af0a`](https://github.com/nodejs/node/commit/93f947af0a)] - **(SEMVER-MINOR)** **src**: expose v8::Isolate setup callbacks (Shelley Vohr) [#35512](https://github.com/nodejs/node/pull/35512) + +### Commits + +* [[`16c17ddd88`](https://github.com/nodejs/node/commit/16c17ddd88)] - **build**: fix Commit Queue failure comment (Antoine du Hamel) [#35599](https://github.com/nodejs/node/pull/35599) +* [[`b7305284e2`](https://github.com/nodejs/node/commit/b7305284e2)] - **build**: gitHub actions: Python 3.9 and actions/setup-python@v2 (Christian Clauss) [#35521](https://github.com/nodejs/node/pull/35521) +* [[`e8fcbc8318`](https://github.com/nodejs/node/commit/e8fcbc8318)] - **build**: fix landed message for multiple commits in commit-queue (Denys Otrishko) [#35226](https://github.com/nodejs/node/pull/35226) +* [[`84c0adefa0`](https://github.com/nodejs/node/commit/84c0adefa0)] - **build**: add Commit Queue actions url to failure comment (Denys Otrishko) [#35206](https://github.com/nodejs/node/pull/35206) +* [[`9c74d4598d`](https://github.com/nodejs/node/commit/9c74d4598d)] - **build**: fuzzer that targets node::LoadEnvironment() (davkor) [#34844](https://github.com/nodejs/node/pull/34844) +* [[`f552e5c251`](https://github.com/nodejs/node/commit/f552e5c251)] - **build**: improved release lint error message (Shelley Vohr) [#35523](https://github.com/nodejs/node/pull/35523) +* [[`7e7afc5186`](https://github.com/nodejs/node/commit/7e7afc5186)] - **crypto**: update certdata to NSS 3.56 (Shelley Vohr) [#35546](https://github.com/nodejs/node/pull/35546) +* [[`b8529a7104`](https://github.com/nodejs/node/commit/b8529a7104)] - **deps**: V8: cherry-pick 3176bfd447a9 (Anna Henningsen) [#35612](https://github.com/nodejs/node/pull/35612) +* [[`0c877762ea`](https://github.com/nodejs/node/commit/0c877762ea)] - **doc**: document Buffer.concat may use internal pool (Andrey Pechkurov) [#35541](https://github.com/nodejs/node/pull/35541) +* [[`6284f0dbc2`](https://github.com/nodejs/node/commit/6284f0dbc2)] - **doc**: use test username instead of real (Pooja D.P) [#35611](https://github.com/nodejs/node/pull/35611) +* [[`78259b6519`](https://github.com/nodejs/node/commit/78259b6519)] - **doc**: add doc for starting ci job via label (Juan José Arboleda) [#35551](https://github.com/nodejs/node/pull/35551) +* [[`41d7500bf9`](https://github.com/nodejs/node/commit/41d7500bf9)] - **doc**: fix unit of size argument of readable.read (Tobias Nießen) [#35051](https://github.com/nodejs/node/pull/35051) +* [[`00eff4a534`](https://github.com/nodejs/node/commit/00eff4a534)] - **doc**: add missing deprecation number (Benjamin Coe) [#35630](https://github.com/nodejs/node/pull/35630) +* [[`9288f9d74b`](https://github.com/nodejs/node/commit/9288f9d74b)] - **doc**: harmonize YAML comments (Antoine du Hamel) [#35575](https://github.com/nodejs/node/pull/35575) +* [[`16f8298170`](https://github.com/nodejs/node/commit/16f8298170)] - **doc**: revise description of process.ppid (Pooja D.P) [#35589](https://github.com/nodejs/node/pull/35589) +* [[`cad86d40de`](https://github.com/nodejs/node/commit/cad86d40de)] - **doc**: add symlink information for process.execpath (Pooja D.P) [#35590](https://github.com/nodejs/node/pull/35590) +* [[`4025fc811d`](https://github.com/nodejs/node/commit/4025fc811d)] - **doc**: add PoojaDurgad as a triager (Pooja D.P) [#35153](https://github.com/nodejs/node/pull/35153) +* [[`809cd07968`](https://github.com/nodejs/node/commit/809cd07968)] - **doc**: document rmdir/recursive deprecation (Benjamin Coe) [#35579](https://github.com/nodejs/node/pull/35579) +* [[`9d1b7ac334`](https://github.com/nodejs/node/commit/9d1b7ac334)] - **doc**: edit fs.md for minor style changes (Rich Trott) [#35505](https://github.com/nodejs/node/pull/35505) +* [[`c1bb364105`](https://github.com/nodejs/node/commit/c1bb364105)] - **doc**: run license builder (Myles Borins) [#35577](https://github.com/nodejs/node/pull/35577) +* [[`970975b588`](https://github.com/nodejs/node/commit/970975b588)] - **doc**: use kbd element in process doc (Rich Trott) [#35584](https://github.com/nodejs/node/pull/35584) +* [[`64ebbddb5f`](https://github.com/nodejs/node/commit/64ebbddb5f)] - **doc**: fixup perf\_hooks (Antoine du Hamel) [#35527](https://github.com/nodejs/node/pull/35527) +* [[`b074717af7`](https://github.com/nodejs/node/commit/b074717af7)] - **doc**: remove incorrect synchronous label (Colin Ihrig) [#35561](https://github.com/nodejs/node/pull/35561) +* [[`ddf13e0df0`](https://github.com/nodejs/node/commit/ddf13e0df0)] - **doc**: make fs.rm()'s force docs consistent (Colin Ihrig) [#35561](https://github.com/nodejs/node/pull/35561) +* [[`4164477b43`](https://github.com/nodejs/node/commit/4164477b43)] - **doc**: simplify wording in tracing APIs doc (Pooja D.P) [#35556](https://github.com/nodejs/node/pull/35556) +* [[`c865b02397`](https://github.com/nodejs/node/commit/c865b02397)] - **doc**: improve SIGINT error text (Rich Trott) [#35558](https://github.com/nodejs/node/pull/35558) +* [[`7d1cdd411f`](https://github.com/nodejs/node/commit/7d1cdd411f)] - **doc**: move package.import content higher (Myles Borins) [#35535](https://github.com/nodejs/node/pull/35535) +* [[`62755b6230`](https://github.com/nodejs/node/commit/62755b6230)] - **doc**: harmonize changes list ordering (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`8cacca0f62`](https://github.com/nodejs/node/commit/8cacca0f62)] - **doc**: changes description must end with a period (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`28c94ca123`](https://github.com/nodejs/node/commit/28c94ca123)] - **doc**: harmonize version list style in YAML comments (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`b3f15b7d89`](https://github.com/nodejs/node/commit/b3f15b7d89)] - **doc**: fix missing PR-URLs in YAML comments (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`02bf73e239`](https://github.com/nodejs/node/commit/02bf73e239)] - **doc**: remove outstanding YAML comment (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`a5552468d2`](https://github.com/nodejs/node/commit/a5552468d2)] - **doc**: harmonize YAML comments style in deprecations.md (Antoine du Hamel) [#35454](https://github.com/nodejs/node/pull/35454) +* [[`863ba4b7da`](https://github.com/nodejs/node/commit/863ba4b7da)] - **doc**: refactor the n-api matrix (Michael Dawson) [#35345](https://github.com/nodejs/node/pull/35345) +* [[`85dc84d1bb`](https://github.com/nodejs/node/commit/85dc84d1bb)] - **doc**: use sentence case for class property (Rich Trott) [#35540](https://github.com/nodejs/node/pull/35540) +* [[`01c9c59c85`](https://github.com/nodejs/node/commit/01c9c59c85)] - **doc**: add history entry for exports patterns (Antoine du Hamel) [#35410](https://github.com/nodejs/node/pull/35410) +* [[`51b988ba0f`](https://github.com/nodejs/node/commit/51b988ba0f)] - **doc**: fix deprecation history (Antoine du Hamel) [#35455](https://github.com/nodejs/node/pull/35455) +* [[`328c624cdf`](https://github.com/nodejs/node/commit/328c624cdf)] - **doc**: fix util.inspect change history (Antoine du Hamel) [#35528](https://github.com/nodejs/node/pull/35528) +* [[`d53cfcd9e7`](https://github.com/nodejs/node/commit/d53cfcd9e7)] - **doc**: improve kbd element rendering (Rich Trott) [#35497](https://github.com/nodejs/node/pull/35497) +* [[`8877430530`](https://github.com/nodejs/node/commit/8877430530)] - **doc**: add aduh95 to collaborators (Antoine du Hamel) [#35542](https://github.com/nodejs/node/pull/35542) +* [[`8cdc59b34c`](https://github.com/nodejs/node/commit/8cdc59b34c)] - **doc**: fix YAML syntax errors (Antoine du Hamel) [#35529](https://github.com/nodejs/node/pull/35529) +* [[`3c90b1a278`](https://github.com/nodejs/node/commit/3c90b1a278)] - **errors**: support possible deletion of globalThis.Error (Michaël Zasso) [#35499](https://github.com/nodejs/node/pull/35499) +* [[`a3c7f8e576`](https://github.com/nodejs/node/commit/a3c7f8e576)] - **fs**: rimraf should not recurse on failure (Benjamin Coe) [#35566](https://github.com/nodejs/node/pull/35566) +* [[`939f8e8bfa`](https://github.com/nodejs/node/commit/939f8e8bfa)] - **fs**: throw rm() validation errors (Colin Ihrig) [#35602](https://github.com/nodejs/node/pull/35602) +* [[`3a401b8695`](https://github.com/nodejs/node/commit/3a401b8695)] - **fs**: update rm/rmdir validation messages (Colin Ihrig) [#35565](https://github.com/nodejs/node/pull/35565) +* [[`937fa5d292`](https://github.com/nodejs/node/commit/937fa5d292)] - **fs**: use validateBoolean() in rm/rmdir validation (Colin Ihrig) [#35565](https://github.com/nodejs/node/pull/35565) +* [[`1ad9aca194`](https://github.com/nodejs/node/commit/1ad9aca194)] - **fs**: remove extraneous assignments in rmdir() (Colin Ihrig) [#35567](https://github.com/nodejs/node/pull/35567) +* [[`1fadcf2163`](https://github.com/nodejs/node/commit/1fadcf2163)] - **fs**: simplify validateRmOptions() error handling (Colin Ihrig) [#35567](https://github.com/nodejs/node/pull/35567) +* [[`8e3b11adb3`](https://github.com/nodejs/node/commit/8e3b11adb3)] - **fs**: use errno constant with ERR\_FS\_EISDIR (Colin Ihrig) [#35563](https://github.com/nodejs/node/pull/35563) +* [[`1610728d7c`](https://github.com/nodejs/node/commit/1610728d7c)] - **(SEMVER-MINOR)** **fs**: add rm method (Ian Sutherland) [#35494](https://github.com/nodejs/node/pull/35494) +* [[`6ff152cc67`](https://github.com/nodejs/node/commit/6ff152cc67)] - **(SEMVER-MINOR)** **http**: allow passing array of key/val into writeHead (Robert Nagy) [#35274](https://github.com/nodejs/node/pull/35274) +* [[`2f1319967c`](https://github.com/nodejs/node/commit/2f1319967c)] - **http**: make response.setTimeout() work (Ben Noordhuis) [#34913](https://github.com/nodejs/node/pull/34913) +* [[`59a2cb5ebb`](https://github.com/nodejs/node/commit/59a2cb5ebb)] - **inspector**: do not hardcode Debugger.CallFrameId in tests (Dmitry Gozman) [#35570](https://github.com/nodejs/node/pull/35570) +* [[`cd0b1365ae`](https://github.com/nodejs/node/commit/cd0b1365ae)] - **lib**: fix readFile flag option typo (Daniil Demidovich) [#35292](https://github.com/nodejs/node/pull/35292) +* [[`70927560f6`](https://github.com/nodejs/node/commit/70927560f6)] - **lib**: change http client path assignment (Yohanan Baruchel) [#35508](https://github.com/nodejs/node/pull/35508) +* [[`fa171dbb7f`](https://github.com/nodejs/node/commit/fa171dbb7f)] - **lib**: use remaining typed arrays from primordials (Michaël Zasso) [#35499](https://github.com/nodejs/node/pull/35499) +* [[`7e8fdd399f`](https://github.com/nodejs/node/commit/7e8fdd399f)] - **lib**: use Number.parseFloat from primordials (Michaël Zasso) [#35499](https://github.com/nodejs/node/pull/35499) +* [[`5d727f0308`](https://github.com/nodejs/node/commit/5d727f0308)] - **lib**: use Number.parseInt from primordials (Michaël Zasso) [#35499](https://github.com/nodejs/node/pull/35499) +* [[`77f1e1ea57`](https://github.com/nodejs/node/commit/77f1e1ea57)] - **lib**: use global Error constructors from primordials (Michaël Zasso) [#35499](https://github.com/nodejs/node/pull/35499) +* [[`30c6b3e809`](https://github.com/nodejs/node/commit/30c6b3e809)] - **lib**: replace String global with primordials (Sebastien Ahkrin) [#35397](https://github.com/nodejs/node/pull/35397) +* [[`ebf3900795`](https://github.com/nodejs/node/commit/ebf3900795)] - **lib**: replace Int8Array global with primordials (Sebastien Ahkrin) [#35397](https://github.com/nodejs/node/pull/35397) +* [[`d6ba4ecc4d`](https://github.com/nodejs/node/commit/d6ba4ecc4d)] - **lib**: replace Int32Array global with primordials (Sebastien Ahkrin) [#35397](https://github.com/nodejs/node/pull/35397) +* [[`f544f7a102`](https://github.com/nodejs/node/commit/f544f7a102)] - **lib**: replace Float64Array global with primordials (Sebastien Ahkrin) [#35397](https://github.com/nodejs/node/pull/35397) +* [[`b82fc409ca`](https://github.com/nodejs/node/commit/b82fc409ca)] - **module**: cjs-module-lexer@0.4.1 big endian fix (Guy Bedford) [#35634](https://github.com/nodejs/node/pull/35634) +* [[`cb2f6ffd3e`](https://github.com/nodejs/node/commit/cb2f6ffd3e)] - **module**: use Wasm CJS lexer when available (Guy Bedford) [#35583](https://github.com/nodejs/node/pull/35583) +* [[`c995242068`](https://github.com/nodejs/node/commit/c995242068)] - **n-api**: support for object freeze/seal (Shelley Vohr) [#35359](https://github.com/nodejs/node/pull/35359) +* [[`4d1d3f454d`](https://github.com/nodejs/node/commit/4d1d3f454d)] - **src**: reduced substring calls (Yash Ladha) [#34808](https://github.com/nodejs/node/pull/34808) +* [[`5946b1ee23`](https://github.com/nodejs/node/commit/5946b1ee23)] - **(SEMVER-MINOR)** **src**: move node\_contextify to modern THROW\_ERR\_\* (James M Snell) [#35470](https://github.com/nodejs/node/pull/35470) +* [[`541082ccd9`](https://github.com/nodejs/node/commit/541082ccd9)] - **(SEMVER-MINOR)** **src**: move node\_process to modern THROW\_ERR\* (James M Snell) [#35472](https://github.com/nodejs/node/pull/35472) +* [[`2e67d650bb`](https://github.com/nodejs/node/commit/2e67d650bb)] - **src**: fix freeing unintialized pointer bug in ParseSoaReply (Aastha Gupta) [#35502](https://github.com/nodejs/node/pull/35502) +* [[`93f947af0a`](https://github.com/nodejs/node/commit/93f947af0a)] - **(SEMVER-MINOR)** **src**: expose v8::Isolate setup callbacks (Shelley Vohr) [#35512](https://github.com/nodejs/node/pull/35512) +* [[`573410fb69`](https://github.com/nodejs/node/commit/573410fb69)] - **(SEMVER-MINOR)** **stream**: multiple stream backports (Robert Nagy) [#34887](https://github.com/nodejs/node/pull/34887) +* [[`775af7af4f`](https://github.com/nodejs/node/commit/775af7af4f)] - **test**: add regression test for v8.getHeapSnapshot() crash (Anna Henningsen) [#35612](https://github.com/nodejs/node/pull/35612) +* [[`3d21792f86`](https://github.com/nodejs/node/commit/3d21792f86)] - **test**: mark test-webcrypto-encrypt-decrypt-aes flaky (James M Snell) [#35587](https://github.com/nodejs/node/pull/35587) +* [[`4a2ba4384b`](https://github.com/nodejs/node/commit/4a2ba4384b)] - **test**: do not use the same EventEmitter instance (Luigi Pinca) [#35560](https://github.com/nodejs/node/pull/35560) +* [[`768529736a`](https://github.com/nodejs/node/commit/768529736a)] - **test**: add ALPNProtocols option to clientOptions (Luigi Pinca) [#35482](https://github.com/nodejs/node/pull/35482) +* [[`3a77d1e208`](https://github.com/nodejs/node/commit/3a77d1e208)] - **test**: adjust comments for upcoming lint rule (Rich Trott) [#35485](https://github.com/nodejs/node/pull/35485) +* [[`2992d0b82c`](https://github.com/nodejs/node/commit/2992d0b82c)] - **tools**: refloat 7 Node.js patches to cpplint.py (Rich Trott) [#35569](https://github.com/nodejs/node/pull/35569) +* [[`a19b320a31`](https://github.com/nodejs/node/commit/a19b320a31)] - **tools**: bump cpplint.py to 1.4.6 (Rich Trott) [#35569](https://github.com/nodejs/node/pull/35569) +* [[`bd344108eb`](https://github.com/nodejs/node/commit/bd344108eb)] - ***Revert*** "**tools**: add missing uv\_setup\_argv() calls" (Beth Griggs) [#35641](https://github.com/nodejs/node/pull/35641) +* [[`e8434d88fe`](https://github.com/nodejs/node/commit/e8434d88fe)] - **tools,test**: enable multiline-comment-style rule in tests (Rich Trott) [#35485](https://github.com/nodejs/node/pull/35485) + ## 2020-10-07, Version 14.13.1 (Current), @BethGriggs prepared by @danielleadams diff --git a/src/node_version.h b/src/node_version.h index 842a80981e45e5..7f2f31389637d0 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -23,13 +23,13 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 14 -#define NODE_MINOR_VERSION 13 -#define NODE_PATCH_VERSION 2 +#define NODE_MINOR_VERSION 14 +#define NODE_PATCH_VERSION 0 #define NODE_VERSION_IS_LTS 0 #define NODE_VERSION_LTS_CODENAME "" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)