keystorespi.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 290 行

JAVA
290
字号
/* * @(#)KeyStoreSpi.java	1.15 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program 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 version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */package java.security;import java.io.*;import java.security.cert.Certificate;import java.security.cert.CertificateException;import java.util.*;/** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) * for the <code>KeyStore</code> class. * All the abstract methods in this class must be implemented by each * cryptographic service provider who wishes to supply the implementation * of a keystore for a particular keystore type. * * @author Jan Luehe * * @version 1.9, 02/02/00 * * @see KeyStore * * @since 1.2 */public abstract class KeyStoreSpi {    /**     * Returns the key associated with the given alias, using the given     * password to recover it.     *     * @param alias the alias name     * @param password the password for recovering the key     *     * @return the requested key, or null if the given alias does not exist     * or does not identify a <i>key entry</i>.     *     * @exception NoSuchAlgorithmException if the algorithm for recovering the     * key cannot be found     * @exception UnrecoverableKeyException if the key cannot be recovered     * (e.g., the given password is wrong).     */    public abstract Key engineGetKey(String alias, char[] password)	throws NoSuchAlgorithmException, UnrecoverableKeyException;    /**     * Returns the certificate chain associated with the given alias.     *     * @param alias the alias name     *     * @return the certificate chain (ordered with the user's certificate first     * and the root certificate authority last), or null if the given alias     * does not exist or does not contain a certificate chain (i.e., the given     * alias identifies either a <i>trusted certificate entry</i> or a     * <i>key entry</i> without a certificate chain).     */    public abstract Certificate[] engineGetCertificateChain(String alias);    /**     * Returns the certificate associated with the given alias.     *     * <p>If the given alias name identifies a     * <i>trusted certificate entry</i>, the certificate associated with that     * entry is returned. If the given alias name identifies a     * <i>key entry</i>, the first element of the certificate chain of that     * entry is returned, or null if that entry does not have a certificate     * chain.     *     * @param alias the alias name     *     * @return the certificate, or null if the given alias does not exist or     * does not contain a certificate.     */    public abstract Certificate engineGetCertificate(String alias);    /**     * Returns the creation date of the entry identified by the given alias.     *     * @param alias the alias name     *     * @return the creation date of this entry, or null if the given alias does     * not exist     */    public abstract Date engineGetCreationDate(String alias);    /**     * Assigns the given key to the given alias, protecting it with the given     * password.     *     * <p>If the given key is of type <code>java.security.PrivateKey</code>,     * it must be accompanied by a certificate chain certifying the     * corresponding public key.     *     * <p>If the given alias already exists, the keystore information     * associated with it is overridden by the given key (and possibly     * certificate chain).     *     * @param alias the alias name     * @param key the key to be associated with the alias     * @param password the password to protect the key     * @param chain the certificate chain for the corresponding public     * key (only required if the given key is of type     * <code>java.security.PrivateKey</code>).     *     * @exception KeyStoreException if the given key cannot be protected, or     * this operation fails for some other reason     */    public abstract void engineSetKeyEntry(String alias, Key key,					   char[] password,					   Certificate[] chain)	throws KeyStoreException;    /**     * Assigns the given key (that has already been protected) to the given     * alias.     *     * <p>If the protected key is of type     * <code>java.security.PrivateKey</code>,     * it must be accompanied by a certificate chain certifying the     * corresponding public key.     *     * <p>If the given alias already exists, the keystore information     * associated with it is overridden by the given key (and possibly     * certificate chain).     *     * @param alias the alias name     * @param key the key (in protected format) to be associated with the alias     * @param chain the certificate chain for the corresponding public     * key (only useful if the protected key is of type     * <code>java.security.PrivateKey</code>).     *     * @exception KeyStoreException if this operation fails.     */    public abstract void engineSetKeyEntry(String alias, byte[] key,					   Certificate[] chain)	throws KeyStoreException;    /**     * Assigns the given certificate to the given alias.     *     * <p>If the given alias already exists in this keystore and identifies a     * <i>trusted certificate entry</i>, the certificate associated with it is     * overridden by the given certificate.     *     * @param alias the alias name     * @param cert the certificate     *     * @exception KeyStoreException if the given alias already exists and does     * not identify a <i>trusted certificate entry</i>, or this operation     * fails for some other reason.     */    public abstract void engineSetCertificateEntry(String alias,						   Certificate cert)	throws KeyStoreException;    /**     * Deletes the entry identified by the given alias from this keystore.     *     * @param alias the alias name     *     * @exception KeyStoreException if the entry cannot be removed.     */    public abstract void engineDeleteEntry(String alias)	throws KeyStoreException;    /**     * Lists all the alias names of this keystore.     *     * @return enumeration of the alias names     */    public abstract Enumeration	engineAliases();    /**     * Checks if the given alias exists in this keystore.     *     * @param alias the alias name     *     * @return true if the alias exists, false otherwise     */    public abstract boolean engineContainsAlias(String alias);    /**     * Retrieves the number of entries in this keystore.     *     * @return the number of entries in this keystore     */    public abstract int engineSize();    /**     * Returns true if the entry identified by the given alias is a     * <i>key entry</i>, and false otherwise.     *     * @param alias the alias for the keystore entry to be checked     *     * @return true if the entry identified by the given alias is a     * <i>key entry</i>, false otherwise.     */    public abstract boolean engineIsKeyEntry(String alias);    /**     * Returns true if the entry identified by the given alias is a     * <i>trusted certificate entry</i>, and false otherwise.     *     * @param alias the alias for the keystore entry to be checked     *     * @return true if the entry identified by the given alias is a     * <i>trusted certificate entry</i>, false otherwise.     */    public abstract boolean engineIsCertificateEntry(String alias);    /**     * Returns the (alias) name of the first keystore entry whose certificate     * matches the given certificate.     *     * <p>This method attempts to match the given certificate with each     * keystore entry. If the entry being considered     * is a <i>trusted certificate entry</i>, the given certificate is     * compared to that entry's certificate. If the entry being considered is     * a <i>key entry</i>, the given certificate is compared to the first     * element of that entry's certificate chain (if a chain exists).     *     * @param cert the certificate to match with.     *     * @return the (alias) name of the first entry with matching certificate,     * or null if no such entry exists in this keystore.     */    public abstract String engineGetCertificateAlias(Certificate cert);    /**     * Stores this keystore to the given output stream, and protects its     * integrity with the given password.     *     * @param stream the output stream to which this keystore is written.     * @param password the password to generate the keystore integrity check     *     * @exception IOException if there was an I/O problem with data     * @exception NoSuchAlgorithmException if the appropriate data integrity     * algorithm could not be found     * @exception CertificateException if any of the certificates included in     * the keystore data could not be stored     */    public abstract void engineStore(OutputStream stream, char[] password)	throws IOException, NoSuchAlgorithmException, CertificateException;    /**     * Loads the keystore from the given input stream.     *     * <p>If a password is given, it is used to check the integrity of the     * keystore data. Otherwise, the integrity of the keystore is not checked.     *     * @param stream the input stream from which the keystore is loaded     * @param password the (optional) password used to check the integrity of     * the keystore.     *     * @exception IOException if there is an I/O or format problem with the     * keystore data     * @exception NoSuchAlgorithmException if the algorithm used to check     * the integrity of the keystore cannot be found     * @exception CertificateException if any of the certificates in the     * keystore could not be loaded     */    public abstract void engineLoad(InputStream stream, char[] password)	throws IOException, NoSuchAlgorithmException, CertificateException;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?