-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExampleSimple.php
More file actions
103 lines (94 loc) · 10.3 KB
/
ExampleSimple.php
File metadata and controls
103 lines (94 loc) · 10.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
/**
* @author Rafal Masiarek <rafalmasiarek@hotmail.com>
* @author Mustache Lab <kontakt@mustachelab.pl>
* @copyright Copyright (c) 2015, Rafal Masiarek
*
* @version 2.0
*/
/*
`.:'+###++++++#++##+;:.`
`:+##+++++++++++++++++++++++++++##+:`
:+##+++++++++++++#++++++++++++++++++++++++##;`
;##+++++++++++++++++#+++++++++#++++++++++++++++#++##'`
,###++#++++++++++####+++';::,,,::;'+++###+++++++++++++++++##:
`:#+++++++++++####+;, .;'####++#++#++++++##'`
;@++++++++#++##': ,;###+##+++++++#+#;
;@++++++++++##'. `:##++++#+++++++@:
.##+++++++++#+. `+#++++#++++++#+`
'#++#+++#++#'` .:''+#####+, ;#+++++++++++#,
.#+#+++++++#'` `'### .@+++++++++++++#' @',` ;##+++++++++#;
;@++++++++##. @++++# ++++++++++++++++++#` #+++#@+: `+#++++++++##+
+#++++++++#; #+#++# :+++#+++++++++++++++# ##+++++++##;` ,#+++++++#++#
`##+++++##+#. ##+++# #+++++++#+;:'#++++++++ #+++++++++++##+. `+####++++#+#`
.##+++++#+#+` `:++;, #++++# @#++++#, ;++++++# #+++++++++++++++##, '#+++++++#+#`
.@+#++++++#+ `'#++++++#; #++++# @+++++' #+++++# #+++++;#+++++++++++#' ;#+++++++++#`
.#++++++++#+ ;@+++++++++++# #++++# @+++++' #+++++# #++++#`.#++++++#+++++# ;#++++++++++
.#+++++#+++# `##++++++++++++++. #++++# @+++++' #+++++# #++++# .+++++++++++++# '#++++++++#+
#++#++++++#` @++#++++++++++++++# #++++# @+++++' ```` #++++# +#+++'#+++++++' ++++++++++#:
++++++++++#, `. #+++++##. `+#+++++@ #++++# @+++++' #++++# ,++++' ++#+++++ ` #++#++++++#`
:#++++++++#' `#+, #++++# ++++++@ #++++# @+++++' #++++# :++++' #++++++ +++` .#++++++++++
#+++++++#+# +#++, #++++# :++++#@ #++++# @#++++' #++++# :++++; ,+++++' ;++##+ :#++++++++#.
,#+++++++++; ;#+#++, @#+++# :+++++@ #++++# @+++++' #++++# :++++; `#++++' #+++++#+ #+++++++++'
+++++++++##` ,#+#++++: #++++# ,+++++# #++++# @+++++' #++++# ;++++: #++++' #++#+++#+#' ,#++++++#+#
#++++++++++ #+++++++#; #++++# ,+++++# #++++# @+++++' #++++# ;++++: #++++; ,++++#++++++#' +++++++++#
##+++++++#. '#++++#+#; #++++# ,+++++# #++++# @+++++' #++++# ;++++, `#++++; #++++ ;#++#+++# .#+++++++#
#++++++++# `#++++++#; ##+++# .+++++# #++++# @+++++' #++++# ;++++, `#++++: .+#++# ;+#+++# #+++++++#
'++++++++@ :#++#+++# +++++# .+++++# #++++# @+++++; #++++# '++++, `+++++: ##+++, @+++++ :#++++++#
`++++++++# +++++++#` +++++# `+++++# #++++# @+++++; #++++# '++++. `+++++, #+++# @+++++ ;#++++++++
#+++++++++#` #++++++ +++++# `+++++# #++++# @+++++; #++++# '++++. `+++++. .++++# #+++++ #++++++++++`
`+++++++++++# #++++' '++++# `+++++# #++++# @+++++; #++++# '++++. `+++++. '++++' #++++' #+++++++++++#
+++++++++++++; #++++; '++++# `+++++# #++++# @+++++; #++++# '++++` `+++++` +++++` #++++' :+#++++++++++#
#++++#'#+++++# #++++; '++++# `+++++# #++++# @+++++; #++++# +++++` `+++++` #++++ #++++; #++#++##+#++++;
++++# ;++++# #++++',,,,::` ;++++# `+++++# #++++# @+++++; ............. #++++# +++++` .+++++ #+++# +++++: #++++ ;+++++#
+++++ #++++ +#++++++++++. ;++++# #++++# #++++# @+++++; ##++++++++#++ #++++# ++++#` .+++++ #+++# +++++: `#+++# #+++++
++++# .+++#+ ++++++++++++, :++++# #++++# #++++# @+++++; @++++++++++++ #++++# ++++#` .+++++ +++++ '#+++++, `#+++# .#+++++
#++++#`:#++++# '+++++++++++: :++++# #++++# #++++# @+++++; @++++++++++++ #++++# ++++#` ,++++# .#++++ :#++#+++++. #+++++ .#++++++
++#+++++++++#+ ;#++++++++++: ,+++++` #++++# #++++# #+++++; @++++#++++++' #++++# ++++# ,++++# :#++++#++++++++++. #+#++++++++++++
;#++++++++++#` ;+++++ .+++++` #++++# ##+++# #+++++; ` #++++' #++++# ++++# :++++# ;++++++++++++++++` .+++++++++++++.
##+++++++++; :++++' .+++++` #++++# #++++# #+++++; #++++' #++++# #+++# :++++# '++++++++#':++++#` +++++++++++##
+++++++++#: ,++++' `+++++` #++++# #++++# #+++++; #++++' #++++# #+++# :++++# '++++++#; :++++#` +++++++++++:
#++++++# ,++++#` `+++++` #++++# #++++# #+++++; #++++' #++++# #+++# ;++++# '++++#, ;++++# +#++++++##
++++++++ .+++++++ +++++. #++++# +++++#` #+++++; #++#+; #++++# #+++# ;++++# +++++ ;++++# #+#++++++#
.###++++# .#++++#+#+` +++++. #+++++ +++++#` #+++++: #++++; #++++# #+++# '++++# +++++` ;++++# ;+++++++++#
`#++++#+#, ##+++++++@: #++++, #+++++ +++++#` #+++++: #++++; #++++# #+++# '++++# +++++` ;++#+# `@#++++++++#
#++++++++ .#+#++++++#@' #++++, #+++++ +++++#` #+++++: #++++; #++++# #+++# '++++# +++++` ;++#+ +++++++++++#
#++++++##, .#++++++#++ #++++: #+++++ '++++#` #+++++: #++++; #+++++ #+++# +++++# +++++` '#; ,#++#++++++#:
,#+++++++# `+#+++++#` #++++: #+++++ '++++#` ++#+++: #++++: #+++++ @+++# +++++# #++++` . `#+#++#+++++#
++++++++#' :##+++. #++++: #+++++ '++++#` ++++++: #++++: #+++++ @+++# +++++# #++++. #++++++++++#:
`#+#+++++#' `+#+, #++++; #+++++ ;++++#` ++++++: #++++: #++++' @+++# +++++# #+++#, +++#++++#++#+
,#++#++++#; ;: #++++; #+++++ ;+++++` ++++++: #++++: #++++' @+++# +++++# #+#; +#++++++++++#`
;#+++++++#; @++++' #+++++ :+++++` ++++++: #++++, #++++' @+++# #+++++ '` +#+++++++#++@.
;#+++++++#+ .+#+' #+++++ :+++++` ++++++, #++++, #++++; @+++# #+#+## +#++++++++++#:
;#++#+#++##. ,+ #+++#+ :+++++` ++++++, #++++, #++++; @+#+# ###, .#+++++++++++#;
;#++#+++++#' #+++++` ,+++++` ++++++# ;+++#+. #++++: #+++# . ;#+++++++++++#;
,@+#++++++##, @#++++` ,+++++. +++++++#:.```,#++++#+` #++++: #+#@+ .+#+++++++++###;
.#+##++++++#+, ,'@+` ,+#+++. ,+++++++++###+++++++# #++#+: '. ;#++++++++++++@:
;#+++++#+++#+: ,+++++. #++++++++#+++++++++. #+##'` ;##+#++++++++++#.
.##+++++++++##'` `'###. #+++++++++#++++++' ` `'#+++++++++++++#'
:##+#++++++++##;` ,#++++++++++++#: .##+++++++++++++##.
;@+++++++++++###;. .........` ,+##++++#+++++++++#:
:@+++++++++++++###;, ,;+##+++++++++#+++++@,
.###+#+++++++++++###++':` .:'+###++++++++++++#+++#+.
,+##++++++++++#+++++++######++++++######+++#+++#++++++++++#+#+:
,'##+#+++++++++++++++++++++++++++++++++++++++++++++##+:
,'@#+++++++++++++++++++++++++++++++++++++##+:`
*/
declare(strict_types=1);
use JulienBoudry\EnigmaMachine\{Enigma, EnigmaModel, Letter, ReflectorType, RotorConfiguration, RotorPosition, RotorType};
require_once 'vendor/autoload.php';
$rotorsConfiguration = new RotorConfiguration(
p1: RotorType::I,
p2: RotorType::II,
p3: RotorType::III,
ringstellungP1: Letter::B,
);
$enigma = new Enigma(EnigmaModel::WMLW, $rotorsConfiguration, ReflectorType::B);
$enigma->setPosition(RotorPosition::P1, Letter::M);
$enigma->plugLetters(Letter::A, Letter::C);
$enigma->plugLetters(Letter::B, Letter::Z);
$enigma->unplugLetters(Letter::A);
$l = Letter::A;
echo 'before: ' . $enigma->getPosition(RotorPosition::P3)->toChar() . ' ' . $enigma->getPosition(RotorPosition::P2)->toChar() . ' ' . $enigma->getPosition(RotorPosition::P1)->toChar() . "\n";
echo $l->toChar() . '->' . $enigma->encodeLetter($l)->toChar() . "\n";
echo 'after: ' . $enigma->getPosition(RotorPosition::P3)->toChar() . ' ' . $enigma->getPosition(RotorPosition::P2)->toChar() . ' ' . $enigma->getPosition(RotorPosition::P1)->toChar() . "\n";