|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.crypto.KeyAgreement
public class KeyAgreement
此类提供密钥一致性(或密钥交换)协议的功能。建立共享秘密所涉及的密钥由某个密钥生成器(KeyPairGenerator
或 KeyGenerator
,一个 KeyFactory
)来创建,或在密钥协议的中间阶段创建。
对于密钥交换中的每个对应物,需要调用 doPhase
。例如,如果此密钥交换是与其他一个参与者进行的,则需要调用一次 doPhase
,将 lastPhase
标志设置为 true
。如果此密钥交换是与其他两个参与者进行的,则需要调用两次 doPhase
,第一次将 lastPhase
标志设置为 false
,第二次将它设置为 true
。密钥交换可能涉及任意数量的参与者。
KeyGenerator
,
SecretKey
构造方法摘要 | |
---|---|
protected |
KeyAgreement(KeyAgreementSpi keyAgreeSpi,
Provider provider,
String algorithm)
创建一个 KeyAgreement 对象。 |
方法摘要 | |
---|---|
Key |
doPhase(Key key,
boolean lastPhase)
用给定密钥执行此密钥一致性的下一个阶段,该给定密钥是从此密钥一致性所涉及的其他某个参与者那里接收的。 |
byte[] |
generateSecret()
生成共享秘密密钥并在新的缓冲区中返回它。 |
int |
generateSecret(byte[] sharedSecret,
int offset)
生成共享秘密密钥,并将从 offset 开始(包括)的部分放入缓冲区 sharedSecret 。 |
SecretKey |
generateSecret(String algorithm)
创建共享秘密密钥并将其作为所请求算法的 SecretKey 对象返回。 |
String |
getAlgorithm()
返回此 KeyAgreement 对象的算法名称。 |
static KeyAgreement |
getInstance(String algorithm)
生成实现指定密钥一致算法的 KeyAgreement 对象。 |
static KeyAgreement |
getInstance(String algorithm,
Provider provider)
为来自指定提供程序的指定密钥一致算法生成一个 KeyAgreement 对象。 |
static KeyAgreement |
getInstance(String algorithm,
String provider)
为来自指定提供程序的指定密钥一致算法生成一个 KeyAgreement 对象。 |
Provider |
getProvider()
返回此 KeyAgreement 对象的提供程序。 |
void |
init(Key key)
用给定密钥初始化此密钥一致性,它需要包含此密钥一致性所需的所有算法参数。 |
void |
init(Key key,
AlgorithmParameterSpec params)
用给定密钥和算法参数集初始化此密钥一致性。 |
void |
init(Key key,
AlgorithmParameterSpec params,
SecureRandom random)
用给定密钥、算法参数集和随机源初始化此密钥一致性。 |
void |
init(Key key,
SecureRandom random)
用给定密钥和随机源初始化此密钥协议。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
keyAgreeSpi
- 委托provider
- 提供程序algorithm
- 算法方法详细信息 |
---|
public final String getAlgorithm()
KeyAgreement
对象的算法名称。
此名称与在某个创建此 KeyAgreement
对象的 getInstance
调用中指定的名称相同。
KeyAgreement
对象的算法名称。public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException
KeyAgreement
对象。如果默认提供程序包提供所请求的密钥一致算法的实现,则返回包含该实现的 KeyAgreement
的实例。如果默认提供程序包中不存在该算法,则搜索其他提供程序包。
algorithm
- 所请求的密钥一致算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。
KeyAgreement
对象
NullPointerException
- 如果指定的算法为 null。
NoSuchAlgorithmException
- 如果默认提供程序包或搜索到的其他任何提供程序包中不存在指定算法。public static final KeyAgreement getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyAgreement
对象。
algorithm
- 所请求的密钥一致算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。provider
- 提供程序的名称
KeyAgreement
对象
NullPointerException
- 如果指定的算法为 null。
NoSuchAlgorithmException
- 如果指定算法在指定的提供程序中不可用。
NoSuchProviderException
- 如果尚未配置指定的提供程序。
IllegalArgumentException
- 如果该 provider
为 null。public static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyAgreement
对象。注:该 provider
不必注册。
algorithm
- 所请求的密钥一致算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。provider
- 提供程序
KeyAgreement
对象
NullPointerException
- 如果指定的算法为 null。
NoSuchAlgorithmException
- 如果指定算法在指定的提供程序中不可用。
IllegalArgumentException
- 如果该 provider
为 null。public final Provider getProvider()
KeyAgreement
对象的提供程序。
KeyAgreement
对象的提供程序public final void init(Key key) throws InvalidKeyException
如果此密钥一致性需要所有随机字节,它会使用已安装的高优先级提供程序的
实现作为随机源来获得它们。(如果已安装的提供程序都不提供 SecureRandom 的实现,则将使用系统提供的随机源。)
SecureRandom
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。public final void init(Key key, SecureRandom random) throws InvalidKeyException
如果该密钥一致性算法需要随机字节,则从给定的随机源 random
中获得它们。不过,如果基础算法实现不需要任何随机字节,则忽略 random
。
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。random
- 随机源
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
如果此密钥一致性需要所有随机字节,它会使用已安装的高优先级提供程序的
实现作为随机源来获得它们。(如果已安装的提供程序都不提供 SecureRandom 的实现,则将使用系统提供的随机源。)
SecureRandom
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。params
- 密钥一致性参数
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。
InvalidAlgorithmParameterException
- 如果给定算法不适合此密钥一致性。public final void init(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。params
- 密钥一致性参数random
- 随机源
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。
InvalidAlgorithmParameterException
- 如果给定算法不适合此密钥一致性。public final Key doPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
key
- 此阶段的密钥。例如,对于两个参与者之间的 Diffie-Hellman,此密钥将是其他参与者的 Diffie-Hellman 公钥。lastPhase
- 表示这是否是此密钥一致性的最后阶段的标志。
InvalidKeyException
- 如果给定密钥不适合此阶段。
IllegalStateException
- 如果尚未初始化此密钥一致性。public final byte[] generateSecret() throws IllegalStateException
此方法重新设置此 KeyAgreement
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个 init
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。
IllegalStateException
- 如果尚未实现此密钥一致性public final int generateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
offset
开始(包括)的部分放入缓冲区 sharedSecret
。
如果 sharedSecret
缓冲区太小而无法保存该结果,则抛出 ShortBufferException
。在此情况下,应该用更大的输出缓冲区重复进行此调用。
此方法重新设置此 KeyAgreement
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个 init
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。
sharedSecret
- 共享秘密密钥的缓冲区offset
- 将存储共享秘密密钥的 sharedSecret
中的偏移量
sharedSecret
中的字节数
IllegalStateException
- 如果尚未实现此密钥一致性
ShortBufferException
- 如果给定输出缓冲区太小而无法保存该秘密密钥public final SecretKey generateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
SecretKey
对象返回。
此方法重新设置此 KeyAgreement
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个 init
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。
algorithm
- 所请求秘密密钥的算法
IllegalStateException
- 如果尚未实现此密钥一致性
NoSuchAlgorithmException
- 如果指定的秘密密钥算法不可用
InvalidKeyException
- 如果无法使用共享秘密密钥材料生成指定算法的秘密密钥(例如,密钥材料太短缺)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。