-
v0.3.839472de2 · ·
# General changes - Add Maven support - Add JUnit support - Add a variety of testcases for each cipher and subclass polybius - Move logger to library and add as submodule - Add maven hierarchy - rename path Ciphers -> java/org/ciphers - All ciphers now also have initialize methods for encrypt and decrypt respectfully - In order to split userio inputs for JUnit support on each cipher - Fix issue where InformationFiles were not visible by neither the compiler nor the jar, resulting in printInformation() to be excluded - Move InformationFiles to maven hierarchy 'resources' # File changes - Libraries: - Update lib/logger to latest artifact - Update lib/userio to latest artifact - Rename lib/basicUserIO -> lib/userio Ciphers.Subclasses.Polybius: - Fix issue where digits could not be part of 6x6 tables - Rename polibius to have 6x6 in the name - Add 5x5 table support - 5x5 table letter replacement (defaukt J->I) can be customized Ciphers.Subclasses.Shift: - refactor rename variables Ciphers.Adfgvx: - Replace private modifiers to protected for variables that are accessed by Junit tests - Add feature that the keyword for the polybius square can not contain digits Ciphers.Ciphers: - Add initialize encrypt and decrypt method to interface - Add OutOfMemoryError for setFileWriteMaterial - Fix issue where InformationFiles were not visible by neither the compiler nor the jar, resulting in printInformation() to be excluded - Add setKey() for ciphers to easily set keywords Main: - add try finally block to avoid printStackTrace when Ctrl<c> the program Menu: - Add path change of maven hierarchy - Make list of unwanted classes to loop through and filter
-
v0.3.750b168bb · ·
===User=== - no new changes ===Developer=== - Refactor hierarchy for Maven - Add JUnit5 and basic Cipher tests - Note: Make derived cipher fields protected if needed access by JUnit tests Master: - Allow to set Logger level via Main.java Ciphers: - setkey(), method to set int variable, is in abstract cipher class
-
v0.3.6a02ce9ff · ·
- Allow JAR File support. - Fixing a bug where a JAR file cannot be built from the project. Code cleaning is needed in ClassFinder.java. - Fixed a bug where the method 'printInformation()' is not added when the cipher's constructor is missing. When 'informationList' is set but 'information' is not set, the method was excluded. - Add Jar support for information text files. - Add Cipher: Rot13 - Add Logger. For each class: If you want to log, use `Cipherlogger.LOGGER.log() or any other calling method form java.util.logging` - Fixed a bug where the method 'printInformation()' is not added when the cipher's constructor is missing. When 'informationList' is set but 'information' is not set, the method was excluded. - Public methods in Ciphers.Ciphers.java that are only meant to be invoked by the menu and not called by a specific cipher (e.g. startCryption() and setInformationFile()) are now only accessible by invoking. That way, if one of these methods is accidentally called, the program handles this issue. If, from a specific cipher, the method is for some reason invoked, this will still give an error. But this implementation is to handle accidental method calling. - Move Shift method from Caesar to Subclass for future Rot13 implementation - Small changes: - Add issue page references to README.md to encourage ticket creation. - Add cipher information for Caesar and Rot13 - Rename Cipher interface method 'addInfoToOutputFile()' to 'writeAdditionalInfo()' - Add .gitignore - Update issue templates - Update readme to add Setup (Instructions) - Add Run.bat for releases Ciphers: - Add header of 20 to encapsulate 'printInformation()' when having multiple lines. - Reworking Cipher.java to diminish public methods (so that these methods cannot be called from a specific cipher. Some methods are meant to only be run by the main code (menu.java)). - Add custom exception to prevent public Ciphers.Ciphers.java classes to be called by specific ciphers. It may only be invoked by other classes like menu.java or write.java Caesar: - Fix a bug where the input is changed after shifting. Java is not entirely pass by value after all. - Add writing shift to output file. - Reworked code a bit. ClassFinder: - Jar file of the project can now successfully be built. Write: - Prepend filename to output.txt WriteHelpers: - Add writeInteger to write a number to the output file Menu: - Allow ciphers to have classes that will not be added to the menu, like a nested exception class. - Add log. - Add JavaDoc
-
v0.3.5196b794b · ·
- Add own basicUserIO library as a submodule. - Replace local library java file with submodule library. - Update code to adjust using basicUserIO library. - Add flow diagram .xml - Update README.md Write: - Remove 'repeat' operation to support Java 1.8 WriteTables: - Fix a bug where a dualheader with char[] yHeader does not have a correct horizontal line length.
-
v0.3.40b96d02d · ·
Add package Ciphers/InformationFiles. Add text files that match the name of a cipher to add multiple lines with ease to the 'printInformation()' method - Cleaned up warnings Menu: - Checks if information file exists. If <CIPHERNAME.txt> exists within the Ciphers/InformationFiles package that matches invoked <CIPHERNAME>. Add 'printInformation()' method to the menu that prints text-file. If not exist, use String 'information' set in the cipher's constructor instead. If both do not exist, exclude 'printInformation()' from the menu. Ciphers: - Set 'informationList' for 'printInformation()' if Ciphers/InformationFiles/<CIPHERNAME.txt> textfile exists. Set information for 'printInformaiton() if textfile does not exist and 'information' is set in the cipher's constructor. If neither exist, exlude 'printInformation()' from menu. - Add JavaDoc Adfgvx: - Add write xHeader and yHeader to polybius square. Porta: - make some variables final.
-
v0.3.3f5c24765 · ·
- Group cipher algorithms into their own classes in Ciphers.Subclasses. Being Polybius.java, Substitution.java, ColumnarTransposition.java - Add WriteTables.java, an extensive class so that all types of tables can easily be written by all ciphers. char[], char[][], int[] and int[][] arrays can be added as headers in any combination. - Add WriteHelpers.java, this might be temporary Ciphers: - Resolved an issue where cipher specific data is written twice if it contains any data 'addInfoToOutputFile()' - Add JavaDoc - Add helper methods for ciphers. This might be moved to its own SubClasses classfile later Adfgvx: - Moved cipher algorithms to Ciphers.Subclasses so that they can be re-used by other ciphers - Renamed translate table to substitution table. Caesar: - Remove accidental test method Porta: - Clean up
-
-
v0.3.0e1b526bb · ·
- Feature #4 added, add methods to package 'Subclasses' and add import Ciphers.Subclasses.CLASSNAME to main cipher - Feature #5 added, any public methods in a main cipher class will automatically be added to the method list when that cipher has been selected. - Add javadoc comments - Optimalized code - Code now always calls selected method via the parent method (Cipher.java) for more structure. This prevents methods getting called from multiple classes (not more in Menu.java). ClassFinder: - Change parameter method *find* from String array to String list, this is to add an unknown amount of unlisted classes to filter Main: - Remove unused import Menu: - Improve imports - Made code cleaner - Better naming of variables and methods - Made cipher methods local variable in executeCipher() - Less parameters Ciphers: - Better naming of method - Remove unused constructor - Group called methods by return type - Optimalized code
-
v0.2.13be9111e · ·
**Available Ciphers:** - Caesar - Adfgvx (Encipher) **Bugfixes** - Fix an issue where the output of the Adfgvx cipher was incorrect - Fix various line spacing in CMD **Added features** - Adfgvx file writer expanded, now prints all tables
-
v0.25cfd7ec7 · ·
Add Cipher: Adfgvx (Encrypt) Re-add output file writer function Add new ciphers interface method for adding writing material to the file writer
-