minor changes, included mini tutorial, version inc

This commit is contained in:
zefie
2021-07-15 00:21:35 -04:00
parent 1b4809f70b
commit a0c8299a31
9 changed files with 49 additions and 57 deletions

View File

@@ -1,23 +0,0 @@
# wtv minisrv node.js
The ***wtv minisrv***, or "***hacktv_updsrv***" project is an ambitious node.js project to have a mini WebTV server that supports wtv-encryption for advanced level access.
This open source server is not yet ready for public use, but is available for anyone wanting to try to help advance it.
Current status:
- Can encrypt and decrypt SECURE ON and arbitrary encrypted data
- Can handle psuedo encryption (box sends SECURE ON but does not encrypt)
- Can handle client "relogin" and "reconnect" events
Current issues:
- Probably can't handle more than one box at a time
- Power cycling box and re-connecting via ConnectSetup may invalidate encryption until server is restarted
- wtv-update:/update does not yet function as intended
Feature Todo:
- Test and enable flashrom flashing functionality (at least for LC2 and higher)
- Proper wtv-star (generic service error page) support.
- (maybe) implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter)
- (maybe) enable "internet mode" (let user outside of minisrv)
- (maybe) wtvchat stuff
- (probably not) url tokenizer

View File

@@ -1,2 +0,0 @@
var wtvtest = new WTVSec();
wtvtest.Test();

View File

@@ -7,8 +7,11 @@ Content-type: text/html
<head>
<meta
http-equiv=refresh
content="0; url=client:showalert?message=Successfully%20expired%20service%20URL%20cache&buttonlabel1=Okay&buttonaction1=wtv-home%3A%2Fhome%3F"
content="1; url=wtv-home:/home?"
>
<body bgcolor="black">
<body bgcolor="black" text="gold" link="gold" vlink="gold" alink="gold">
Successfully expired service URL cache<br>
Any previously cached pages should be reloaded from the network.<br><br>
<a href="wtv-home:/home">Go Home</a>
</body>
</html>

View File

@@ -12,13 +12,10 @@ var WTVSec = require('./wtvsec.js');
var zdebug = false;
var pubip = "192.168.11.8";
var ports = [];
var service_vault_dir = __dirname + "/ServiceVault";
//pubip = getPublicIP();
function getServiceString(service) {
if (service === "all") {
var out = "";
@@ -59,22 +56,6 @@ function setSessionData(ssid, key, value) {
}
function getPublicIP() {
var options = {
host: 'www.planeptune.org',
path: '/ip.php'
}
var request = https.get(options, function (res) {
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
return data;
});
});
}
function getFile(path, deps = false) {
var dir = null;
if (deps) dir = __dirname + "/ServiceDeps/";
@@ -660,11 +641,16 @@ async function handleSocket(socket) {
var z_title = "zefie's wtv minisrv v" + require('./package.json').version;
console.log("**** Welcome to " + z_title + " ****");
console.log(" *** Reading service configuration...");
var services_configured = JSON.parse(fs.readFileSync(__dirname + "/services.json"));
try {
var services_configured = JSON.parse(fs.readFileSync(__dirname + "/services.json"));
} catch (e) {
throw("ERROR: Could not read services.json", e);
}
var service_ip = services_configured.config.service_ip;
Object.keys(services_configured.services).forEach(function (k) {
services_configured.services[k].name = k;
if (!services_configured.services[k].host) {
services_configured.services[k].host = pubip;
services_configured.services[k].host = service_ip;
}
if (services_configured.services[k].port) {
ports.push(services_configured.services[k].port);
@@ -700,5 +686,5 @@ bind_ports.forEach(function (v) {
});
initstring = initstring.substring(0, initstring.length - 2);
console.log(" * Started server on ports " + initstring + "... Public IP is " + pubip);
console.log(" * Started server on ports " + initstring + "... Service IP is " + service_ip);

View File

@@ -42,8 +42,7 @@
<Content Include="ServiceVault\wtv-star\images\WebTVLogoJewel.gif" />
<Content Include="ServiceVault\wtv-tricks\blastcache.txt" />
<Content Include="ServiceVault\wtv-tricks\go-offline.js" />
<Content Include="ServiceVault\wtv-update\content\diskmaps\htvupdate-g1.txt" />
<Content Include="ServiceVault\wtv-update\content\diskmaps\htvupdate-m1.txt" />
<Content Include="ServiceVault\wtv-update\content\diskmaps\htvupdate.txt" />
<Content Include="ServiceVault\wtv-update\content\htvupdate\Games\cSetup.html" />
<Content Include="ServiceVault\wtv-update\content\htvupdate\Games\Games.html" />
<Content Include="ServiceVault\wtv-update\content\htvupdate\MattMan\Tricks\tricks.html" />
@@ -58,14 +57,12 @@
<Content Include="ServiceVault\wtv-head-waiter\finalize-security.js" />
<Content Include="ServiceVault\wtv-head-waiter\login-stage-two.js" />
<Content Include="ServiceVault\wtv-head-waiter\login.js" />
<Content Include="ServiceVault\wtv-head-waiter\test.js" />
<Content Include="ServiceVault\wtv-home\splash.txt" />
<Content Include="ServiceVault\wtv-log\log.js" />
<Content Include="wtvsec.js">
<SubType>Code</SubType>
</Content>
<Content Include="package.json" />
<Content Include="README.md" />
</ItemGroup>
<ItemGroup>
<Folder Include="ServiceVault\" />

View File

@@ -1,6 +1,6 @@
{
"name": "hacktv_updsrv",
"version": "0.5.2",
"version": "0.6.0",
"description": "hacktv_updsrv",
"main": "app.js",
"author": {

View File

@@ -1,4 +1,7 @@
{
"config": {
"service_ip": "192.168.11.8"
},
"services": {
"wtv-1800": {

View File

@@ -4,7 +4,7 @@ var crypto = require('crypto');
class WTVSec {
//initial_shared_key = CryptoJS.lib.WordArray.random(8);
initial_shared_key_b64 = "CC5rWmRUE0o=";
initial_shared_key_b64 = "CC5rWmRUE0o="; // You can change this but it doesn't mean much for security. Just make sure its static. 8 bytes base64 encoded.
initial_shared_key = null;
current_shared_key = null;
challenge_key = null;