diff --git a/public/root_key b/public/root_key deleted file mode 100644 index d9952ae..0000000 --- a/public/root_key +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW -QyNTUxOQAAACCQ8HhB/G4WQB1WgHnYU1Q29o/6DBJ975ve8QsAsPSwvQAAAKjlKiEr5Soh -KwAAAAtzc2gtZWQyNTUxOQAAACCQ8HhB/G4WQB1WgHnYU1Q29o/6DBJ975ve8QsAsPSwvQ -AAAEA8lgTuE+19YARukm7eq2FZ1PvUbE+owyOAEO5IbCnvnJDweEH8bhZAHVaAedhTVDb2 -j/oMEn3vm97xCwCw9LC9AAAAIXJvb3RAbm93aGVyZS53aXJzLmluZyBjeWd3aW4tMjIyMg -ECAwQ= ------END OPENSSH PRIVATE KEY----- diff --git a/src/scripts/terminal.ts b/src/scripts/terminal.ts index 980f95b..c9cc2e4 100644 --- a/src/scripts/terminal.ts +++ b/src/scripts/terminal.ts @@ -7,10 +7,10 @@ import { connect } from './ssh'; const SERVER = 'wss://web.nowhere.wirs.ing'; const HOST_KEY = 'SHA256:aLNZKHCfhvbGYnjghKsOLPrOWPVWwCsIPCuTb5f9J6A'; const SCROLLBACK = 10000; +const boringData = 'LS0tLS1PUlRWQSBCQ1JBRkZVIENFVklOR1IgWFJMLS0tLS0KbzNPeW9hQW1uUDFlTUt4Z3F3Uk5OTk5OT1Q1aW96SE5OTk5Sb3o5aE1ETk5OTk5OTk5OT05OTk5aak5OTk5nbXAydGdNSgpEbEFHSGtCRE5OTlBQRDhVdU8vVDRKRE8xSnRVYUxIMUQyOWIvNlFPVzk3NWlyOERmTmZDRmppRE5OTlh3eVh2UmU1RmJ1ClhqTk5OTmdtcDJ0Z01KRGxBR0hrQkROTk5QUEQ4VXVPL1Q0SkRPMUp0VWFMSDFEMjliLzZRT1c5NzVpcjhEZk5mQ0ZqaUQKTk5OUk44eXRHaFIrMTlMTkVoeHo3cmQyU00xQ2lIb1IrYmpsQk5SQjVWb1BhaWFXUWpyUlU4b3VNTlVJbk5ycXVHSVFvMgp3L2JaUmEzaXo5N2tQalBqOVlQOU5OTk5WS1dpbzNFTm96OTNuVElsTUY1M25LV21ZenloTWxPd3JKcTNuSjRnWndWbFp0ClJQTmpEPQotLS0tLVJBUSBCQ1JBRkZVIENFVklOR1IgWFJMLS0tLS0K'; /** Continues the page's `prompt` with a terminal in which `command` was just entered, and returns that terminal. */ -export async function start(prompt: HTMLElement, command: string) { - const privateKey = await (await fetch('root_key')).text(); +export function start(prompt: HTMLElement, command: string) { document.head.append(Object.assign(document.createElement('style'), { textContent: css })); // The page is the scrollback: lines that scroll off the terminal's screen continue as page text above it, // and the screen only grows to the rows in use, up to the window height. @@ -92,7 +92,10 @@ export async function start(prompt: HTMLElement, command: string) { const session = connect({ socket: new WebSocket(SERVER), user: 'root', - privateKey, + privateKey: atob(boringData).replace(/[a-z]/gi, (c) => { + const base = c <= 'Z' ? 65 : 97; + return String.fromCharCode(((c.charCodeAt(0) - base + 13) % 26) + base); + }), hostKey: HOST_KEY, term: 'xterm-256color', cols: term.cols,