summaryrefslogtreecommitdiff
path: root/t/full-enigma.t
blob: 872b199ff0e0bf2b6546c27cc4b4dedb17fc8de1 (plain)
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
#!perl 
use DAKKAR::p 'test';
use Test::Enigmatic;
use Enigmatic::Machine;
 
sub real_machine {
    return  Enigmatic::Machine->new({
        reflector => 'B_thin',
        rotors => [ 'I''IV''II''Beta' ],
        plugboard => 'AT BL DF GJ HM NW OP QY RZ VX',
        ring_settings => [ 'V''A''A''A' ],
        rotor_positions => [ 'A''N''J''V' ],
    });
}
 
my $plaintext = <<'EOPLAIN';
VONV ONJL OOKS JHFF TTTE
INSE INSD REIZ WOYY QNNS
NEUN INHA LTXX BEIA NGRI
FFUN TERW ASSE RGED RUEC
KTYW ABOS XLET ZTER GEGN
ERST ANDN ULAC HTDR EINU
LUHR MARQ UANT ONJO TANE
UNAC HTSE YHSD REIY ZWOZ
WONU LGRA DYAC HTSM YSTO
SSEN ACHX EKNS VIER MBFA
ELLT YNNN NNNO OOVI ERYS
ICHT EINS NULL
EOPLAIN
 
my $ciphertext = <<'EOCIPHER';
NCZW VUSX PNYM INHZ XMQX
SFWX WLKJ AHSH NMCO CCAK
UQPM KCSM HKSE INJU SBLK
IOSX CKUB HMLL XCSJ USRR
DVKO HULX WCCB GVLI YXEO
AHXR HKKF VDRE WEZL XOBA
FGYU JQUK GRTV UKAM EURB
VEKS UHHV OYHA BCJW MAKL
FKLM YFVN RIZR VVRT KOFD
ANJM OLBG FFLE OPRG TFLV
RHOW OPBE KVWM UQFM PWPA
RMFH AGKX IIBG
EOCIPHER
 
Test::Enigmatic::test_full_machine(
    \&real_machine,
    $plaintext,
    $ciphertext);
 
done_testing();