public class EncryptedPrivateKeyInfo extends Object
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 }
PKCS8EncodedKeySpec
| Constructor and Description |
|---|
EncryptedPrivateKeyInfo(AlgorithmParameters
Constructs an
EncryptedPrivateKeyInfo from the encryption algorithm parameters and the encrypted data.
|
EncryptedPrivateKeyInfo(byte[] encoded)
Constructs (i.e., parses) an
EncryptedPrivateKeyInfo from its ASN.1 encoding.
|
EncryptedPrivateKeyInfo(String
Constructs an
EncryptedPrivateKeyInfo from the encryption algorithm name and the encrypted data.
|
| Modifier and Type | Method and Description |
|---|---|
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(Cipher
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
|
PKCS8EncodedKeySpec |
getKeySpec(Key
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
|
PKCS8EncodedKeySpec |
getKeySpec(Key
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
|
PKCS8EncodedKeySpec |
getKeySpec(Key
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
|
public EncryptedPrivateKeyInfo(byte[] encoded)
throws IOException
EncryptedPrivateKeyInfo from its ASN.1 encoding.
encoded - the ASN.1 encoding of this object. The contents of the array are copied to protect against subsequent modification.
NullPointerException - if the
encoded is null.
IOException - if error occurs when parsing the ASN.1 encoding.
public EncryptedPrivateKeyInfo(StringalgName, byte[] encryptedData) throws NoSuchAlgorithmException
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.
algName - encryption algorithm name. See Appendix A in the
Java Cryptography Architecture Reference Guide for information about standard Cipher algorithm names.
encryptedData - encrypted data. The contents of
encrypedData are copied to protect against subsequent modification when constructing this object.
NullPointerException - if
algName or
encryptedData is null.
IllegalArgumentException - if
encryptedData is empty, i.e. 0-length.
NoSuchAlgorithmException - if the specified algName is not supported.
public EncryptedPrivateKeyInfo(AlgorithmParametersalgParams, byte[] encryptedData) throws NoSuchAlgorithmException
EncryptedPrivateKeyInfo from the encryption algorithm parameters and the encrypted data.
algParams - 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 - encrypted data. The contents of
encrypedData are copied to protect against subsequent modification when constructing this object.
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 StringgetAlgName()
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.
public AlgorithmParametersgetAlgParameters()
public byte[] getEncryptedData()
public PKCS8EncodedKeySpecgetKeySpec(Cipher cipher) throws InvalidKeySpecException
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.
cipher - the initialized cipher object which will be used for decrypting the encrypted data.
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.
public PKCS8EncodedKeySpecgetKeySpec(Key decryptKey) throws NoSuchAlgorithmException , InvalidKeyException
decryptKey - key used for decrypting the encrypted data.
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.
public PKCS8EncodedKeySpecgetKeySpec(Key decryptKey, String providerName) throws NoSuchProviderException , NoSuchAlgorithmException , InvalidKeyException
decryptKey - key used for decrypting the encrypted data.
providerName - the name of provider whose Cipher implementation will be used.
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.
public PKCS8EncodedKeySpecgetKeySpec(Key decryptKey, Provider provider) throws NoSuchAlgorithmException , InvalidKeyException
decryptKey - key used for decrypting the encrypted data.
provider - the name of provider whose Cipher implementation will be used.
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.
public byte[] getEncoded()
throws IOException
IOException - if error occurs when constructing its ASN.1 encoding.