# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Methods | Inherited Methods

# EncryptedPrivateKeyInfo

`public class EncryptedPrivateKeyInfo`
`extends Object` ``

java.lang.Object
↳ | javax.crypto.EncryptedPrivateKeyInfo

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  }

See also:

- `PKCS8EncodedKeySpec`

## Summary

### Public constructors
`EncryptedPrivateKeyInfo(byte[] encoded)` Constructs (i.e., parses) an `EncryptedPrivateKeyInfo` from its ASN.1 encoding.
`EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)` Constructs an `EncryptedPrivateKeyInfo` from the encryption algorithm name and the encrypted data.
`EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData)` Constructs an `EncryptedPrivateKeyInfo` from the encryption algorithm parameters and the encrypted data.

### Public methods
`String` | `getAlgName()` Returns the encryption algorithm.
`AlgorithmParameters` | `getAlgParameters()` 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.
`PKCS8EncodedKeySpec` | `getKeySpec(Key decryptKey)` Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
`PKCS8EncodedKeySpec` | `getKeySpec(Key decryptKey, Provider provider)` Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
`PKCS8EncodedKeySpec` | `getKeySpec(Key decryptKey, String providerName)` Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
`PKCS8EncodedKeySpec` | `getKeySpec(Cipher cipher)` Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Public constructors

### EncryptedPrivateKeyInfo

    public EncryptedPrivateKeyInfo (byte[] encoded)

Constructs (i.e., parses) an `EncryptedPrivateKeyInfo` from its ASN.1 encoding.

Parameters
`encoded` | `byte`: 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)

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` | `String`: encryption algorithm name. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard Cipher algorithm names.
`encryptedData` | `byte`: 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)

Constructs an `EncryptedPrivateKeyInfo` from the encryption algorithm parameters and the encrypted data.

Parameters
`algParams` | `AlgorithmParameters`: 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` | `byte`: 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.

## Public methods

### 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
`String` | the encryption algorithm name.

### getAlgParameters

    public AlgorithmParameters getAlgParameters ()

Returns the algorithm parameters used by the encryption algorithm.

Returns
`AlgorithmParameters` | the algorithm parameters.

### getEncoded

    public byte[] getEncoded ()

Returns the ASN.1 encoding of this object.

Returns
`byte[]` | 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.

### getEncryptedData

    public byte[] getEncryptedData ()

Returns the encrypted data.

Returns
`byte[]` | the encrypted data. Returns a new array each time this method is called.

### getKeySpec

    public PKCS8EncodedKeySpec getKeySpec (Key decryptKey)

Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.

Parameters
`decryptKey` | `Key`: key used for decrypting the encrypted data.

Returns
`PKCS8EncodedKeySpec` | the PKCS8EncodedKeySpec object.

Throws
`NullPointerException` | if `decryptKey` is null.
`NoSuchAlgorithmException` | if cannot find appropriate cipher to decrypt the encrypted data.
`InvalidKeyException` | if `decryptKey` cannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.

### getKeySpec

    public PKCS8EncodedKeySpec getKeySpec (Key decryptKey,
                    Provider provider)

Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.

Parameters
`decryptKey` | `Key`: key used for decrypting the encrypted data.
`provider` | `Provider`: the name of provider whose Cipher implementation will be used.

Returns
`PKCS8EncodedKeySpec` | 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.

### getKeySpec

    public PKCS8EncodedKeySpec getKeySpec (Key decryptKey,
                    String providerName)

Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.

Parameters
`decryptKey` | `Key`: key used for decrypting the encrypted data.
`providerName` | `String`: the name of provider whose Cipher implementation will be used.

Returns
`PKCS8EncodedKeySpec` | the PKCS8EncodedKeySpec object.

Throws
`NullPointerException` | if `decryptKey` or `providerName` is null.
`NoSuchProviderException` | if no provider `providerName` is registered.
`NoSuchAlgorithmException` | if cannot find appropriate cipher to decrypt the encrypted data.
`InvalidKeyException` | if `decryptKey` cannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.

### getKeySpec

    public PKCS8EncodedKeySpec getKeySpec (Cipher cipher)

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` | `Cipher`: the initialized cipher object which will be used for decrypting the encrypted data.

Returns
`PKCS8EncodedKeySpec` | 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.

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*