Updated more tests

This commit is contained in:
Matthew Ellison
2024-04-08 16:44:38 -04:00
parent 1a93a30b42
commit ff11cd72c3
52 changed files with 1813 additions and 294 deletions

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Bifid;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/bifid")
public class BifidCipherController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.BIFID_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.BIFID_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.BIFID_CIPHER_NAME, CipherInfoUtil.BIFID_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeBifid(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Bifid");
log.info("Encoding Bifid");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.BIFID_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.BIFID_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);
@@ -44,8 +54,8 @@ public class BifidCipherController{
@GetMapping("/decode")
public ObjectNode decodeBifid(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Bifid");
log.info("Decoding Bifid");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.BIFID_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.BIFID_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Columnar;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/columnar")
public class ColumnarCipherController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.COLUMNAR_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.COLUMNAR_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.COLUMNAR_CIPHER_NAME, CipherInfoUtil.COLUMNAR_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeColumnar(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Columnar");
log.info("Encoding Columnar");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.COLUMNAR_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.COLUMNAR_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);
@@ -44,8 +54,8 @@ public class ColumnarCipherController{
@GetMapping("/decode")
public ObjectNode decodeColumnar(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Columnar");
log.info("Decoding Columnar");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.COLUMNAR_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.COLUMNAR_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);

View File

@@ -12,6 +12,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Hill;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -21,10 +22,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/hill")
public class HillCipherController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.HILL_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.HILL_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.HILL_CIPHER_NAME, CipherInfoUtil.HILL_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeHill(@RequestBody ObjectNode cipherParams) throws JsonProcessingException{
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Hill");
log.info("Encoding Hill");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.HILL_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.HILL_CIPHER_NAME);
CipherParameterUtil.verifyHillParams(cipherParams);
@@ -46,8 +56,8 @@ public class HillCipherController{
@GetMapping("/decode")
public ObjectNode decodeHill(@RequestBody ObjectNode cipherParams) throws JsonProcessingException{
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Hill");
log.info("Decoding Hill");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.HILL_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.HILL_CIPHER_NAME);
CipherParameterUtil.verifyHillParams(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Morse;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/morse")
public class MorseCodeController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.MORSE_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.MORSE_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.MORSE_CIPHER_NAME, CipherInfoUtil.MORSE_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeMorse(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Morse");
log.info("Encoding Morse");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.MORSE_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.MORSE_CIPHER_NAME);
CipherParameterUtil.verifyMorseParams(cipherParams);
@@ -40,8 +50,8 @@ public class MorseCodeController{
@GetMapping("/decode")
public ObjectNode decodeMorse(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Morse");
log.info("Decoding Morse");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.MORSE_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.MORSE_CIPHER_NAME);
CipherParameterUtil.verifyMorseParams(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Playfair;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/playfair")
public class PlayfairCipherController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.PLAYFAIR_CIPHER_NAME, CipherInfoUtil.PLAYFAIR_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodePlayfair(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Playfair");
log.info("Encoding Playfair");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);
@@ -44,8 +54,8 @@ public class PlayfairCipherController{
@GetMapping("/decode")
public ObjectNode decodePlayfair(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Playfair");
log.info("Decoding Playfair");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.PLAYFAIR_CIPHER_NAME);
CipherParameterUtil.verifyParamsWithKeyword(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.PolybiusSquare;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/polybius")
public class PolybiusSquareController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME, CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodePolybius(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Polybius Square");
log.info("Encoding Polybius");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
CipherParameterUtil.verifyPolybiusParams(cipherParams);
@@ -43,8 +53,8 @@ public class PolybiusSquareController{
@GetMapping("/decode")
public ObjectNode decodePolybius(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Polybius Square");
log.info("Decoding Polybius");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.POLYBIUS_SQUARE_CIPHER_NAME);
CipherParameterUtil.verifyPolybiusParams(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.RailFence;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/railFence")
public class RailFenceController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.RAIL_FENCE_CIPHER_NAME, CipherInfoUtil.RAIL_FENCE_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeRailFence(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Rail Fence");
log.info("Encoding Rail Fence");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
CipherParameterUtil.verifyRailFenceParams(cipherParams);
@@ -44,8 +54,8 @@ public class RailFenceController{
@GetMapping("/decode")
public ObjectNode decodeRailFence(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Rail Fence");
log.info("Decoding Rail Fence");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.RAIL_FENCE_CIPHER_NAME);
CipherParameterUtil.verifyRailFenceParams(cipherParams);

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
import com.mattrixwv.cipherstream.polysubstitution.Trifid;
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,19 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/cipherStream/trifid")
public class TrifidCipherController{
@GetMapping
public ObjectNode getCipherInfo(){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.TRIFID_CIPHER_NAME);
log.info("Getting info for {}", CipherInfoUtil.TRIFID_CIPHER_NAME);
return CipherInfoUtil.buildInfoNode(CipherInfoUtil.TRIFID_CIPHER_NAME, CipherInfoUtil.TRIFID_CIPHER_DESCRIPTION);
}
@GetMapping("/encode")
public ObjectNode encodeTrifid(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Trifid");
log.info("Encoding Trifid");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.TRIFID_CIPHER_NAME);
log.info("Encoding {}", CipherInfoUtil.TRIFID_CIPHER_NAME);
CipherParameterUtil.verifyTrifidParams(cipherParams);
@@ -46,8 +56,8 @@ public class TrifidCipherController{
@GetMapping("/decode")
public ObjectNode decodeTrifid(@RequestBody ObjectNode cipherParams){
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, "Trifid");
log.info("Decoding Trifid");
MDC.put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, CipherInfoUtil.TRIFID_CIPHER_NAME);
log.info("Decoding {}", CipherInfoUtil.TRIFID_CIPHER_NAME);
CipherParameterUtil.verifyTrifidParams(cipherParams);

View File

@@ -16,9 +16,12 @@ public class CipherInfoUtil{
public static final String CIPHER_NAME = "name";
public static final String CIPHER_DESCRIPTION = "description";
//Cipher Names
//Combination
public static final String ADFGVX_CIPHER_NAME = "ADFGVX";
public static final String ADFGX_CIPHER_NAME = "ADFGX";
//Mono-Substitution
public static final String AFFINE_CIPHER_NAME = "Affine";
public static final String ATBASH_CIPHER_NAME = "Atbash";
public static final String AUTOKEY_CIPHER_NAME = "Autokey";
@@ -30,10 +33,22 @@ public class CipherInfoUtil{
public static final String PORTA_CIPHER_NAME = "Porta";
public static final String SUBSTITUTION_CIPHER_NAME = "Substitution";
public static final String VIGENERE_CIPHER_NAME = "Vigenere";
//Poly-Substitution
public static final String BIFID_CIPHER_NAME = "Bifid";
public static final String COLUMNAR_CIPHER_NAME = "Columnar";
public static final String HILL_CIPHER_NAME = "Hill";
public static final String MORSE_CIPHER_NAME = "Morse";
public static final String PLAYFAIR_CIPHER_NAME = "Playfair";
public static final String POLYBIUS_SQUARE_CIPHER_NAME = "Polybius Square";
public static final String RAIL_FENCE_CIPHER_NAME = "Rail Fence";
public static final String TRIFID_CIPHER_NAME = "Trifid Cipher";
//TODO: Cipher descriptions
//Combintation
public static final String ADFGVX_CIPHER_DESCRIPTION = "ADFGVX Cipher";
public static final String ADFGX_CIPHER_DESCRIPTION = "ADFGX Cipher";
//Mono-Substitution
public static final String AFFINE_CIPHER_DESCRIPTION = "Affine Cipher";
public static final String ATBASH_CIPHER_DESCRIPTION = "Atbash Cipher";
public static final String AUTOKEY_CIPHER_DESCRIPTION = "Autokey Cipher";
@@ -45,6 +60,15 @@ public class CipherInfoUtil{
public static final String PORTA_CIPHER_DESCRIPTION = "Porta Cipher";
public static final String SUBSTITUTION_CIPHER_DESCRIPTION = "Substitution Cipher";
public static final String VIGENERE_CIPHER_DESCRIPTION = "Vigenere Cipher";
//Poly-Substitution
public static final String BIFID_CIPHER_DESCRIPTION = "Bifid Cipher";
public static final String COLUMNAR_CIPHER_DESCRIPTION = "Columnar Cipher";
public static final String HILL_CIPHER_DESCRIPTION = "Hill Cipher";
public static final String MORSE_CIPHER_DESCRIPTION = "Morse Code";
public static final String PLAYFAIR_CIPHER_DESCRIPTION = "Playfair Cipher";
public static final String POLYBIUS_SQUARE_CIPHER_DESCRIPTION = "Polybius Square Cipher";
public static final String RAIL_FENCE_CIPHER_DESCRIPTION = "Rail Fence Cipher";
public static final String TRIFID_CIPHER_DESCRIPTION = "Trifid Cipher";
public static ObjectNode buildInfoNode(String name, String description){