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:
Summary
| Public constructors | |
|---|---|
| 
      EncryptedPrivateKeyInfo(byte[] encoded)
      Constructs (i.e., parses) an  | |
| 
      EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)
      Constructs an  | |
| 
      EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData)
      Constructs an  | |
| 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 | |
|---|---|
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 encodedis 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 ofencrypedDataare copied to protect against subsequent
 modification when constructing this object. | 
| Throws | |
|---|---|
| NullPointerException | if algNameorencryptedDatais null. | 
| IllegalArgumentException | if encryptedDatais 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 theparametersfield
 of theAlgorithmIdentifercomponent of theEncryptedPrivateKeyInfotype. | 
| encryptedData | byte: encrypted data. The contents ofencrypedDataare copied to protect against
 subsequent modification when constructing this object. | 
| Throws | |
|---|---|
| NullPointerException | if algParamsorencryptedDatais null. | 
| IllegalArgumentException | if encryptedDatais empty, i.e. 0-length. | 
| NoSuchAlgorithmException | if the specified algName of
 the specified algParamsparameter 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 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. | 
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 decryptKeyorprovideris 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. | 
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 decryptKeyorproviderNameis 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. | 
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 cipheris null. | 
| InvalidKeySpecException | if the given cipher is inappropriate for the encrypted data or the encrypted data is corrupted and cannot be decrypted. | 
