java.lang.Object
javax.crypto.EncryptedPrivateKeyInfo
该类实现了PKCS#8中定义的
EncryptedPrivateKeyInfo类型。
其ASN.1定义如下:
EncryptedPrivateKeyInfo ::= SEQUENCE {
encryptionAlgorithm AlgorithmIdentifier,
encryptedData OCTET STRING }
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
- 自 JDK 版本:
- 1.4
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionEncryptedPrivateKeyInfo(byte[] encoded) 从其ASN.1编码构造(即解析)EncryptedPrivateKeyInfo。EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) 从加密算法名称和加密数据构造EncryptedPrivateKeyInfo。EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData) 从加密算法参数和加密数据构造EncryptedPrivateKeyInfo。 -
Method Summary
Modifier and TypeMethodDescription返回加密算法。返回加密算法使用的算法参数。byte[]返回此对象的ASN.1编码。byte[]返回加密数据。getKeySpec(Key decryptKey) 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。getKeySpec(Key decryptKey, String providerName) 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。getKeySpec(Key decryptKey, Provider provider) 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。getKeySpec(Cipher cipher) 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。
-
Constructor Details
-
EncryptedPrivateKeyInfo
从其ASN.1编码构造(即解析)EncryptedPrivateKeyInfo。- 参数:
-
encoded- 此对象的ASN.1编码。数组的内容会被复制以防止后续修改。 - 抛出:
-
NullPointerException- 如果encoded为null。 -
IOException- 如果解析ASN.1编码时发生错误。
-
EncryptedPrivateKeyInfo
public EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmException 从加密算法名称和加密数据构造EncryptedPrivateKeyInfo。注意:此构造函数将使用
null作为算法参数的值。如果加密算法具有值不为null的参数,应使用不同的构造函数,例如EncryptedPrivateKeyInfo(AlgorithmParameters, byte[])。- 参数:
-
algName- 加密算法名称。有关标准Cipher算法名称的信息,请参阅Java安全标准算法名称文档。 -
encryptedData- 加密数据。在构造此对象时,encryptedData的内容会被复制以防止后续修改。 - 抛出:
-
NullPointerException- 如果algName或encryptedData为null。 -
IllegalArgumentException- 如果encryptedData为空,即长度为0。 -
NoSuchAlgorithmException- 如果指定的algName不受支持。
-
EncryptedPrivateKeyInfo
public EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData) throws NoSuchAlgorithmException 从加密算法参数和加密数据构造EncryptedPrivateKeyInfo。- 参数:
-
algParams- 用于加密算法的算法参数。algParams.getEncoded()应返回EncryptedPrivateKeyInfo类型的AlgorithmIdentifier组件的parameters字段的ASN.1编码字节。 -
encryptedData- 加密数据。在构造此对象时,encryptedData的内容会被复制以防止后续修改。 - 抛出:
-
NullPointerException- 如果algParams或encryptedData为null。 -
IllegalArgumentException- 如果encryptedData为空,即长度为0。 -
NoSuchAlgorithmException- 如果指定的algParams参数的algName不受支持。
-
-
Method Details
-
getAlgName
返回加密算法。注意:当可用时,将返回标准名称而不是构造函数中指定的名称。有关标准Cipher算法名称的信息,请参阅Java安全标准算法名称文档。
- 返回:
- 加密算法名称。
-
getAlgParameters
返回加密算法使用的算法参数。- 返回:
- 算法参数。
-
getEncryptedData
public byte[] getEncryptedData()返回加密数据。- 返回:
- 加密数据。每次调用此方法时都会返回一个新数组。
-
getKeySpec
从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。
注意:为成功检索封装的PKCS8EncodedKeySpec对象,cipher需要初始化为Cipher.DECRYPT_MODE或Cipher.UNWRAP_MODE,使用生成加密数据的相同密钥和参数。- 参数:
-
cipher- 用于解密加密数据的已初始化的Cipher对象。 - 返回:
- PKCS8EncodedKeySpec对象。
- 抛出:
-
NullPointerException- 如果cipher为null。 -
InvalidKeySpecException- 如果给定的cipher不适用于加密数据或加密数据已损坏且无法解密。
-
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Key decryptKey) throws NoSuchAlgorithmException, InvalidKeyException 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。- 参数:
-
decryptKey- 用于解密加密数据的密钥。 - 返回:
- PKCS8EncodedKeySpec对象。
- 抛出:
-
NullPointerException- 如果decryptKey为null。 -
NoSuchAlgorithmException- 如果找不到适合解密加密数据的密码器。 -
InvalidKeyException- 如果decryptKey无法用于解密加密数据或解密结果不是有效的PKCS8KeySpec。 - 自 JDK 版本:
- 1.5
-
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, String providerName) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeyException 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。- 参数:
-
decryptKey- 用于解密加密数据的密钥。 -
providerName- 将使用其密码器实现的提供程序的名称。 - 返回:
- PKCS8EncodedKeySpec对象。
- 抛出:
-
NullPointerException- 如果decryptKey或providerName为null。 -
NoSuchProviderException- 如果未注册提供程序providerName。 -
NoSuchAlgorithmException- 如果找不到适合解密加密数据的密码器。 -
InvalidKeyException- 如果decryptKey无法用于解密加密数据或解密结果不是有效的PKCS8KeySpec。 - 自 JDK 版本:
- 1.5
-
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, Provider provider) throws NoSuchAlgorithmException, InvalidKeyException 从加密数据中提取封装的PKCS8EncodedKeySpec对象并返回它。- 参数:
-
decryptKey- 用于解密加密数据的密钥。 -
provider- 将使用其密码器实现的提供程序的名称。 - 返回:
- PKCS8EncodedKeySpec对象。
- 抛出:
-
NullPointerException- 如果decryptKey或provider为null。 -
NoSuchAlgorithmException- 如果在provider中找不到适合解密加密数据的密码器。 -
InvalidKeyException- 如果decryptKey无法用于解密加密数据或解密结果不是有效的PKCS8KeySpec。 - 自 JDK 版本:
- 1.5
-
getEncoded
返回此对象的ASN.1编码。- 返回:
- ASN.1编码。每次调用此方法时都会返回一个新数组。
- 抛出:
-
IOException- 构造其ASN.1编码时发生错误。
-