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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions