JOpenPGPCard - A Java Card implementation of the openpgp card specification.
_---------------------------------------------------------------------------

		Copyright (C) 2007  Sten Lindgren

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.


WARNING! This is alpha software and should not be used for any production
systems. You may very well loose your keys and access to any data encrypted
with them.

This is a quick and dirty test release of an implementation of "Functional
Specification of the OpenPGP application on ISO Smart Card Operating Systems"
on Java card. Feel free to test it and report glaring bug and security
problems.

It should implement most of the 1.1 specification except key
import. Only 1024 and 1536 bit keys tested. 2048 bit keys and above will not
work. It has been tested only one one type of card (ATR identifies it as an
Oberthur CosmopolIC card, but it doesn't seem to have the AuthentIC applet
loaded) with GnuPG 1.4.7.

If you get it to work/not work on other java cards please let me know.
Signing and encryption with GnuPG, seting of various data objects as well
as pin code change and blocking/unblocking has been tested. Every test,
compiling and loading applet onto card has only been tested from Linux.
The included patch for apdu.c might need to be applied to GnuPG in order for
GnuPG to work with the applet.

A primitive Unix shell script for building is included. Please edit the script
to use relevant paths for your setup before running.
The file "gpshellInstallGP211.txt" can be used with gpshell to load the
applet onto a java card (modifications might be needed for you card).

The included scripts uses a test serial number of 1 in the AID, if you plan
to use it for anything but a single test card you must create a new cap file
with a unique AID.  I you insist on using this applet for live keys (don't
blame me for the consequences) make sure you use your own unique manufacturers
ID or serial number or the range for random serial numbers.

  FF00..FFFE - Range reserved for randomly assigned serial numbers.
         Serialnumbers with manufacturer ID in this range are an
         exception to the rule that they should be unique.  It is
         expected that such a serialnumber is assigned using a true
         random function which generates 5 bytes (4 for the actual
         serial number and one to select a manufacturer ID out of this
         range). Note, that the 0xffff is not part of this range.
         Implementers using serial numbers as a unique ID should keep in
         mind that duplicates may happen.  Using the of manufacturer IDs
         out of this range should only be done if no other way of
         obtaining a manufacturer ID is possible.
         [Assigned 2007-07-17] 

Bug and comments to: ged@solace.miun.se
