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 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. |