-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuiltin_models.go
51 lines (48 loc) · 1.05 KB
/
builtin_models.go
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
package benigma
import (
"github.com/emedvedev/enigma"
)
var builtinModels = map[string]*enigma.Enigma{
"I": enigma.NewEnigma(
bundleRotors( //Rotors
[]string{"III", "II", "I"},
[]int{1, 1, 1},
[]string{"A", "A", "A"},
),
"B", //Reflector
[]string{}, //Plugboard
),
"M3": enigma.NewEnigma(
bundleRotors( //Rotors
[]string{"III", "II", "I"},
[]int{1, 1, 1},
[]string{"A", "A", "A"},
),
"B", //Reflector
[]string{}, //Plugboard
),
"M4": enigma.NewEnigma(
bundleRotors( //Rotors
[]string{"Beta", "III", "II", "I"},
[]int{1, 1, 1, 1},
[]string{"A", "A", "A", "A"},
),
"B-thin", //Reflector
[]string{}, //Plugboard
),
"IXE013": enigma.NewEnigma(
bundleRotors( //rotors
[]string{"II", "Beta", "VII"},
[]int{1, 2, 3},
[]string{"C", "L", "E"},
),
"B", //Reflector
[]string{"AB", "CD", "EF", "GH", "IJ", "KL", "MN", "OP", "QR", "ST", "UV", "WX", "YZ"}, //Plugboard
),
}
func builtinModelNames() (names []string) {
for k := range builtinModels {
names = append(names, k)
}
return names
}