1 /*
2 * Copyright (c) 2000, 2018, 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.keytool;
27
28 /**
29 * <p> This class represents the <code>ResourceBundle</code>
30 * for the keytool.
31 *
32 */
33 public class Resources extends java.util.ListResourceBundle {
34
35 private static final Object[][] contents = {
36 {"NEWLINE", "\n"},
37 {"STAR",
38 "*******************************************"},
39 {"STARNN",
40 "*******************************************\n\n"},
41
42 // keytool: Help part
43 {".OPTION.", " [OPTION]..."},
44 {"Options.", "Options:"},
45 {"option.1.set.twice", "The %s option is specified multiple times. All except the last one will be ignored."},
46 {"multiple.commands.1.2", "Only one command is allowed: both %1$s and %2$s were specified."},
47 {"Use.keytool.help.for.all.available.commands",
48 "Use \"keytool -?, -h, or --help\" for this help message"},
49 {"Key.and.Certificate.Management.Tool",
50 "Key and Certificate Management Tool"},
51 {"Commands.", "Commands:"},
52 {"Use.keytool.command.name.help.for.usage.of.command.name",
53 "Use \"keytool -command_name --help\" for usage of command_name.\n" +
54 "Use the -conf <url> option to specify a pre-configured options file."},
55 // keytool: help: commands
56 {"Generates.a.certificate.request",
57 "Generates a certificate request"}, //-certreq
58 {"Changes.an.entry.s.alias",
59 "Changes an entry's alias"}, //-changealias
60 {"Deletes.an.entry",
61 "Deletes an entry"}, //-delete
62 {"Exports.certificate",
63 "Exports certificate"}, //-exportcert
64 {"Generates.a.key.pair",
65 "Generates a key pair"}, //-genkeypair
66 {"Generates.a.secret.key",
67 "Generates a secret key"}, //-genseckey
68 {"Generates.certificate.from.a.certificate.request",
69 "Generates certificate from a certificate request"}, //-gencert
70 {"Generates.CRL", "Generates CRL"}, //-gencrl
71 {"Generated.keyAlgName.secret.key",
72 "Generated {0} secret key"}, //-genseckey
73 {"Generated.keysize.bit.keyAlgName.secret.key",
74 "Generated {0}-bit {1} secret key"}, //-genseckey
75 {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
76 "Imports entries from a JDK 1.1.x-style identity database"}, //-identitydb
77 {"Imports.a.certificate.or.a.certificate.chain",
78 "Imports a certificate or a certificate chain"}, //-importcert
79 {"Imports.a.password",
80 "Imports a password"}, //-importpass
81 {"Imports.one.or.all.entries.from.another.keystore",
82 "Imports one or all entries from another keystore"}, //-importkeystore
83 {"Clones.a.key.entry",
84 "Clones a key entry"}, //-keyclone
85 {"Changes.the.key.password.of.an.entry",
86 "Changes the key password of an entry"}, //-keypasswd
87 {"Lists.entries.in.a.keystore",
88 "Lists entries in a keystore"}, //-list
89 {"Prints.the.content.of.a.certificate",
90 "Prints the content of a certificate"}, //-printcert
91 {"Prints.the.content.of.a.certificate.request",
92 "Prints the content of a certificate request"}, //-printcertreq
93 {"Prints.the.content.of.a.CRL.file",
94 "Prints the content of a CRL file"}, //-printcrl
95 {"Generates.a.self.signed.certificate",
96 "Generates a self-signed certificate"}, //-selfcert
97 {"Changes.the.store.password.of.a.keystore",
98 "Changes the store password of a keystore"}, //-storepasswd
99 {"showinfo.command.help", "Displays security-related information"},
100
101 // keytool: help: options
102 {"alias.name.of.the.entry.to.process",
103 "alias name of the entry to process"}, //-alias
104 {"groupname.option.help",
105 "Group name. For example, an Elliptic Curve name."}, //-groupname
106 {"destination.alias",
107 "destination alias"}, //-destalias
108 {"destination.key.password",
109 "destination key password"}, //-destkeypass
110 {"destination.keystore.name",
111 "destination keystore name"}, //-destkeystore
112 {"destination.keystore.password.protected",
113 "destination keystore password protected"}, //-destprotected
114 {"destination.keystore.provider.name",
115 "destination keystore provider name"}, //-destprovidername
116 {"destination.keystore.password",
117 "destination keystore password"}, //-deststorepass
118 {"destination.keystore.type",
119 "destination keystore type"}, //-deststoretype
120 {"distinguished.name",
121 "distinguished name"}, //-dname
122 {"X.509.extension",
123 "X.509 extension"}, //-ext
124 {"output.file.name",
125 "output file name"}, //-file and -outfile
126 {"input.file.name",
127 "input file name"}, //-file and -infile
128 {"key.algorithm.name",
129 "key algorithm name"}, //-keyalg
130 {"key.password",
131 "key password"}, //-keypass
132 {"key.bit.size",
133 "key bit size"}, //-keysize
134 {"keystore.name",
135 "keystore name"}, //-keystore
136 {"access.the.cacerts.keystore",
137 "access the cacerts keystore"}, // -cacerts
138 {"warning.cacerts.option",
139 "Warning: use -cacerts option to access cacerts keystore"},
140 {"new.password",
141 "new password"}, //-new
142 {"do.not.prompt",
143 "do not prompt"}, //-noprompt
144 {"password.through.protected.mechanism",
145 "password through protected mechanism"}, //-protected
146 {"tls.option.help", "Displays TLS configuration information"},
147
148 // The following 2 values should span 2 lines, the first for the
149 // option itself, the second for its -providerArg value.
150 {"addprovider.option",
151 "add security provider by name (e.g. SunPKCS11)\n" +
152 "configure argument for -addprovider"}, //-addprovider
153 {"provider.class.option",
154 "add security provider by fully-qualified class name\n" +
155 "configure argument for -providerclass"}, //-providerclass
156
157 {"provider.name",
158 "provider name"}, //-providername
159 {"provider.classpath",
160 "provider classpath"}, //-providerpath
161 {"output.in.RFC.style",
162 "output in RFC style"}, //-rfc
163 {"signature.algorithm.name",
164 "signature algorithm name"}, //-sigalg
165 {"source.alias",
166 "source alias"}, //-srcalias
167 {"source.key.password",
168 "source key password"}, //-srckeypass
169 {"source.keystore.name",
170 "source keystore name"}, //-srckeystore
171 {"source.keystore.password.protected",
172 "source keystore password protected"}, //-srcprotected
173 {"source.keystore.provider.name",
174 "source keystore provider name"}, //-srcprovidername
175 {"source.keystore.password",
176 "source keystore password"}, //-srcstorepass
177 {"source.keystore.type",
178 "source keystore type"}, //-srcstoretype
179 {"SSL.server.host.and.port",
180 "SSL server host and port"}, //-sslserver
181 {"signed.jar.file",
182 "signed jar file"}, //=jarfile
183 {"certificate.validity.start.date.time",
184 "certificate validity start date/time"}, //-startdate
185 {"keystore.password",
186 "keystore password"}, //-storepass
187 {"keystore.type",
188 "keystore type"}, //-storetype
189 {"trust.certificates.from.cacerts",
190 "trust certificates from cacerts"}, //-trustcacerts
191 {"verbose.output",
192 "verbose output"}, //-v
193 {"validity.number.of.days",
194 "validity number of days"}, //-validity
195 {"Serial.ID.of.cert.to.revoke",
196 "Serial ID of cert to revoke"}, //-id
197 // keytool: Running part
198 {"keytool.error.", "keytool error: "},
199 {"Illegal.option.", "Illegal option: "},
200 {"Illegal.value.", "Illegal value: "},
201 {"Unknown.password.type.", "Unknown password type: "},
202 {"Cannot.find.environment.variable.",
203 "Cannot find environment variable: "},
204 {"Cannot.find.file.", "Cannot find file: "},
205 {"Command.option.flag.needs.an.argument.", "Command option {0} needs an argument."},
206 {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
207 "Warning: Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value."},
208 {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
209 "The -keystore or -storetype option cannot be used with the -cacerts option"},
210 {".keystore.must.be.NONE.if.storetype.is.{0}",
211 "-keystore must be NONE if -storetype is {0}"},
212 {"Too.many.retries.program.terminated",
213 "Too many retries, program terminated"},
214 {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
215 "-storepasswd and -keypasswd commands not supported if -storetype is {0}"},
216 {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
217 "-keypasswd commands not supported if -storetype is PKCS12"},
218 {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
219 "-keypass and -new can not be specified if -storetype is {0}"},
220 {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
221 "if -protected is specified, then -storepass, -keypass, and -new must not be specified"},
222 {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
223 "if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified"},
224 {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
225 "if keystore is not password protected, then -storepass, -keypass, and -new must not be specified"},
226 {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
227 "if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified"},
228 {"Illegal.startdate.value", "Illegal startdate value"},
229 {"Validity.must.be.greater.than.zero",
230 "Validity must be greater than zero"},
231 {"provclass.not.a.provider", "%s not a provider"},
232 {"provider.name.not.found", "Provider named \"%s\" not found"},
233 {"provider.class.not.found", "Provider \"%s\" not found"},
234 {"Usage.error.no.command.provided", "Usage error: no command provided"},
235 {"Source.keystore.file.exists.but.is.empty.", "Source keystore file exists, but is empty: "},
236 {"Please.specify.srckeystore", "Please specify -srckeystore"},
237 {"Must.not.specify.both.v.and.rfc.with.list.command",
238 "Must not specify both -v and -rfc with 'list' command"},
239 {"Key.password.must.be.at.least.6.characters",
240 "Key password must be at least 6 characters"},
241 {"New.password.must.be.at.least.6.characters",
242 "New password must be at least 6 characters"},
243 {"Keystore.file.exists.but.is.empty.",
244 "Keystore file exists, but is empty: "},
245 {"Keystore.file.does.not.exist.",
246 "Keystore file does not exist: "},
247 {"Must.specify.destination.alias", "Must specify destination alias"},
248 {"Must.specify.alias", "Must specify alias"},
249 {"Keystore.password.must.be.at.least.6.characters",
250 "Keystore password must be at least 6 characters"},
251 {"Enter.the.password.to.be.stored.",
252 "Enter the password to be stored: "},
253 {"Enter.keystore.password.", "Enter keystore password: "},
254 {"Enter.source.keystore.password.", "Enter source keystore password: "},
255 {"Enter.destination.keystore.password.", "Enter destination keystore password: "},
256 {"Keystore.password.is.too.short.must.be.at.least.6.characters",
257 "Keystore password is too short - must be at least 6 characters"},
258 {"Unknown.Entry.Type", "Unknown Entry Type"},
259 {"Entry.for.alias.alias.successfully.imported.",
260 "Entry for alias {0} successfully imported."},
261 {"Entry.for.alias.alias.not.imported.", "Entry for alias {0} not imported."},
262 {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
263 "Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported."},
264 {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
265 "Import command completed: {0} entries successfully imported, {1} entries failed or cancelled"},
266 {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
267 "Warning: Overwriting existing alias {0} in destination keystore"},
268 {"Existing.entry.alias.alias.exists.overwrite.no.",
269 "Existing entry alias {0} exists, overwrite? [no]: "},
270 {"Too.many.failures.try.later", "Too many failures - try later"},
271 {"Certification.request.stored.in.file.filename.",
272 "Certification request stored in file <{0}>"},
273 {"Submit.this.to.your.CA", "Submit this to your CA"},
274 {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
275 "if alias not specified, destalias and srckeypass must not be specified"},
276 {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
277 "The destination pkcs12 keystore has different storepass and keypass. Please retry with -destkeypass specified."},
278 {"Certificate.stored.in.file.filename.",
279 "Certificate stored in file <{0}>"},
280 {"Certificate.reply.was.installed.in.keystore",
281 "Certificate reply was installed in keystore"},
282 {"Certificate.reply.was.not.installed.in.keystore",
283 "Certificate reply was not installed in keystore"},
284 {"Certificate.was.added.to.keystore",
285 "Certificate was added to keystore"},
286 {"Certificate.was.not.added.to.keystore",
287 "Certificate was not added to keystore"},
288 {".Storing.ksfname.", "[Storing {0}]"},
289 {"alias.has.no.public.key.certificate.",
290 "{0} has no public key (certificate)"},
291 {"Cannot.derive.signature.algorithm",
292 "Cannot derive signature algorithm"},
293 {"Alias.alias.does.not.exist",
294 "Alias <{0}> does not exist"},
295 {"Alias.alias.has.no.certificate",
296 "Alias <{0}> has no certificate"},
297 {"groupname.keysize.coexist",
298 "Cannot specify both -groupname and -keysize"},
299 {"deprecate.keysize.for.ec",
300 "Specifying -keysize for generating EC keys is deprecated, please use \"-groupname %s\" instead."},
301 {"Key.pair.not.generated.alias.alias.already.exists",
302 "Key pair not generated, alias <{0}> already exists"},
303 {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
304 "Generating {0} bit {1} key pair and self-signed certificate ({2}) with a validity of {3} days\n\tfor: {4}"},
305 {"Enter.key.password.for.alias.", "Enter key password for <{0}>"},
306 {".RETURN.if.same.as.keystore.password.",
307 "\t(RETURN if same as keystore password): "},
308 {"Key.password.is.too.short.must.be.at.least.6.characters",
309 "Key password is too short - must be at least 6 characters"},
310 {"Too.many.failures.key.not.added.to.keystore",
311 "Too many failures - key not added to keystore"},
312 {"Destination.alias.dest.already.exists",
313 "Destination alias <{0}> already exists"},
314 {"Password.is.too.short.must.be.at.least.6.characters",
315 "Password is too short - must be at least 6 characters"},
316 {"Too.many.failures.Key.entry.not.cloned",
317 "Too many failures. Key entry not cloned"},
318 {"key.password.for.alias.", "key password for <{0}>"},
319 {"No.entries.from.identity.database.added",
320 "No entries from identity database added"},
321 {"Alias.name.alias", "Alias name: {0}"},
322 {"Creation.date.keyStore.getCreationDate.alias.",
323 "Creation date: {0,date}"},
324 {"alias.keyStore.getCreationDate.alias.",
325 "{0}, {1,date}, "},
326 {"alias.", "{0}, "},
327 {"Entry.type.type.", "Entry type: {0}"},
328 {"Certificate.chain.length.", "Certificate chain length: "},
329 {"Certificate.i.1.", "Certificate[{0,number,integer}]:"},
330 {"Certificate.fingerprint.SHA.256.", "Certificate fingerprint (SHA-256): "},
331 {"Keystore.type.", "Keystore type: "},
332 {"Keystore.provider.", "Keystore provider: "},
333 {"Your.keystore.contains.keyStore.size.entry",
334 "Your keystore contains {0,number,integer} entry"},
335 {"Your.keystore.contains.keyStore.size.entries",
336 "Your keystore contains {0,number,integer} entries"},
337 {"Failed.to.parse.input", "Failed to parse input"},
338 {"Empty.input", "Empty input"},
339 {"Not.X.509.certificate", "Not X.509 certificate"},
340 {"alias.has.no.public.key", "{0} has no public key"},
341 {"alias.has.no.X.509.certificate", "{0} has no X.509 certificate"},
342 {"New.certificate.self.signed.", "New certificate (self-signed):"},
343 {"Reply.has.no.certificates", "Reply has no certificates"},
344 {"Certificate.not.imported.alias.alias.already.exists",
345 "Certificate not imported, alias <{0}> already exists"},
346 {"Input.not.an.X.509.certificate", "Input not an X.509 certificate"},
347 {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
348 "Certificate already exists in keystore under alias <{0}>"},
349 {"Do.you.still.want.to.add.it.no.",
350 "Do you still want to add it? [no]: "},
351 {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
352 "Certificate already exists in system-wide CA keystore under alias <{0}>"},
353 {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
354 "Do you still want to add it to your own keystore? [no]: "},
355 {"Trust.this.certificate.no.", "Trust this certificate? [no]: "},
356 {"New.prompt.", "New {0}: "},
357 {"Passwords.must.differ", "Passwords must differ"},
358 {"Re.enter.new.prompt.", "Re-enter new {0}: "},
359 {"Re.enter.password.", "Re-enter password: "},
360 {"Re.enter.new.password.", "Re-enter new password: "},
361 {"They.don.t.match.Try.again", "They don't match. Try again"},
362 {"Enter.prompt.alias.name.", "Enter {0} alias name: "},
363 {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
364 "Enter new alias name\t(RETURN to cancel import for this entry): "},
365 {"Enter.alias.name.", "Enter alias name: "},
366 {".RETURN.if.same.as.for.otherAlias.",
367 "\t(RETURN if same as for <{0}>)"},
368 {"What.is.your.first.and.last.name.",
369 "What is your first and last name?"},
370 {"What.is.the.name.of.your.organizational.unit.",
371 "What is the name of your organizational unit?"},
372 {"What.is.the.name.of.your.organization.",
373 "What is the name of your organization?"},
374 {"What.is.the.name.of.your.City.or.Locality.",
375 "What is the name of your City or Locality?"},
376 {"What.is.the.name.of.your.State.or.Province.",
377 "What is the name of your State or Province?"},
378 {"What.is.the.two.letter.country.code.for.this.unit.",
379 "What is the two-letter country code for this unit?"},
380 {"Is.name.correct.", "Is {0} correct?"},
381 {"no", "no"},
382 {"yes", "yes"},
383 {"y", "y"},
384 {".defaultValue.", " [{0}]: "},
385 {"Alias.alias.has.no.key",
386 "Alias <{0}> has no key"},
387 {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
388 "Alias <{0}> references an entry type that is not a private key entry. The -keyclone command only supports cloning of private key entries"},
389
390 {".WARNING.WARNING.WARNING.",
391 "***************** WARNING WARNING WARNING *****************"},
392 {"Signer.d.", "Signer #%d:"},
393 {"Timestamp.", "Timestamp:"},
394 {"Signature.", "Signature:"},
395 {"Certificate.owner.", "Certificate owner: "},
396 {"Not.a.signed.jar.file", "Not a signed jar file"},
397 {"No.certificate.from.the.SSL.server",
398 "No certificate from the SSL server"},
399
400 {".The.integrity.of.the.information.stored.in.your.keystore.",
401 "* The integrity of the information stored in your keystore *\n" +
402 "* has NOT been verified! In order to verify its integrity, *\n" +
403 "* you must provide your keystore password. *"},
404 {".The.integrity.of.the.information.stored.in.the.srckeystore.",
405 "* The integrity of the information stored in the srckeystore*\n" +
406 "* has NOT been verified! In order to verify its integrity, *\n" +
407 "* you must provide the srckeystore password. *"},
408
409 {"Certificate.reply.does.not.contain.public.key.for.alias.",
410 "Certificate reply does not contain public key for <{0}>"},
411 {"Incomplete.certificate.chain.in.reply",
412 "Incomplete certificate chain in reply"},
413 {"Top.level.certificate.in.reply.",
414 "Top-level certificate in reply:\n"},
415 {".is.not.trusted.", "... is not trusted. "},
416 {"Install.reply.anyway.no.", "Install reply anyway? [no]: "},
417 {"Public.keys.in.reply.and.keystore.don.t.match",
418 "Public keys in reply and keystore don't match"},
419 {"Certificate.reply.and.certificate.in.keystore.are.identical",
420 "Certificate reply and certificate in keystore are identical"},
421 {"Failed.to.establish.chain.from.reply",
422 "Failed to establish chain from reply"},
423 {"n", "n"},
424 {"Wrong.answer.try.again", "Wrong answer, try again"},
425 {"Secret.key.not.generated.alias.alias.already.exists",
426 "Secret Key not generated, alias <{0}> already exists"},
427 {"Please.provide.keysize.for.secret.key.generation",
428 "Please provide -keysize for secret key generation"},
429
430 {"warning.not.verified.make.sure.keystore.is.correct",
431 "WARNING: not verified. Make sure -keystore is correct."},
432
433 {"Extensions.", "Extensions: "},
434 {".Empty.value.", "(Empty value)"},
435 {"Extension.Request.", "Extension Request:"},
436 {"Unknown.keyUsage.type.", "Unknown keyUsage type: "},
437 {"Unknown.extendedkeyUsage.type.", "Unknown extendedkeyUsage type: "},
438 {"Unknown.AccessDescription.type.", "Unknown AccessDescription type: "},
439 {"Unrecognized.GeneralName.type.", "Unrecognized GeneralName type: "},
440 {"This.extension.cannot.be.marked.as.critical.",
441 "This extension cannot be marked as critical. "},
442 {"Odd.number.of.hex.digits.found.", "Odd number of hex digits found: "},
443 {"Unknown.extension.type.", "Unknown extension type: "},
444 {"command.{0}.is.ambiguous.", "command {0} is ambiguous:"},
445
446 // 8171319: keytool should print out warnings when reading or
447 // generating cert/cert req using weak algorithms
448 {"the.certificate.request", "The certificate request"},
449 {"the.issuer", "The issuer"},
450 {"the.generated.certificate", "The generated certificate"},
451 {"the.generated.crl", "The generated CRL"},
452 {"the.generated.certificate.request", "The generated certificate request"},
453 {"the.certificate", "The certificate"},
454 {"the.crl", "The CRL"},
455 {"the.tsa.certificate", "The TSA certificate"},
456 {"the.input", "The input"},
457 {"reply", "Reply"},
458 {"one.in.many", "%1$s #%2$d of %3$d"},
459 {"alias.in.cacerts", "Issuer <%s> in cacerts"},
460 {"alias.in.keystore", "Issuer <%s>"},
461 {"with.weak", "%s (weak)"},
462 {"key.bit", "%1$d-bit %2$s key"},
463 {"key.bit.weak", "%1$d-bit %2$s key (weak)"},
464 {"unknown.size.1", "%s key of unknown size"},
465 {".PATTERN.printX509Cert.with.weak",
466 "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignature algorithm name: {7}\nSubject Public Key Algorithm: {8}\nVersion: {9}"},
467 {"PKCS.10.with.weak",
468 "PKCS #10 Certificate Request (Version 1.0)\n" +
469 "Subject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignature algorithm: %4$s\n"},
470 {"verified.by.s.in.s.weak", "Verified by %1$s in %2$s with a %3$s"},
471 {"whose.sigalg.risk", "%1$s uses the %2$s signature algorithm which is considered a security risk."},
472 {"whose.key.risk", "%1$s uses a %2$s which is considered a security risk."},
473 {"jks.storetype.warning", "The %1$s keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
474 {"migrate.keystore.warning", "Migrated \"%1$s\" to %4$s. The %2$s keystore is backed up as \"%3$s\"."},
475 {"backup.keystore.warning", "The original keystore \"%1$s\" is backed up as \"%3$s\"..."},
476 {"importing.keystore.status", "Importing keystore %1$s to %2$s..."},
477 {"keyalg.option.1.missing.warning", "No -keyalg option. The default key algorithm (%s) is a legacy algorithm and is no longer recommended. In a subsequent release of the JDK, the default will be removed and the -keyalg option must be specified."},
478
479 {"showinfo.no.option", "Missing option for -showinfo. Try \"keytool -showinfo -tls\"."},
480 };
481
482
483 /**
484 * Returns the contents of this <code>ResourceBundle</code>.
485 *
486 * <p>
487 *
488 * @return the contents of this <code>ResourceBundle</code>.
489 */
490 @Override
491 public Object[][] getContents() {
492 return contents;
493 }
494 }
--- EOF ---