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
类 KeyFactorySpi

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

public abstract class KeyFactorySpi
extends Object

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

密钥工厂用来把 keys(类型 Key 的不透明密钥)转换成密钥规范(基础密钥材料的透明表示形式),反之亦然。

密钥工厂是双向的。也就是说,它们允许根据一个给定的密钥规范(密钥材料)来建造一个不透明的密钥对象,或检索以合适格式表示的密钥对象的基础密钥材料。

对于同一个密钥可以存在多个兼容的密钥规范。例如,一个 DSA 公钥可以使用 DSAPublicKeySpecX509EncodedKeySpec 指定。密钥工厂可以用来在兼容的密钥规范之间转换。

provider 应该记录其密钥工厂支持的所有密钥规范。

从以下版本开始:
1.2
另请参见:
KeyFactory, Key, PublicKey, PrivateKey, KeySpec, DSAPublicKeySpec, X509EncodedKeySpec

构造方法摘要
KeyFactorySpi()
           
 
方法摘要
protected abstract  PrivateKey engineGeneratePrivate(KeySpec keySpec)
          根据所提供的密钥规范(密钥材料)生成私钥对象。
protected abstract  PublicKey engineGeneratePublic(KeySpec keySpec)
          根据所提供的密钥规范(密钥材料)生成公钥对象。
protected abstract
<T extends KeySpec>
T
engineGetKeySpec(Key key, Class<T> keySpec)
          返回给定密钥对象的规范(密钥材料)。
protected abstract  Key engineTranslateKey(Key key)
          将其 provider 可能是未知的或可能不受信任的密钥对象转换成此密钥工厂的相应密钥对象。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

KeyFactorySpi

public KeyFactorySpi()
方法详细信息

engineGeneratePublic

protected abstract PublicKey engineGeneratePublic(KeySpec keySpec)
                                           throws InvalidKeySpecException
根据所提供的密钥规范(密钥材料)生成公钥对象。

参数:
keySpec - 公钥的规范(密钥材料)。
返回:
公钥。
抛出:
InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂来生成公钥。

engineGeneratePrivate

protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec)
                                             throws InvalidKeySpecException
根据所提供的密钥规范(密钥材料)生成私钥对象。

参数:
keySpec - 私钥的规范(密钥材料)。
返回:
私钥。
抛出:
InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂来生成私钥。

engineGetKeySpec

protected abstract <T extends KeySpec> T engineGetKeySpec(Key key,
                                                          Class<T> keySpec)
                                               throws InvalidKeySpecException
返回给定密钥对象的规范(密钥材料)。keySpec 标识应该将密钥材料返回到其中的规范类。例如,它可能是 DSAPublicKeySpec.class,指示密钥材料应该返回到 DSAPublicKeySpec 类的一个实例中。

参数:
key - 密钥。
keySpec - 应该将密钥材料返回到其中的规范类。
返回:
请求的规范类中的基础密钥规范(密钥材料)。
抛出:
InvalidKeySpecException - 如果请求的密钥规范不适合给定的密钥,或给定的密钥不能被处理(例如,给定的密钥具有不能识别的格式)。

engineTranslateKey

protected abstract Key engineTranslateKey(Key key)
                                   throws InvalidKeyException
将其 provider 可能是未知的或可能不受信任的密钥对象转换成此密钥工厂的相应密钥对象。

参数:
key - 其 provider 是未知的或不受信任的密钥对象。
返回:
已转换的密钥。
抛出:
InvalidKeyException - 如果给定密钥不能被此密钥工厂处理。

JavaTM 2 Platform
Standard Ed. 5.0

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

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