Skip to content

Commit af56897

Browse files
committed
feat: update client and server
Add message transfer from server to client and update the code.
1 parent df74321 commit af56897

File tree

2 files changed

+40
-37
lines changed

2 files changed

+40
-37
lines changed

tls-client.js

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const port = 8000;
55
const hostname = 'localhost';
66

77
const tls = require('tls');
8-
var fs = require('fs');
8+
const fs = require('fs');
99

1010
const options = {
1111
host: hostname,
@@ -19,21 +19,27 @@ const options = {
1919
ca: fs.readFileSync('certs/ca/ca.crt')
2020
};
2121

22-
var socket = tls.connect(options, () => {
23-
console.log('client connected',
24-
socket.authorized ? 'authorized' : 'unauthorized');
25-
process.stdin.pipe(socket);
26-
process.stdin.resume();
27-
28-
socket.end();
22+
const socket = tls.connect(options, () => {
23+
console.log('client connected', socket.authorized ? 'authorized' : 'unauthorized');
24+
if (!socket.authorized) {
25+
console.log("Error: ", client.authorizationError());
26+
socket.end();
27+
}
2928
})
30-
31-
.setEncoding('utf8')
32-
33-
.on('data', (data) => {
34-
console.log(data);
35-
})
36-
37-
.on('end', () => {
38-
console.log("End connection");
39-
});
29+
.setEncoding('utf8')
30+
.on('data', (data) => {
31+
console.log("Received: ", data);
32+
33+
// Close after receive data
34+
socket.end();
35+
})
36+
.on('close', () => {
37+
console.log("Connection closed");
38+
})
39+
.on('end', () => {
40+
console.log("End connection");
41+
})
42+
.on('error', (error) => {
43+
console.error(error);
44+
socket.destroy();
45+
});

tls-server.js

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,27 @@ const fs = require('fs');
66
const port = 8000;
77

88
const options = {
9-
key: fs.readFileSync('certs/server/server.key'),
10-
cert: fs.readFileSync('certs/server/server.crt'),
11-
ca: fs.readFileSync('certs/ca/ca.crt'), // authority chain for the clients
12-
requestCert: true, // ask for a client cert
13-
//rejectUnauthorized: false, // act on unauthorized clients at the app level
9+
key: fs.readFileSync('certs/server/server.key'),
10+
cert: fs.readFileSync('certs/server/server.crt'),
11+
ca: fs.readFileSync('certs/ca/ca.crt'), // authority chain for the clients
12+
requestCert: true, // ask for a client cert
13+
//rejectUnauthorized: false, // act on unauthorized clients at the app level
1414
};
1515

16-
var server = tls.createServer(options, (socket) => {
16+
const server = tls.createServer(options, (socket) => {
1717
socket.write('welcome!\n');
1818
socket.setEncoding('utf8');
1919
socket.pipe(socket);
2020
})
21+
.on('connection', () => {
22+
console.log('insecure connection');
23+
})
2124

22-
.on('connection', function(c)
23-
{
24-
console.log('insecure connection');
25-
})
26-
27-
.on('secureConnection', function (c)
28-
{
29-
// c.authorized will be true if the client cert presented validates with our CA
30-
console.log('secure connection; client authorized: ', c.authorized);
31-
})
25+
.on('secureConnection', (socket) => {
26+
// c.authorized will be true if the client cert presented validates with our CA
27+
console.log('secure connection; client authorized: ', socket.authorized);
28+
})
3229

33-
.listen(port, function() {
34-
console.log('server listening on port ' + port + '\n');
35-
});
30+
.listen(port, () => {
31+
console.log('server listening on port ' + port + '\n');
32+
});

0 commit comments

Comments
 (0)