var fs = require('fs');
var tls = require('tls');

var server1Key = fs.readFileSync(__dirname + '/server1-key.pem');
var server1Cert = fs.readFileSync(__dirname + '/server1-cert.pem');
var clientKey = fs.readFileSync(__dirname + '/client-key.pem');
var clientCert = fs.readFileSync(__dirname + '/client-cert.pem');
var ca1Cert = fs.readFileSync(__dirname + '/ca1-cert.pem');
var ca3Cert = fs.readFileSync(__dirname + '/ca3-cert.pem');

var server = tls.createServer({
  key: server1Key,
  cert: server1Cert,
  ca: [ca3Cert],
  requestCert: true,
  rejectUnauthorized: true,
}, function(s) {
  console.log('connected on server');
  s.on('data', function(chunk) {
    console.log('S:' + chunk);
    s.write(chunk);
  });
  s.setEncoding('utf8');
}).listen(3000, function() {
  var c = tls.connect({
    host: 'localhost',
    port: 3000,
    key: clientKey,
    cert: clientCert,
    ca: [ca1Cert],
    rejectUnauthorized: true
  }, function() {
    console.log('connected on client');
    c.on('data', function(chunk) {
      console.log('C:' + chunk);
    });
    c.setEncoding('utf8');
    c.write('Hello');
  });
  c.on('error', function(err) {
    console.log(err);
  });
});