|
|
|
var sack = require( "sack.vfs" ); |
|
|
|
var disk = sack.Volume(); |
|
|
|
var keys = [ sack.TLS.genkey( 1024 ), sack.TLS.genkey( 1024 ), sack.TLS.genkey( 1024, "password" ) ]; |
|
var certRoot = sack.TLS.gencert( { key:keys[0] |
|
, country:"US" |
|
, state:"NV" |
|
, locality:"Las Vegas" |
|
, org:"Freedom Collective", unit:"Tests", name:"Root Cert", serial: 1001 } ) |
|
console.log( sack.TLS ); |
|
var signer = ( sack.TLS.signreq( { |
|
request: sack.TLS.genreq( { key:keys[1] |
|
, country:"US", state:"NV", locality:"Las Vegas" |
|
, org:"Freedom Collective", unit:"Tests" |
|
, name:"CA Cert", serial: 1002 } ) |
|
, signer: certRoot, serial: 1003, key:keys[0] } ) ); |
|
|
|
var cert = sack.TLS.signreq( { |
|
request: sack.TLS.genreq( { key:keys[2], password:"password" |
|
, country:"US", state:"NV", locality:"Las Vegas" |
|
, org:"Freedom Collective", unit:"Tests", name:"Cert", serial: 1004 |
|
, subject: { DNS:["test.nowhere"], IP:["/*should be valid IP*/"] } |
|
} ) |
|
, signer: signer, serial: 1005, key:keys[1] } ); |
|
|
|
var cert2 = sack.TLS.signreq( { |
|
request: sack.TLS.genreq( { key:keys[2], password:"password" |
|
, country:"US", state:"NV", locality:"Las Vegas" |
|
, org:"Freedom Collective", unit:"Tests", name:"Cert", serial: 1004 |
|
, subject: { IP:["127.0.0.1"] } |
|
} ) |
|
, signer: signer, serial: 1005, key:keys[1] } ); |
|
|
|
var server = sack.WebSocket.Server( { port: 8080, cert : cert, ca : signer+certRoot, key: keys[2], passphrase:"password" } ) |
|
var server2 = sack.WebSocket.Server( { port: 8081, cert : cert, ca : signer, key: keys[2], passphrase:"password" } ) |
|
|
|
console.log( "serving on 8080,8081" ); |
|
|
|
|
|
server.onrequest( function( req, res ) { |
|
console.log( "Received request:", req.url ); |
|
if( req.url.endsWith( ".html" ) || req.url == "/" ) { |
|
res.writeHead( 200 ); |
|
if( req.url == "/" ) |
|
req.url = "/index.html"; |
|
var x = disk.read( "." + req.url ); |
|
console.log( "Read:", x, "." + req.url ); |
|
res.end( x ); |
|
} else { |
|
res.writeHead( 404 ); |
|
res.end(); |
|
} |
|
} ); |
|
|
|
server.onaccept( function ( protocols, resource ) { |
|
console.log( "Connection received with : ", protocols, " path:", resource ); |
|
if( process.argv[2] == "1" ) |
|
this.reject(); |
|
else |
|
this.accept(); |
|
//this.accept( protocols ); |
|
} ); |
|
|
|
server.onconnect( function (ws) { |
|
//console.log( "Connect:", ws ); |
|
|
|
ws.onmessage( function( msg ) { |
|
console.log( "Received data:", msg ); |
|
ws.send( msg ); |
|
//ws.close(); |
|
} ); |
|
ws.onclose( function() { |
|
console.log( "Remote closed" ); |
|
} ); |
|
} ); |