Skip to content

Instantly share code, notes, and snippets.

@Rush
Last active August 29, 2015 13:55
Show Gist options
  • Save Rush/8752139 to your computer and use it in GitHub Desktop.
Save Rush/8752139 to your computer and use it in GitHub Desktop.
/*
After running this script, please run:
openssl s_client -reconnect -state -prexit -connect localhost:41443 2> /dev/null|grep -P "(New|Reused)"
Needs at least:
> openssl version
OpenSSL 1.0.1e 11 Feb 2013
Expected behaviour: OpenSSL should report all new connections since resumeSession is
returning null session data. Both newSession and resumeSession should
work, although in this setup only newSession should be called.
What happens: OpenSSL shows session resumption works but in Node.JS from 0.11.5 the events
are not fired. In 0.11.4 the events kind of work...
*/
#!/usr/bin/env node
b64decode = function(encoded) {
return new Buffer(encoded || '', 'base64').toString('utf8');
};
var keys = {
"key": b64decode("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeDRjUTd2YmdNK2JuQXlXVHdWVGl4NXRxUUNWUUxVVFFkMlREdElYZXVZN2lFbVRVCmlEM1hacGhVYlkyQVpJbkwzOHNxRm5iM1ZDVERKbVd2UUZJcHpNNUhSZ2dzOE5tTFRWa1podHV1TWFkMXpGaVEKaExhbUZ0ckdtckRiMGpiMkNrckVYdDFQa29VOThuK0FMVGp2a3A0ZklqbHM4RW1pLyt1em5BL1k1Z1hpdzlUTAp1NXJKYUdWdGpBMXJCK2o1MjZRaEQ3ZHdSTjBuN1lTNHArVDNwczBtTzJPYW9xSE5IZnpMRDFlclFkei92a3ZyCmlQWmp4M1RGZ2U0ZEUxbWN3MmpZMENkcWhDQnBneDJSRExyMTZwZmVRRkNza3p0aGl0d0o5ejlib3UwTTdURksKdnpzQVBEdktwWW5nSkhhdVlBZmlDV0Y0bWMyYVo0MzdJQTBzRFFJREFRQUJBb0lCQUhNRmRjbU1IK3RMck5pdgpqT0hpb1drWU9zUUh2cFNhR3VMNC82ak5rM3U4MXE1cjJlbEFYVEFUbUhnZkhtalcxdVNJSmhjVk5iY1lDamZVClhwYmh4cDcrT3pBdi9saEowSGdpYVFqSkV6NGtuMC9Scmw0VFBPUG44cDJ5WHNac1VLSFdRQ1cveHVOY1ZEMjcKS3BUblFaUnYrdHFyNkJVTkhoNFNMbFJFL25CNjUyM0VMczJaVWFRQmk2NVdMMzBjNkVyUTJ6NnA4T3laTGwvZgpnZ216OGlTY05lekFRZmxTWk9kWFNYNFU0eEtyNDFSbUFFbE9pREJmci9Ud3pQZFJCaEpNSnV5dElLcFhiaE00CmxuZ3NZRTFXSno1MVVBV2hRZmwxMVZpTEJUb3p0WnhOYVBaeUdEMmJ1OU50dHRLTEJwZXZpenRPYlVwazlyS2cKdXhrMzRBRUNnWUVBNlVweC9xZmlRRnF3WnNhQ0ZjeXlBNC9mNnBnbGJoRnYxc1pHeW82dkVLZ2NvZ3Z1RE9raQpEblNlNURCZDFvMjMvbG1OZStiNzRlRWJtUjNDM3UxWWdSQW5yVncyWjl0VTZaOFlUS1l1ai9sZmhKQzN4S2I3CjJ0ZkpyTkFNSTVUaklpK1ByNk4zbmIrN3FabTQ3bWxkcURXQWUrbGhkS1pWMmo3TjliR05nZzBDZ1lFQTJ2TS8KM0J1YmZCYTJGZXg3QVBnRlBrbHRmZitnTnNzSXZXMkN0VExJbDM2R1JVd0RKN0dBTU1KR08vRXNnaERTTnlPdgpRTVlydC9yeXpGdEdDVGFHUXgxTWI5VFd3Nnd1cTl6dHBkekpBQXV2TXQ1U1FWL0krWVdlZ0VxUmxZZDhtTElzClBGcFRpTUowODlDVk4rQUFVd3JwSytLN3JuVmo5UVByVW5uVjBnRUNnWUVBajJmQjEwYWdIK3Nma0szcC9UaU4KSFA5dUo2bExLUFB6Q2RWc1lzdCs5Z0JCU2FPSHU4djdzV01pNFNhU0tIZUphUUxucEFpRFFZQzlGRXhsSStCRwpqVisrNUNSUkZWcVFRZVFZYmRXaHZjTVBZbEFMaHdrV3ZKbjFVUk82d295ZGFzQk4xU3ZwTmNGTXZKN1FQVTNyCjBxREEwR3JRQzRMTU41SnZ6TjVPSEdrQ2dZRUF1N0pJRG5NRVNjNVdibGo1NFl5OVFmWkVqUDAwNVlRTWpBZHoKUTg2ek0xdmQwMDRrYmtTMk5oWjFpekZuREdGTE5NVzhtWFRKU2NFeG40cW5jWUp5ZXRxRkNtR1ZjczBLZlg2NQpvN1N3QXdBQlEwUmZrM2QvbkppMWxobFcwSzhEV3d0eTdKSXFobFRkV1o1NExSdzBhdnd4ZzlPdFBST1ppeE8vCkNrY3p6QUVDZ1lBdXlXUU5la1U2d3hFNEZGbVVFbmNMZkROTWJaMy9VYkpYK3g2R2lFQzl1c2U1aXRpNEtRUDgKVDc2eWxYR2JIYXRqeE9pUWtsSmxZbzlRVTkzVDJrMXloeHN2ZHZWZTlOVHByOTBZQUdDeExuU2phRkVJamh5UgpTYXMxbDY1MDZjaGNsY0MydzNVRi9HNnkrQlMzenFuRmdPVHR4MGZ5TVptczVqN0hkVlc3UVE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="),
"cert": b64decode("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURYVENDQWtXZ0F3SUJBZ0lKQUw5TjIvSTJUaWZCTUEwR0NTcUdTSWIzRFFFQkJRVUFNRVV4Q3pBSkJnTlYKQkFZVEFrRlZNUk13RVFZRFZRUUlEQXBUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLREJoSmJuUmxjbTVsZENCWAphV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVE14TWpJMk1USXpNVEk0V2hjTk1UUXhNakkyTVRJek1USTRXakJGCk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpTMVRkR0YwWlRFaE1COEdBMVVFQ2d3WVNXNTAKWlhKdVpYUWdWMmxrWjJsMGN5QlFkSGtnVEhSa01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQXg0Y1E3dmJnTStibkF5V1R3VlRpeDV0cVFDVlFMVVRRZDJURHRJWGV1WTdpRW1UVWlEM1hacGhVCmJZMkFaSW5MMzhzcUZuYjNWQ1RESm1XdlFGSXB6TTVIUmdnczhObUxUVmtaaHR1dU1hZDF6RmlRaExhbUZ0ckcKbXJEYjBqYjJDa3JFWHQxUGtvVTk4bitBTFRqdmtwNGZJamxzOEVtaS8rdXpuQS9ZNWdYaXc5VEx1NXJKYUdWdApqQTFyQitqNTI2UWhEN2R3Uk4wbjdZUzRwK1QzcHMwbU8yT2FvcUhOSGZ6TEQxZXJRZHovdmt2cmlQWmp4M1RGCmdlNGRFMW1jdzJqWTBDZHFoQ0JwZ3gyUkRMcjE2cGZlUUZDc2t6dGhpdHdKOXo5Ym91ME03VEZLdnpzQVBEdksKcFluZ0pIYXVZQWZpQ1dGNG1jMmFaNDM3SUEwc0RRSURBUUFCbzFBd1RqQWRCZ05WSFE0RUZnUVVBZloraTJ2ZApQMXJVQkxmU1B5eFRCWld5Qktvd0h3WURWUjBqQkJnd0ZvQVVBZloraTJ2ZFAxclVCTGZTUHl4VEJaV3lCS293CkRBWURWUjBUQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFVRkFBT0NBUUVBb1VETnRhQUhBSlZYaEhDRVl1UXEKQ1MwOFJwekZQeEZ3QnZhUHNTeWhkZ0lscjJHdzVjb213K1ZCclpZTWxPSnhlY1d6TlFaMXhoNFBySnhiSzhoYQpjR3owb3prMjM0NUpvUXQzVldCYWhZV0ZPYkNxR3QxakI5REpySnQ5c1h4ZDhqKzZIUnFpNE1FenJpSmM2WUY1ClRSUmV5NGpZeTB6K0h3a1FRbndhRFVBbzdNSkF5ZG5RZk91eW9TM3ZPVlpyTkR3dEd0M3ZoaS9oYldKMXNMZEEKNEcyUytjM0o2dVM5RlNtbXhiajExWnZ3REZYU0ZIN0RWMXpkQXFGaFVKOGp4K0FOeENEK01MbmdpSWczUVBldgpkOEVnc1hJV01DSGxwL1ZCbEpUS2FPZk5uWkdXQVpUMDNEOEFIWGpHYUVsWWVqTWRBcitVTEJHOFlObVRUL0x6ClJ3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="),
};
var tls = require('tls');
var server = tls.createServer(keys).listen(41443).on('connection', function(conn) {
console.log("Connection");
})
server.on('newSession', function(sessionId, sessionData) {
console.log("new session", sessionId, sessionData);
});
server.on('resumeSession', function(sessionId, callback) {
console.log("resume session", sessionId);
callback(null, null);
});
server.on('listening', function() {
console.log("Listening");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment