Download Latest Version hcrypto-0-51.jar (1.3 MB)
Email in envelope

Get an email when there's a new version of HcryptoJ

Home / Alpha Release
Name Modified Size InfoDownloads / Week
Parent folder
README.txt 2009-12-08 3.8 kB
hcryptoj-0-5.jar 2009-12-08 979.6 kB
Totals: 2 Items   983.4 kB 0
This directory contains version 0.5a of the HCryptoJ API. 

Features

HCryptoJ is a Java Application Programming Interface (API) for
historical cryptography. It is modelled after the Java Cryptography
Extension (JCE).

* Encryption/Decryption --  Supports the encryption of strings (Java String objects) or ASCII files. 

* Ciphers -- Can be used to implement any historical cipher that can
  be defined as a function from a String to a String.

* Default Ciphers -- Default Provider classes are supplied which
  contain implementations of Caesar, Simple Substitution (passphrase),
  Vigenere, Playfair, Affine, RailFence, and Transposition ciphers.

* Keys -- All Cipher objects are defined with a Key class which can
  accomodate a wide range of key types.

* Alphabets -- Supports a wide range of alphabets including: az, AZ,
  azAZ, azAZ09, printable ASCII and the full ASCII character set.

* Analyzers -- The hcrypto.analyzer package contains a variety of
  classes to analyze historical ciphers, including:

 - AffineAnalyzer -- automatically solves cryptograms created with an Affine cipher.
 - CaesarAnalyzer -- automatically solves cryptograms created with a Caesar cipher.
 - CryptogramAnalyzer -- automatically solves cryptograms created with simple substitution cipher.
 - Histogram -- computes a frequency histogram for a message.
 - IndexOfCoincidence -- computes the Index of Coincidence for a message.
 - VigenereAnalyzer -- automatically solves Vigenere ciphers. 

* Applications -- HcryptoJ comes with a couple of very simple
  applications that illustrate how to use it. 
  - TestCipher is a command-line test program which encrypts or decrypts a string entered on the command line. 
  - FileCipher is a command-line programthat encrypts or decrypts a file named on the command  line. 

  - CryptoToolJ is a GUI program that encrypts and decrypts text entered interactively or via File I/O. 
  - CryptoAppletJ is a Java applet that supports interactive encryption/decryption of text for Java enabled browsers.

* Service Providers --Like the JCE, HcryptoJ enables cryptographic
  service providers to develop their own implementations of a new or
  existing cipher. A service provider can install a cipher algorithm
  by defining a Cipher subclass, a HistoricalKey subclass and a
  Provider subclass.

* Object Oriented Design -- HcryptoJ is modeled after the JCE and is
  organized into three packages. For details on the design, see the
  online documentation.

To Compile the Source:

To compile all the files in ./source and store the classes in the
./classes, which must already exist, use the following command. This
assumes that you are presently in this directory.

    javac -d classes -classpath src src/hcrypto/cipher/*.java \
         src/hcrypto/provider/*.java src/hcrypto/engines/*.java \
	 src/hcrypto/analyzer/*.java src/applications/*.java \
	 src/applications/cryptotoolj/*.java src/pluginproviders/*.java

This command will create the following package structure within classes:

classes
 |
 -- applications
 |
 -- hcrypto
    |
    -- analyzer
    |
    -- cipher
    | 
    -- engines
    |
    -- provider
 |
 -- pluginanalyzers
 
To run from the jar file:
	java -classpath <path/to/your.jar> applications.TestCipher
	java -classpath <path/to/your.jar> applications.FileCipher <args>
	java -classpath <path/to/your.jar> applications.cryptotoolj.CryptoToolJ
     
To Create a JAR (Java ARchive) file containing all the classes within
the proper package structure from with the ./classes directory:

    jar cvf <path/to/your.jar> hcrypto

To generate the JAVADOC documentation from the sourcecode:

 javadoc -d docs -sourcepath src hcrypto.cipher hcrypto.engines \
     hcrypto.provider hcrypto.analyzer pluginanalyzers applications  




Source: README.txt, updated 2009-12-08