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 algParams,
byte[] encryptedData)
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 algName,
byte[] encryptedData)
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 cipher)
Extract the enclosed PKCS8EncodedKeySpec object from the
encrypted data and return it.
|
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.
|
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(String algName, 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(AlgorithmParameters algParams, 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 String getAlgName()
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 AlgorithmParameters getAlgParameters()
public byte[] getEncryptedData()
public PKCS8EncodedKeySpec getKeySpec(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 PKCS8EncodedKeySpec getKeySpec(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 PKCS8EncodedKeySpec getKeySpec(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 PKCS8EncodedKeySpec getKeySpec(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. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2023, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.