java.lang.Object
javax.crypto.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 SummaryConstructors Constructor Description EncryptedPrivateKeyInfo(byte[] encoded)Constructs (i.e., parses) anEncryptedPrivateKeyInfofrom its ASN.1 encoding.EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)Constructs anEncryptedPrivateKeyInfofrom the encryption algorithm name and the encrypted data.EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData)Constructs anEncryptedPrivateKeyInfofrom the encryption algorithm parameters and the encrypted data.
- 
Method SummaryModifier and Type Method Description StringgetAlgName()Returns the encryption algorithm.AlgorithmParametersgetAlgParameters()Returns the algorithm parameters used by the encryption algorithm.byte[]getEncoded()Returns the ASN.1 encoding of this object.byte[]getEncryptedData()Returns the encrypted data.PKCS8EncodedKeySpecgetKeySpec(Key decryptKey)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.PKCS8EncodedKeySpecgetKeySpec(Key decryptKey, String providerName)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.PKCS8EncodedKeySpecgetKeySpec(Key decryptKey, Provider provider)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.PKCS8EncodedKeySpecgetKeySpec(Cipher cipher)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
- 
Constructor Details- 
EncryptedPrivateKeyInfoConstructs (i.e., parses) anEncryptedPrivateKeyInfofrom 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- encodedis null.
- IOException- if error occurs when parsing the ASN.1 encoding.
 
- 
EncryptedPrivateKeyInfopublic EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmExceptionConstructs anEncryptedPrivateKeyInfofrom 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 the Java Security Standard Algorithm Names document for information about standard Cipher algorithm names.
- encryptedData- encrypted data. The contents of- encrypedDataare copied to protect against subsequent modification when constructing this object.
- Throws:
- NullPointerException- if- algNameor- encryptedDatais null.
- IllegalArgumentException- if- encryptedDatais empty, i.e. 0-length.
- NoSuchAlgorithmException- if the specified algName is not supported.
 
- 
EncryptedPrivateKeyInfopublic EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData) throws NoSuchAlgorithmExceptionConstructs anEncryptedPrivateKeyInfofrom 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- parametersfield of the- AlgorithmIdentifercomponent of the- EncryptedPrivateKeyInfotype.
- encryptedData- encrypted data. The contents of- encrypedDataare copied to protect against subsequent modification when constructing this object.
- Throws:
- NullPointerException- if- algParamsor- encryptedDatais null.
- IllegalArgumentException- if- encryptedDatais empty, i.e. 0-length.
- NoSuchAlgorithmException- if the specified algName of the specified- algParamsparameter is not supported.
 
 
- 
- 
Method Details- 
getAlgNameReturns the encryption algorithm.Note: Standard name is returned instead of the specified one in the constructor when such mapping is available. See the Java Security Standard Algorithm Names document for information about standard Cipher algorithm names. - Returns:
- the encryption algorithm name.
 
- 
getAlgParametersReturns the algorithm parameters used by the encryption algorithm.- Returns:
- the algorithm parameters.
 
- 
getEncryptedDatapublic byte[] getEncryptedData()Returns the encrypted data.- Returns:
- the encrypted data. Returns a new array each time this method is called.
 
- 
getKeySpecExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
 Note: In order to successfully retrieve the enclosed PKCS8EncodedKeySpec object,cipherneeds 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- cipheris null.
- InvalidKeySpecException- if the given cipher is inappropriate for the encrypted data or the encrypted data is corrupted and cannot be decrypted.
 
- 
getKeySpecpublic PKCS8EncodedKeySpec getKeySpec(Key decryptKey) throws NoSuchAlgorithmException, InvalidKeyExceptionExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.- Parameters:
- decryptKey- key used for decrypting the encrypted data.
- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
- NullPointerException- if- decryptKeyis null.
- NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data.
- InvalidKeyException- if- decryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.
- Since:
- 1.5
 
- 
getKeySpecpublic PKCS8EncodedKeySpec getKeySpec(Key decryptKey, String providerName) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeyExceptionExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.- Parameters:
- decryptKey- key used for decrypting the encrypted data.
- providerName- the name of provider whose Cipher implementation will be used.
- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
- NullPointerException- if- decryptKeyor- providerNameis null.
- NoSuchProviderException- if no provider- providerNameis registered.
- NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data.
- InvalidKeyException- if- decryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.
- Since:
- 1.5
 
- 
getKeySpecpublic PKCS8EncodedKeySpec getKeySpec(Key decryptKey, Provider provider) throws NoSuchAlgorithmException, InvalidKeyExceptionExtract 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- decryptKeyor- provideris null.
- NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data in- provider.
- InvalidKeyException- if- decryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.
- Since:
- 1.5
 
- 
getEncodedReturns 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.
 
 
-