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 } |
|