javax.crypto
Class EncryptedPrivateKeyInfo

java.lang.Object
  extended by javax.crypto.EncryptedPrivateKeyInfo

public class EncryptedPrivateKeyInfo
extends Object

An implementation of the EncryptedPrivateKeyInfo ASN.1 type as specified in PKCS #8 - Private-Key Information Syntax Standard.

The ASN.1 type EncryptedPrivateKeyInfo is:

EncryptedPrivateKeyInfo ::= SEQUENCE {
   encryptionAlgorithm EncryptionAlgorithmIdentifier,
   encryptedData EncryptedData }

 EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier

 EncrytpedData ::= OCTET STRING

 AlgorithmIdentifier ::= SEQUENCE {
   algorithm  OBJECT IDENTIFIER,
   parameters ANY DEFINED BY algorithm OPTIONAL }

Since:
1.4
See Also:
PKCS8EncodedKeySpec

Constructor Summary
EncryptedPrivateKeyInfo(AlgorithmParameters params, byte[] encryptedData)
          Create a new EncryptedPrivateKeyInfo object from raw encrypted data and the parameters used for encryption.
EncryptedPrivateKeyInfo(byte[] encoded)
          Create a new EncryptedPrivateKeyInfo from an encoded representation, parsing the ASN.1 sequence.
EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)
          Create a new EncryptedPrivateKeyInfo from the cipher name and the encrytpedData.
 
Method Summary
 String getAlgName()
          Return the name of the cipher used to encrypt this key.
 AlgorithmParameters getAlgParameters()
           
 byte[] getEncoded()
           
 byte[] getEncryptedData()
           
 PKCS8EncodedKeySpec getKeySpec(Cipher cipher)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(AlgorithmParameters params,
                               byte[] encryptedData)
                        throws IllegalArgumentException,
                               NoSuchAlgorithmException
Create a new EncryptedPrivateKeyInfo object from raw encrypted data and the parameters used for encryption.

The encryptedData array is cloned.

Parameters:
params - The encryption algorithm parameters.
encryptedData - The encrypted key data.
Throws:
IllegalArgumentException - If the encryptedData array is empty (zero-length).
NoSuchAlgorithmException - If the algorithm specified in the parameters is not supported.
NullPointerException - If encryptedData is null.

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(byte[] encoded)
                        throws IOException
Create a new EncryptedPrivateKeyInfo from an encoded representation, parsing the ASN.1 sequence.

Parameters:
encoded - The encoded info.
Throws:
IOException - If parsing the encoded data fails.
NullPointerException - If encoded is null.

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(String algName,
                               byte[] encryptedData)
                        throws IllegalArgumentException,
                               NoSuchAlgorithmException,
                               NullPointerException
Create a new EncryptedPrivateKeyInfo from the cipher name and the encrytpedData.

The encryptedData array is cloned.

Parameters:
algName - The name of the algorithm (as an object identifier).
encryptedData - The encrypted key data.
Throws:
IllegalArgumentException - If the encryptedData array is empty (zero-length).
NoSuchAlgorithmException - If algName is not the name of a supported algorithm.
NullPointerException - If encryptedData is null.
Method Detail

getAlgName

public String getAlgName()
Return the name of the cipher used to encrypt this key.

Returns:
The algorithm name.

getAlgParameters

public AlgorithmParameters getAlgParameters()

getEncoded

public byte[] getEncoded()
                  throws IOException
Throws:
IOException

getEncryptedData

public byte[] getEncryptedData()

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Cipher cipher)
                               throws InvalidKeySpecException
Throws:
InvalidKeySpecException