Jera Design : Solitaire
Solitaire for KJava home page
Solitaire for KJava is an implementation of the Solitaire
cryptosystem for the Palm KJava VM. Solitaire is a cryptosystem designed
by Bruce Schnier
to provide high-quality cryptosystem where messages can be encoded and decoded
manually. It uses a shuffled deck of cards for the message key. Soltaire appears
as a crucial plot point in the novel Cryptonomicon by Neal Stephensen. Solitaire
for KJava was winner of the "Most Visionary App" category in the KJava
Hackathon contest held at the 1999
JavaOne Conference.
Source
In addition to being useful for encoding, decoding, and securely beaming small
messages, Solitaire for KJava serves as an example of how to write a Palm application
in Java. The source code to Solitaire for KJava is freely modifiable and redistributable
under the terms of the GNU General Public License.
Download Solitaire.zip (9kb)
Build Instructions
Short Version:
If you've already got Java and Ant installed, and you have "j2me_cldc"
installed at "C:\", just "cd" to wherever you installed
Solitaire, and type "ant". If all goes well, you'll be rewarded by
a file called "SolitaireJB.prc", which you can install on your Palm
and use (provided you've already got the KVM installed on your Palm).
Long Version:
(These instruction assume you already have a JDK installed, and your classpath
and path set up to use it.)
- First, download and install Sun's Java
2 Micro Edition CLDC package. You'll need both "j2me_cldc-1_0_2-fcs-winunix.zip"
and "j2me_cldc-1_0_2-fcs-kjava_overlay.zip". Because Sun
screwed up the packaging, you'll need to follow the following instructions
closely.
- Unzip "j2me_cldc-1_0_2-fcs-winunix.zip" into wherever
you usuall install source. I used "C:\" Note that archive
contains one folder "j2me_cldc", which contains all
the contents of the archive.
- Unzip "j2me_cldc-1_0_2-fcs-kjava_overlay.zip" so
that all of its files overlay the ones already in "j2me_cldc".
Note: this archive doesn't have a root "j2me_cldc"
folder, just the folders under it. To extract it properly, you'll need
to set the target folder to wherever you extracted the other ZIP to. In
my case, that means I extract this archive to "C:\j2me_cldc".
This extract will overwrite a few files from the first ZIP.
- Install the Java VM on your Palm. The VM is located in your copy of the
j2me_cldc tree at: j2me_cldc\bin\kjava\palm\KVM.prc. You'll
also need to install KVMUtil.prc, located in the same directory.
- If you haven't got it already, you'll need to install the Ant build tool,
available at: http://jakarta.apache.org/ant/
- Unzip Solitaire.zip.
- In the Solitaire directory, type:
ant
(If you installed the j2me_cldc directory someplace other than C:\, you'll
need to tweak the values of the property definitions at the begining of build.xml
to point to the right place.)
- Ant should run and produce a file SolitaireJB.prc, which you can
then install on your Palm. If you installed the j2me_cldc directory
someplace other than C:\, you'll need to tweak the values of the
property definitions at the begining of build.xml to point to your
file.
- To run, tap the SolitaireJB icon in the Palm's application list.
Credits:
The Palm-specific portions of Solitaire for KJava were writen by John
Brewer during the 1999 JavaOne Conference. The Java implementation of the
Solitaire cipher algorithm is Jeff Gold's, slightly modified by John Brewer
to run under KJava for PalmOS. The original source code for desktop Java, along
with more information about the Solitaire cryptosystem can be found at:
http://www.counterpane.com/solitaire.html
Feedback:
Please send feedback to solitaire@jera.com.
Jera Design's custom development services are available
for all of your J2ME programming needs.