|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objecthcrypto.cipher.HistoricalKey
public abstract class HistoricalKey
Provides a partial implementation of the HistoricalKey interface by providing default implementations of the getKeyword(), getAlphabet(), and getBlocksize() methods.
The HistoricalKey() constructor should be invoked by the subclass. It extracts the keyspec, which provides algorithm-specific data as well as a specification of the Alphabet used by the particular key. These are stored in instance variables.
The key specification is comprised of two parts: keydata/alphabetspec, separated by a forward slash "/". The keydata provides material that used to construct an algorithm-specific key. Here are some examples.
| Algorithm | Keydata | AlphabetSpec |
|---|---|---|
| Caesar | shift | azAZ09 |
| Substitution | keyword | printable |
| Affine | a,b | az |
Here are some examples of key instantiations:
CaesarKey key = new CaesarKey("55/printable");
SubstitutionKey sKey = new SubstitutionKey("76TrombonesLEDTHEPARADE/azAZ09");
AffineKey aKey = new AffineKey("3,3/azAZ09");
| Constructor Summary | |
|---|---|
HistoricalKey()
|
|
| Method Summary | |
|---|---|
abstract java.lang.String |
getAlgorithm()
This abstract method should be implemented in the algorithm-specific subclass. |
Alphabet |
getAlphabet()
Returns a reference to this key's alphabet. |
int |
getBlocksize()
Returns this cipher's blocksize. |
char[] |
getCipherKey()
Returns the cipher alphabet. |
Alphabet |
getCTAlphabet()
Returns a reference to this key's cipherAlphabet. |
static HistoricalKey |
getInstance(java.lang.String algorithm,
java.lang.String provider)
searches for the provider named in the second parameter for an implementation of the algorithm named in its first parameter. |
java.lang.String |
getKeyDescriptorPrompt()
Returns an interface prompt describing the key |
java.lang.String |
getKeyword()
Returns the keyword for this key. |
char[] |
getPlainKey()
Returns the plaintext alphabet. |
abstract void |
init(java.lang.String keyspec)
This abstract method should be implemented in the algorithm-specific subclass. |
abstract void |
init(java.lang.String keyword,
Alphabet alpha1,
Alphabet alpha2)
ADDED: 4/5/03 by RAM This should be implemented in the subclass. |
void |
initKey(java.lang.String keyword,
Alphabet alpha1,
Alphabet alpha2)
ADDED: 4/5/03 by RAM Initializes the key given the keyword and preexisting alphabete. |
void |
initKey(java.lang.String keyspec,
boolean removeDuplicates)
Initializes the keyspec, keyword and alphabet instance variables given a specification of the form keydata/plainspec/cipherspec. |
static java.lang.String |
invertKey(java.lang.String key)
invertKey() inverts a key from decrypt to encrypt |
void |
printAlphabets()
Prints both the cipher and plain alphabets to the System console. |
static java.lang.String |
removeDuplicateChars(java.lang.String key)
A utility method to remove duplicate characters from a string. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HistoricalKey()
| Method Detail |
|---|
public static final HistoricalKey getInstance(java.lang.String algorithm,
java.lang.String provider)
algorithm, - a String giving the algorithm nameprovider, - a String giving the provider name
public void initKey(java.lang.String keyspec,
boolean removeDuplicates)
throws java.lang.Exception
keyspec - is a String specifying algorithm-specific key data
-- for example the shift value for a Caesar cipher -- and an
specification of the set of characters used in encryption.
java.lang.Exception
public void initKey(java.lang.String keyword,
Alphabet alpha1,
Alphabet alpha2)
throws java.lang.Exception
keyword - is a String specifying algorithm-specific key dataalpha1, - alpha2 are references to alphabets, alpha2 may identical to alpha1
java.lang.Exception
public abstract void init(java.lang.String keyword,
Alphabet alpha1,
Alphabet alpha2)
throws java.lang.Exception
java.lang.Exception
public abstract void init(java.lang.String keyspec)
throws java.lang.Exception
java.lang.Exceptionpublic abstract java.lang.String getAlgorithm()
public java.lang.String getKeyword()
public Alphabet getAlphabet()
public Alphabet getCTAlphabet()
public int getBlocksize()
public java.lang.String getKeyDescriptorPrompt()
public static java.lang.String removeDuplicateChars(java.lang.String key)
public char[] getCipherKey()
public char[] getPlainKey()
public void printAlphabets()
public static java.lang.String invertKey(java.lang.String key)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||