java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.security
类 KeyStoreSpi

java.lang.Object
  继承者 java.security.KeyStoreSpi

public abstract class KeyStoreSpi
extends Object

此类为 KeyStore 类定义服务提供程序接口 (SPI)。希望提供特定 keystore 类型的 keystore 实现的每个加密服务提供程序必须实现此类中所有的抽象方法。

从以下版本开始:
1.2
另请参见:
KeyStore

构造方法摘要
KeyStoreSpi()
           
 
方法摘要
abstract  Enumeration<String> engineAliases()
          列出此 keystore 的所有别名。
abstract  boolean engineContainsAlias(String alias)
          检查给定别名是否存在于此 keystore 中。
abstract  void engineDeleteEntry(String alias)
          删除由此 keystore 中给定的别名标识的项。
 boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
          确定指定 alias 的 keystore Entry 是否是指定 entryClass 的实例或子类。
abstract  Certificate engineGetCertificate(String alias)
          返回与给定别名关联的证书。
abstract  String engineGetCertificateAlias(Certificate cert)
          返回其证书和给定证书匹配的第一个 keystore 项的名称(别名)。
abstract  Certificate[] engineGetCertificateChain(String alias)
          返回与给定别名关联的证书链。
abstract  Date engineGetCreationDate(String alias)
          返回该别名标识的项的创建日期。
 KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam)
          使用指定保护参数获取指定别名的 KeyStore.Entry
abstract  Key engineGetKey(String alias, char[] password)
          返回与给定别名关联的密钥,使用给定密码恢复它。
abstract  boolean engineIsCertificateEntry(String alias)
          如果给定别名标识的项是通过调用 setCertificateEntry 或者调用使用 TrustedCertificateEntry 作为参数的 setEntry 来创建的,则返回 true。
abstract  boolean engineIsKeyEntry(String alias)
          如果给定别名标识的项是通过调用 setKeyEntry 或者调用使用 PrivateKeyEntrySecretKeyEntry 作为参数的 setEntry 创建的,则返回 true。
abstract  void engineLoad(InputStream stream, char[] password)
          从给定的输入流中加载此 KeyStore。
 void engineLoad(KeyStore.LoadStoreParameter param)
          使用给定的 KeyStore.LoadStoreParameter 加载该 keystore。
abstract  void engineSetCertificateEntry(String alias, Certificate cert)
          将给定证书分配给给定别名。
 void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
          用指定别名保存 KeyStore.Entry
abstract  void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
          将给定密钥(已经被保护)分配给给定别名。
abstract  void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
          将给定的密钥分配给给定的别名,用给定的密码保护它。
abstract  int engineSize()
          检索此 keystore 中项的数目。
 void engineStore(KeyStore.LoadStoreParameter param)
          使用给定的 KeyStore.LoadStoreParmeter 存储此 keystore。
abstract  void engineStore(OutputStream stream, char[] password)
          将此 keystore 存储到给定输出流中,并用给定的密码保护其完整性。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

KeyStoreSpi

public KeyStoreSpi()
方法详细信息

engineGetKey

public abstract Key engineGetKey(String alias,
                                 char[] password)
                          throws NoSuchAlgorithmException,
                                 UnrecoverableKeyException
返回与给定别名关联的密钥,使用给定密码恢复它。必须通过调用 setKeyEntry 或者调用使用 PrivateKeyEntrySecretKeyEntry 作为参数的 setEntry 将密钥与别名关联。

参数:
alias - 别名
password - 恢复密钥所用的密码
返回:
请求的密钥,如果给定别名不存在或不标识与密钥相关的项,则返回 null。
抛出:
NoSuchAlgorithmException - 如果不能找到恢复密钥的算法
UnrecoverableKeyException - 如果不能恢复密钥(例如,给定的密码错误)。

engineGetCertificateChain

public abstract Certificate[] engineGetCertificateChain(String alias)
返回与给定别名关联的证书链。必须通过调用 setKeyEntry,或者调用使用 PrivateKeyEntry 做参数的 setEntry 将密钥与别名关联。

参数:
alias - 别名
返回:
证书链(按用户证书在前根证书授权中心在后的顺序),如果给定别名不存在或不包含证书链,则返回 null

engineGetCertificate

public abstract Certificate engineGetCertificate(String alias)
返回与给定别名关联的证书。

如果给定的别名标识通过调用 setCertificateEntry 创建的项,或标识通过调用使用 TrustedCertificateEntry 参数的 setEntry 创建的项,那么返回包含在该项中的可信证书。

如果给定的别名标识通过调用 setKeyEntry 创建的项,或标识通过调用使用 PrivateKeyEntry 作为参数的 setEntry 创建的项,那么返回该项中证书链(如果存在证书链)的第一个元素。

参数:
alias - 别名
返回:
证书,如果给定别名不存在或不包含证书,则返回 null。

engineGetCreationDate

public abstract Date engineGetCreationDate(String alias)
返回该别名标识的项的创建日期。

参数:
alias - 别名
返回:
此项的创建日期,如果给定的别名不存在,则返回 null

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias,
                                       Key key,
                                       char[] password,
                                       Certificate[] chain)
                                throws KeyStoreException
将给定的密钥分配给给定的别名,用给定的密码保护它。

如果给定密钥的类型为 java.security.PrivateKey 类型,则它必须附带证明相应公钥的证书链。

如果给定的别名已经存在,则与别名关联的 keystore 信息被给定的密钥(可能和证书链)重写。

参数:
alias - 别名
key - 要与别名关联的密钥
password - 保护密钥的密码
chain - 相应公钥的证书链(只在给定密钥的类型为 java.security.PrivateKey 时需要)。
抛出:
KeyStoreException - 如果不能保护给定密钥,或此操作由于某些其他原因而失败

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias,
                                       byte[] key,
                                       Certificate[] chain)
                                throws KeyStoreException
将给定密钥(已经被保护)分配给给定别名。

如果被保护密钥的类型为 java.security.PrivateKey,则它必须附带证明相应公钥的证书链。

如果给定的别名已经存在,则与别名关联的 keystore 信息被给定的密钥(可能和证书链)重写。

参数:
alias - 别名
key - 要与别名关联的密钥(以受保护格式)
chain - 相应公钥的证书链(只在受保护密钥的类型为 java.security.PrivateKey 时有用)。
抛出:
KeyStoreException - 如果此操作失败。

engineSetCertificateEntry

public abstract void engineSetCertificateEntry(String alias,
                                               Certificate cert)
                                        throws KeyStoreException
将给定证书分配给给定别名。

如果给定的别名标识通过调用 setCertificateEntry 创建的现有项,或者标识通过调用使用 TrustedCertificateEntry 作为参数的 setEntry 创建的现有项,那么现有项中的可信证书被给定证书重写。

参数:
alias - 别名
cert - 证书
抛出:
KeyStoreException - 如果给定别名已存在且不标识一个包含可信任证书的项,或此操作由于其他某些原因而失败。

engineDeleteEntry

public abstract void engineDeleteEntry(String alias)
                                throws KeyStoreException
删除由此 keystore 中给定的别名标识的项。

参数:
alias - 别名
抛出:
KeyStoreException - 如果该项不能被移除

engineAliases

public abstract Enumeration<String> engineAliases()
列出此 keystore 的所有别名。

返回:
别名的枚举

engineContainsAlias

public abstract boolean engineContainsAlias(String alias)
检查给定别名是否存在于此 keystore 中。

参数:
alias - 别名
返回:
如果别名存在,则返回 true;否则,返回 false

engineSize

public abstract int engineSize()
检索此 keystore 中项的数目。

返回:
此 keystore 中的项的数目

engineIsKeyEntry

public abstract boolean engineIsKeyEntry(String alias)
如果给定别名标识的项是通过调用 setKeyEntry 或者调用使用 PrivateKeyEntrySecretKeyEntry 作为参数的 setEntry 创建的,则返回 true。

参数:
alias - 要检查的 keystore 项的别名
返回:
如果给定别名标识的项与密钥相关,则返回 true;否则返回 false。

engineIsCertificateEntry

public abstract boolean engineIsCertificateEntry(String alias)
如果给定别名标识的项是通过调用 setCertificateEntry 或者调用使用 TrustedCertificateEntry 作为参数的 setEntry 来创建的,则返回 true。

参数:
alias - 要检查的 keystore 项的别名
返回:
如果给定别名标识的项包含一个可信证书,则返回 true;否则,返回 false。

engineGetCertificateAlias

public abstract String engineGetCertificateAlias(Certificate cert)
返回其证书和给定证书匹配的第一个 keystore 项的名称(别名)。

此方法试图将给定证书与每一个 keystore 项相匹配。如果将被考虑的项是通过调用 setCertificateEntry 或者调用使用 TrustedCertificateEntry 作为参数的 setEntry 创建的,则将给定证书与该项的证书进行比较。

如果将被考虑的项是通过调用 setKeyEntry 或者调用使用 PrivateKeyEntry 作为参数的 setEntry 创建的,则将给定证书与该项证书链的第一个元素进行比较。

参数:
cert - 要匹配的证书
返回:
带有匹配证书的第一个项的别名;如果在此 keystore 中没有此类项存在,则返回 null。

engineStore

public abstract void engineStore(OutputStream stream,
                                 char[] password)
                          throws IOException,
                                 NoSuchAlgorithmException,
                                 CertificateException
将此 keystore 存储到给定输出流中,并用给定的密码保护其完整性。

参数:
stream - 要写入此 keystore 的输出流。
password - 生成 keystore 完整性检验的密码
抛出:
IOException - 如果存在数据的 I/O 问题
NoSuchAlgorithmException - 如果不能找到恰当的数据完整性算法
CertificateException - 如果包含在 keystore 数据中的任何证书不能被存储

engineStore

public void engineStore(KeyStore.LoadStoreParameter param)
                 throws IOException,
                        NoSuchAlgorithmException,
                        CertificateException
使用给定的 KeyStore.LoadStoreParmeter 存储此 keystore。

参数:
param - 指出存储 keystore 的方式的 KeyStore.LoadStoreParmeter,可以为 null
抛出:
IllegalArgumentException - 如果给定的 KeyStore.LoadStoreParmeter 输入无法识别
IOException - 如果存在数据 I/O 问题
NoSuchAlgorithmException - 如果不能找到恰当的数据完整性算法
CertificateException - 如果 keystore 数据中的任何证书不能被存储
从以下版本开始:
1.5

engineLoad

public abstract void engineLoad(InputStream stream,
                                char[] password)
                         throws IOException,
                                NoSuchAlgorithmException,
                                CertificateException
从给定的输入流中加载此 KeyStore。

可能给出密码来解锁 keystore(例如驻留在硬件标记设备上的 keystore)或检验 keystore 数据的完整性。如果没有给出用于完整性检验的密码,那么就不会执行完整性检验。

参数:
stream - 从其加载 keystore 的输入流,或 null
password - 用来检验 keystore 完整性的密码,用来解锁 keystore 的密码,或 null
抛出:
IOException - 如果存在 keystore 数据的 I/O 或格式问题,如果需要密码却没有给出,或者给出的密码错误
NoSuchAlgorithmException - 如果不能找到用来检验 keystore 完整性的算法
CertificateException - 如果不能加载 keystore 中的任何证书

engineLoad

public void engineLoad(KeyStore.LoadStoreParameter param)
                throws IOException,
                       NoSuchAlgorithmException,
                       CertificateException
使用给定的 KeyStore.LoadStoreParameter 加载该 keystore。

注意,如果此 KeyStore 已经被加载,则它将再次从给定参数中被初始化和加载。

参数:
param - 指出加载 keystore 的方式的 KeyStore.LoadStoreParameter,可以为 null
抛出:
IllegalArgumentException - 如果给定的 KeyStore.LoadStoreParameter 输入无法识别
IOException - 如果存在 keystore 数据的 I/O 或格式问题
NoSuchAlgorithmException - 如果不能找到用来检验 keystore 完整性的算法
CertificateException - 如果不能加载 keystore 中的任何证书
从以下版本开始:
1.5

engineGetEntry

public KeyStore.Entry engineGetEntry(String alias,
                                     KeyStore.ProtectionParameter protParam)
                              throws KeyStoreException,
                                     NoSuchAlgorithmException,
                                     UnrecoverableEntryException
使用指定保护参数获取指定别名的 KeyStore.Entry

参数:
alias - 获取此别名的 KeyStore.Entry
protParam - 用来保护 EntryProtectionParameter,可以为 null
返回:
指定别名的 KeyStore.Entry;如果不存在这样的项,则返回 null
抛出:
KeyStoreException - 如果操作失败
NoSuchAlgorithmException - 如果不能找到恢复项的算法
UnrecoverableEntryException - 如果指定的 protParam 不足或无效
从以下版本开始:
1.5

engineSetEntry

public void engineSetEntry(String alias,
                           KeyStore.Entry entry,
                           KeyStore.ProtectionParameter protParam)
                    throws KeyStoreException
用指定别名保存 KeyStore.Entry。指定的保护参数用来保护 Entry

如果指定别名的项已经存在,它将被重写。

参数:
alias - 以此别名保存 KeyStore.Entry
entry - 要保存的 Entry
protParam - 用来保护 EntryProtectionParameter,可以为 null
抛出:
KeyStoreException - 如果此操作失败
从以下版本开始:
1.5

engineEntryInstanceOf

public boolean engineEntryInstanceOf(String alias,
                                     Class<? extends KeyStore.Entry> entryClass)
确定指定 alias 的 keystore Entry 是否是指定 entryClass 的实例或子类。

参数:
alias - 别名
entryClass - 项的类
返回:
如果指定 alias 的 keystore Entry 是指定 entryClass 的实例或子类,则返回 true;否则返回 false。
从以下版本开始:
1.5

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策