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 }
Constructor | Description |
---|---|
EncryptedPrivateKeyInfo |
Constructs (i.e., parses) an EncryptedPrivateKeyInfo from its ASN.1 encoding. |
EncryptedPrivateKeyInfo |
Constructs an EncryptedPrivateKeyInfo from the encryption algorithm name and the encrypted data. |
EncryptedPrivateKeyInfo |
Constructs an EncryptedPrivateKeyInfo from the encryption algorithm parameters and the encrypted data. |
Modifier and Type | Method | 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 |
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it. |
PKCS8EncodedKeySpec |
getKeySpec |
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it. |
PKCS8EncodedKeySpec |
getKeySpec |
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it. |
PKCS8EncodedKeySpec |
getKeySpec |
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 the Java Security Standard Algorithm Names document for information about standard Cipher algorithm names.encryptedData
- encrypted data. The contents of encryptedData
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 AlgorithmIdentifier
component of the EncryptedPrivateKeyInfo
type.encryptedData
- encrypted data. The contents of encryptedData
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 the Java Security Standard Algorithm Names document 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.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/javax/crypto/EncryptedPrivateKeyInfo.html