1/*
2 * Copyright (c) 2000, 2011, 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
26package sun.security.util;
27
28/**
29 * <p> This class represents the <code>ResourceBundle</code>
30 * for javax.security.auth and sun.security.
31 *
32 */
33public 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        // shared (from keytool)
43        {"NEWLINE", "\n"},
44        {"STAR",
45                "*******************************************"},
46        {"STARNN",
47                "*******************************************\n\n"},
48
49        // keytool: Help part
50        {".OPTION.", " [OPTION]..."},
51        {"Options.", "Options:"},
52        {"Use.keytool.help.for.all.available.commands",
53                 "Use \"keytool -help\" for all available commands"},
54        {"Key.and.Certificate.Management.Tool",
55                 "Key and Certificate Management Tool"},
56        {"Commands.", "Commands:"},
57        {"Use.keytool.command.name.help.for.usage.of.command.name",
58                "Use \"keytool -command_name -help\" for usage of command_name"},
59        // keytool: help: commands
60        {"Generates.a.certificate.request",
61                "Generates a certificate request"}, //-certreq
62        {"Changes.an.entry.s.alias",
63                "Changes an entry's alias"}, //-changealias
64        {"Deletes.an.entry",
65                "Deletes an entry"}, //-delete
66        {"Exports.certificate",
67                "Exports certificate"}, //-exportcert
68        {"Generates.a.key.pair",
69                "Generates a key pair"}, //-genkeypair
70        {"Generates.a.secret.key",
71                "Generates a secret key"}, //-genseckey
72        {"Generates.certificate.from.a.certificate.request",
73                "Generates certificate from a certificate request"}, //-gencert
74        {"Generates.CRL", "Generates CRL"}, //-gencrl
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.one.or.all.entries.from.another.keystore",
80                "Imports one or all entries from another keystore"}, //-importkeystore
81        {"Clones.a.key.entry",
82                "Clones a key entry"}, //-keyclone
83        {"Changes.the.key.password.of.an.entry",
84                "Changes the key password of an entry"}, //-keypasswd
85        {"Lists.entries.in.a.keystore",
86                "Lists entries in a keystore"}, //-list
87        {"Prints.the.content.of.a.certificate",
88                "Prints the content of a certificate"}, //-printcert
89        {"Prints.the.content.of.a.certificate.request",
90                "Prints the content of a certificate request"}, //-printcertreq
91        {"Prints.the.content.of.a.CRL.file",
92                "Prints the content of a CRL file"}, //-printcrl
93        {"Generates.a.self.signed.certificate",
94                "Generates a self-signed certificate"}, //-selfcert
95        {"Changes.the.store.password.of.a.keystore",
96                "Changes the store password of a keystore"}, //-storepasswd
97        // keytool: help: options
98        {"alias.name.of.the.entry.to.process",
99                "alias name of the entry to process"}, //-alias
100        {"destination.alias",
101                "destination alias"}, //-destalias
102        {"destination.key.password",
103                "destination key password"}, //-destkeypass
104        {"destination.keystore.name",
105                "destination keystore name"}, //-destkeystore
106        {"destination.keystore.password.protected",
107                "destination keystore password protected"}, //-destprotected
108        {"destination.keystore.provider.name",
109                "destination keystore provider name"}, //-destprovidername
110        {"destination.keystore.password",
111                "destination keystore password"}, //-deststorepass
112        {"destination.keystore.type",
113                "destination keystore type"}, //-deststoretype
114        {"distinguished.name",
115                "distinguished name"}, //-dname
116        {"X.509.extension",
117                "X.509 extension"}, //-ext
118        {"output.file.name",
119                "output file name"}, //-file and -outfile
120        {"input.file.name",
121                "input file name"}, //-file and -infile
122        {"key.algorithm.name",
123                "key algorithm name"}, //-keyalg
124        {"key.password",
125                "key password"}, //-keypass
126        {"key.bit.size",
127                "key bit size"}, //-keysize
128        {"keystore.name",
129                "keystore name"}, //-keystore
130        {"new.password",
131                "new password"}, //-new
132        {"do.not.prompt",
133                "do not prompt"}, //-noprompt
134        {"password.through.protected.mechanism",
135                "password through protected mechanism"}, //-protected
136        {"provider.argument",
137                "provider argument"}, //-providerarg
138        {"provider.class.name",
139                "provider class name"}, //-providerclass
140        {"provider.name",
141                "provider name"}, //-providername
142        {"provider.classpath",
143                "provider classpath"}, //-providerpath
144        {"output.in.RFC.style",
145                "output in RFC style"}, //-rfc
146        {"signature.algorithm.name",
147                "signature algorithm name"}, //-sigalg
148        {"source.alias",
149                "source alias"}, //-srcalias
150        {"source.key.password",
151                "source key password"}, //-srckeypass
152        {"source.keystore.name",
153                "source keystore name"}, //-srckeystore
154        {"source.keystore.password.protected",
155                "source keystore password protected"}, //-srcprotected
156        {"source.keystore.provider.name",
157                "source keystore provider name"}, //-srcprovidername
158        {"source.keystore.password",
159                "source keystore password"}, //-srcstorepass
160        {"source.keystore.type",
161                "source keystore type"}, //-srcstoretype
162        {"SSL.server.host.and.port",
163                "SSL server host and port"}, //-sslserver
164        {"signed.jar.file",
165                "signed jar file"}, //=jarfile
166        {"certificate.validity.start.date.time",
167                "certificate validity start date/time"}, //-startdate
168        {"keystore.password",
169                "keystore password"}, //-storepass
170        {"keystore.type",
171                "keystore type"}, //-storetype
172        {"trust.certificates.from.cacerts",
173                "trust certificates from cacerts"}, //-trustcacerts
174        {"verbose.output",
175                "verbose output"}, //-v
176        {"validity.number.of.days",
177                "validity number of days"}, //-validity
178        {"Serial.ID.of.cert.to.revoke",
179                 "Serial ID of cert to revoke"}, //-id
180        // keytool: Running part
181        {"keytool.error.", "keytool error: "},
182        {"Illegal.option.", "Illegal option:  "},
183        {"Illegal.value.", "Illegal value: "},
184        {"Unknown.password.type.", "Unknown password type: "},
185        {"Cannot.find.environment.variable.",
186                "Cannot find environment variable: "},
187        {"Cannot.find.file.", "Cannot find file: "},
188        {"Command.option.flag.needs.an.argument.", "Command option {0} needs an argument."},
189        {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
190                "Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value."},
191        {".keystore.must.be.NONE.if.storetype.is.{0}",
192                "-keystore must be NONE if -storetype is {0}"},
193        {"Too.many.retries.program.terminated",
194                 "Too many retries, program terminated"},
195        {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
196                "-storepasswd and -keypasswd commands not supported if -storetype is {0}"},
197        {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
198                "-keypasswd commands not supported if -storetype is PKCS12"},
199        {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
200                "-keypass and -new can not be specified if -storetype is {0}"},
201        {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
202                "if -protected is specified, then -storepass, -keypass, and -new must not be specified"},
203        {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
204                "if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified"},
205        {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
206                "if keystore is not password protected, then -storepass, -keypass, and -new must not be specified"},
207        {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
208                "if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified"},
209        {"Illegal.startdate.value", "Illegal startdate value"},
210        {"Validity.must.be.greater.than.zero",
211                "Validity must be greater than zero"},
212        {"provName.not.a.provider", "{0} not a provider"},
213        {"Usage.error.no.command.provided", "Usage error: no command provided"},
214        {"Source.keystore.file.exists.but.is.empty.", "Source keystore file exists, but is empty: "},
215        {"Please.specify.srckeystore", "Please specify -srckeystore"},
216        {"Must.not.specify.both.v.and.rfc.with.list.command",
217                "Must not specify both -v and -rfc with 'list' command"},
218        {"Key.password.must.be.at.least.6.characters",
219                "Key password must be at least 6 characters"},
220        {"New.password.must.be.at.least.6.characters",
221                "New password must be at least 6 characters"},
222        {"Keystore.file.exists.but.is.empty.",
223                "Keystore file exists, but is empty: "},
224        {"Keystore.file.does.not.exist.",
225                "Keystore file does not exist: "},
226        {"Must.specify.destination.alias", "Must specify destination alias"},
227        {"Must.specify.alias", "Must specify alias"},
228        {"Keystore.password.must.be.at.least.6.characters",
229                "Keystore password must be at least 6 characters"},
230        {"Enter.keystore.password.", "Enter keystore password:  "},
231        {"Enter.source.keystore.password.", "Enter source keystore password:  "},
232        {"Enter.destination.keystore.password.", "Enter destination keystore password:  "},
233        {"Keystore.password.is.too.short.must.be.at.least.6.characters",
234         "Keystore password is too short - must be at least 6 characters"},
235        {"Unknown.Entry.Type", "Unknown Entry Type"},
236        {"Too.many.failures.Alias.not.changed", "Too many failures. Alias not changed"},
237        {"Entry.for.alias.alias.successfully.imported.",
238                 "Entry for alias {0} successfully imported."},
239        {"Entry.for.alias.alias.not.imported.", "Entry for alias {0} not imported."},
240        {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
241                 "Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported."},
242        {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
243                 "Import command completed:  {0} entries successfully imported, {1} entries failed or cancelled"},
244        {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
245                 "Warning: Overwriting existing alias {0} in destination keystore"},
246        {"Existing.entry.alias.alias.exists.overwrite.no.",
247                 "Existing entry alias {0} exists, overwrite? [no]:  "},
248        {"Too.many.failures.try.later", "Too many failures - try later"},
249        {"Certification.request.stored.in.file.filename.",
250                "Certification request stored in file <{0}>"},
251        {"Submit.this.to.your.CA", "Submit this to your CA"},
252        {"if.alias.not.specified.destalias.srckeypass.and.destkeypass.must.not.be.specified",
253            "if alias not specified, destalias, srckeypass, and destkeypass must not be specified"},
254        {"Certificate.stored.in.file.filename.",
255                "Certificate stored in file <{0}>"},
256        {"Certificate.reply.was.installed.in.keystore",
257                "Certificate reply was installed in keystore"},
258        {"Certificate.reply.was.not.installed.in.keystore",
259                "Certificate reply was not installed in keystore"},
260        {"Certificate.was.added.to.keystore",
261                "Certificate was added to keystore"},
262        {"Certificate.was.not.added.to.keystore",
263                "Certificate was not added to keystore"},
264        {".Storing.ksfname.", "[Storing {0}]"},
265        {"alias.has.no.public.key.certificate.",
266                "{0} has no public key (certificate)"},
267        {"Cannot.derive.signature.algorithm",
268                "Cannot derive signature algorithm"},
269        {"Alias.alias.does.not.exist",
270                "Alias <{0}> does not exist"},
271        {"Alias.alias.has.no.certificate",
272                "Alias <{0}> has no certificate"},
273        {"Key.pair.not.generated.alias.alias.already.exists",
274                "Key pair not generated, alias <{0}> already exists"},
275        {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
276                "Generating {0} bit {1} key pair and self-signed certificate ({2}) with a validity of {3} days\n\tfor: {4}"},
277        {"Enter.key.password.for.alias.", "Enter key password for <{0}>"},
278        {".RETURN.if.same.as.keystore.password.",
279                "\t(RETURN if same as keystore password):  "},
280        {"Key.password.is.too.short.must.be.at.least.6.characters",
281                "Key password is too short - must be at least 6 characters"},
282        {"Too.many.failures.key.not.added.to.keystore",
283                "Too many failures - key not added to keystore"},
284        {"Destination.alias.dest.already.exists",
285                "Destination alias <{0}> already exists"},
286        {"Password.is.too.short.must.be.at.least.6.characters",
287                "Password is too short - must be at least 6 characters"},
288        {"Too.many.failures.Key.entry.not.cloned",
289                "Too many failures. Key entry not cloned"},
290        {"key.password.for.alias.", "key password for <{0}>"},
291        {"Keystore.entry.for.id.getName.already.exists",
292                "Keystore entry for <{0}> already exists"},
293        {"Creating.keystore.entry.for.id.getName.",
294                "Creating keystore entry for <{0}> ..."},
295        {"No.entries.from.identity.database.added",
296                "No entries from identity database added"},
297        {"Alias.name.alias", "Alias name: {0}"},
298        {"Creation.date.keyStore.getCreationDate.alias.",
299                "Creation date: {0,date}"},
300        {"alias.keyStore.getCreationDate.alias.",
301                "{0}, {1,date}, "},
302        {"alias.", "{0}, "},
303        {"Entry.type.type.", "Entry type: {0}"},
304        {"Certificate.chain.length.", "Certificate chain length: "},
305        {"Certificate.i.1.", "Certificate[{0,number,integer}]:"},
306        {"Certificate.fingerprint.SHA1.", "Certificate fingerprint (SHA1): "},
307        {"Keystore.type.", "Keystore type: "},
308        {"Keystore.provider.", "Keystore provider: "},
309        {"Your.keystore.contains.keyStore.size.entry",
310                "Your keystore contains {0,number,integer} entry"},
311        {"Your.keystore.contains.keyStore.size.entries",
312                "Your keystore contains {0,number,integer} entries"},
313        {"Failed.to.parse.input", "Failed to parse input"},
314        {"Empty.input", "Empty input"},
315        {"Not.X.509.certificate", "Not X.509 certificate"},
316        {"alias.has.no.public.key", "{0} has no public key"},
317        {"alias.has.no.X.509.certificate", "{0} has no X.509 certificate"},
318        {"New.certificate.self.signed.", "New certificate (self-signed):"},
319        {"Reply.has.no.certificates", "Reply has no certificates"},
320        {"Certificate.not.imported.alias.alias.already.exists",
321                "Certificate not imported, alias <{0}> already exists"},
322        {"Input.not.an.X.509.certificate", "Input not an X.509 certificate"},
323        {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
324                "Certificate already exists in keystore under alias <{0}>"},
325        {"Do.you.still.want.to.add.it.no.",
326                "Do you still want to add it? [no]:  "},
327        {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
328                "Certificate already exists in system-wide CA keystore under alias <{0}>"},
329        {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
330                "Do you still want to add it to your own keystore? [no]:  "},
331        {"Trust.this.certificate.no.", "Trust this certificate? [no]:  "},
332        {"YES", "YES"},
333        {"New.prompt.", "New {0}: "},
334        {"Passwords.must.differ", "Passwords must differ"},
335        {"Re.enter.new.prompt.", "Re-enter new {0}: "},
336        {"Re.enter.new.password.", "Re-enter new password: "},
337        {"They.don.t.match.Try.again", "They don't match. Try again"},
338        {"Enter.prompt.alias.name.", "Enter {0} alias name:  "},
339        {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
340                 "Enter new alias name\t(RETURN to cancel import for this entry):  "},
341        {"Enter.alias.name.", "Enter alias name:  "},
342        {".RETURN.if.same.as.for.otherAlias.",
343                "\t(RETURN if same as for <{0}>)"},
344        {".PATTERN.printX509Cert",
345                "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t MD5:  {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Signature algorithm name: {8}\n\t Version: {9}"},
346        {"What.is.your.first.and.last.name.",
347                "What is your first and last name?"},
348        {"What.is.the.name.of.your.organizational.unit.",
349                "What is the name of your organizational unit?"},
350        {"What.is.the.name.of.your.organization.",
351                "What is the name of your organization?"},
352        {"What.is.the.name.of.your.City.or.Locality.",
353                "What is the name of your City or Locality?"},
354        {"What.is.the.name.of.your.State.or.Province.",
355                "What is the name of your State or Province?"},
356        {"What.is.the.two.letter.country.code.for.this.unit.",
357                "What is the two-letter country code for this unit?"},
358        {"Is.name.correct.", "Is {0} correct?"},
359        {"no", "no"},
360        {"yes", "yes"},
361        {"y", "y"},
362        {".defaultValue.", "  [{0}]:  "},
363        {"Alias.alias.has.no.key",
364                "Alias <{0}> has no key"},
365        {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
366                 "Alias <{0}> references an entry type that is not a private key entry.  The -keyclone command only supports cloning of private key entries"},
367
368        {".WARNING.WARNING.WARNING.",
369            "*****************  WARNING WARNING WARNING  *****************"},
370        {"Signer.d.", "Signer #%d:"},
371        {"Timestamp.", "Timestamp:"},
372        {"Signature.", "Signature:"},
373        {"CRLs.", "CRLs:"},
374        {"Certificate.owner.", "Certificate owner: "},
375        {"Not.a.signed.jar.file", "Not a signed jar file"},
376        {"No.certificate.from.the.SSL.server",
377                "No certificate from the SSL server"},
378
379        {".The.integrity.of.the.information.stored.in.your.keystore.",
380            "* The integrity of the information stored in your keystore  *\n" +
381            "* has NOT been verified!  In order to verify its integrity, *\n" +
382            "* you must provide your keystore password.                  *"},
383        {".The.integrity.of.the.information.stored.in.the.srckeystore.",
384            "* The integrity of the information stored in the srckeystore*\n" +
385            "* has NOT been verified!  In order to verify its integrity, *\n" +
386            "* you must provide the srckeystore password.                *"},
387
388        {"Certificate.reply.does.not.contain.public.key.for.alias.",
389                "Certificate reply does not contain public key for <{0}>"},
390        {"Incomplete.certificate.chain.in.reply",
391                "Incomplete certificate chain in reply"},
392        {"Certificate.chain.in.reply.does.not.verify.",
393                "Certificate chain in reply does not verify: "},
394        {"Top.level.certificate.in.reply.",
395                "Top-level certificate in reply:\n"},
396        {".is.not.trusted.", "... is not trusted. "},
397        {"Install.reply.anyway.no.", "Install reply anyway? [no]:  "},
398        {"NO", "NO"},
399        {"Public.keys.in.reply.and.keystore.don.t.match",
400                "Public keys in reply and keystore don't match"},
401        {"Certificate.reply.and.certificate.in.keystore.are.identical",
402                "Certificate reply and certificate in keystore are identical"},
403        {"Failed.to.establish.chain.from.reply",
404                "Failed to establish chain from reply"},
405        {"n", "n"},
406        {"Wrong.answer.try.again", "Wrong answer, try again"},
407        {"Secret.key.not.generated.alias.alias.already.exists",
408                "Secret Key not generated, alias <{0}> already exists"},
409        {"Please.provide.keysize.for.secret.key.generation",
410                "Please provide -keysize for secret key generation"},
411
412        {"Extensions.", "Extensions: "},
413        {".Empty.value.", "(Empty value)"},
414        {"Extension.Request.", "Extension Request:"},
415        {"PKCS.10.Certificate.Request.Version.1.0.Subject.s.Public.Key.s.format.s.key.",
416                "PKCS #10 Certificate Request (Version 1.0)\n" +
417                "Subject: %s\nPublic Key: %s format %s key\n"},
418        {"Unknown.keyUsage.type.", "Unknown keyUsage type: "},
419        {"Unknown.extendedkeyUsage.type.", "Unknown extendedkeyUsage type: "},
420        {"Unknown.AccessDescription.type.", "Unknown AccessDescription type: "},
421        {"Unrecognized.GeneralName.type.", "Unrecognized GeneralName type: "},
422        {"This.extension.cannot.be.marked.as.critical.",
423                 "This extension cannot be marked as critical. "},
424        {"Odd.number.of.hex.digits.found.", "Odd number of hex digits found: "},
425        {"Unknown.extension.type.", "Unknown extension type: "},
426        {"command.{0}.is.ambiguous.", "command {0} is ambiguous:"},
427
428        // policytool
429        {"Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured.",
430                "Warning: A public key for alias {0} does not exist.  Make sure a KeyStore is properly configured."},
431        {"Warning.Class.not.found.class", "Warning: Class not found: {0}"},
432        {"Warning.Invalid.argument.s.for.constructor.arg",
433                "Warning: Invalid argument(s) for constructor: {0}"},
434        {"Illegal.Principal.Type.type", "Illegal Principal Type: {0}"},
435        {"Illegal.option.option", "Illegal option: {0}"},
436        {"Usage.policytool.options.", "Usage: policytool [options]"},
437        {".file.file.policy.file.location",
438                "  [-file <file>]    policy file location"},
439        {"New", "New"},
440        {"Open", "Open"},
441        {"Save", "Save"},
442        {"Save.As", "Save As"},
443        {"View.Warning.Log", "View Warning Log"},
444        {"Exit", "Exit"},
445        {"Add.Policy.Entry", "Add Policy Entry"},
446        {"Edit.Policy.Entry", "Edit Policy Entry"},
447        {"Remove.Policy.Entry", "Remove Policy Entry"},
448        {"Edit", "Edit"},
449        {"Retain", "Retain"},
450
451        {"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
452            "Warning: File name may include escaped backslash characters. " +
453                        "It is not necessary to escape backslash characters " +
454                        "(the tool escapes characters as necessary when writing " +
455                        "the policy contents to the persistent store).\n\n" +
456                        "Click on Retain to retain the entered name, or click on " +
457                        "Edit to edit the name."},
458
459        {"Add.Public.Key.Alias", "Add Public Key Alias"},
460        {"Remove.Public.Key.Alias", "Remove Public Key Alias"},
461        {"File", "File"},
462        {"KeyStore", "KeyStore"},
463        {"Policy.File.", "Policy File:"},
464        {"Could.not.open.policy.file.policyFile.e.toString.",
465                "Could not open policy file: {0}: {1}"},
466        {"Policy.Tool", "Policy Tool"},
467        {"Errors.have.occurred.while.opening.the.policy.configuration.View.the.Warning.Log.for.more.information.",
468                "Errors have occurred while opening the policy configuration.  View the Warning Log for more information."},
469        {"Error", "Error"},
470        {"OK", "OK"},
471        {"Status", "Status"},
472        {"Warning", "Warning"},
473        {"Permission.",
474                "Permission:                                                       "},
475        {"Principal.Type.", "Principal Type:"},
476        {"Principal.Name.", "Principal Name:"},
477        {"Target.Name.",
478                "Target Name:                                                    "},
479        {"Actions.",
480                "Actions:                                                             "},
481        {"OK.to.overwrite.existing.file.filename.",
482                "OK to overwrite existing file {0}?"},
483        {"Cancel", "Cancel"},
484        {"CodeBase.", "CodeBase:"},
485        {"SignedBy.", "SignedBy:"},
486        {"Add.Principal", "Add Principal"},
487        {"Edit.Principal", "Edit Principal"},
488        {"Remove.Principal", "Remove Principal"},
489        {"Principals.", "Principals:"},
490        {".Add.Permission", "  Add Permission"},
491        {".Edit.Permission", "  Edit Permission"},
492        {"Remove.Permission", "Remove Permission"},
493        {"Done", "Done"},
494        {"KeyStore.URL.", "KeyStore URL:"},
495        {"KeyStore.Type.", "KeyStore Type:"},
496        {"KeyStore.Provider.", "KeyStore Provider:"},
497        {"KeyStore.Password.URL.", "KeyStore Password URL:"},
498        {"Principals", "Principals"},
499        {".Edit.Principal.", "  Edit Principal:"},
500        {".Add.New.Principal.", "  Add New Principal:"},
501        {"Permissions", "Permissions"},
502        {".Edit.Permission.", "  Edit Permission:"},
503        {".Add.New.Permission.", "  Add New Permission:"},
504        {"Signed.By.", "Signed By:"},
505        {"Cannot.Specify.Principal.with.a.Wildcard.Class.without.a.Wildcard.Name",
506            "Cannot Specify Principal with a Wildcard Class without a Wildcard Name"},
507        {"Cannot.Specify.Principal.without.a.Name",
508            "Cannot Specify Principal without a Name"},
509        {"Permission.and.Target.Name.must.have.a.value",
510                "Permission and Target Name must have a value"},
511        {"Remove.this.Policy.Entry.", "Remove this Policy Entry?"},
512        {"Overwrite.File", "Overwrite File"},
513        {"Policy.successfully.written.to.filename",
514                "Policy successfully written to {0}"},
515        {"null.filename", "null filename"},
516        {"Save.changes.", "Save changes?"},
517        {"Yes", "Yes"},
518        {"No", "No"},
519        {"Policy.Entry", "Policy Entry"},
520        {"Save.Changes", "Save Changes"},
521        {"No.Policy.Entry.selected", "No Policy Entry selected"},
522        {"Unable.to.open.KeyStore.ex.toString.",
523                "Unable to open KeyStore: {0}"},
524        {"No.principal.selected", "No principal selected"},
525        {"No.permission.selected", "No permission selected"},
526        {"name", "name"},
527        {"configuration.type", "configuration type"},
528        {"environment.variable.name", "environment variable name"},
529        {"library.name", "library name"},
530        {"package.name", "package name"},
531        {"policy.type", "policy type"},
532        {"property.name", "property name"},
533        {"Principal.List", "Principal List"},
534        {"Permission.List", "Permission List"},
535        {"Code.Base", "Code Base"},
536        {"KeyStore.U.R.L.", "KeyStore U R L:"},
537        {"KeyStore.Password.U.R.L.", "KeyStore Password U R L:"},
538
539
540        // javax.security.auth.PrivateCredentialPermission
541        {"invalid.null.input.s.", "invalid null input(s)"},
542        {"actions.can.only.be.read.", "actions can only be 'read'"},
543        {"permission.name.name.syntax.invalid.",
544                "permission name [{0}] syntax invalid: "},
545        {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
546                "Credential Class not followed by a Principal Class and Name"},
547        {"Principal.Class.not.followed.by.a.Principal.Name",
548                "Principal Class not followed by a Principal Name"},
549        {"Principal.Name.must.be.surrounded.by.quotes",
550                "Principal Name must be surrounded by quotes"},
551        {"Principal.Name.missing.end.quote",
552                "Principal Name missing end quote"},
553        {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
554                "PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value"},
555        {"CredOwner.Principal.Class.class.Principal.Name.name",
556                "CredOwner:\n\tPrincipal Class = {0}\n\tPrincipal Name = {1}"},
557
558        // javax.security.auth.x500
559        {"provided.null.name", "provided null name"},
560        {"provided.null.keyword.map", "provided null keyword map"},
561        {"provided.null.OID.map", "provided null OID map"},
562
563        // javax.security.auth.Subject
564        {"invalid.null.AccessControlContext.provided",
565                "invalid null AccessControlContext provided"},
566        {"invalid.null.action.provided", "invalid null action provided"},
567        {"invalid.null.Class.provided", "invalid null Class provided"},
568        {"Subject.", "Subject:\n"},
569        {".Principal.", "\tPrincipal: "},
570        {".Public.Credential.", "\tPublic Credential: "},
571        {".Private.Credentials.inaccessible.",
572                "\tPrivate Credentials inaccessible\n"},
573        {".Private.Credential.", "\tPrivate Credential: "},
574        {".Private.Credential.inaccessible.",
575                "\tPrivate Credential inaccessible\n"},
576        {"Subject.is.read.only", "Subject is read-only"},
577        {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
578                "attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set"},
579        {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
580                "attempting to add an object which is not an instance of {0}"},
581
582        // javax.security.auth.login.AppConfigurationEntry
583        {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
584
585        // javax.security.auth.login.LoginContext
586        {"Invalid.null.input.name", "Invalid null input: name"},
587        {"No.LoginModules.configured.for.name",
588         "No LoginModules configured for {0}"},
589        {"invalid.null.Subject.provided", "invalid null Subject provided"},
590        {"invalid.null.CallbackHandler.provided",
591                "invalid null CallbackHandler provided"},
592        {"null.subject.logout.called.before.login",
593                "null subject - logout called before login"},
594        {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
595                "unable to instantiate LoginModule, {0}, because it does not provide a no-argument constructor"},
596        {"unable.to.instantiate.LoginModule",
597                "unable to instantiate LoginModule"},
598        {"unable.to.instantiate.LoginModule.",
599                "unable to instantiate LoginModule: "},
600        {"unable.to.find.LoginModule.class.",
601                "unable to find LoginModule class: "},
602        {"unable.to.access.LoginModule.",
603                "unable to access LoginModule: "},
604        {"Login.Failure.all.modules.ignored",
605                "Login Failure: all modules ignored"},
606
607        // sun.security.provider.PolicyFile
608
609        {"java.security.policy.error.parsing.policy.message",
610                "java.security.policy: error parsing {0}:\n\t{1}"},
611        {"java.security.policy.error.adding.Permission.perm.message",
612                "java.security.policy: error adding Permission, {0}:\n\t{1}"},
613        {"java.security.policy.error.adding.Entry.message",
614                "java.security.policy: error adding Entry:\n\t{0}"},
615        {"alias.name.not.provided.pe.name.", "alias name not provided ({0})"},
616        {"unable.to.perform.substitution.on.alias.suffix",
617                "unable to perform substitution on alias, {0}"},
618        {"substitution.value.prefix.unsupported",
619                "substitution value, {0}, unsupported"},
620        {"LPARAM", "("},
621        {"RPARAM", ")"},
622        {"type.can.t.be.null","type can't be null"},
623
624        // sun.security.provider.PolicyParser
625        {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
626                "keystorePasswordURL can not be specified without also specifying keystore"},
627        {"expected.keystore.type", "expected keystore type"},
628        {"expected.keystore.provider", "expected keystore provider"},
629        {"multiple.Codebase.expressions",
630                "multiple Codebase expressions"},
631        {"multiple.SignedBy.expressions","multiple SignedBy expressions"},
632        {"SignedBy.has.empty.alias","SignedBy has empty alias"},
633        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
634                "can not specify Principal with a wildcard class without a wildcard name"},
635        {"expected.codeBase.or.SignedBy.or.Principal",
636                "expected codeBase or SignedBy or Principal"},
637        {"expected.permission.entry", "expected permission entry"},
638        {"number.", "number "},
639        {"expected.expect.read.end.of.file.",
640                "expected [{0}], read [end of file]"},
641        {"expected.read.end.of.file.",
642                "expected [;], read [end of file]"},
643        {"line.number.msg", "line {0}: {1}"},
644        {"line.number.expected.expect.found.actual.",
645                "line {0}: expected [{1}], found [{2}]"},
646        {"null.principalClass.or.principalName",
647                "null principalClass or principalName"},
648
649        // sun.security.pkcs11.SunPKCS11
650        {"PKCS11.Token.providerName.Password.",
651                "PKCS11 Token [{0}] Password: "},
652
653        /* --- DEPRECATED --- */
654        // javax.security.auth.Policy
655        {"unable.to.instantiate.Subject.based.policy",
656                "unable to instantiate Subject-based policy"}
657    };
658
659
660    /**
661     * Returns the contents of this <code>ResourceBundle</code>.
662     *
663     * <p>
664     *
665     * @return the contents of this <code>ResourceBundle</code>.
666     */
667    public Object[][] getContents() {
668        return contents;
669    }
670}
671
672