                      Signing Tool (signtool)
                         3.10 Release Notes
               ========================================

Documentation is provided online at mozilla.org

Problems or questions not covered by the online documentation can be
discussed in the DevEdge Security Newsgroup.

=== New Features in 3.10
=======================
One new option (-X) has been added to create a Mozilla aware signed XPI archive. 
The option must be accompanied by the -Z option. This new option
creates a JAR file with the META-INF/zigbert.rsa/dsa file as the first file in 
the archive instead of the default third to last. This will enable the archive
to be seen as signed by products incorporating XPInstall. i.e. .xpi extensions
for FireFox or Mozilla.

=== New Features in 1.3
=======================

The security library components have been upgraded to utilize NSS_2_7_1_RTM.
This means that the maximum RSA keysize now supported should be 4096 bits.

=== Zigbert 0.6 Support
=======================
This program was previously named Zigbert.  The last version of zigbert
was Zigbert 0.6.  Because all the functionality of Zigbert is maintained in
signtool 1.2, Zigbert is no longer supported.  If you have problems
using Zigbert, please upgrade to signtool 1.2.

=== New Features in 1.2
=======================

Certificate Generation Improvements
-----------------------------------
Two new options have been added to control generation of self-signed object
signing certificates with the -G option. The -s option takes the size (in bits)
of the generated RSA private key.  The -t option takes the name of the PKCS #11
token on which to generate the keypair and install the certificate.  Both
options are optional.  By default, the private key is 1024 bits and is generated
on the internal software token.


=== New Features in 1.1
=======================

File I/O
--------
Signtool can now read its options from a command file specified with the -f
option on the command line. The format for the file is described in the
documentation.
Error messages and informational output can be redirected to an output file
by supplying the "--outfile" option on the command line or the "outfile="
option in the command file.

New Options
-----------
"--norecurse" tells Signtool not to recurse into subdirectories when signing
directories or parsing HTML with the -J option.
"--leavearc" tells Signtool not to delete the temporary .arc directories
produced by the -J option.  This can aid debugging.
"--verbosity" tells Signtool how much information to display. 0 is the
default. -1 suppresses most messages, except for errors.

=== Bug Fixes in 1.1
====================

-J option revamped
------------------
The -J option, which parses HTML files, extracts Java and Javascript code,
and stores them in signed JAR files, has been re-implemented. Several bugs
have been fixed:
- CODEBASE attribute is no longer ignored
- CLASS and SRC attributes can be be paths ("xxx/xxx/x.class") rather than
  just filenames ("x.class").
- LINK tags are handled correctly
- various HTML parsing bugs fixed
- error messages are more informative

No Password on Key Database
---------------------------
If you had not yet set a Communicator password (which locks key3.db, the
key database), signtool would fail with a cryptic error message whenever it
attempted to verify the password.  Now this condition is detected at the
beginning of the program, and a more informative message is displayed.

-x and -e Options
-----------------
Previously, only one of each of these options could be specified on the command
line. Now arbitrarily many can be specified.  For example, to sign only files
with .class or .js extensions, the arguments "-eclass -ejs" could both be
specified. To exclude the directories "subdir1" and "subdir2" from signing,
the arguments "-x subdir1 -x subdir2" could both be specified.

New Features in 1.0
===================

Creation of JAR files
----------------------
The -Z option causes signtool to output a JAR file formed by storing the
signed archive in ZIP format.  This eliminates the need to use a separate ZIP
utility.  The -c option specifies the compression level of the resulting
JAR file.

Generation of Object-Signing Certificates and Keys
--------------------------------------------------
The -G option will create a new, self-signed object-signing certificate
which can be used for testing purposes.  The generated certificate and 
associated public and private keys will be installed in the cert7.db and
key3.db files in the directory specified with the -d option (unless the key
is generated on an external token using the -t option). On Unix systems,
if no directory is specified, the user's Netscape directory (~/.netscape)
will be used. In addition, the certificate is output in X509 format to the
files x509.raw and x509.cacert in the current directory.  x509.cacert can
be published on a web page and imported into browsers that visit that page.

Extraction and Signing of JavaScript from HTML
----------------------------------------------
The -J option activates the same functionality provided by the signpages
Perl script.  It will parse a directory of html files, creating archives
of the JavaScript called from the HTML. These archives are then signed and
made into JAR files.

Enhanced Smart Card Support
---------------------------
Certificates that reside on smart cards are displayed when using the -L and
-l options.
