Module  java.base
软件包  javax.crypto

Class EncryptedPrivateKeyInfo



  • public class EncryptedPrivateKeyInfo
    extends Object
    该类实现PKCS#8中定义的EncryptedPrivateKeyInfo类型。

    其ASN.1定义如下:

      EncryptedPrivateKeyInfo ::=  SEQUENCE {
         encryptionAlgorithm   AlgorithmIdentifier,
         encryptedData   OCTET STRING }
    
     AlgorithmIdentifier  ::=  SEQUENCE  {
         algorithm              OBJECT IDENTIFIER,
         parameters             ANY DEFINED BY algorithm OPTIONAL  } 
    从以下版本开始:
    1.4
    另请参见:
    PKCS8EncodedKeySpec
    • 构造方法详细信息

      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo​(byte[] encoded)
                                throws IOException
        从其ASN.1编码构造(即解析)一个 EncryptedPrivateKeyInfo
        参数
        encoded - 该对象的ASN.1编码。 复制数组的内容以防止后续修改。
        异常
        NullPointerException - 如果 encoded为空。
        IOException - 如果在解析ASN.1编码时发生错误。
      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo​(String algName,
                                       byte[] encryptedData)
                                throws NoSuchAlgorithmException
        根据加密算法名称和加密数据构建一个EncryptedPrivateKeyInfo

        注意:该构造函数将使用null作为算法参数的值。 如果加密算法的参数值不为空,则应使用不同的构造函数,例如EncryptedPrivateKeyInfo(AlgorithmParameters,byte [])。

        参数
        algName - 加密算法名称。 有关标准密码算法名称的信息,请参阅Java Security Standard Algorithm Names文档。
        encryptedData - 加密数据。 复制encrypedData的内容以防止构建此对象时的后续修改。
        异常
        NullPointerException - 如果 algNameencryptedData为空。
        IllegalArgumentException - 如果 encryptedData为空,即0长度。
        NoSuchAlgorithmException - 如果不支持指定的algName。
      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo​(AlgorithmParameters algParams,
                                       byte[] encryptedData)
                                throws NoSuchAlgorithmException
        从加密算法参数和加密数据构建一个 EncryptedPrivateKeyInfo
        参数
        algParams - 加密算法的算法参数。 algParams.getEncoded()应该返回EncryptedPrivateKeyInfo类型的AlgorithmIdentifer组件的parameters字段的ASN.1编码字节。
        encryptedData - 加密数据。 复制encrypedData的内容以防止构建此对象时的后续修改。
        异常
        NullPointerException - 如果 algParamsencryptedData为空。
        IllegalArgumentException - 如果 encryptedData为空,即0长度。
        NoSuchAlgorithmException - 如果不支持指定的指定的 algParams参数 algParams参数。
    • 方法详细信息

      • getAlgName

        public String getAlgName​()
        返回加密算法。

        注意:如果此类映射可用,则在构造函数中返回标准名称而不是指定的名称。 有关标准密码算法名称的信息,请参阅Java Security Standard Algorithm Names文档。

        结果
        加密算法名称。
      • getAlgParameters

        public AlgorithmParameters getAlgParameters​()
        返回加密算法使用的算法参数。
        结果
        算法参数。
      • getEncryptedData

        public byte[] getEncryptedData​()
        返回加密数据。
        结果
        加密数据。 每次调用此方法时都会返回一个新数组。
      • getKeySpec

        public PKCS8EncodedKeySpec getKeySpec​(Cipher cipher)
                                       throws InvalidKeySpecException
        从加密数据中提取附带的PKCS8EncodedKeySpec对象并返回。
        注意:为了成功检索附带的PKCS8EncodedKeySpec对象, cipher需要初始化为Cipher.DECRYPT_MODE或Cipher.UNWRAP_MODE,具有与生成加密数据相同的密钥和参数。
        参数
        cipher - 将用于解密加密数据的初始化密码对象。
        结果
        PKCS8EncodedKeySpec对象。
        异常
        NullPointerException - 如果 cipher为空。
        InvalidKeySpecException - 如果给定的密码对于加密数据不合适或加密的数据被破坏并且不能被解密。
      • getEncoded

        public byte[] getEncoded​()
                          throws IOException
        返回此对象的ASN.1编码。
        结果
        ASN.1编码。 每次调用此方法时都会返回一个新数组。
        异常
        IOException - 如果构建其ASN.1编码时发生错误。