# messages.properties -- English language messages and message formats
# Copyright (C) 2006  Free Software Foundation, Inc.
#
# This file is part of GNU Classpath.
#
# GNU Classpath is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Classpath is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Classpath; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA.
#
# Linking this library statically or dynamically with other modules is
# making a combined work based on this library.  Thus, the terms and
# conditions of the GNU General Public License cover the whole
# combination.
#
# As a special exception, the copyright holders of this library give you
# permission to link this library with independent modules to produce an
# executable, regardless of the license terms of these independent
# modules, and to copy and distribute the resulting executable under
# terms of your choice, provided that you also meet, for each linked
# independent module, the terms and conditions of the license of that
# module.  An independent module is a module which is not derived from
# or based on this library.  If you modify this library, you may extend
# this exception to your version of the library, but you are not
# obligated to do so.  If you do not wish to do so, delete this
# exception statement from your version.
#
# for gnu.classpath.tools.keytool package
#

Main.6=keytool: {0}
Main.8=keytool error: {0}
Main.5=Import a CA's Trusted Certificate.\n\
[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.18=Unrecognized command: {0}
Main.19=Usage:  keytool [COMMAND] [-- COMMAND]...\n\
Manage private keys and public certificates.
Main.20=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
Main.21=Available commands
Main.22=Generate a Key Entry, eventually creating a key store.\n\
[-alias ALIAS] [-keyalg ALGORITHM] [-keysize KEY_SIZE]\n\
[-sigalg ALGORITHM] [-dname NAME] [-keypass PASSWORD]\n\
[-validity DAY_COUNT] [-storetype STORE_TYPE]\n\
[-keystore URL] [-storepass PASSWORD]\n\
[-provider PROVIDER_CLASS_NAME] [-v].
Main.23=Add Key Entries and Trusted Certificates.\n\
[-alias ALIAS] [-file FILE] [-keypass PASSWORD]\n\
[-noprompt] [-trustcacerts] [-storetype STORE_TYPE]\n\
[-keystore URL] [-storepass PASSWORD]\n\
[-provider PROVIDER_CLASS_NAME] [-v].
Main.24=Generate a self-signed Trusted Certificate.\n\
[-alias ALIAS] [-sigalg ALGORITHM] [-dname NAME]\n\
[-validity DAY_COUNT] [-keypass PASSWORD]\n\
[-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.25=NOT IMPLEMENTED YET.  Import JDK1.1 Identity Database.\n\
[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.26=Issue a Certificate Signing Request (CSR).\n\
[-alias ALIAS] [-sigalg ALGORITHM] [-file FILE]\n\
[-keypass PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v]\n\
[-attributes].
Main.27=Export a Certificate from a key store.\n\
[-alias ALIAS] [-file FILE] [-storetype STORE_TYPE]\n\
[-keystore URL] [-storepass PASSWORD]\n\
[-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
Main.28=Print one or all Certificates in a key store to STDOUT.\n\
[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
Main.29=Print a human-readable form of a Certificate in a FILE.\n\
[-file FILE] [-v].
Main.30=Clone a Key Entry in a key store.\n\
[-alias ALIAS] [-dest ALIAS] [-keypass PASSWORD]\n\
[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.31=Change the password protecting a key store.\n\
[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.32=Change the password protecting a Key Entry in a key store.\n\
[-alias ALIAS] [-keypass PASSWORD] [-new PASSWORD]\n\
[-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
Main.33=Delete a Key Entry or a Trusted Certificate from a key store.\n\
[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].

Command.19=Failed creating new file at {0}
Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1}
Command.21=Enter key password for <{0}>: 
Command.23=A correct key password MUST be provided
Command.24=Enter key store password: 
#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown
Command.36=Unable to locate a valid key store
Command.40=Provider fully qualified class name: 
Command.42=File object [{0}] exists but is NOT a file
Command.44=File [{0}] exists but is NOT writable
Command.46=File object [{0}] MUST be an existing readable file
Command.48=Signature algorithm is missing and private key is of unknown or unsupported type
Command.51=Validity period MUST be greater than zero
Command.52=Unable to get signature algorithm name
Command.60=Unknown or unsupported signature algorithm: {0}
Command.63=Saving key store at {0}
Command.66=Owner: {0}
Command.67=Issuer: {0}
Command.68=Serial number: {0,number}
Command.69=Valid from: {0,date,full} - {0,time,full}
Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full}
Command.71=Certificate fingerprints
Command.72=\ \ \ \ \ \ MD5: {0}
Command.73=\ \ SHA-160: {0}
Command.75=Alias [{0}] MUST be knwon to the key store
Command.77=Alias [{0}] MUST be associated with a Key Entry

CertReqCmd.27=Certification request stored in {0}
CertReqCmd.28=Submit this to your CA
CertReqCmd.25=Usage:  keytool -certreq [OPTION]...\n\
Generate a PKCS#10 Certificate Signing Request (CSR) and write it to a \
designated output destination.\n\n\
IMPORTANT: Some documentation claims that the Attributes field, in the CSR is \
OPTIONAL while RFC-2986 implies the opposite.  This implementation considers \
this field, by default, as OPTIONAL, unless option -attributes is specified.
CertReqCmd.24=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
CertReqCmd.23=Command options
CertReqCmd.22=Alias of an entry in the key store on whose behalf the CSR is \
generated.  The value "mykey" (all lower case, without the enclosing quotes) \
is used when this option is omitted.
CertReqCmd.21=ALIAS
CertReqCmd.20=Name of the digital signature algorithm to use for signing the \
certificate.  If omitted, a default value is chosen based on the type of the \
private key associated with ALIAS.  If the key is a "DSA" one, the value for \
signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
an "RSA" one, then "MD5withRSA" will be the signature algorithm.
CertReqCmd.19=ALGORITHM
CertReqCmd.18=Destination of the generated CSR.  STDOUT is used if this \
option is omitted.
CertReqCmd.17=FILE
CertReqCmd.16=Password to unlock the Key Entry associated with ALIAS.  If \
omitted, the tool will attempt to unlock the Key Entry using the same password \
protecting the key store.  If this fails, you will be prompted for a password.
CertReqCmd.14=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
CertReqCmd.13=STORE_TYPE
CertReqCmd.12=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
CertReqCmd.11=URL
CertReqCmd.10=Password to unlock the key store.  If omitted, you will be \
prompted for one.
CertReqCmd.9=PASSWORD
CertReqCmd.8=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
CertReqCmd.7=PROVIDER_CLASS_NAME
CertReqCmd.6=Emit more verbose messages.
CertReqCmd.5=Force the tool to encode a NULL DER value in the CSR as the value \
of the Attributes field.

DeleteCmd.19=Enter the Alias to delete:
DeleteCmd.18=Usage:  keytool -delete [OPTION]...\n\
Delete a designated key store entry.
DeleteCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
DeleteCmd.16=Command options
DeleteCmd.15=Alias of an entry to delete.  The value "mykey" (all lower case, \
without the enclosing quotes) is used when this option is omitted.
DeleteCmd.14=ALIAS
DeleteCmd.13=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
DeleteCmd.12=STORE_TYPE
DeleteCmd.11=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
DeleteCmd.10=URL
DeleteCmd.20=Alias MUST NOT be null or an empty string
DeleteCmd.9=Password to unlock the key store.  If omitted, you will be \
prompted for one.
DeleteCmd.8=PASSWORD
DeleteCmd.7=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
DeleteCmd.6=PROVIDER_CLASS_NAME
DeleteCmd.5=Emit more verbose messages.

GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\
your certificate request.  This information is what is called a\n\
Distinguished Name or DN.  There are quite a few fields but you\n\
can use supplied default values, displayed between brackets, by just\n\
hitting <Enter>, or blank the field by entering the <.> character\n\
before hitting <Enter>.\n\n
GenKeyCmd.6=The Sample Company
GenKeyCmd.7=Sydney
GenKeyCmd.8=NSW
GenKeyCmd.9=AU
GenKeyCmd.10=Common Name (hostname, IP, or your name): 
GenKeyCmd.11=Organization Name (company) [{0}]: 
GenKeyCmd.13=Organizational Unit Name (department, division): 
GenKeyCmd.14=Locality Name (city, district) [{0}]: 
GenKeyCmd.16=State or Province Name (full name) [{0}]: 
GenKeyCmd.18=Country Name (2 letter code) [{0}]: 
GenKeyCmd.54=Key size MUST be greater than zero
GenKeyCmd.57=Usage:  keytool -genkey [OPTION]...\n\
Generate a new key-pair and save these credentials in the key store as a Key \
Entry, associated with a designated Alias.
GenKeyCmd.58=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
GenKeyCmd.59=Command options
GenKeyCmd.60=Alias of the Key Entry to generate.  The value "mykey" (all lower \
case, without the enclosing quotes) is used when this option is omitted.
GenKeyCmd.61=ALIAS
GenKeyCmd.62=Name of the key-pair generation algorithm.  The default value is \
"DSS" (a synonym for the Digital Signature Algorithm also known as DSA).
GenKeyCmd.63=ALGORITHM
GenKeyCmd.64=Number of bits of the shared modulus, for both the public and \
private keys, to use for the new keys.  If omitted, 1024 is used.
GenKeyCmd.65=SIZE
GenKeyCmd.66=Name of the digital signature algorithm to use for signing the \
certificate.  If omitted, a default value is chosen based on the type of the \
private key associated with ALIAS.  If the key is a "DSA" one, the value for \
signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
an "RSA" one, then "MD5withRSA" will be the signature algorithm.
GenKeyCmd.68=The X.500 Distinguished Name of the Subject of the generated \
certificate.  If omitted you will be prompted for one.
GenKeyCmd.69=NAME
GenKeyCmd.70=Password to protect the newly created Key Entry.  If omitted, \
you will be prompted to provide a password.
GenKeyCmd.71=PASSWORD
GenKeyCmd.72=Number of days the generated certificate is valid for.  If \
omitted, 90 is used.
GenKeyCmd.73=DAY_COUNT
GenKeyCmd.74=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
GenKeyCmd.75=STORE_TYPE
GenKeyCmd.76=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
GenKeyCmd.77=URL
GenKeyCmd.78=Password to unlock the key store.  If omitted, you will be \
prompted for one.
GenKeyCmd.80=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
GenKeyCmd.81=PROVIDER_CLASS_NAME
GenKeyCmd.82=Emit more verbose messages.

StorePasswdCmd.19=Too many failed attempts
StorePasswdCmd.18=Usage:  keytool -storepasswd [OPTION]...\n\
Change the password protecting a key store.
StorePasswdCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
StorePasswdCmd.16=Command options
StorePasswdCmd.15=The new, and different, password to protect the key store.  \
If omitted, you will be prompted for one.
StorePasswdCmd.13=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
StorePasswdCmd.12=STORE_TYPE
StorePasswdCmd.11=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
StorePasswdCmd.10=URL
StorePasswdCmd.20=Enter new key store password: 
StorePasswdCmd.21=Password MUST be at least 6 characters.
StorePasswdCmd.22=New password MUST be different than the old one.
StorePasswdCmd.23=Re-enter new key store password: 
StorePasswdCmd.24=Passwords MUST be the same in both attempts.
StorePasswdCmd.9=Password to unlock the key store.  If omitted, you will be \
prompted for one.
StorePasswdCmd.8=PASSWORD
StorePasswdCmd.7=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
StorePasswdCmd.6=PROVIDER_CLASS_NAME
StorePasswdCmd.5=Emit more verbose messages.

KeyPasswdCmd.24=Enter new key password for <{0}>: 
KeyPasswdCmd.28=Re-enter new key password for <{0}>: 
KeyPasswdCmd.23=Usage:  keytool -keypasswd [OPTION]...\n\
Change the password protecting a Key Entry.
KeyPasswdCmd.22=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
KeyPasswdCmd.21=Command options
KeyPasswdCmd.20=The Alias which password is to be changed.
KeyPasswdCmd.19=ALIAS
KeyPasswdCmd.18=Password to unlock ALIAS.  If omitted, the tool will attempt \
to unlock the Key Entry using the same password protecting the key store.  If \
this fails, you will be prompted for a password.
KeyPasswdCmd.16=The new, and different, password to protect ALIAS.
KeyPasswdCmd.14=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
KeyPasswdCmd.13=STORE_TYPE
KeyPasswdCmd.12=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
KeyPasswdCmd.11=URL
KeyPasswdCmd.10=Password to unlock the key store.  If omitted, you will be \
prompted for one.
KeyPasswdCmd.9=PASSWORD
KeyPasswdCmd.8=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
KeyPasswdCmd.7=PROVIDER_CLASS_NAME
KeyPasswdCmd.6=Emit more verbose messages.

KeyCloneCmd.23=Destination Alias MUST NOT exist in key store
KeyCloneCmd.26=Enter destination alias: 
KeyCloneCmd.27=Destination alias MUST NOT be null nor empty
KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: 
KeyCloneCmd.22=Usage:  keytool -keyclone [OPTION]...\n\
Clone an existing Key Entry and store it under a new (different) Alias \
protecting its private key material with possibly a new password.
KeyCloneCmd.21=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
KeyCloneCmd.20=Command options
KeyCloneCmd.19=Alias of an entry to clone.  The value "mykey" (all lower case, \
without the enclosing quotes) is used when this option is omitted.
KeyCloneCmd.17=Alias to identify the cloned copy of the Key Entry.
KeyCloneCmd.16=ALIAS
KeyCloneCmd.15=Password to unlock the Key Entry associated with the Alias to \
clone.  If omitted, the tool will attempt to unlock the Key Entry using the \
same password protecting the key store.  If this fails, you will be prompted \
for a password.
KeyCloneCmd.13=Password to protect the cloned copy of the Key Entry.  If \
omitted, you will be prompted to provide one.
KeyCloneCmd.11=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
KeyCloneCmd.10=STORE_TYPE
KeyCloneCmd.9=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
KeyCloneCmd.8=URL
KeyCloneCmd.7=Password to unlock the key store.  If omitted, you will be \
prompted for one.
KeyCloneCmd.6=PASSWORD
KeyCloneCmd.5=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
KeyCloneCmd.4=PROVIDER_CLASS_NAME
KeyCloneCmd.3=Emit more verbose messages.

ListCmd.21=Key store type: {0}
ListCmd.22=Key store provider: {0}
ListCmd.24=Key store contains {0,number} entry(ies)
ListCmd.20=Usage:  keytool -list [OPTION]...\n\
Print one or all of the key store entries to STDOUT.  Usually this command \
will only print a fingerprint of the certificate, unless either -rfc or -v \
is specified.
ListCmd.30=Alias name: {0}
ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full}
ListCmd.32=Entry type: trusted-certificate
ListCmd.33=Entry type: key-entry
ListCmd.34=Alias [{0}] is unknown to the key store
ListCmd.38=Certificate chain length: {0,number}
ListCmd.39=Certificate[1]:
ListCmd.40=Certificate[{0,number}]:
ListCmd.42=*******************************************
ListCmd.43=-----BEGIN CERTIFICATE-----
ListCmd.44=-----END CERTIFICATE-----
ListCmd.45=Certificate fingerprint (MD5): {0}
ListCmd.19=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
ListCmd.18=Command options
ListCmd.17=Alias of an entry to list.  If omitted, all entries are listed.
ListCmd.16=ALIAS
ListCmd.15=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
ListCmd.14=STORE_TYPE
ListCmd.13=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
ListCmd.12=URL
ListCmd.11=Password to unlock the key store.  If omitted, you will be \
prompted for one.
ListCmd.10=PASSWORD
ListCmd.9=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
ListCmd.8=PROVIDER_CLASS_NAME
ListCmd.7=Output the certificate in human-readable format, even if -rfc is \
also specified.
ListCmd.6=Use RFC-1421 specifications when encoding the output.

ImportCmd.34=Failed to establish chain-of-trust from reply
ImportCmd.37=Unable to find anchor certificate for {0}
ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type
ImportCmd.32=Can this certificate be trusted? 
ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1}
ImportCmd.41=Public keys, in key store and certificate, MUST be the same
ImportCmd.29=Certificate was added to the key store
ImportCmd.28=Certificate was not added to the key store
ImportCmd.27=Usage:  keytool -import [OPTION]...\n\
Read an X.509 certificate, or a PKCS#7 Certificate Reply from a designated \
input source and incorporate the certificates into the key store.
ImportCmd.26=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
ImportCmd.25=Command options
ImportCmd.24=If ALIAS does not already exist in the key store, the tool treats \
the certificate in FILE as a new Trusted Certificate.\n\
If ALIAS exists in the key store, the tool will treat the certificate(s) in \
FILE as a Certificate Reply (which can be a chain of certificates).
ImportCmd.23=ALIAS
ImportCmd.22=Location of the Certificate or Certificate Reply to import.
ImportCmd.21=FILE
ImportCmd.20=Password to protect the Key Entry associated with ALIAS.  If \
this option is omitted, and the chain-of-trust for the Certificate Reply has \
been established, the tool will first attempt to unlock the Key Entry using \
the same password protecting the key store.  If this fails, you will be \
prompted to provide a password.
ImportCmd.19=PASSWORD
ImportCmd.18=Prevent the tool from prompting the user.
ImportCmd.17=Additionally use a key store, of type "JKS", named "cacerts", \
and located in lib/security in an installed Java Runtime Environment, when \
trying to establish chains-of-trust.
ImportCmd.16=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
ImportCmd.15=STORE_TYPE
ImportCmd.14=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
ImportCmd.13=URL
ImportCmd.12=Password to unlock the key store.  If omitted, you will be \
prompted for one.
ImportCmd.11=PASSWORD
ImportCmd.10=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
ImportCmd.9=PROVIDER_CLASS_NAME
ImportCmd.8=Emit more verbose messages.
ImportCmd.7=Was unable to build a certificate-chain. Only {0,number} out of {1,number} certificates were processed

ExportCmd.17=Usage:  keytool -export [OPTION]...\n\
Export a certificate stored in the key store to a designated output \
destination, either in binary format or in RFC-1421 compliant encoding.
ExportCmd.18=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
ExportCmd.19=Command options
ExportCmd.20=Alias of an entry to export.  The value "mykey" (all lower case, \
without the enclosing quotes) is used when this option is omitted.
ExportCmd.21=ALIAS
ExportCmd.22=Destination of the exported certificate.  STDOUT is used if this \
option is omitted.
ExportCmd.23=FILE
ExportCmd.24=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
ExportCmd.25=STORE_TYPE
ExportCmd.26=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
ExportCmd.27=URL
ExportCmd.28=Password to unlock the key store.  If omitted, you will be \
prompted for one.
ExportCmd.29=PASSWORD
ExportCmd.30=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
ExportCmd.31=PROVIDER_CLASS_NAME
ExportCmd.32=Use RFC-1421 specifications when encoding the output.
ExportCmd.33=Output the certificate in binary DER encoding, which is the \
default format.  If -rfc is also present, this option is ignored.

IdentityDBCmd.7=Usage:  keytool -identitydb [OPTION]...\n\
NOT IMPLEMENTED YET.  Import a JDK 1.1 style Identity Database.
IdentityDBCmd.8=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
IdentityDBCmd.9=Command options
IdentityDBCmd.10=Location of the Identity Database to import.  If omitted, \
STDIN is used.
IdentityDBCmd.11=FILE
IdentityDBCmd.12=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
IdentityDBCmd.13=STORE_TYPE
IdentityDBCmd.14=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
IdentityDBCmd.15=URL
IdentityDBCmd.16=Password to unlock the key store.  If omitted, you will be \
prompted for one.
IdentityDBCmd.17=PASSWORD
IdentityDBCmd.18=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
IdentityDBCmd.19=PROVIDER_CLASS_NAME
IdentityDBCmd.20=Emit more verbose messages.

PrintCertCmd.5=Usage:  keytool -printcert [OPTION]...\n\
Read a certificate from FILE and print it to STDOUT in a human-readable form.
PrintCertCmd.6=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
PrintCertCmd.7=Command options
PrintCertCmd.8=Location of the certificate to print.  If omitted, STDIN is used.
PrintCertCmd.9=FILE
PrintCertCmd.10=Emit more verbose messages.

SelfCertCmd.14=Usage:  keytool -selfcert [OPTION]...\n\
Generate a self-signed X.509 version 1 certificate.\n\n\
The newly generated certificate will form a chain of one element which will \
replace the previous chain associated with ALIAS.
SelfCertCmd.15=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
SelfCertCmd.16=Command options
SelfCertCmd.17=Alias of the Key Entry to select.  The value "mykey" (all lower \
case, without the enclosing quotes) is used when this option is omitted.
SelfCertCmd.18=ALIAS
SelfCertCmd.19=Name of the digital signature algorithm to use for signing the \
certificate.  If omitted, a default value is chosen based on the type of the \
private key associated with ALIAS.  If the key is a "DSA" one, the value for \
signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
an "RSA" one, then "MD5withRSA" will be the signature algorithm.
SelfCertCmd.20=ALGORITHM
SelfCertCmd.21=The X.500 Distinguished Name of the Subject of the generated \
certificate.  If omitted the Distinguished Name of the base certificate in \
the chain associated with ALIAS is used instead.
SelfCertCmd.22=NAME
SelfCertCmd.23=Password to unlock the Key Entry associated with ALIAS.  If \
omitted, the tool will attempt to unlock the Key Entry using the same password \
protecting the key store.  If this fails, you will be prompted for a password.
SelfCertCmd.24=PASSWORD
SelfCertCmd.25=Number of days the generated certificate is valid for.  If \
omitted, 90 is used.
SelfCertCmd.26=DAY_COUNT
SelfCertCmd.27=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
SelfCertCmd.28=STORE_TYPE
SelfCertCmd.29=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
SelfCertCmd.30=URL
SelfCertCmd.31=Password to unlock the key store.  If omitted, you will be \
prompted for one.
SelfCertCmd.32=PASSWORD
SelfCertCmd.33=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
SelfCertCmd.34=PROVIDER_CLASS_NAME
SelfCertCmd.35=Emit more verbose messages.

CACertCmd.0=Alias [{0}] is already present in key store
CACertCmd.1=Certificate in file "{0}" was added to the key store under the alias "{1}"
CACertCmd.2=Usage:  keytool -cacert [OPTION]...\n\
Import a trusted CA certificate.
CACertCmd.3=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
CACertCmd.4=Command options
CACertCmd.5=Location of the trusted CA certificate to import.
CACertCmd.6=FILE
CACertCmd.7=Type of the key store to use.  If omitted, the default value is \
that of the property "keystore.type" in the security properties file.
CACertCmd.8=STORE_TYPE
CACertCmd.9=Location of the key store to use.  The default value is a \
file-based scheme whose path is the file named ".keystore" in your home \
directory.\n\
If URL is malformed, the tool will use URL as a file-name of a key store; \
i.e. as if the protocol was "file:".
CACertCmd.10=URL
CACertCmd.11=Password to unlock the key store.  If omitted, you will be \
prompted for one.
CACertCmd.12=PASSWORD
CACertCmd.13=Fully qualified class name of a Security Provider to add to the \
JVM in-use.
CACertCmd.14=PROVIDER_CLASS_NAME
CACertCmd.15=Emit more verbose messages.
