@ondoher/enigma 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -88,9 +88,22 @@ export const enigmaData = {
|
|
|
88
88
|
key: 'RPR',
|
|
89
89
|
encoded: 'PBQOMEWLLMJFBXKPZNBHRGLUGVHJBXYPSEACOXOTBQRWVTPVVYHLLDOCQQKIWVAMJNFADSUNAVMJGJIBMUGBWWRKJBZNHVELOGZHTISLTUWS',
|
|
90
90
|
decoded: 'VERWALTUNGSAMTREICHSGERICHTARBEITSLAGERNICHTAUFSCHLAGENVCNSTDMQWZVGNVMBCPDGKPFQZWTRLDMFNGHSRDTFZGLDKCVLMNHGF',
|
|
91
|
-
|
|
92
91
|
}
|
|
93
|
-
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
source: 'https://www.cryptomuseum.com/crypto/enigma/msg/p1030681.htm',
|
|
95
|
+
model: 'M4',
|
|
96
|
+
setup: {
|
|
97
|
+
reflector: 'Thin-C',
|
|
98
|
+
rotors: ['Beta', 'V', 'VI', 'VIII'],
|
|
99
|
+
ringSettings: 'EPEL',
|
|
100
|
+
plugs: 'AE BF CM DQ HU JN LX PR SZ VW'
|
|
101
|
+
},
|
|
102
|
+
message: {
|
|
103
|
+
key: 'CDSZ',
|
|
104
|
+
encoded: 'LANOTCTOUARBBFPMHPHGCZXTDYGAHGUFXGEWKBLKGJWLQXXTGPJJAVTOCKZFSLPPQIHZFXOEBWIIEKFZLCLOAQJULJOYHSSMBBGWHZANVOIIPYRBRTDJQDJJOQKCXWDNBBTYVXLYTAPGVEATXSONPNYNQFUDBBHHVWEPYEYDOHNLXKZDNWRHDUWUJUMWWVIIWZXIVIUQDRHYMNCYEFUAPNHOTKHKGDNPSAKNUAGHJZSMJBMHVTREQEDGXHLZWIFUSKDQVELNMIMITHBHDBWVHDFYHJOQIHORTDJDBWXEMEAYXGYQXOHFDMYUXXNOJAZRSGHPLWMLRECWWUTLRTTVLBHYOORGLGOWUXNXHMHYFAACQEKTHSJW',
|
|
105
|
+
decoded: 'KRKRALLEXXFOLGENDESISTSOFORTBEKANNTZUGEBENXXICHHABEFOLGELNBEBEFEHLERHALTENXXJANSTERLEDESBISHERIGXNREICHSMARSCHALLSJGOERINGJSETZTDERFUEHRERSIEYHVRRGRZSSADMIRALYALSSEINENNACHFOLGEREINXSCHRIFTLSCHEVOLLMACHTUNTERWEGSXABSOFORTSOLLENSIESAEMTLICHEMASSNAHMENVERFUEGENYDIESICHAUSDERGEGENWAERTIGENLAGEERGEBENXGEZXREICHSLEITEIKKTULPEKKJBORMANNJXXOBXDXMMMDURNHFKSTXKOMXADMXUUUBOOIEXKP'
|
|
106
|
+
}
|
|
94
107
|
}
|
|
95
108
|
],
|
|
96
109
|
sampleVerifiedMessages: [
|
|
@@ -136,7 +149,7 @@ export const enigmaData = {
|
|
|
136
149
|
reflector: 'B'
|
|
137
150
|
},
|
|
138
151
|
message: {
|
|
139
|
-
|
|
152
|
+
key: 'OEC',
|
|
140
153
|
encoded: 'WCOJLTOXJZSYRDRGPLWJJOXWFCCISIRBMEHOKYWDFNJFWXCWATBJJTJLTMEQMWBIFXVIBJJOPAYKSUZIFATKZLMMVHNIYOPHBYKBAAHCYPKELSEWGKBHAHROMIGPBRYQXFCRJGUXWHFKBGTECDZDZLWVIHXKOFBXWJKETDLBLWKDTPPFUFKPKMROJHZMDDBHTKXSWMPNRYOVWEEUIMKYBGVSQJCFNBKKLVYZGKQQRTMMPTWJAMJQPGDCGHLUNQKSVWOAALTXS',
|
|
141
154
|
decoded: 'HOWDANGEROUSISITTHATTHISMANGOESLOOSEYETMUSTNOTWEPUTTHESTRONGLAWONHIMHESLOVEDOFTHEDISTRACTEDMULTITUDEWHOLIKENOTINTHEIRJUDGMENTBUTTHEIREYESANDWHERETISSOTHEOFFENDERSSCOURGEISWEIGHDBUTNEVERTHEOFFENCEAMINOTITHERIGHTOLDJEPHTHAHAHMYGOODLORDWHATHAVEISEENTONIGHTWHATGERTRUDE'
|
|
142
155
|
}
|
|
@@ -152,7 +165,7 @@ export const enigmaData = {
|
|
|
152
165
|
reflector: 'B'
|
|
153
166
|
},
|
|
154
167
|
message: {
|
|
155
|
-
|
|
168
|
+
key: 'HMP',
|
|
156
169
|
encoded: 'PDWBCHJGYPCHHUXNDVUGEZSYIUATENCFMYUIQPWIBBIELWXUNAWZNPVNKTBOJTHEDWDJJKQEOEPSMJBRGTWJGNURUXXEFYGJKUSHYPFZIDEWODCRKXFFLQKVLRLXNIACDAZEIFJXTLZXUSJRLQIDBJTIDUAFRJAYTSNFBJBXKVLASUZQMPCJJLCOZDMDIRPEJANYQCIUPLAPSMQMXXXHSMMNEDCSDDILZOWGPXVWKWKHKYLXEOYFHMNBPURLKA',
|
|
157
170
|
decoded: 'COMEHITHERGENTLEMENANDLAYYOURHANDSAGAINUPONMYSWORDNEVERTOSPEAKOFTHISTHATYOUHAVEHEARDSWEARBYMYSWORDAREYOUFAIRNOMOREBEDONEWESHOULDPROFANETHESERVICEOFTHEDEADTOSINGAREQUIEMANDSUCHRESTTOHERASTOPEACEPARTEDSOULSNIGGARDOFQUESTIONBUTOFOURDEMANDSMOSTFREEINHISREPLY'
|
|
158
171
|
}
|
|
@@ -13,7 +13,7 @@ describe('Enigma Test Cases', function() {
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
function messageLoop(messages, which, cb) {
|
|
16
|
-
messages.find(function(message) {
|
|
16
|
+
return messages.find(function(message) {
|
|
17
17
|
var enigma = new Enigma({
|
|
18
18
|
reflector: message.setup.reflector
|
|
19
19
|
});
|
|
@@ -26,6 +26,7 @@ describe('Enigma Test Cases', function() {
|
|
|
26
26
|
|
|
27
27
|
var toEncode = message.message[which]
|
|
28
28
|
var encoded = enigma.encode(message.message.key,toEncode);
|
|
29
|
+
|
|
29
30
|
return cb(message, encoded);
|
|
30
31
|
})
|
|
31
32
|
}
|
|
@@ -83,7 +84,7 @@ describe('Enigma Test Cases', function() {
|
|
|
83
84
|
var messages = enigmaData.sampleFieldMessages;
|
|
84
85
|
|
|
85
86
|
var fail = messageLoop(messages, 'decoded', function(message, decoded) {
|
|
86
|
-
return decoded !== message.encoded;
|
|
87
|
+
return decoded !== message.message.encoded;
|
|
87
88
|
})
|
|
88
89
|
|
|
89
90
|
expect(fail).toBeUndefined();
|
|
@@ -93,7 +94,7 @@ describe('Enigma Test Cases', function() {
|
|
|
93
94
|
var messages = enigmaData.sampleFieldMessages;
|
|
94
95
|
|
|
95
96
|
var fail = messageLoop(messages, 'encoded', function(message, decoded) {
|
|
96
|
-
return decoded !== message.decoded;
|
|
97
|
+
return decoded !== message.message.decoded;
|
|
97
98
|
})
|
|
98
99
|
|
|
99
100
|
expect(fail).toBeUndefined();
|
|
@@ -103,7 +104,7 @@ describe('Enigma Test Cases', function() {
|
|
|
103
104
|
var messages = enigmaData.sampleVerifiedMessages;
|
|
104
105
|
|
|
105
106
|
var fail = messageLoop(messages, 'decoded', function(message, decoded) {
|
|
106
|
-
return decoded !== message.encoded;
|
|
107
|
+
return decoded !== message.message.encoded;
|
|
107
108
|
})
|
|
108
109
|
|
|
109
110
|
expect(fail).toBeUndefined();
|
|
@@ -113,7 +114,7 @@ describe('Enigma Test Cases', function() {
|
|
|
113
114
|
var messages = enigmaData.sampleVerifiedMessages;
|
|
114
115
|
|
|
115
116
|
var fail = messageLoop(messages, 'encoded', function(message, decoded) {
|
|
116
|
-
return decoded !== message.decoded;
|
|
117
|
+
return decoded !== message.message.decoded;
|
|
117
118
|
})
|
|
118
119
|
|
|
119
120
|
expect(fail).toBeUndefined();
|
package/package.json
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ondoher/enigma",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Tools and documentation to help in building and testing an Enigma Machine simulator.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "jasmine"
|
|
8
8
|
},
|
|
9
9
|
"author": "Glenn Anderson",
|
|
10
10
|
"license": "MIT",
|
|
11
|
+
"keywords": ["enigma", "enigma-machine", "enigma machine", "simulation", "cryptography"],
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/Ondoher/enigma.git"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/Ondoher/enigma#readme",
|
|
11
17
|
"type": "module",
|
|
12
18
|
"devDependencies": {
|
|
13
19
|
"jasmine": "^4.5.0",
|