Skip to content

[openssl-4.0.0] - failing tests #62817

@Kangie

Description

@Kangie

Version

24.15.0

Platform

Gentoo Linux.

Subsystem

No response

What steps will reproduce the bug?

The following tests will fail with OpenSSL 4:

=== release test-tls-alert-handling ===                                       
Path: parallel/test-tls-alert-handling
node:assert:152
  throw new AssertionError(obj);
  ^

AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected

+ 'ERR_SSL_BAD_RECORD_TYPE'
- 'ERR_SSL_PACKET_LENGTH_TOO_LONG'
           ^

    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-alert-handling.js:44:10)
    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:479:15)
    at TLSSocket.emit (node:events:521:24)
    at TLSSocket._emitTLSError (node:internal/tls/wrap:1058:10)
    at TLSWrap.onerror (node:internal/tls/wrap:496:11) {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: 'ERR_SSL_BAD_RECORD_TYPE',
  expected: 'ERR_SSL_PACKET_LENGTH_TOO_LONG',
  operator: 'strictEqual',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-alert-handling.js


=== release test-tls-client-mindhsize ===                                     
Path: parallel/test-tls-client-mindhsize
node:events:487
      throw er; // Unhandled 'error' event
      ^

Error [ERR_TLS_DH_PARAM_SIZE]: DH parameter size 2048 is less than 2048
    at TLSSocket.onConnectSecure (node:internal/tls/wrap:1649:17)
    at TLSSocket.emit (node:events:509:28)
    at TLSSocket._finishInit (node:internal/tls/wrap:1102:8)
    at ssl.onhandshakedone (node:internal/tls/wrap:888:12)
Emitted 'error' event on TLSSocket instance at:
    at TLSSocket.onConnectSecure (node:internal/tls/wrap:1651:10)
    at TLSSocket.emit (node:events:509:28)
    at TLSSocket._finishInit (node:internal/tls/wrap:1102:8)
    at ssl.onhandshakedone (node:internal/tls/wrap:888:12) {
  code: 'ERR_TLS_DH_PARAM_SIZE'
}

Node.js v24.15.0
Command: out/Release/node --expose-internals /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-client-mindhsize.js


=== release test-tls-client-getephemeralkeyinfo ===                   
Path: parallel/test-tls-client-getephemeralkeyinfo
node:assert:152
  throw new AssertionError(obj);
  ^

AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:

2048 !== 3072

    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-client-getephemeralkeyinfo.js:63:14)
    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:479:15)
    at Object.onceWrapper (node:events:630:28)
    at TLSSocket.emit (node:events:521:24)
    at TLSSocket.onConnectSecure (node:internal/tls/wrap:1693:8)
    at TLSSocket.emit (node:events:509:28)
    at TLSSocket._finishInit (node:internal/tls/wrap:1102:8)
    at ssl.onhandshakedone (node:internal/tls/wrap:888:12) {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: 2048,
  expected: 3072,
  operator: 'strictEqual',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-client-getephemeralkeyinfo.js


=== release test-tls-ecdh-multiple ===                                
Path: parallel/test-tls-ecdh-multiple
node:internal/tls/secure-context:252
  context.setECDHCurve(ecdhCurve);
          ^

Error: Failed to set ECDH curve
    at configSecureContext (node:internal/tls/secure-context:252:11)
    at Object.createSecureContext (node:internal/tls/common:113:3)
    at Server.setSecureContext (node:internal/tls/wrap:1515:27)
    at new Server (node:internal/tls/wrap:1379:8)
    at Object.createServer (node:internal/tls/wrap:1414:10)
    at Object.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ecdh-multiple.js:37:20)
    at Module._compile (node:internal/modules/cjs/loader:1830:14)
    at Object..js (node:internal/modules/cjs/loader:1961:10)
    at Module.load (node:internal/modules/cjs/loader:1553:32)
    at Module._load (node:internal/modules/cjs/loader:1355:12) {
  code: 'ERR_CRYPTO_OPERATION_FAILED'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ecdh-multiple.js


=== release test-tls-dhe ===                                                  
Path: parallel/test-tls-dhe
node:internal/assert/utils:77
    throw err;
    ^

AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

  assert(stdout.includes(`Cipher    : ${expectedCipher}`))

    at /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-dhe.js:92:7
    at /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:444:17
    at /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:479:15
    at ChildProcess.exithandler (node:child_process:410:7)
    at ChildProcess.emit (node:events:509:28)
    at maybeClose (node:internal/child_process:1124:16)
    at ChildProcess._handle.onexit (node:internal/child_process:306:5) {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '==',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node --no-warnings --expose-internals /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-dhe.js


=== release test-tls-error-stack ===                                          
Path: parallel/test-tls-error-stack
node:assert:604
    throw err;
    ^

AssertionError [ERR_ASSERTION]: The validation function is expected to return "true". Received false

Caught error:

Error [ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED]: Custom engines not supported by this OpenSSL
    at Object.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-error-stack.js:11:8)
    at Module._compile (node:internal/modules/cjs/loader:1830:14)
    at Object..js (node:internal/modules/cjs/loader:1961:10)
    at Module.load (node:internal/modules/cjs/loader:1553:32)
    at Module._load (node:internal/modules/cjs/loader:1355:12)
    at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
    at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
    at node:internal/main/run_main_module:33:47 {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: Error [ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED]: Custom engines not supported by this OpenSSL
      at configSecureContext (node:internal/tls/secure-context:298:13)
      at Object.createSecureContext (node:internal/tls/common:113:3)
      at /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-error-stack.js:12:7
      at getActual (node:assert:611:5)
      at ok.throws (node:assert:759:24)
      at Object.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-error-stack.js:11:8)
      at Module._compile (node:internal/modules/cjs/loader:1830:14)
      at Object..js (node:internal/modules/cjs/loader:1961:10)
      at Module.load (node:internal/modules/cjs/loader:1553:32)
      at Module._load (node:internal/modules/cjs/loader:1355:12) {
    code: 'ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED'
  },
  expected: [Function (anonymous)],
  operator: 'throws',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-error-stack.js


=== release test-tls-junk-server ===                                          
Path: parallel/test-tls-junk-server
node:assert:885
    throw err;
    ^

AssertionError [ERR_ASSERTION]: The input did not match the regular expression /packet length too long/. Input:

'write EPROTO 0099198CD17F0000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../openssl-4.0.0/ssl/record/methods/tlsany_meth.c:66:\n'

    at ClientRequest.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-junk-server.js:31:12)
    at ClientRequest.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:479:15)
    at Object.onceWrapper (node:events:631:26)
    at ClientRequest.emit (node:events:509:28)
    at emitErrorEvent (node:_http_client:109:11)
    at TLSSocket.socketErrorListener (node:_http_client:593:5)
    at TLSSocket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: 'write EPROTO 0099198CD17F0000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../openssl-4.0.0/ssl/record/methods/tlsany_meth.c:66:\n',
  expected: /packet length too long/,
  operator: 'match',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-junk-server.js


=== release test-tls-ocsp-callback ===                                        
Path: parallel/test-tls-ocsp-callback
/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ocsp-callback.js:93
        assert.strictEqual(resp.toString(), testOptions.response);
                                ^

TypeError: Cannot read properties of null (reading 'toString')
    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ocsp-callback.js:93:33)
    at TLSSocket.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/common/index.js:479:15)
    at TLSSocket.emit (node:events:509:28)
    at TLSWrap.onocspresponse (node:internal/tls/wrap:464:22)

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ocsp-callback.js


=== release test-tls-set-ciphers-error ===                    
Path: parallel/test-tls-set-ciphers-error
node:assert:152
  throw new AssertionError(obj);
  ^

AssertionError [ERR_ASSERTION]: Missing expected exception.
    at Object.<anonymous> (/var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-set-ciphers-error.js:17:10)
    at Module._compile (node:internal/modules/cjs/loader:1830:14)
    at Object..js (node:internal/modules/cjs/loader:1961:10)
    at Module.load (node:internal/modules/cjs/loader:1553:32)
    at Module._load (node:internal/modules/cjs/loader:1355:12)
    at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
    at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
    at node:internal/main/run_main_module:33:47 {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: undefined,
  expected: /no[_ ]cipher[_ ]match/i,
  operator: 'throws',
  diff: 'simple'
}

Node.js v24.15.0
Command: out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-set-ciphers-error.js


[02:08|% 100|+ 4082|-   9]: Done                                              

Failed tests:
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-alert-handling.js
out/Release/node --expose-internals /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-client-mindhsize.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-client-getephemeralkeyinfo.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ecdh-multiple.js
out/Release/node --no-warnings --expose-internals /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-dhe.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-error-stack.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-junk-server.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-ocsp-callback.js
out/Release/node /var/tmp/portage/net-libs/nodejs-24.15.0/work/node-v24.15.0/test/parallel/test-tls-set-ciphers-error.js

How often does it reproduce? Is there a required condition?

Consistent w/ openssl 4

What is the expected behavior? Why is that the expected behavior?

Tests should pass

What do you see instead?

relevant test log above

Additional information

Not expecting a quick fix, just reporting what I noticed downstream :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions