jdk/src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources.java
changeset 29455 e451c01a5747
parent 29454 e5e9478e2ddb
parent 29433 c97e2d1bad97
child 29478 6637277d28cc
equal deleted inserted replaced
29454:e5e9478e2ddb 29455:e451c01a5747
     1 /*
       
     2  * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     5  * This code is free software; you can redistribute it and/or modify it
       
     6  * under the terms of the GNU General Public License version 2 only, as
       
     7  * published by the Free Software Foundation.  Oracle designates this
       
     8  * particular file as subject to the "Classpath" exception as provided
       
     9  * by Oracle in the LICENSE file that accompanied this code.
       
    10  *
       
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    14  * version 2 for more details (a copy is included in the LICENSE file that
       
    15  * accompanied this code).
       
    16  *
       
    17  * You should have received a copy of the GNU General Public License version
       
    18  * 2 along with this work; if not, write to the Free Software Foundation,
       
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    20  *
       
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    22  * or visit www.oracle.com if you need additional information or have any
       
    23  * questions.
       
    24  */
       
    25 
       
    26 package sun.security.tools.jarsigner;
       
    27 
       
    28 /**
       
    29  * <p> This class represents the <code>ResourceBundle</code>
       
    30  * for JarSigner.
       
    31  *
       
    32  */
       
    33 public class Resources extends java.util.ListResourceBundle {
       
    34 
       
    35     private static final Object[][] contents = {
       
    36 
       
    37         // shared (from jarsigner)
       
    38         {"SPACE", " "},
       
    39         {"2SPACE", "  "},
       
    40         {"6SPACE", "      "},
       
    41         {"COMMA", ", "},
       
    42 
       
    43         {"provName.not.a.provider", "{0} not a provider"},
       
    44         {"signerClass.is.not.a.signing.mechanism", "{0} is not a signing mechanism"},
       
    45         {"jarsigner.error.", "jarsigner error: "},
       
    46         {"Illegal.option.", "Illegal option: "},
       
    47         {".keystore.must.be.NONE.if.storetype.is.{0}",
       
    48                 "-keystore must be NONE if -storetype is {0}"},
       
    49         {".keypass.can.not.be.specified.if.storetype.is.{0}",
       
    50                 "-keypass can not be specified if -storetype is {0}"},
       
    51         {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
       
    52                 "If -protected is specified, then -storepass and -keypass must not be specified"},
       
    53         {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
       
    54                  "If keystore is not password protected, then -storepass and -keypass must not be specified"},
       
    55         {"Usage.jarsigner.options.jar.file.alias",
       
    56                 "Usage: jarsigner [options] jar-file alias"},
       
    57         {".jarsigner.verify.options.jar.file.alias.",
       
    58                 "       jarsigner -verify [options] jar-file [alias...]"},
       
    59         {".keystore.url.keystore.location",
       
    60                 "[-keystore <url>]           keystore location"},
       
    61         {".storepass.password.password.for.keystore.integrity",
       
    62             "[-storepass <password>]     password for keystore integrity"},
       
    63         {".storetype.type.keystore.type",
       
    64                 "[-storetype <type>]         keystore type"},
       
    65         {".keypass.password.password.for.private.key.if.different.",
       
    66                 "[-keypass <password>]       password for private key (if different)"},
       
    67         {".certchain.file.name.of.alternative.certchain.file",
       
    68                 "[-certchain <file>]         name of alternative certchain file"},
       
    69         {".sigfile.file.name.of.SF.DSA.file",
       
    70                 "[-sigfile <file>]           name of .SF/.DSA file"},
       
    71         {".signedjar.file.name.of.signed.JAR.file",
       
    72                 "[-signedjar <file>]         name of signed JAR file"},
       
    73         {".digestalg.algorithm.name.of.digest.algorithm",
       
    74                 "[-digestalg <algorithm>]    name of digest algorithm"},
       
    75         {".sigalg.algorithm.name.of.signature.algorithm",
       
    76                 "[-sigalg <algorithm>]       name of signature algorithm"},
       
    77         {".verify.verify.a.signed.JAR.file",
       
    78                 "[-verify]                   verify a signed JAR file"},
       
    79         {".verbose.suboptions.verbose.output.when.signing.verifying.",
       
    80                 "[-verbose[:suboptions]]     verbose output when signing/verifying."},
       
    81         {".suboptions.can.be.all.grouped.or.summary",
       
    82                 "                            suboptions can be all, grouped or summary"},
       
    83         {".certs.display.certificates.when.verbose.and.verifying",
       
    84                 "[-certs]                    display certificates when verbose and verifying"},
       
    85         {".tsa.url.location.of.the.Timestamping.Authority",
       
    86                 "[-tsa <url>]                location of the Timestamping Authority"},
       
    87         {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
       
    88                 "[-tsacert <alias>]          public key certificate for Timestamping Authority"},
       
    89         {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
       
    90                 "[-tsapolicyid <oid>]        TSAPolicyID for Timestamping Authority"},
       
    91         {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
       
    92                 "[-tsadigestalg <algorithm>] algorithm of digest data in timestamping request"},
       
    93         {".altsigner.class.class.name.of.an.alternative.signing.mechanism",
       
    94                 "[-altsigner <class>]        class name of an alternative signing mechanism"},
       
    95         {".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism",
       
    96                 "[-altsignerpath <pathlist>] location of an alternative signing mechanism"},
       
    97         {".internalsf.include.the.SF.file.inside.the.signature.block",
       
    98                 "[-internalsf]               include the .SF file inside the signature block"},
       
    99         {".sectionsonly.don.t.compute.hash.of.entire.manifest",
       
   100                 "[-sectionsonly]             don't compute hash of entire manifest"},
       
   101         {".protected.keystore.has.protected.authentication.path",
       
   102                 "[-protected]                keystore has protected authentication path"},
       
   103         {".providerName.name.provider.name",
       
   104                 "[-providerName <name>]      provider name"},
       
   105         {".providerClass.class.name.of.cryptographic.service.provider.s",
       
   106                 "[-providerClass <class>     name of cryptographic service provider's"},
       
   107         {".providerArg.arg.master.class.file.and.constructor.argument",
       
   108                 "  [-providerArg <arg>]] ... master class file and constructor argument"},
       
   109         {".strict.treat.warnings.as.errors",
       
   110                 "[-strict]                   treat warnings as errors"},
       
   111         {".conf.url.specify.a.pre.configured.options.file",
       
   112                 "[-conf <url>]               specify a pre-configured options file"},
       
   113         {"Option.lacks.argument", "Option lacks argument"},
       
   114         {"Please.type.jarsigner.help.for.usage", "Please type jarsigner -help for usage"},
       
   115         {"Please.specify.jarfile.name", "Please specify jarfile name"},
       
   116         {"Please.specify.alias.name", "Please specify alias name"},
       
   117         {"Only.one.alias.can.be.specified", "Only one alias can be specified"},
       
   118         {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
       
   119                  "This jar contains signed entries which are not signed by the specified alias(es)."},
       
   120         {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
       
   121                   "This jar contains signed entries that are not signed by alias in this keystore."},
       
   122         {"s", "s"},
       
   123         {"m", "m"},
       
   124         {"k", "k"},
       
   125         {"i", "i"},
       
   126         {".and.d.more.", "(and %d more)"},
       
   127         {".s.signature.was.verified.",
       
   128                 "  s = signature was verified "},
       
   129         {".m.entry.is.listed.in.manifest",
       
   130                 "  m = entry is listed in manifest"},
       
   131         {".k.at.least.one.certificate.was.found.in.keystore",
       
   132                 "  k = at least one certificate was found in keystore"},
       
   133         {".i.at.least.one.certificate.was.found.in.identity.scope",
       
   134                 "  i = at least one certificate was found in identity scope"},
       
   135         {".X.not.signed.by.specified.alias.es.",
       
   136                 "  X = not signed by specified alias(es)"},
       
   137         {"no.manifest.", "no manifest."},
       
   138         {".Signature.related.entries.","(Signature related entries)"},
       
   139         {".Unsigned.entries.", "(Unsigned entries)"},
       
   140         {"jar.is.unsigned.signatures.missing.or.not.parsable.",
       
   141                 "jar is unsigned. (signatures missing or not parsable)"},
       
   142         {"jar.signed.", "jar signed."},
       
   143         {"jar.signed.with.signer.errors.", "jar signed, with signer errors."},
       
   144         {"jar.verified.", "jar verified."},
       
   145         {"jar.verified.with.signer.errors.", "jar verified, with signer errors."},
       
   146         {"jarsigner.", "jarsigner: "},
       
   147         {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
       
   148                 "signature filename must consist of the following characters: A-Z, 0-9, _ or -"},
       
   149         {"unable.to.open.jar.file.", "unable to open jar file: "},
       
   150         {"unable.to.create.", "unable to create: "},
       
   151         {".adding.", "   adding: "},
       
   152         {".updating.", " updating: "},
       
   153         {".signing.", "  signing: "},
       
   154         {"attempt.to.rename.signedJarFile.to.jarFile.failed",
       
   155                 "attempt to rename {0} to {1} failed"},
       
   156         {"attempt.to.rename.jarFile.to.origJar.failed",
       
   157                 "attempt to rename {0} to {1} failed"},
       
   158         {"unable.to.sign.jar.", "unable to sign jar: "},
       
   159         {"Enter.Passphrase.for.keystore.", "Enter Passphrase for keystore: "},
       
   160         {"keystore.load.", "keystore load: "},
       
   161         {"certificate.exception.", "certificate exception: "},
       
   162         {"unable.to.instantiate.keystore.class.",
       
   163                 "unable to instantiate keystore class: "},
       
   164         {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
       
   165                 "Certificate chain not found for: {0}.  {1} must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain."},
       
   166         {"File.specified.by.certchain.does.not.exist",
       
   167                 "File specified by -certchain does not exist"},
       
   168         {"Cannot.restore.certchain.from.file.specified",
       
   169                 "Cannot restore certchain from file specified"},
       
   170         {"Certificate.chain.not.found.in.the.file.specified.",
       
   171                 "Certificate chain not found in the file specified."},
       
   172         {"found.non.X.509.certificate.in.signer.s.chain",
       
   173                 "found non-X.509 certificate in signer's chain"},
       
   174         {"incomplete.certificate.chain", "incomplete certificate chain"},
       
   175         {"Enter.key.password.for.alias.", "Enter key password for {0}: "},
       
   176         {"unable.to.recover.key.from.keystore",
       
   177                 "unable to recover key from keystore"},
       
   178         {"key.associated.with.alias.not.a.private.key",
       
   179                 "key associated with {0} not a private key"},
       
   180         {"you.must.enter.key.password", "you must enter key password"},
       
   181         {"unable.to.read.password.", "unable to read password: "},
       
   182         {"certificate.is.valid.from", "certificate is valid from {0} to {1}"},
       
   183         {"certificate.expired.on", "certificate expired on {0}"},
       
   184         {"certificate.is.not.valid.until",
       
   185                 "certificate is not valid until {0}"},
       
   186         {"certificate.will.expire.on", "certificate will expire on {0}"},
       
   187         {".CertPath.not.validated.", "[CertPath not validated: "},
       
   188         {"requesting.a.signature.timestamp",
       
   189                 "requesting a signature timestamp"},
       
   190         {"TSA.location.", "TSA location: "},
       
   191         {"TSA.certificate.", "TSA certificate: "},
       
   192         {"no.response.from.the.Timestamping.Authority.",
       
   193                 "no response from the Timestamping Authority. When connecting"
       
   194                 + " from behind a firewall an HTTP or HTTPS proxy may need to"
       
   195                 + " be specified. Supply the following options to jarsigner:"},
       
   196         {"or", "or"},
       
   197         {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
       
   198                 "Certificate not found for: {0}.  {1} must reference a valid KeyStore entry containing an X.509 public key certificate for the Timestamping Authority."},
       
   199         {"using.an.alternative.signing.mechanism",
       
   200                 "using an alternative signing mechanism"},
       
   201         {"entry.was.signed.on", "entry was signed on {0}"},
       
   202         {"Warning.", "Warning: "},
       
   203         {"Error.", "Error: "},
       
   204         {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
       
   205                 "This jar contains unsigned entries which have not been integrity-checked. "},
       
   206         {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
       
   207                 "This jar contains entries whose signer certificate has expired. "},
       
   208         {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
       
   209                 "This jar contains entries whose signer certificate will expire within six months. "},
       
   210         {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
       
   211                 "This jar contains entries whose signer certificate is not yet valid. "},
       
   212         {"Re.run.with.the.verbose.option.for.more.details.",
       
   213                 "Re-run with the -verbose option for more details."},
       
   214         {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
       
   215                 "Re-run with the -verbose and -certs options for more details."},
       
   216         {"The.signer.certificate.has.expired.",
       
   217                 "The signer certificate has expired."},
       
   218         {"The.signer.certificate.will.expire.within.six.months.",
       
   219                 "The signer certificate will expire within six months."},
       
   220         {"The.signer.certificate.is.not.yet.valid.",
       
   221                 "The signer certificate is not yet valid."},
       
   222         {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
       
   223                  "The signer certificate's KeyUsage extension doesn't allow code signing."},
       
   224         {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
       
   225                  "The signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
       
   226         {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
       
   227                  "The signer certificate's NetscapeCertType extension doesn't allow code signing."},
       
   228         {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
       
   229                  "This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing."},
       
   230         {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
       
   231                  "This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
       
   232         {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
       
   233                  "This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing."},
       
   234         {".{0}.extension.does.not.support.code.signing.",
       
   235                  "[{0} extension does not support code signing]"},
       
   236         {"The.signer.s.certificate.chain.is.not.validated.",
       
   237                 "The signer's certificate chain is not validated."},
       
   238         {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.",
       
   239                  "This jar contains entries whose certificate chain is not validated."},
       
   240         {"no.timestamp.signing",
       
   241                 "No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td) or after any future revocation date."},
       
   242         {"no.timestamp.verifying",
       
   243                 "This jar contains signatures that does not include a timestamp. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td) or after any future revocation date."},
       
   244         {"Unknown.password.type.", "Unknown password type: "},
       
   245         {"Cannot.find.environment.variable.",
       
   246                 "Cannot find environment variable: "},
       
   247         {"Cannot.find.file.", "Cannot find file: "},
       
   248     };
       
   249 
       
   250     /**
       
   251      * Returns the contents of this <code>ResourceBundle</code>.
       
   252      *
       
   253      * <p>
       
   254      *
       
   255      * @return the contents of this <code>ResourceBundle</code>.
       
   256      */
       
   257     @Override
       
   258     public Object[][] getContents() {
       
   259         return contents;
       
   260     }
       
   261 }