summaryrefslogtreecommitdiff
path: root/test/disabled
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2010-10-28 13:02:51 -0700
committerRyan Dahl <ry@tinyclouds.org>2010-11-18 16:46:37 -0800
commitdf46c8e698b9400abaabd77ec836c7cdadf9735c (patch)
treed72903ad1f7103e4c04622a566559fd869fc22d3 /test/disabled
parent2a750bffcc6b8c33df9f575b83979d245cd7b384 (diff)
downloadnode-df46c8e698b9400abaabd77ec836c7cdadf9735c.tar.gz
Rip out the old TLS implementation
Diffstat (limited to 'test/disabled')
-rw-r--r--test/disabled/test-http-tls.js145
-rw-r--r--test/disabled/test-net-tls-pummel.js123
-rw-r--r--test/disabled/test-net-tls.js103
3 files changed, 371 insertions, 0 deletions
diff --git a/test/disabled/test-http-tls.js b/test/disabled/test-http-tls.js
new file mode 100644
index 000000000..4c0ebe18e
--- /dev/null
+++ b/test/disabled/test-http-tls.js
@@ -0,0 +1,145 @@
+common = require("../common");
+assert = common.assert
+net = require("net");
+http = require("http");
+url = require("url");
+qs = require("querystring");
+var fs = require('fs');
+
+var have_openssl;
+try {
+ var crypto = require('crypto');
+ var dummy_server = http.createServer(function(){});
+ dummy_server.setSecure();
+ have_openssl=true;
+} catch (e) {
+ have_openssl=false;
+ console.log("Not compiled with OPENSSL support.");
+ process.exit();
+}
+
+var request_number = 0;
+var requests_sent = 0;
+var server_response = "";
+var client_got_eof = false;
+var caPem = fs.readFileSync(common.fixturesDir+"/test_ca.pem", 'ascii');
+var certPem = fs.readFileSync(common.fixturesDir+"/test_cert.pem", 'ascii');
+var keyPem = fs.readFileSync(common.fixturesDir+"/test_key.pem", 'ascii');
+
+try{
+ var credentials = crypto.createCredentials({key:keyPem, cert:certPem, ca:caPem});
+} catch (e) {
+ console.log("Not compiled with OPENSSL support.");
+ process.exit();
+}
+
+
+var https_server = http.createServer(function (req, res) {
+ res.id = request_number;
+ req.id = request_number++;
+
+ var verified = res.connection.verifyPeer();
+ var peerDN = JSON.stringify(req.connection.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT",'
+ + '"fingerprint":"2A:7A:C2:DD:E5:F9:CC:53:72:35:99:7A:02:5A:71:38:52:EC:8A:DF"}');
+
+ if (req.id == 0) {
+ assert.equal("GET", req.method);
+ assert.equal("/hello", url.parse(req.url).pathname);
+ assert.equal("world", qs.parse(url.parse(req.url).query).hello);
+ assert.equal("b==ar", qs.parse(url.parse(req.url).query).foo);
+ }
+
+ if (req.id == 1) {
+ assert.equal("POST", req.method);
+ assert.equal("/quit", url.parse(req.url).pathname);
+ }
+
+ if (req.id == 2) {
+ assert.equal("foo", req.headers['x-x']);
+ }
+
+ if (req.id == 3) {
+ assert.equal("bar", req.headers['x-x']);
+ this.close();
+ //console.log("server closed");
+ }
+ setTimeout(function () {
+ res.writeHead(200, {"Content-Type": "text/plain"});
+ res.write(url.parse(req.url).pathname);
+ res.end();
+ }, 1);
+
+});
+https_server.setSecure(credentials);
+https_server.listen(common.PORT);
+
+https_server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
+
+ c.setEncoding("utf8");
+
+ c.addListener("connect", function () {
+ c.setSecure(credentials);
+ });
+
+ c.addListener("secure", function () {
+ var verified = c.verifyPeer();
+ var peerDN = JSON.stringify(c.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT",'
+ + '"fingerprint":"2A:7A:C2:DD:E5:F9:CC:53:72:35:99:7A:02:5A:71:38:52:EC:8A:DF"}');
+ c.write( "GET /hello?hello=world&foo=b==ar HTTP/1.1\r\n\r\n" );
+ requests_sent += 1;
+ });
+
+ c.addListener("data", function (chunk) {
+ server_response += chunk;
+
+ if (requests_sent == 1) {
+ c.write("POST /quit HTTP/1.1\r\n\r\n");
+ requests_sent += 1;
+ }
+
+ if (requests_sent == 2) {
+ c.write("GET / HTTP/1.1\r\nX-X: foo\r\n\r\n"
+ +"GET / HTTP/1.1\r\nX-X: bar\r\n\r\n");
+ c.end();
+ assert.equal(c.readyState, "readOnly");
+ requests_sent += 2;
+ }
+
+ });
+
+ c.addListener("end", function () {
+ client_got_eof = true;
+ });
+
+ c.addListener("close", function () {
+ assert.equal(c.readyState, "closed");
+ });
+});
+
+process.addListener("exit", function () {
+ assert.equal(4, request_number);
+ assert.equal(4, requests_sent);
+
+ var hello = new RegExp("/hello");
+ assert.equal(true, hello.exec(server_response) != null);
+
+ var quit = new RegExp("/quit");
+ assert.equal(true, quit.exec(server_response) != null);
+
+ assert.equal(true, client_got_eof);
+});
diff --git a/test/disabled/test-net-tls-pummel.js b/test/disabled/test-net-tls-pummel.js
new file mode 100644
index 000000000..fb05c33d5
--- /dev/null
+++ b/test/disabled/test-net-tls-pummel.js
@@ -0,0 +1,123 @@
+common = require("../common");
+assert = common.assert
+net = require("net");
+fs=require("fs");
+
+var tests_run = 0;
+
+function tlsTest (port, host, caPem, keyPem, certPem) {
+ var N = 50;
+ var count = 0;
+ var sent_final_ping = false;
+
+ var server = net.createServer(function (socket) {
+ assert.equal(true, socket.remoteAddress !== null);
+ assert.equal(true, socket.remoteAddress !== undefined);
+ if (host === "127.0.0.1")
+ assert.equal(socket.remoteAddress, "127.0.0.1");
+ else if (host == null)
+ assert.equal(socket.remoteAddress, "127.0.0.1");
+
+ socket.setEncoding("utf8");
+ socket.setNoDelay();
+ socket.timeout = 0;
+
+ socket.addListener("data", function (data) {
+ var verified = socket.verifyPeer();
+ var peerDN = socket.getPeerCertificate("DNstring");
+ assert.equal(verified, 1);
+ assert.equal(peerDN, "C=UK,ST=Acknack Ltd,L=Rhys Jones,O=node.js,"
+ + "OU=Test TLS Certificate,CN=localhost");
+ console.log("server got: " + JSON.stringify(data));
+ assert.equal("open", socket.readyState);
+ assert.equal(true, count <= N);
+ if (/PING/.exec(data)) {
+ socket.write("PONG");
+ }
+ });
+
+ socket.addListener("end", function () {
+ assert.equal("writeOnly", socket.readyState);
+ socket.end();
+ });
+
+ socket.addListener("close", function (had_error) {
+ assert.equal(false, had_error);
+ assert.equal("closed", socket.readyState);
+ socket.server.close();
+ });
+ });
+
+ server.setSecure('X509_PEM', caPem, 0, keyPem, certPem);
+ server.listen(port, host);
+
+ var client = net.createConnection(port, host);
+
+ client.setEncoding("utf8");
+ client.setSecure('X509_PEM', caPem, 0, keyPem, caPem);
+
+ client.addListener("connect", function () {
+ assert.equal("open", client.readyState);
+ var verified = client.verifyPeer();
+ var peerDN = client.getPeerCertificate("DNstring");
+ assert.equal(verified, 1);
+ assert.equal(peerDN, "C=UK,ST=Acknack Ltd,L=Rhys Jones,O=node.js,"
+ + "OU=Test TLS Certificate,CN=localhost");
+ client.write("PING");
+ });
+
+ client.addListener("data", function (data) {
+ assert.equal("PONG", data);
+ count += 1;
+
+ console.log("client got PONG");
+
+ if (sent_final_ping) {
+ assert.equal("readOnly", client.readyState);
+ return;
+ } else {
+ assert.equal("open", client.readyState);
+ }
+
+ if (count < N) {
+ client.write("PING");
+ } else {
+ sent_final_ping = true;
+ client.write("PING");
+ client.end();
+ }
+ });
+
+ client.addListener("close", function () {
+ assert.equal(N+1, count);
+ assert.equal(true, sent_final_ping);
+ tests_run += 1;
+ });
+}
+
+
+var have_tls;
+try {
+ var dummy_server = net.createServer();
+ dummy_server.setSecure();
+ have_tls=true;
+} catch (e) {
+ have_tls=false;
+}
+
+if (have_tls) {
+ var caPem = fs.readFileSync(common.fixturesDir+"/test_ca.pem");
+ var certPem = fs.readFileSync(common.fixturesDir+"/test_cert.pem");
+ var keyPem = fs.readFileSync(common.fixturesDir+"/test_key.pem");
+
+ /* All are run at once, so run on different ports */
+ tlsTest(common.PORT, "localhost", caPem, keyPem, certPem);
+ tlsTest(common.PORT+1, null, caPem, keyPem, certPem);
+
+ process.addListener("exit", function () {
+ assert.equal(2, tests_run);
+ });
+} else {
+ console.log("Not compiled with TLS support -- skipping test");
+ process.exit(0);
+}
diff --git a/test/disabled/test-net-tls.js b/test/disabled/test-net-tls.js
new file mode 100644
index 000000000..ce9f98736
--- /dev/null
+++ b/test/disabled/test-net-tls.js
@@ -0,0 +1,103 @@
+common = require("../common");
+assert = common.assert
+var fs = require('fs');
+var net = require('net');
+
+var have_openssl;
+try {
+ var crypto = require('crypto');
+ have_openssl=true;
+} catch (e) {
+ have_openssl=false;
+ console.log("Not compiled with OPENSSL support.");
+ process.exit();
+}
+
+var caPem = fs.readFileSync(common.fixturesDir+"/test_ca.pem", 'ascii');
+var certPem = fs.readFileSync(common.fixturesDir+"/test_cert.pem", 'ascii');
+var keyPem = fs.readFileSync(common.fixturesDir+"/test_key.pem", 'ascii');
+
+try{
+ var credentials = crypto.createCredentials({key:keyPem, cert:certPem, ca:caPem});
+} catch (e) {
+ console.log("Not compiled with OPENSSL support.");
+ process.exit();
+}
+
+var testData = "TEST123";
+var serverData = '';
+var clientData = '';
+var gotSecureServer = false;
+var gotSecureClient = false;
+
+var secureServer = net.createServer(function (connection) {
+ var self = this;
+ connection.setSecure(credentials);
+ connection.setEncoding("UTF8");
+
+ connection.addListener("secure", function () {
+ gotSecureServer = true;
+ var verified = connection.verifyPeer();
+ var peerDN = JSON.stringify(connection.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT",'
+ + '"fingerprint":"2A:7A:C2:DD:E5:F9:CC:53:72:35:99:7A:02:5A:71:38:52:EC:8A:DF"}');
+
+ });
+
+ connection.addListener("data", function (chunk) {
+ serverData += chunk;
+ connection.write(chunk);
+ });
+
+ connection.addListener("end", function () {
+ assert.equal(serverData, testData);
+ connection.end();
+ self.close();
+ });
+});
+secureServer.listen(common.PORT);
+
+secureServer.addListener("listening", function() {
+ var secureClient = net.createConnection(common.PORT);
+
+ secureClient.setEncoding("UTF8");
+ secureClient.addListener("connect", function () {
+ secureClient.setSecure(credentials);
+ });
+
+ secureClient.addListener("secure", function () {
+ gotSecureClient = true;
+ var verified = secureClient.verifyPeer();
+ var peerDN = JSON.stringify(secureClient.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT",'
+ + '"fingerprint":"2A:7A:C2:DD:E5:F9:CC:53:72:35:99:7A:02:5A:71:38:52:EC:8A:DF"}');
+
+ secureClient.write(testData);
+ secureClient.end();
+ });
+
+ secureClient.addListener("data", function (chunk) {
+ clientData += chunk;
+ });
+
+ secureClient.addListener("end", function () {
+ assert.equal(clientData, testData);
+ });
+});
+
+process.addListener("exit", function () {
+ assert.ok(gotSecureServer, "Did not get secure event for server");
+ assert.ok(gotSecureClient, "Did not get secure event for clientr");
+});