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