|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 KeyAgreement
java.lang.Object javax.crypto.KeyAgreement
-
public class KeyAgreement
- extends Object
此类提供密钥一致性(或密钥交换)协议的功能。建立共享秘密所涉及的密钥由某个密钥生成器(KeyPairGenerator
或 KeyGenerator
,一个 KeyFactory
)来创建,或在密钥协议的中间阶段创建。 对于密钥交换中的每个对应物,需要调用 doPhase
。例如,如果此密钥交换是与其他一个参与者进行的,则需要调用一次 doPhase
,将 lastPhase
标志设置为 true
。如果此密钥交换是与其他两个参与者进行的,则需要调用两次 doPhase
,第一次将 lastPhase
标志设置为 false
,第二次将它设置为 true
。密钥交换可能涉及任意数量的参与者。
- 从以下版本开始:
- 1.4
- 另请参见:
-
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 |
构造方法详细信息 |
---|
KeyAgreement
protected KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
-
创建一个 KeyAgreement 对象。
- 参数:
-
keyAgreeSpi
- 委托 -
provider
- 提供程序 -
algorithm
- 算法
方法详细信息 |
---|
getAlgorithm
public final String getAlgorithm()
-
返回此
KeyAgreement
对象的算法名称。此名称与在某个创建此
KeyAgreement
对象的getInstance
调用中指定的名称相同。 -
- 返回:
-
此
KeyAgreement
对象的算法名称。
getInstance
public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException
-
生成实现指定密钥一致算法的
KeyAgreement
对象。如果默认提供程序包提供所请求的密钥一致算法的实现,则返回包含该实现的KeyAgreement
的实例。如果默认提供程序包中不存在该算法,则搜索其他提供程序包。 -
- 参数:
-
algorithm
- 所请求的密钥一致算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 - 返回:
-
新的
KeyAgreement
对象 - 抛出:
-
NullPointerException
- 如果指定的算法为 null。 -
NoSuchAlgorithmException
- 如果默认提供程序包或搜索到的其他任何提供程序包中不存在指定算法。
getInstance
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。
getInstance
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。
getProvider
public final Provider getProvider()
-
返回此
KeyAgreement
对象的提供程序。 -
- 返回:
-
此
KeyAgreement
对象的提供程序
init
public final void init(Key key) throws InvalidKeyException
-
用给定密钥初始化此密钥一致性,它需要包含此密钥一致性所需的所有算法参数。
如果此密钥一致性需要所有随机字节,它会使用已安装的高优先级提供程序的
实现作为随机源来获得它们。(如果已安装的提供程序都不提供 SecureRandom 的实现,则将使用系统提供的随机源。)SecureRandom
-
- 参数:
-
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。
init
public final void init(Key key, SecureRandom random) throws InvalidKeyException
-
用给定密钥和随机源初始化此密钥协议。给定密钥需要包含此密钥协议所需的所有算法参数。
如果该密钥一致性算法需要随机字节,则从给定的随机源
random
中获得它们。不过,如果基础算法实现不需要任何随机字节,则忽略random
。 -
- 参数:
-
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,此密钥将是参与者自己的 Diffie-Hellman 私钥。 -
random
- 随机源 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。