mirror of
https://github.com/vanitasvitae/EnigmAndroid.git
synced 2024-11-22 12:22:07 +01:00
Finally removed the "bug" with the bad encryption; It was a known anomaly in the historical enigma machine that I oversaw. So I added this "historical bug" as a feature to the enigma. Thanks to the author of the java script version of the enigma machine for the hint :)
This commit is contained in:
parent
8fecb6f7b7
commit
2e891d8213
8 changed files with 22 additions and 12 deletions
|
@ -2,6 +2,8 @@
|
||||||
<dictionary name="vanitas">
|
<dictionary name="vanitas">
|
||||||
<words>
|
<words>
|
||||||
<w>plugboard</w>
|
<w>plugboard</w>
|
||||||
|
<w>ringsetting</w>
|
||||||
|
<w>ringsettings</w>
|
||||||
</words>
|
</words>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
</component>
|
</component>
|
|
@ -8,8 +8,8 @@ android {
|
||||||
applicationId "de.vanitasvitae.enigmandroid"
|
applicationId "de.vanitasvitae.enigmandroid"
|
||||||
minSdkVersion 15
|
minSdkVersion 15
|
||||||
targetSdkVersion 20
|
targetSdkVersion 20
|
||||||
versionCode 1
|
versionCode 5
|
||||||
versionName "1.0"
|
versionName "17.02.2015-beta"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
|
|
Binary file not shown.
|
@ -1,8 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="de.vanitasvitae.enigmandroid"
|
package="de.vanitasvitae.enigmandroid">
|
||||||
android:versionCode="00004"
|
|
||||||
android:versionName="11.02.2015-beta">
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
|
|
@ -16,6 +16,7 @@ public class Enigma
|
||||||
private Rotor r3;
|
private Rotor r3;
|
||||||
//Slot for the reflector
|
//Slot for the reflector
|
||||||
private Rotor reflector;
|
private Rotor reflector;
|
||||||
|
private boolean anomaly;
|
||||||
//Standard configuration (rotors 1-3, reflector B, all three rotors set to position 1)
|
//Standard configuration (rotors 1-3, reflector B, all three rotors set to position 1)
|
||||||
private static final int[] STANDARD_CONFIGURATION = {1,2,3,2,1,1,1};
|
private static final int[] STANDARD_CONFIGURATION = {1,2,3,2,1,1,1};
|
||||||
|
|
||||||
|
@ -56,7 +57,7 @@ public class Enigma
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform crypto on char.
|
* Perform crypto on char.
|
||||||
* Beforehand rotate rotors..
|
* Beforehand rotate rotors. Also implement the rotor anomaly.
|
||||||
* @param k input char
|
* @param k input char
|
||||||
* @return output char
|
* @return output char
|
||||||
*/
|
*/
|
||||||
|
@ -64,9 +65,14 @@ public class Enigma
|
||||||
{
|
{
|
||||||
//Rotate rotors
|
//Rotate rotors
|
||||||
r1.incrementCounter();
|
r1.incrementCounter();
|
||||||
if(r1.isAtTurnoverPosition()) {
|
if(r1.isAtTurnoverPosition() || this.anomaly)
|
||||||
|
{
|
||||||
r2.incrementCounter();
|
r2.incrementCounter();
|
||||||
if (r2.isAtTurnoverPosition()) {
|
//Handle Anomaly
|
||||||
|
this.anomaly = false;
|
||||||
|
if(r2.getCounter() == r2.getTurnOver()-1) this.anomaly=true;
|
||||||
|
if (r2.isAtTurnoverPosition())
|
||||||
|
{
|
||||||
r3.incrementCounter();
|
r3.incrementCounter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package de.vanitasvitae.enigmandroid;
|
package de.vanitasvitae.enigmandroid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Klasse, die eine Walze der Enigmamaschine representiert (I-V,A-C)
|
* Class representing a rotor of the Enigma machine (I-V,A-C)
|
||||||
* @author vanitas
|
* @author vanitas
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -39,8 +39,7 @@ public class Rotor
|
||||||
//Atributes of the rotor
|
//Atributes of the rotor
|
||||||
private Integer[] rotor; //choose one of rotor1-5
|
private Integer[] rotor; //choose one of rotor1-5
|
||||||
private Integer[] rrotor; //choose one of backwardsRotor1-5
|
private Integer[] rrotor; //choose one of backwardsRotor1-5
|
||||||
private int ringsetting; //http://people.physik.hu-berlin.de/~palloks/js/enigma/enigma-u_v20.html
|
private int ringsetting;
|
||||||
//My fault?
|
|
||||||
private int turnOver;
|
private int turnOver;
|
||||||
private int counter;
|
private int counter;
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -182,6 +181,11 @@ public class Rotor
|
||||||
return this.getCounter() == this.turnOver;
|
return this.getCounter() == this.turnOver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getTurnOver()
|
||||||
|
{
|
||||||
|
return this.turnOver;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the name of the rotor
|
* Return the name of the rotor
|
||||||
* @return name
|
* @return name
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="version" translatable="false">0.1-11.02.2015</string>
|
<string name="version" translatable="false">0.1-17.02.2015</string>
|
||||||
<string name="app_name">EnigmAndroid</string>
|
<string name="app_name">EnigmAndroid</string>
|
||||||
<string name="action_version">Version</string>
|
<string name="action_version">Version</string>
|
||||||
<string name="action_reset">Reset</string>
|
<string name="action_reset">Reset</string>
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue