Java™ Platform
Standard Ed. 8
compact1, compact2, compact3
javax.crypto

Class EncryptedPrivateKeyInfo



  • public class EncryptedPrivateKeyInfo
    extends Object
    This class implements the EncryptedPrivateKeyInfo type as defined in PKCS #8.

    Its ASN.1 definition is as follows:

     EncryptedPrivateKeyInfo ::=  SEQUENCE {
         encryptionAlgorithm   AlgorithmIdentifier,
         encryptedData   OCTET STRING }
    
     AlgorithmIdentifier  ::=  SEQUENCE  {
         algorithm              OBJECT IDENTIFIER,
         parameters             ANY DEFINED BY algorithm OPTIONAL  }
     
    Since:
    1.4
    See Also:
    PKCS8EncodedKeySpec
    • Constructor Detail

      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo(byte[] encoded)
                                throws IOException
        Constructs (i.e., parses) an EncryptedPrivateKeyInfo from its ASN.1 encoding.
        Parameters:
        encoded - the ASN.1 encoding of this object. The contents of the array are copied to protect against subsequent modification.
        Throws:
        NullPointerException - if the encoded is null.
        IOException - if error occurs when parsing the ASN.1 encoding.
      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo(String algName,
                                       byte[] encryptedData)
                                throws NoSuchAlgorithmException
        Constructs an EncryptedPrivateKeyInfo from the encryption algorithm name and the encrypted data.

        Note: This constructor will use null as the value of the algorithm parameters. If the encryption algorithm has parameters whose value is not null, a different constructor, e.g. EncryptedPrivateKeyInfo(AlgorithmParameters, byte[]), should be used.

        Parameters:
        algName - encryption algorithm name. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard Cipher algorithm names.
        encryptedData - encrypted data. The contents of encrypedData are copied to protect against subsequent modification when constructing this object.
        Throws:
        NullPointerException - if algName or encryptedData is null.
        IllegalArgumentException - if encryptedData is empty, i.e. 0-length.
        NoSuchAlgorithmException - if the specified algName is not supported.
      • EncryptedPrivateKeyInfo

        public EncryptedPrivateKeyInfo(AlgorithmParameters algParams,
                                       byte[] encryptedData)
                                throws NoSuchAlgorithmException
        Constructs an EncryptedPrivateKeyInfo from the encryption algorithm parameters and the encrypted data.
        Parameters:
        algParams - the algorithm parameters for the encryption algorithm. algParams.getEncoded() should return the ASN.1 encoded bytes of the parameters field of the AlgorithmIdentifer component of the EncryptedPrivateKeyInfo type.
        encryptedData - encrypted data. The contents of encrypedData are copied to protect against subsequent modification when constructing this object.
        Throws:
        NullPointerException - if algParams or encryptedData is null.
        IllegalArgumentException - if encryptedData is empty, i.e. 0-length.
        NoSuchAlgorithmException - if the specified algName of the specified algParams parameter is not supported.
    • Method Detail

      • getAlgName

        public String getAlgName()
        Returns the encryption algorithm.

        Note: Standard name is returned instead of the specified one in the constructor when such mapping is available. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard Cipher algorithm names.

        Returns:
        the encryption algorithm name.
      • getAlgParameters

        public AlgorithmParameters getAlgParameters()
        Returns the algorithm parameters used by the encryption algorithm.
        Returns:
        the algorithm parameters.
      • getEncryptedData

        public byte[] getEncryptedData()
        Returns the encrypted data.
        Returns:
        the encrypted data. Returns a new array each time this method is called.
      • getKeySpec

        public PKCS8EncodedKeySpec getKeySpec(Cipher cipher)
                                       throws InvalidKeySpecException
        Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
        Note: In order to successfully retrieve the enclosed PKCS8EncodedKeySpec object, cipher needs to be initialized to either Cipher.DECRYPT_MODE or Cipher.UNWRAP_MODE, with the same key and parameters used for generating the encrypted data.
        Parameters:
        cipher - the initialized cipher object which will be used for decrypting the encrypted data.
        Returns:
        the PKCS8EncodedKeySpec object.
        Throws:
        NullPointerException - if cipher is null.
        InvalidKeySpecException - if the given cipher is inappropriate for the encrypted data or the encrypted data is corrupted and cannot be decrypted.
      • getKeySpec

        public PKCS8EncodedKeySpec getKeySpec(Key decryptKey,
                                              Provider provider)
                                       throws NoSuchAlgorithmException,
                                              InvalidKeyException
        Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
        Parameters:
        decryptKey - key used for decrypting the encrypted data.
        provider - the name of provider whose Cipher implementation will be used.
        Returns:
        the PKCS8EncodedKeySpec object.
        Throws:
        NullPointerException - if decryptKey or provider is null.
        NoSuchAlgorithmException - if cannot find appropriate cipher to decrypt the encrypted data in provider.
        InvalidKeyException - if decryptKey cannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.
        Since:
        1.5
      • getEncoded

        public byte[] getEncoded()
                          throws IOException
        Returns the ASN.1 encoding of this object.
        Returns:
        the ASN.1 encoding. Returns a new array each time this method is called.
        Throws:
        IOException - if error occurs when constructing its ASN.1 encoding.
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部