Quellcode durchsuchen

Typex: random rotors

s2224834 vor 6 Jahren
Ursprung
Commit
1b1a3c261d
2 geänderte Dateien mit 17 neuen und 10 gelöschten Zeilen
  1. 16 9
      src/core/lib/Typex.mjs
  2. 1 1
      src/core/operations/Typex.mjs

+ 16 - 9
src/core/lib/Typex.mjs

@@ -9,19 +9,26 @@ import OperationError from "../errors/OperationError";
 import * as Enigma from "../lib/Enigma";
 import Utils from "../Utils";
 
+/**
+ * A set of example Typex rotors. No Typex rotor wirings are publicly available, so these are
+ * randomised.
+ */
 export const ROTORS = [
-    {name: "1", value: "QWECYJIBFKMLTVZPOHUDGNRSXA<ACEINQTVY"},
-    {name: "2", value: "AJDKSIRUXBLHWTMCQGZNPYFVOE<ACEINQTVY"},
-    {name: "3", value: "BDFHJLCPRTXVZNYEIWGAKMUSQO<ACEINQTVY"},
-    {name: "4", value: "ESOVPZJAYQUIRHXLNFTGKDCMWB<ACEINQTVY"},
-    {name: "5", value: "VZBRGITYUPSDNHLXAWMJQOFECK<ACEINQTVY"},
-    {name: "6", value: "FVPJIAOYEDRZXWGCTKUQSBNMHL<ACEINQTVY"},
-    {name: "7", value: "KZGLIUCJEHADXRYWVTNSFQPMOB<ACEINQTVY"},
-    {name: "8", value: "ZLVGOIFTYWUEPMABNCXRQSDKHJ<ACEINQTVY"},
+    {name: "Example 1", value: "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"},
+    {name: "Example 2", value: "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"},
+    {name: "Example 3", value: "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"},
+    {name: "Example 4", value: "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"},
+    {name: "Example 5", value: "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"},
+    {name: "Example 6", value: "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"},
+    {name: "Example 7", value: "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"},
+    {name: "Example 8", value: "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"},
 ];
 
+/**
+ * An example Typex reflector. Again, randomised.
+ */
 export const REFLECTORS = [
-    {name: "Standard", value: "MO VW GL JX TZ AY EQ IP KN DH CU FS BR"},
+    {name: "Standard", value: "AN BC FG IE KD LU MH OR TS VZ WQ XJ YP"},
 ];
 
 // Special character handling on Typex keyboard

+ 1 - 1
src/core/operations/Typex.mjs

@@ -23,7 +23,7 @@ class Typex extends Operation {
 
         this.name = "Typex";
         this.module = "Default";
-        this.description = "Encipher/decipher with the WW2 Typex machine.<br><br>The standard set of rotors are provided. Later Typexes had a plugboard to configure the reflector: to configure this, enter a string of connected pairs of letters, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F (you'll need to connect every letter). These Typexes also have an input plugboard: unlike Enigma's plugboard, it's not restricted to pairs, so it's entered like a rotor. To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.";
+        this.description = "Encipher/decipher with the WW2 Typex machine.<br><br>Typex rotors were changed regularly and none are public: a random example set are provided. Later Typexes had a reflector which could be configured with a plugboard: to configure this, enter a string of connected pairs of letters in the reflector box, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F (you'll need to connect every letter). These Typexes also have an input plugboard: unlike Enigma's plugboard, it's not restricted to pairs, so it's entered like a rotor (without stepping). To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.";
         this.infoURL = "https://wikipedia.org/wiki/Typex";
         this.inputType = "string";
         this.outputType = "string";