remove 'psuedo-encryption' crap

- was really just the caused by an early minisrv bug
This commit is contained in:
zefie
2021-08-10 20:20:52 -04:00
parent 59be925516
commit 5d07f02490
2 changed files with 29 additions and 48 deletions

View File

@@ -5,12 +5,7 @@ wtv-expire-all: wtv-flashrom:
Content-type: text/html` Content-type: text/html`
if (request_headers.query.url) headers += "\nwtv-visit: " + request_headers.query.url; if (request_headers.query.url) headers += "\nwtv-visit: " + request_headers.query.url;
var cryptstatus = ((socket_sessions[socket.id].secure === true) ? "Encrypted" : "Not Encrypted")
if (ssid_sessions[socket.ssid].get('box-does-psuedo-encryption')) {
var cryptstatus = "<a href='client:showalert?message=Your%20WebTV%20Unit%20sent%20us%20a%20request%20for%20SECURE%20ON%2C%20but%20did%20not%20encrypt%20any%20data%2C%20nor%20will%20accept%20it.%20However%2C%20we%20send%20the%20wtv-encryption%20flag%20to%20roll%20with%20it%2C%20enabling%20%27psuedo-encryption%27.%20Nothing%20is%20encrypted%2C%20but%20the%20box%20trusts%20us.%20This%20will%20probably%20go%20away%20if%20you%20reload%20or%20change%20pages.&buttonaction1=client:donothing&buttonlabel1=Oh%2C%20okay...'>Psuedo-encrypted</a>";
} else {
var cryptstatus = ((socket_sessions[socket.id].secure === true) ? "Encrypted" : "Not Encrypted")
}
var comp_type = shouldWeCompress(socket.ssid,'text/html'); var comp_type = shouldWeCompress(socket.ssid,'text/html');
var compstatus = "uncompressed"; var compstatus = "uncompressed";

View File

@@ -345,12 +345,7 @@ async function processURL(socket, request_headers) {
} }
var reqverb = "Request"; var reqverb = "Request";
if (request_headers.encrypted || request_headers.secure) { if (request_headers.encrypted || request_headers.secure) reqverb = "Encrypted " + reqverb;
reqverb = "Encrypted " + reqverb;
}
if (request_headers.psuedo_encryption) {
reqverb = "Psuedo-encrypted " + reqverb;
}
if (ssid != null) { if (ssid != null) {
console.log(" * " + reqverb + " for " + request_headers.request_url + " from WebTV SSID " + (await wtvshared.filterSSID(ssid)), 'on', socket.id); console.log(" * " + reqverb + " for " + request_headers.request_url + " from WebTV SSID " + (await wtvshared.filterSSID(ssid)), 'on', socket.id);
} else { } else {
@@ -1039,46 +1034,37 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
} }
var enc_data = CryptoJS.enc.Hex.parse(data_hex.substring(header_length * 2)); var enc_data = CryptoJS.enc.Hex.parse(data_hex.substring(header_length * 2));
if (enc_data.sigBytes > 0) { if (enc_data.sigBytes > 0) {
if (isUnencryptedString(enc_data.toString(CryptoJS.enc.Latin1), (!skipSecure && !encryptedRequest))) {
// some builds (like our targeted 3833), send SECURE ON but then unencrypted headers // SECURE ON and detected encrypted data
if (zdebug) console.log(" # Psuedo-encrypted Request (SECURE ON)", "on", socket.id); var dec_data = CryptoJS.lib.WordArray.create(socket_sessions[socket.id].wtvsec.Decrypt(0, enc_data))
// don't actually encrypt output if (!socket_sessions[socket.id].secure_buffer) socket_sessions[socket.id].secure_buffer = "";
headers.psuedo_encryption = true; socket_sessions[socket.id].secure_buffer += dec_data.toString(CryptoJS.enc.Hex);
ssid_sessions[socket.ssid].set("box-does-psuedo-encryption", true); var secure_headers = null;
socket_sessions[socket.id].secure = false; if (headers['request']) {
var secure_headers = await processRequest(socket, enc_data.toString(CryptoJS.enc.Hex), true, true); if (headers['request'] == "GET") {
} else { if (socket_sessions[socket.id].secure_buffer.indexOf("0d0a0d0a") || socket_sessions[socket.id].secure_buffer.indexOf("0a0a")) {
// SECURE ON and detected encrypted data secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true);
ssid_sessions[socket.ssid].set("box-does-psuedo-encryption", false);
var dec_data = CryptoJS.lib.WordArray.create(socket_sessions[socket.id].wtvsec.Decrypt(0, enc_data))
if (!socket_sessions[socket.id].secure_buffer) socket_sessions[socket.id].secure_buffer = "";
socket_sessions[socket.id].secure_buffer += dec_data.toString(CryptoJS.enc.Hex);
var secure_headers = null;
if (headers['request']) {
if (headers['request'] == "GET") {
if (socket_sessions[socket.id].secure_buffer.indexOf("0d0a0d0a") || socket_sessions[socket.id].secure_buffer.indexOf("0a0a")) {
secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true);
}
} else {
secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true);
} }
} else { } else {
secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true); secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true);
}
if (!secure_headers) return;
delete socket_sessions[socket.id].secure_buffer;
if (zdebug) console.log(" # Encrypted Request (SECURE ON)", "on", socket.id);
if (zshowheaders) console.log(secure_headers);
if (!secure_headers.request) {
socket_sessions[socket.id].secure = false;
var errpage = doErrorPage(400);
headers = errpage[0];
data = errpage[1];
sendToClient(socket, headers, data);
return;
} }
} else {
secure_headers = await processRequest(socket, socket_sessions[socket.id].secure_buffer, true, true);
} }
if (!secure_headers) return;
delete socket_sessions[socket.id].secure_buffer;
if (zdebug) console.log(" # Encrypted Request (SECURE ON)", "on", socket.id);
if (zshowheaders) console.log(secure_headers);
if (!secure_headers.request) {
socket_sessions[socket.id].secure = false;
var errpage = doErrorPage(400);
headers = errpage[0];
data = errpage[1];
sendToClient(socket, headers, data);
return;
}
// Merge new headers into existing headers object // Merge new headers into existing headers object
Object.keys(secure_headers).forEach(function (k) { Object.keys(secure_headers).forEach(function (k) {
headers[k] = secure_headers[k]; headers[k] = secure_headers[k];