From 664f77fe9c64bee723de04952d88f6cffdf5ab96 Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Sun, 15 Feb 2015 22:55:51 +0100 Subject: [PATCH] There is a bug in (I think) the turnover of the rotors. But I am working on that! --- app/enigmandroid.apk | Bin 48622 -> 48651 bytes .../de/vanitasvitae/enigmandroid/Rotor.java | 19 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/enigmandroid.apk b/app/enigmandroid.apk index 251effb5d03cbe180e821dcd501f3f84c99f3b28..7ce194a6ae8af178744a532784336bc0e569e632 100644 GIT binary patch delta 10150 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 delta 10150 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 JA|3yD{tuw(Bh>%^ diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/Rotor.java b/app/src/main/java/de/vanitasvitae/enigmandroid/Rotor.java index ddd0ecf..b3c218d 100644 --- a/app/src/main/java/de/vanitasvitae/enigmandroid/Rotor.java +++ b/app/src/main/java/de/vanitasvitae/enigmandroid/Rotor.java @@ -39,7 +39,9 @@ public class Rotor //Atributes of the rotor private Integer[] rotor; //choose one of rotor1-5 private Integer[] rrotor; //choose one of backwardsRotor1-5 - private int ringsetting; //TODO: Add functionality to this. + private int ringsetting; //http://people.physik.hu-berlin.de/~palloks/js/enigma/enigma-u_v20.html + //My fault? + private int turnOver; private int counter; private String name; private int type; @@ -60,6 +62,7 @@ public class Rotor this.rrotor = backwardsRotor1; this.counter = setting; this.name="I"; + this.turnOver = 17; //"Royal" this.type = 1; break; } @@ -69,6 +72,7 @@ public class Rotor this.rrotor = backwardsRotor2; this.counter = setting; this.name="II"; + this.turnOver = 5; //"Flags" this.type = 2; break; } @@ -78,6 +82,7 @@ public class Rotor this.rrotor = backwardsRotor3; this.counter = setting; this.name="III"; + this.turnOver = 22; //"Wave" this.type = 3; break; } @@ -87,6 +92,7 @@ public class Rotor this.rrotor = backwardsRotor4; this.counter = setting; this.name="IV"; + this.turnOver = 10; //"Kings" this.type = 4; break; } @@ -96,6 +102,7 @@ public class Rotor this.rrotor = backwardsRotor5; this.counter = setting; this.name="V"; + this.turnOver = 0; //"Above" this.type = 5; break; } @@ -136,8 +143,8 @@ public class Rotor */ public int encryptForward(int x) { - return this.rotor[(26+x)%26]; - } + return this.rotor[(26+x+ringsetting)%26]; + } //TODO: Verify "+ringsetting" /**encrypt in backward direction (coming from the reversing rotor) * @param x incoming character @@ -145,7 +152,7 @@ public class Rotor */ public int encryptBackward(int x) { - if(this.rrotor ==null) return this.rotor[(26+x)%26]; + if(this.rrotor == null) return this.rotor[(26+x+ringsetting)%26]; //TODO: Verify "+ringsetting" else return this.rrotor[(26+x)%26]; } @@ -172,7 +179,7 @@ public class Rotor */ public boolean isAtTurnoverPosition() { - return this.getCounter() == this.getRingsetting(); //Todo: this ist still wrong. + return this.getCounter() == this.turnOver; } /** @@ -185,7 +192,7 @@ public class Rotor } /** - * Return ringsettings of the rotor (TODO: Find out, how ringsetting was implemented in original enigma. Wikipedia is not enough :/ + * Return ringsettings of the rotor * @return ringsetting */ public int getRingsetting()