-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tls throws when working with JSStreams #12716
Labels
tls
Issues and PRs related to the tls subsystem.
Comments
WorkaroundCreate a unix socket or windows pipe just for the sake of getting that fd so that the tls module can do its binary magic: https://git.daplie.com/Daplie/socket-pair 'use strict';
var net = require('net');
var tls = require('tls');
// just a simple wrapper around a server and socket to create both of the necessary halves
// https://git.daplie.com/Daplie/socket-pair/blob/master/lib/socket-pair.js
var netServer = net.createServer(handleTcp);
// just some certs so that it's easy to test all this
var tlsOptions = require('localhost.daplie.me-certificates').merge({});
var tlsServer = tls.createServer(tlsOptions, handleTls);
function handleTcp(conn) {
tlsServer.emit('connection', conn);
}
function handleTls(conn) {
conn.on('data', function (chunk) {
console.log(chunk.toString('utf8'));
});
}
var writer = require('socket-pair').create(function (err, reader) {
netServer.emit('connection', reader);
// generated in this way
// nc -l 3000 > /tmp/sni.bin
// https://localhost.daplie.me:3000/
// hexdump -ve '1/1 "%.2x"' /tmp/sni.bin
var sni = '16030100ce010000ca03032d4ad3b5daf224a8465309487ed334c91de34c05ca5bf1c042ef54c510aadea80000202a2ac02bc02fc02cc030cca9cca8cc14cc13c013c014009c009d002f0035000a01000081dada0000ff010001000000001800160000136c6f63616c686f73742e6461706c69652e6d650017000000230000000d00140012040308040401050308050501080606010201000500050100000000001200000010000e000c02683208687474702f312e3175500000000b00020100000a000a00084a4a001d00170018baba000100';
writer.write(Buffer.from(sni, 'hex'));
// this "hangs", but it if you attach a `data` event you can see that
// the "reader" was written back to with the handshake response
}); |
I think this has been fixed in b23d414 – can you confirm that? |
Using the example code that I provided above my findings are: FAILURE in SUCCESS in |
This was referenced May 14, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Version: v7.7.4
Platform: Darwin
Subsystem: tls
Here's the lovely error:
And here's how you can too:
and since all of my issues go to you anyway, might as well:
cc/ @indutny
May be related to:
net.Socket
s #1046The text was updated successfully, but these errors were encountered: