jdk/src/linux/doc/man/jarsigner.1
author lana
Sun, 10 Apr 2011 10:23:28 -0700
changeset 9032 fd2e8bb06816
parent 5865 47da38a8c0f0
child 9573 c02ff5a7c67b
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
     1
." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
." This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
." under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
." published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
." This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
." version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
." accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
." You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
." 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
."
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    18
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    19
." or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    20
." questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
."
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
    22
.TH jarsigner 1 "02 Jun 2010"
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    25
.SH "Name"
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
jarsigner \- JAR Signing and Verification Tool
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
Generates signatures for Java ARchive (JAR) files, and verifies the signatures of signed JAR files.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
.SH "SYNOPSIS"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
\fP\f3jarsigner\fP [ options ] jar\-file alias
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
.fl
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    44
\f3jarsigner\fP \-verify [ options ] jar\-file [alias...]
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    49
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    50
The jarsigner \-verify command can take zero or more keystore alias names after the jar filename. When specified, jarsigner will check that the certificate used to verify each signed entry in the jar file matches one of the keystore aliases. The aliases are defined in the keystore specified by \-keystore, or the default keystore.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    51
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
.SH "DESCRIPTION"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
The \f3jarsigner\fP tool is used for two purposes:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
1.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
to sign Java ARchive (JAR) files, and 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
2.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
to verify the signatures and integrity of signed JAR files. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    70
The JAR feature enables the packaging of class files, images, sounds, and other digital data in a single file for faster and easier distribution. A tool named jar(1) enables developers to produce JAR files. (Technically, any zip file can also be considered a JAR file, although when created by \f3jar\fP or processed by \f3jarsigner\fP, JAR files also contain a META\-INF/MANIFEST.MF file.)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
A \f2digital signature\fP is a string of bits that is computed from some data (the data being "signed") and the private key of an entity (a person, company, etc.). Like a handwritten signature, a digital signature has many useful characteristics:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
Its authenticity can be verified, via a computation that uses the public key corresponding to the private key used to generate the signature. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
It cannot be forged, assuming the private key is kept secret. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
It is a function of the data signed and thus can't be claimed to be the signature for other data as well. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
The signed data cannot be changed; if it is, the signature will no longer verify as being authentic. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
In order for an entity's signature to be generated for a file, the entity must first have a public/private key pair associated with it, and also one or more certificates authenticating its public key. A \f2certificate\fP is a digitally signed statement from one entity, saying that the public key of some other entity has a particular value.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    95
\f3jarsigner\fP uses key and certificate information from a \f2keystore\fP to generate digital signatures for JAR files. A keystore is a database of private keys and their associated X.509 certificate chains authenticating the corresponding public keys. The keytool(1) utility is used to create and administer keystores.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
\f3jarsigner\fP uses an entity's private key to generate a signature. The signed JAR file contains, among other things, a copy of the certificate from the keystore for the public key corresponding to the private key used to sign the file. \f3jarsigner\fP can verify the digital signature of the signed JAR file using the certificate inside it (in its signature block file).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   101
\f3jarsigner\fP can generate signatures that include a timestamp, thus enabling systems/deployer (including Java Plug\-in) to check whether the JAR file was signed while the signing certificate was still valid. In addition, APIs will allow applications to obtain the timestamp information.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   104
At this time, \f3jarsigner\fP can only sign JAR files created by the SDK jar(1) tool or zip files. (JAR files are the same as zip files, except they also have a META\-INF/MANIFEST.MF file. Such a file will automatically be created when \f3jarsigner\fP signs a zip file.)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
The default \f3jarsigner\fP behavior is to \f2sign\fP a JAR (or zip) file. Use the \f2\-verify\fP option to instead have it \f2verify\fP a signed JAR file.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
.SS 
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   110
Keystore Aliases
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   111
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   112
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   113
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   114
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   115
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   116
All keystore entities are accessed via unique \f2aliases\fP.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   117
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   118
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   119
When using \f3jarsigner\fP to sign a JAR file, you must specify the alias for the keystore entry containing the private key needed to generate the signature. For example, the following will sign the JAR file named "MyJARFile.jar", using the private key associated with the alias "duke" in the keystore named "mystore" in the "working" directory. Since no output file is specified, it overwrites MyJARFile.jar with the signed JAR file.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   120
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   121
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   122
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   123
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   124
    jarsigner \-keystore /working/mystore \-storepass myspass
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   125
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   126
      \-keypass dukekeypasswd MyJARFile.jar duke 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   127
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   128
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   129
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   130
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   131
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   132
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   133
Keystores are protected with a password, so the store password (in this case "myspass") must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password (in this case "dukekeypasswd") must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   134
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   135
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   136
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   137
Keystore Location
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   138
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   139
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   140
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   141
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   142
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   143
\f3jarsigner\fP has a \f2\-keystore\fP option for specifying the URL of the keystore to be used. The keystore is by default stored in a file named \f2.keystore\fP in the user's home directory, as determined by the \f2user.home\fP system property. On Solaris systems \f2user.home\fP defaults to the user's home directory.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   144
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   145
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   146
Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based, for example, if it resides on a hardware token device.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   147
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   148
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   149
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   150
Keystore Implementation
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   151
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   152
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   153
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   154
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   155
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   156
The \f2KeyStore\fP class provided in the \f2java.security\fP package supplies well\-defined interfaces to access and modify the information in a keystore. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular \f2type\fP of keystore.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   157
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   158
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   159
Currently, there are two command\-line tools that make use of keystore implementations (\f3keytool\fP and \f3jarsigner\fP), and also a GUI\-based tool named \f3Policy Tool\fP. Since \f2KeyStore\fP is publicly available, Java 2 SDK users can write additional security applications that use it.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   160
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   161
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   162
There is a built\-in default implementation, provided by Sun Microsystems. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   163
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   164
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   165
Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f2KeyStore\fP are implemented in terms of a "Service Provider Interface" (SPI). That is, there is a corresponding abstract \f2KeystoreSpi\fP class, also in the \f2java.security\fP package, which defines the Service Provider Interface methods that "providers" must implement. (The term "provider" refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API.) Thus, to provide a keystore implementation, clients must implement a provider and supply a KeystoreSpi subclass implementation, as described in 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   166
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   167
\f2How to Implement a Provider for the Java Cryptography Architecture\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   168
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   169
http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   170
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   171
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   172
Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   173
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   174
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   175
\f3keytool\fP works on any file\-based keystore implementation. (It treats the keytore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   176
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   177
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   178
For \f3jarsigner\fP and \f3keytool\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Change Keystore" command in the Edit menu.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   179
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   180
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   181
If you don't explicitly specify a keystore type, the tools choose a keystore implementation based simply on the value of the \f2keystore.type\fP property specified in the security properties file. The security properties file is called \f2java.security\fP, and it resides in the SDK security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment).
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   182
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   183
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   184
Each tool gets the \f2keystore.type\fP value and then examines all the currently\-installed providers until it finds one that implements keystores of that type. It then uses the keystore implementation from that provider.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   185
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   186
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   187
The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that lets applications and applets retrieve the value of the \f2keystore.type\fP property. The following line of code creates an instance of the default keystore type (as specified in the \f2keystore.type\fP property):
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   188
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   189
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   190
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   191
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   192
    KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   193
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   194
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   195
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   196
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   197
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   198
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   199
The default keystore type is "jks" (the proprietary type of the keystore implementation provided by Sun). This is specified by the following line in the security properties file:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   200
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   201
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   202
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   203
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   204
    keystore.type=jks
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   205
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   206
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   207
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   208
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   209
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   210
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   211
Note: Case doesn't matter in keystore type designations. For example, "JKS" would be considered the same as "jks".
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   212
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   213
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   214
To have the tools utilize a keystore implementation other than the default, change that line to specify a different keystore type. For example, if you have a provider package that supplies a keystore implementation for a keystore type called "pkcs12", change the line to
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   215
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   216
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   217
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   218
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   219
    keystore.type=pkcs12
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   220
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   221
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   222
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   223
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   224
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   225
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   226
Note that if you us the PKCS#11 provider package, you should refer to the 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   227
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   228
\f2KeyTool and JarSigner\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   229
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   230
http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   231
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   232
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   233
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   234
Supported Algorithms
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   235
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   236
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   237
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   238
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   239
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   240
By default, \f3jarsigner\fP signs a JAR file using either
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   241
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   242
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   243
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   244
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   245
DSA (Digital Signature Algorithm) with the SHA\-1 digest algorithm, or 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   246
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   247
o
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
   248
the RSA algorithm with the SHA\-256 digest algorithm. 
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   249
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   250
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   251
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   252
.LP
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
   253
That is, if the signer's public and private keys are DSA keys, \f3jarsigner\fP will sign the JAR file using the "SHA1withDSA" algorithm. If the signer's keys are RSA keys, \f3jarsigner\fP will attempt to sign the JAR file using the "SHA256withRSA" algorithm.
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   254
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   255
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   256
These default signature algorithms can be overridden using the \f2\-sigalg\fP option.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   257
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   258
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   259
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   260
The Signed JAR File
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   261
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   262
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   263
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   264
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   265
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   266
When \f3jarsigner\fP is used to sign a JAR file, the output signed JAR file is exactly the same as the input JAR file, except that it has two additional files placed in the META\-INF directory:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   267
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   268
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   269
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   270
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   271
a signature file, with a .SF extension, and 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   272
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   273
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   274
a signature block file, with a .DSA extension. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   275
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   276
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   277
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   278
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   279
The base file names for these two files come from the value of the \f2\-sigFile\fP option. For example, if the option appears as
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   280
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   281
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   282
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   283
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   284
  \-sigFile MKSIGN
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   285
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   286
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   287
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   288
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   289
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   290
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   291
the files are named "MKSIGN.SF" and "MKSIGN.DSA".
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   292
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   293
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   294
If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not allowed in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. Legal characters include letters, digits, underscores, and hyphens.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   295
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   296
\f3The Signature (.SF) File\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   297
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   298
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   299
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   300
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   301
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   302
A signature file (the .SF file) looks similar to the manifest file that is always included in a JAR file when \f3jarsigner\fP is used to sign the file. That is, for each source file included in the JAR file, the .SF file has three lines, just as in the manifest file, listing the following:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   303
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   304
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   305
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   306
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   307
the file name, 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   308
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   309
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   310
the name of the digest algorithm used (SHA), and 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   311
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   312
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   313
a SHA digest value. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   314
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   315
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   316
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   317
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   318
In the manifest file, the SHA digest value for each source file is the digest (hash) of the binary data in the source file. In the .SF file, on the other hand, the digest value for a given source file is the hash of the three lines in the manifest file for the source file.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   319
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   320
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   321
The signature file also, by default, includes a header containing a hash of the whole manifest file. The presence of the header enables verification optimization, as described in JAR File Verification.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   322
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   323
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   324
\f3The Signature Block (.DSA) File\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   325
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   326
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   327
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   328
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   329
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   330
The .SF file is signed and the signature is placed in the .DSA file. The .DSA file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   331
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   332
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   333
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   334
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   335
Signature Timestamp
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   336
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   337
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   338
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   339
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   340
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   341
\f2jarsigner\fP tool can now generate and store a signature timestamp when signing a JAR file. In addition, \f2jarsigner\fP supports alternative signing mechanisms. This behavior is optional and is controlled by the user at the time of signing through these options:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   342
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   343
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   344
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   345
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   346
\f2\-tsa url\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   347
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   348
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   349
\f2\-tsacert alias\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   350
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   351
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   352
\f2\-altsigner class\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   353
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   354
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   355
\f2\-altsignerpath classpathlist\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   356
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   357
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   358
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   359
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   360
Each of these options is detailed in the Options section below.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   361
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   362
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   363
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   364
JAR File Verification
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   365
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   366
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   367
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   368
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   369
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   370
A successful JAR file verification occurs if the signature(s) are valid, and none of the files that were in the JAR file when the signatures were generated have been changed since then. JAR file verification involves the following steps:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   371
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   372
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   373
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   374
1.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   375
Verify the signature of the .SF file itself. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   376
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   377
That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   378
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   379
2.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   380
Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   381
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   382
The .SF file by default includes a header containing a hash of the entire manifest file. When the header is present, then the verification can check to see whether or not the hash in the header indeed matches the hash of the manifest file. If that is the case, verification proceeds to the next step. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   383
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   384
If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File). 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   385
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   386
One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   387
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   388
3.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   389
Read each file in the JAR file that has an entry in the .SF file. While reading, compute the file's digest, and then compare the result with the digest for this file in the manifest section. The digests should be the same, or verification fails. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   390
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   391
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   392
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   393
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   394
If any serious verification failures occur during the verification process, the process is stopped and a security exception is thrown. It is caught and displayed by \f3jarsigner\fP.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   395
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   396
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   397
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   398
Multiple Signatures for a JAR File
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   399
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   400
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   401
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   402
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   403
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   404
A JAR file can be signed by multiple people simply by running the \f3jarsigner\fP tool on the file multiple times, specifying the alias for a different person each time, as in:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   405
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   406
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   407
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   408
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   409
  jarsigner myBundle.jar susan
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   410
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   411
  jarsigner myBundle.jar kevin
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   412
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   413
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   414
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   415
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   416
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   417
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   418
When a JAR file is signed multiple times, there are multiple .SF and .DSA files in the resulting JAR file, one pair for each signature. Thus, in the example above, the output JAR file includes files with the following names:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   419
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   420
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   421
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   422
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   423
  SUSAN.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   424
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   425
  SUSAN.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   426
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   427
  KEVIN.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   428
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   429
  KEVIN.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   430
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   431
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   432
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   433
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   434
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   435
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   436
Note: It is also possible for a JAR file to have mixed signatures, some generated by the JDK 1.1 \f3javakey\fP tool and others by \f3jarsigner\fP. That is, \f3jarsigner\fP can be used to sign JAR files already previously signed using \f3javakey\fP.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   437
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   438
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   439
.SH "OPTIONS"
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   440
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   441
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   442
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   443
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   444
The various \f3jarsigner\fP options are listed and described below. Note:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   445
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   446
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   447
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   448
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   449
All option names are preceded by a minus sign (\-). 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   450
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   451
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   452
The options may be provided in any order. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   453
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   454
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   455
Items in italics (option values) represent the actual values that must be supplied. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   456
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   457
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   458
The \f2\-keystore\fP, \f2\-storepass\fP, \f2\-keypass\fP, \f2\-sigfile\fP, \f2\-sigalg\fP, \f2\-digestalg\fP, and \f2\-signedjar\fP options are only relevant when signing a JAR file, not when verifying a signed JAR file. Similarly, an alias is only specified on the command line when signing a JAR file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   459
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   460
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   461
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   462
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   463
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   464
\-keystore url 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   465
Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   466
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   467
A keystore is required when signing, so you must explicitly specify one if the default keystore does not exist (or you want to use one other than the default). 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   468
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   469
A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   470
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   471
Note: the \f2\-keystore\fP argument can actually be a file name (and path) specification rather than a URL, in which case it will be treated the same as a "file:" URL. That is, 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   472
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   473
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   474
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   475
  \-keystore \fP\f4filePathAndName\fP\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   476
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   477
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   478
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   479
is treated as equivalent to 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   480
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   481
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   482
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   483
  \-keystore file:\fP\f4filePathAndName\fP\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   484
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   485
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   486
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   487
If the Sun PKCS#11 provider has been configured in the \f2java.security\fP security properties file (located in the JRE's \f2$JAVA_HOME/lib/security\fP directory), then keytool and jarsigner can operate on the PKCS#11 token by specifying these options: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   488
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   489
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   490
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   491
\f2\-keystore NONE\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   492
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   493
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   494
\f2\-storetype PKCS11\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   495
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   496
For example, this command lists the contents of the configured PKCS#11 token: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   497
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   498
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   499
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   500
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   501
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   502
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   503
   jarsigner \-keystore NONE \-storetype PKCS11 \-list
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   504
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   505
  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   506
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   507
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   508
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   509
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   510
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   511
\-storetype storetype 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   512
Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   513
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   514
The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   515
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   516
\-storepass password 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   517
Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   518
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   519
Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   520
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   521
\-keypass password 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   522
Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   523
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   524
Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. Also, when typing in a password at the password prompt, the password is echoed (displayed exactly as typed), so be careful not to type it in front of anyone.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   525
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   526
\-sigfile file 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   527
Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   528
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   529
The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   530
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   531
If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   532
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   533
\-sigalg algorithm 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   534
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   535
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   536
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   537
Specifies the name of the signature algorithm to use to sign the JAR file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   538
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   539
See 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   540
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   541
\f2Appendix A\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   542
.fi
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
   543
http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA or SHA256withRSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   544
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   545
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   546
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   547
\-digestalg algorithm 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   548
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   549
Specifies the name of the message digest algorithm to use when digesting the entries of a jar file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   550
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   551
See 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   552
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   553
\f2Appendix A\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   554
.fi
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
   555
http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA\-256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   556
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   557
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   558
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   559
\-signedjar file 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   560
Specifies the name to be used for the signed JAR file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   561
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   562
If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   563
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   564
\-verify 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   565
If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)" 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   566
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   567
It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   568
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   569
For further information on verification, see JAR File Verification.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   570
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   571
\-certs 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   572
If this appears on the command line, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file. This information includes 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   573
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   574
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   575
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   576
the name of the type of certificate (stored in the .DSA file) that certifies the signer's public key 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   577
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   578
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   579
if the certificate is an X.509 certificate (more specifically, an instance of \f2java.security.cert.X509Certificate\fP): the distinguished name of the signer 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   580
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   581
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   582
The keystore is also examined. If no keystore value is specified on the command line, the default keystore file (if any) will be checked. If the public key certificate for a signer matches an entry in the keystore, then the following information will also be displayed: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   583
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   584
.TP 2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   585
o
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   586
in parentheses, the alias name for the keystore entry for that signer. If the signer actually comes from a JDK 1.1 identity database instead of from a keystore, the alias name will appear in brackets instead of parentheses. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   587
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   588
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   589
\-certchain file 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   590
Specifies the certificate chain to be used, if the certificate chain associated with the private key of the keystore entry, addressed by the alias specified on the command line, is not complete. This may happen if the keystore is located on a hardware token where there is not enough capacity to hold a complete certificate chain. The file can be a sequence of X.509 certificates concatenated together, or a single PKCS#7 formatted data block, either in binary encoding format or in printable encoding format (also known as BASE64 encoding) as defined by the Internet RFC 1421 standard. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   591
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   592
\-verbose 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   593
If this appears on the command line, it indicates "verbose" mode, which causes \f3jarsigner\fP to output extra information as to the progress of the JAR signing or verification. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   594
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   595
\-internalsf 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   596
In the past, the .DSA (signature block) file generated when a JAR file was signed used to include a complete encoded copy of the .SF file (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the .DSA file by default doesn't contain a copy of the .SF file anymore. But if \f2\-internalsf\fP appears on the command line, the old behavior is utilized. \f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   597
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   598
\-sectionsonly 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   599
If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File . 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   600
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   601
By default, this header is added, as an optimization. When the header is present, then whenever the JAR file is verified, the verification can first check to see whether or not the hash in the header indeed matches the hash of the whole manifest file. If so, verification proceeds to the next step. If not, it is necessary to do a less optimized verification that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   602
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   603
For further information, see JAR File Verification. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   604
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   605
\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   606
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   607
\-protected 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   608
Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   609
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   610
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   611
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   612
\-provider provider\-class\-name 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   613
Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   614
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   615
Used in conjunction with the \f2\-providerArg\fP \f2ConfigFilePath\fP option, keytool and jarsigner will install the provider dynamically (where \f2ConfigFilePath\fP is the path to the token configuration file). Here's an example of a command to list a PKCS#11 keystore when the Sun PKCS#11 provider has not been configured in the security properties file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   616
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   617
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   618
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   619
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   620
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   621
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   622
jarsigner \-keystore NONE \-storetype PKCS11 \\ 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   623
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   624
          \-providerClass sun.security.pkcs11.SunPKCS11 \\ 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   625
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   626
          \-providerArg /foo/bar/token.config \\ 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   627
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   628
          \-list
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   629
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   630
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   631
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   632
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   633
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   634
\-providerName providerName 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   635
If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   636
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   637
For the Sun PKCS#11 provider, \f2providerName\fP is of the form \f2SunPKCS11\-\fP\f2TokenName\fP, where \f2TokenName\fP is the name suffix that the provider instance has been configured with, as detailed in the 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   638
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   639
\f2configuration attributes table\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   640
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   641
http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   642
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   643
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   644
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   645
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   646
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   647
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   648
jarsigner \-keystore NONE \-storetype PKCS11 \\ 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   649
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   650
        \-providerName SunPKCS11\-SmartCard \\ 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   651
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   652
        \-list
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   653
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   654
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   655
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   656
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   657
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   658
\-Jjavaoption 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   659
Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   660
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   661
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   662
\-tsa url 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   663
If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   664
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   665
To generate the timestamp, \f2jarsigner\fP communicates with the TSA using the Time\-Stamp Protocol (TSP) defined in 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   666
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   667
\f2RFC 3161\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   668
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   669
http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   670
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   671
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   672
\-tsacert alias 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   673
If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   674
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   675
The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   676
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   677
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   678
\-altsigner class 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   679
Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   680
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   681
For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   682
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   683
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   684
\-altsignerpath classpathlist 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   685
Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   686
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   687
An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   688
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   689
Example of specifying the path to a jar file that contains the class file: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   690
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   691
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   692
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   693
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   694
\f2\-altsignerpath /home/user/lib/authsigner.jar\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   695
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   696
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   697
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   698
Note that the JAR file name is included. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   699
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   700
Example of specifying the path to the jar file that contains the class file: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   701
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   702
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   703
\f2\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   704
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   705
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   706
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   707
Note that the JAR file name is omitted.  
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   708
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   709
\-strict 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   710
During the signing or verifying process, some warning messages may be shown. If this option appears on the command line, the exit code of the tool will reflect the warning messages that are found. Read the "WARNINGS" section for details. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   711
.TP 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   712
\-verbose:sub\-options 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   713
For the verifying process, the \f2\-verbose\fP option takes sub\-options to determine how much information will be shown. If \f2\-certs\fP is also specified, the default mode (or sub\-option all) displays each entry as it is being processed and following that, the certificate information for each signer of the JAR file. If \f2\-certs\fP and the \f2\-verbose:grouped\fP sub\-option are specified, entries with the same signer info are grouped and displayed together along with their certificate information. If \f2\-certs\fP and the \f2\-verbose:summary\fP sub\-option are specified, then entries with the same signer info are grouped and displayed together along with their certificate information but details about each entry are summarized and displayed as "one entry (and more)". See the examples section for more information. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   714
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   715
.SH "EXAMPLES"
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   716
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   717
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   718
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   719
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   720
Signing a JAR File
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   721
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   722
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   723
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   724
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   725
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   726
Suppose you have a JAR file named "bundle.jar" and you'd like to sign it using the private key of the user whose keystore alias is "jane" in the keystore named "mystore" in the "working" directory. Suppose the keystore password is "myspass" and the password for \f2jane\fP's private key is "j638klm". You can use the following to sign the JAR file and name the signed JAR file "sbundle.jar":
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   727
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   728
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   729
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   730
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   731
    jarsigner \-keystore /working/mystore \-storepass myspass
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   732
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   733
      \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   734
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   735
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   736
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   737
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   738
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   739
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   740
Note that there is no \f2\-sigfile\fP specified in the command above, so the generated .SF and .DSA files to be placed in the signed JAR file will have default names based on the alias name. That is, they will be named \f2JANE.SF\fP and \f2JANE.DSA\fP.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   741
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   742
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   743
If you want to be prompted for the store password and the private key password, you could shorten the above command to
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   744
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   745
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   746
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   747
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   748
    jarsigner \-keystore /working/mystore
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   749
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   750
      \-signedjar sbundle.jar bundle.jar jane 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   751
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   752
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   753
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   754
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   755
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   756
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   757
If the keystore to be used is the default keystore (the one named ".keystore" in your home directory), you don't need to specify a keystore, as in:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   758
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   759
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   760
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   761
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   762
    jarsigner \-signedjar sbundle.jar bundle.jar jane 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   763
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   764
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   765
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   766
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   767
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   768
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   769
Finally, if you want the signed JAR file to simply overwrite the input JAR file (\f2bundle.jar\fP), you don't need to specify a \f2\-signedjar\fP option:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   770
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   771
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   772
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   773
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   774
    jarsigner bundle.jar jane 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   775
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   776
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   777
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   778
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   779
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   780
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   781
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   782
Verifying a Signed JAR File
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   783
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   784
.RS 3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   785
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   786
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   787
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   788
To verify a signed JAR file, that is, to verify that the signature is valid and the JAR file has not been tampered with, use a command such as the following:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   789
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   790
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   791
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   792
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   793
    jarsigner \-verify sbundle.jar 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   794
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   795
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   796
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   797
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   798
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   799
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   800
If the verification is successful,
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   801
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   802
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   803
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   804
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   805
    jar verified.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   806
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   807
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   808
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   809
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   810
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   811
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   812
is displayed. Otherwise, an error message appears.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   813
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   814
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   815
You can get more information if you use the \f2\-verbose\fP option. A sample use of \f3jarsigner\fP with the \f2\-verbose\fP option is shown below, along with sample output:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   816
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   817
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   818
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   819
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   820
    jarsigner \-verify \-verbose sbundle.jar
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   821
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   822
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   823
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   824
           198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   825
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   826
           199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   827
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   828
          1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   829
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   830
    smk   2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   831
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   832
    smk    849 Fri Sep 26 16:12:46 PDT 1997 test.class
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   833
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   834
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   835
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   836
      s = signature was verified
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   837
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   838
      m = entry is listed in manifest
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   839
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   840
      k = at least one certificate was found in keystore
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   841
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   842
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   843
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   844
    jar verified.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   845
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   846
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   847
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   848
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   849
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   850
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   851
Verification with Certificate Information
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   852
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   853
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   854
If you specify the \f2\-certs\fP option when verifying, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file, including the certificate type, the signer distinguished name information (iff it's an X.509 certificate), and, in parentheses, the keystore alias for the signer if the public key certificate in the JAR file matches that in a keystore entry. For example,
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   855
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   856
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   857
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   858
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   859
    jarsigner \-keystore /working/mystore \-verify \-verbose \-certs myTest.jar
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   860
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   861
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   862
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   863
           198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   864
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   865
           199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   866
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   867
          1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   868
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   869
           208 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   870
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   871
          1087 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   872
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   873
    smk   2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   874
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   875
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   876
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   877
      X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest)
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   878
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   879
      X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane)
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   880
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   881
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   882
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   883
      s = signature was verified
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   884
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   885
      m = entry is listed in manifest
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   886
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   887
      k = at least one certificate was found in keystore
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   888
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   889
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   890
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   891
    jar verified.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   892
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   893
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   894
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   895
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   896
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   897
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   898
If the certificate for a signer is not an X.509 certificate, there is no distinguished name information. In that case, just the certificate type and the alias are shown. For example, if the certificate is a PGP certificate, and the alias is "bob", you'd get
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   899
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   900
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   901
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   902
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   903
      PGP, (bob)
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   904
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   905
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   906
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   907
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   908
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   909
.SS 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   910
Verification of a JAR File that Includes Identity Database Signers
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   911
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   912
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   913
If a JAR file has been signed using the JDK 1.1 \f3javakey\fP tool, and thus the signer is an alias in an identity database, the verification output includes an "i" symbol. If the JAR file has been signed by both an alias in an identity database and an alias in a keystore, both "k" and "i" appear.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   914
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   915
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   916
When the \f2\-certs\fP option is used, any identity database aliases are shown in square brackets rather than the parentheses used for keystore aliases. For example:
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   917
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   918
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   919
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   920
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   921
    jarsigner \-keystore /working/mystore \-verify \-verbose \-certs writeFile.jar
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   922
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   923
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   924
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   925
           198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   926
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   927
           199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   928
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   929
          1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   930
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   931
           199 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.SF
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   932
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   933
          1013 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.DSA
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   934
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   935
   smki   2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   936
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   937
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   938
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   939
      X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane)
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   940
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   941
      X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke]
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   942
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   943
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   944
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   945
      s = signature was verified
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   946
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   947
      m = entry is listed in manifest
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   948
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   949
      k = at least one certificate was found in keystore
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   950
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   951
      i = at least one certificate was found in identity scope
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   952
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   953
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   954
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   955
    jar verified.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   956
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   957
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   958
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   959
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   960
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   961
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   962
Note that the alias "duke" is in brackets to denote that it is an identity database alias, not a keystore alias.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   963
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   964
.RE
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   965
.SH "WARNINGS"
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   966
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   967
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   968
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   969
During the signing/verifying process, jarsigner may display various warnings. These warning codes are defined as follows: 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   970
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   971
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   972
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   973
         hasExpiringCert         2
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   974
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   975
             This jar contains entries whose signer certificate will expire within six months
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   976
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   977
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   978
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   979
         hasExpiredCert          4
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   980
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   981
             This jar contains entries whose signer certificate has expired.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   982
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   983
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   984
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   985
         notYetValidCert         4
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   986
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   987
             This jar contains entries whose signer certificate is not yet valid.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   988
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   989
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   990
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   991
         chainNotValidated       4
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   992
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   993
             This jar contains entries whose certificate chain cannot be correctly validated.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   994
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   995
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   996
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   997
         badKeyUsage             8
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   998
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   999
             This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1000
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1001
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1002
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1003
         badExtendedKeyUsage     8
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1004
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1005
             This jar contains entries whose signer certificate's ExtendedKeyUsage extension
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1006
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1007
             doesn't allow code signing.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1008
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1009
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1010
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1011
         badNetscapeCertType     8
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1012
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1013
             This jar contains entries whose signer certificate's NetscapeCertType extension 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1014
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1015
             doesn't allow code signing.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1016
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1017
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1018
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1019
         hasUnsignedEntry        16
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1020
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1021
             This jar contains unsigned entries which have not been integrity\-checked.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1022
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1023
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1024
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1025
         notSignedByAlias        32
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1026
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1027
             This jar contains signed entries which are not signed by the specified alias(es)
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1028
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1029
         
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1030
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1031
         aliasNotInStore         32
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1032
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1033
             This jar contains signed entries that are not signed by alias in this keystore
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1034
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1035
   
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1036
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1037
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1038
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1039
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1040
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1041
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1042
When the \f2\-strict\fP option is provided, an OR\-value of warnings detected will be returned as the exit code of the tool. For example, if a certificate used to sign an entry is expired and has a keyUsage extension that does not allow it to sign a file, an exit code 12 (=4+8) will be returned.
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1043
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1044
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1045
\f3Note\fP: Exit codes are reused because only 0\-255 is legal for Unix. In any case, if the signing/verifying process fails, the exit code
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1046
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1047
.nf
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1048
\f3
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1049
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1050
failure                 1 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1051
.fl
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1052
\fP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1053
.fi
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1054
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1055
.LP
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1056
will be returned. 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1057
.SS 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1058
Compatibility with JDK 1.1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1059
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1060
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1061
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1062
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1063
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1064
The \f3keytool\fP and \f3jarsigner\fP tools completely replace the \f3javakey\fP tool provided in JDK 1.1. These new tools provide more features than \f3javakey\fP, including the ability to protect the keystore and private keys with passwords, and the ability to verify signatures in addition to generating them.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1065
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1066
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1067
The new keystore architecture replaces the identity database that \f3javakey\fP created and managed. There is no backwards compatibility between the keystore format and the database format used by \f3javakey\fP in 1.1. However,
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1068
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1069
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1070
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1071
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1072
It is possible to import the information from an identity database into a keystore, via the \f3keytool\fP \f2\-identitydb\fP command. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1073
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1074
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1075
\f3jarsigner\fP can sign JAR files also previously signed using \f3javakey\fP. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1076
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1077
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1078
\f3jarsigner\fP can verify JAR files signed using \f3javakey\fP. Thus, it recognizes and can work with signer aliases that are from a JDK 1.1 identity database rather than a Java 2 SDK keystore. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1079
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1080
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1081
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1082
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1083
The following table explains how JAR files that were signed in JDK 1.1.x are treated in the Java 2 platform.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1084
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1085
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1086
.TS
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1087
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1088
.de 35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1089
.ps \n(.s
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1090
.vs \n(.vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1091
.in \n(.iu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1092
.if \n(.u .fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1093
.if \n(.j .ad
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1094
.if \n(.j=0 .na
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1095
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1096
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1097
.nr #~ 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1098
.if n .nr #~ 0.6n
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1099
.ds #d .d
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1100
.if \(ts\n(.z\(ts\(ts .ds #d nl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1101
.fc
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1102
.nr 33 \n(.s
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1103
.rm 80 81 82 83 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1104
.nr 34 \n(.lu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1105
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1106
.am 82
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1107
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1108
.di a+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1109
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1110
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1111
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1112
.if \n(.l<\n(82 .ll \n(82u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1113
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1114
\f3Trusted Identity imported into Java 2 Platform keystore from 1.1 database (4)\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1115
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1116
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1117
.nr a| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1118
.nr a- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1119
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1120
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1121
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1122
.am 83
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1123
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1124
.di b+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1125
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1126
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1127
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1128
.if \n(.l<\n(83 .ll \n(83u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1129
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1130
\f3Policy File grants privileges to Identity/Alias\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1131
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1132
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1133
.nr b| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1134
.nr b- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1135
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1136
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1137
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1138
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1139
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1140
.di c+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1141
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1142
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1143
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1144
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1145
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1146
Default privileges granted to all code.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1147
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1148
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1149
.nr c| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1150
.nr c- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1151
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1152
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1153
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1154
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1155
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1156
.di d+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1157
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1158
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1159
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1160
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1161
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1162
Default privileges granted to all code.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1163
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1164
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1165
.nr d| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1166
.nr d- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1167
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1168
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1169
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1170
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1171
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1172
.di e+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1173
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1174
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1175
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1176
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1177
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1178
Default privileges granted to all code.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1179
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1180
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1181
.nr e| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1182
.nr e- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1183
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1184
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1185
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1186
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1187
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1188
.di f+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1189
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1190
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1191
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1192
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1193
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1194
Default privileges granted to all code. (3)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1195
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1196
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1197
.nr f| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1198
.nr f- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1199
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1200
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1201
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1202
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1203
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1204
.di g+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1205
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1206
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1207
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1208
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1209
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1210
Default privileges granted to all code. (1,3)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1211
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1212
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1213
.nr g| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1214
.nr g- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1215
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1216
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1217
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1218
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1219
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1220
.di h+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1221
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1222
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1223
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1224
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1225
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1226
Default privileges granted to all code plus privileges granted in policy file.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1227
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1228
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1229
.nr h| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1230
.nr h- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1231
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1232
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1233
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1234
.am 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1235
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1236
.di i+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1237
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1238
.ft \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1239
.ll \n(34u*1u/6u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1240
.if \n(.l<\n(84 .ll \n(84u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1241
.in 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1242
Default privileges granted to all code plus privileges granted in policy file. (2)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1243
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1244
.di
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1245
.nr i| \n(dn
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1246
.nr i- \n(dl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1247
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1248
.ec \
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1249
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1250
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1251
.ll \n(34u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1252
.nr 80 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1253
.nr 38 \w\f3JAR File Type\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1254
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1255
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1256
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1257
.nr 38 \wUnsigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1258
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1259
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1260
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1261
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1262
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1263
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1264
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1265
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1266
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1267
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1268
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1269
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1270
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1271
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1272
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1273
.nr 38 \wSigned JAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1274
.if \n(80<\n(38 .nr 80 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1275
.80
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1276
.rm 80
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1277
.nr 81 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1278
.nr 38 \w\f3Identity in 1.1 database\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1279
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1280
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1281
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1282
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1283
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1284
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1285
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1286
.nr 38 \wYES/Untrusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1287
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1288
.nr 38 \wYES/Untrusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1289
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1290
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1291
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1292
.nr 38 \wYES/Trusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1293
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1294
.nr 38 \wYES/Trusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1295
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1296
.nr 38 \wYES/Trusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1297
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1298
.nr 38 \wYES/Trusted
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1299
.if \n(81<\n(38 .nr 81 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1300
.81
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1301
.rm 81
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1302
.nr 82 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1303
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1304
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1305
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1306
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1307
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1308
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1309
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1310
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1311
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1312
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1313
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1314
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1315
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1316
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1317
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1318
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1319
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1320
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1321
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1322
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1323
.82
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1324
.rm 82
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1325
.nr 38 \n(a-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1326
.if \n(82<\n(38 .nr 82 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1327
.nr 83 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1328
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1329
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1330
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1331
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1332
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1333
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1334
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1335
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1336
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1337
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1338
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1339
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1340
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1341
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1342
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1343
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1344
.nr 38 \wNO
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1345
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1346
.nr 38 \wYES
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1347
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1348
.83
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1349
.rm 83
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1350
.nr 38 \n(b-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1351
.if \n(83<\n(38 .nr 83 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1352
.nr 84 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1353
.nr 38 \w\f3Privileges Granted\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1354
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1355
.nr 38 \wAll privileges
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1356
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1357
.nr 38 \wAll privileges (1)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1358
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1359
.nr 38 \wAll privileges (1)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1360
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1361
.84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1362
.rm 84
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1363
.nr 38 \n(c-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1364
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1365
.nr 38 \n(d-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1366
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1367
.nr 38 \n(e-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1368
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1369
.nr 38 \n(f-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1370
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1371
.nr 38 \n(g-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1372
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1373
.nr 38 \n(h-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1374
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1375
.nr 38 \n(i-
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1376
.if \n(84<\n(38 .nr 84 \n(38
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1377
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1378
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1379
.ll \n(34u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1380
.nr 38 1n
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1381
.nr 79 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1382
.nr 40 \n(79+(0*\n(38)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1383
.nr 80 +\n(40
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1384
.nr 41 \n(80+(3*\n(38)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1385
.nr 81 +\n(41
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1386
.nr 42 \n(81+(3*\n(38)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1387
.nr 82 +\n(42
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1388
.nr 43 \n(82+(3*\n(38)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1389
.nr 83 +\n(43
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1390
.nr 44 \n(83+(3*\n(38)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1391
.nr 84 +\n(44
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1392
.nr TW \n(84
5865
47da38a8c0f0 6955341: Oracle rebranding changes for man pages
bpatel
parents: 5506
diff changeset
  1393
.if t .if \n(TW>\n(.li .tm Table at line 1128 file Input is too wide - \n(TW units
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1394
.fc  
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1395
.nr #T 0-1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1396
.nr #a 0-1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1397
.eo
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1398
.de T#
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1399
.ds #d .d
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1400
.if \(ts\n(.z\(ts\(ts .ds #d nl
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1401
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1402
.nr ## -1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1403
.ls 1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1404
.ls
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1405
..
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1406
.ec
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1407
.ne \n(a|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1408
.ne \n(b|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1409
.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1410
.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1411
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1412
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1413
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1414
\&\h'|\n(40u'\f3JAR File Type\fP\h'|\n(41u'\f3Identity in 1.1 database\fP\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3Privileges Granted\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1415
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1416
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1417
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1418
.nr 37 \n(42u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1419
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1420
.a+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1421
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1422
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1423
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1424
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1425
.nr 37 \n(43u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1426
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1427
.b+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1428
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1429
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1430
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1431
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1432
.ne \n(c|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1433
.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1434
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1435
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1436
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1437
\&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1438
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1439
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1440
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1441
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1442
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1443
.c+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1444
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1445
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1446
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1447
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1448
.ne \n(d|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1449
.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1450
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1451
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1452
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1453
\&\h'|\n(40u'Unsigned JAR\h'|\n(41u'NO\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1454
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1455
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1456
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1457
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1458
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1459
.d+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1460
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1461
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1462
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1463
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1464
.ne \n(e|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1465
.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1466
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1467
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1468
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1469
\&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'YES\h'|\n(43u'NO\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1470
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1471
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1472
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1473
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1474
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1475
.e+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1476
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1477
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1478
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1479
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1480
.ne \n(f|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1481
.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1482
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1483
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1484
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1485
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Untrusted\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1486
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1487
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1488
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1489
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1490
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1491
.f+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1492
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1493
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1494
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1495
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1496
.ne \n(g|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1497
.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1498
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1499
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1500
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1501
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Untrusted\h'|\n(42u'NO\h'|\n(43u'YES\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1502
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1503
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1504
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1505
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1506
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1507
.g+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1508
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1509
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1510
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1511
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1512
.ne \n(h|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1513
.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1514
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1515
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1516
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1517
\&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'YES\h'|\n(43u'YES\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1518
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1519
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1520
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1521
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1522
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1523
.h+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1524
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1525
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1526
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1527
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1528
.ne \n(i|u+\n(.Vu
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1529
.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1530
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1531
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1532
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1533
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'YES\h'|\n(43u'YES\h'|\n(44u'
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1534
.mk ##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1535
.nr 31 \n(##
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1536
.sp |\n(##u-1v
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1537
.nr 37 \n(44u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1538
.in +\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1539
.i+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1540
.in -\n(37u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1541
.mk 32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1542
.if \n(32>\n(31 .nr 31 \n(32
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1543
.sp |\n(31u
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1544
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1545
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1546
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1547
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'All privileges
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1548
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1549
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1550
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1551
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'YES\h'|\n(43u'NO\h'|\n(44u'All privileges (1)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1552
.ta \n(80u \n(81u \n(82u \n(83u \n(84u 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1553
.nr 31 \n(.f
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1554
.nr 35 1m
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1555
\&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'NO\h'|\n(43u'YES\h'|\n(44u'All privileges (1)
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1556
.fc
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1557
.nr T. 1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1558
.T# 1
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1559
.35
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1560
.rm a+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1561
.rm b+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1562
.rm c+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1563
.rm d+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1564
.rm e+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1565
.rm f+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1566
.rm g+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1567
.rm h+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1568
.rm i+
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1569
.TE
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1570
.if \n-(b.=0 .nr c. \n(.c-\n(d.-42
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1571
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1572
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1573
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1574
Notes:
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1575
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1576
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1577
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1578
1.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1579
If an identity/alias is mentioned in the policy file, it must be imported into the keystore for the policy file to have any effect on privileges granted. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1580
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1581
2.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1582
The policy file/keystore combination has precedence over a trusted identity in the identity database. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1583
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1584
3.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1585
Untrusted identities are ignored in the Java 2 platform. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1586
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1587
4.
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1588
Only trusted identities can be imported into Java 2 SDK keystores. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1589
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1590
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1591
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1592
.SH "SEE ALSO"
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1593
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1594
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1595
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1596
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1597
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1598
o
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1599
jar(1) tool documentation 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1600
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1601
o
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1602
keytool(1) tool documentation 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1603
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1604
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1605
the 
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1606
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1607
\f4Security\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1608
.fi
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1609
http://java.sun.com/docs/books/tutorial/security/index.html trail of the 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1610
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1611
\f4Java Tutorial\fP @
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1612
.fi
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1613
http://java.sun.com/docs/books/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1614
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1615
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1616
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
  1617
.RE
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
  1618