diff --git a/src/main/java/com/mattrixwv/CipherStreamJava/monoSubstitution/OneTimePad.java b/src/main/java/com/mattrixwv/CipherStreamJava/monoSubstitution/OneTimePad.java new file mode 100644 index 0000000..6a4fc3c --- /dev/null +++ b/src/main/java/com/mattrixwv/CipherStreamJava/monoSubstitution/OneTimePad.java @@ -0,0 +1,41 @@ +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/monoSubstitution/OneTimePad.java +//Mattrixwv +// Created: 02-23-22 +//Modified: 02-23-22 +package com.mattrixwv.CipherStreamJava.monoSubstitution; + + +import com.mattrixwv.CipherStreamJava.exceptions.InvalidInputException; +import com.mattrixwv.CipherStreamJava.exceptions.InvalidKeywordException; + + +public class OneTimePad extends Vigenere{ + //?Add some kind of entropy calculator? + //?Add some kind of "book passage includer"? + + + //Constructor + public OneTimePad(){ + super(); + } + public OneTimePad(boolean preserveCapitals, boolean preserveWhitespace, boolean preserveSymbols){ + super(preserveCapitals, preserveWhitespace, preserveSymbols); + } + + //Encodes input using key and returns the result + @Override + public String encode(String keyword, String inputString) throws InvalidKeywordException, InvalidInputException{ + if(keyword.length() < inputString.length()){ + throw new InvalidKeywordException("Key must be at least as long as the input"); + } + return super.encode(keyword, inputString); + } + //Decodes input using key and returns the result + @Override + public String decode(String keyword, String inputString) throws InvalidKeywordException, InvalidInputException{ + if(keyword.length() < inputString.length()){ + throw new InvalidKeywordException("Key must be at least as long as the input"); + } + return super.decode(keyword, inputString); + } +}