Skip to content

tls.TLSSocket does not emit error event on handshake failure #8803

Closed
@lekoder

Description

@lekoder
  • Version: v6.5.0
  • Platform: Linux 4.4.0-38-generic
  • Subsystem: TLS/SSL

When upgrading net.Socket to tls.TLSSocket, if there is a handshake failure, no (documented) event is emited by the TLSSocket.

To reproduce:

var tls = require("tls");
var net = require("net");

var netServer = net.createServer(function (netSocket) {
    var TLSSocket = new tls.TLSSocket(netSocket, {
        isServer: true,
        server: netServer
    });
    TLSSocket.on("error", function (e) {
        console.log("TLS error", e);
    });
    netSocket.on("close", function () {
        console.log("Socket closed");
    });
}).listen(1337);
openssl s_client -connect 127.0.0.1:1337

Expected result:

TLS error Error: 140079908828992:error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher:../deps/openssl/openssl/ssl/s3_srvr.c:1417
Socket closed

Actual result:

Socket closed

There is undocumented event _tlsError emited, but it is both not documented not propagated to socket's error event.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tlsIssues and PRs related to the tls subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions