javax.crypto
Class EncryptedPrivateKeyInfo
- java.lang.Object
-
- javax.crypto.EncryptedPrivateKeyInfo
-
public class EncryptedPrivateKeyInfo extends java.lang.ObjectThis class implements theEncryptedPrivateKeyInfotype 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 }- Since:
- 1.4
- See Also:
PKCS8EncodedKeySpec
-
-
Constructor Summary
Constructors Constructor and Description EncryptedPrivateKeyInfo(java.security.AlgorithmParameters algParams, byte[] encryptedData)Constructs anEncryptedPrivateKeyInfofrom the encryption algorithm parameters and the encrypted data.EncryptedPrivateKeyInfo(byte[] encoded)Constructs (i.e., parses) anEncryptedPrivateKeyInfofrom its ASN.1 encoding.EncryptedPrivateKeyInfo(java.lang.String algName, byte[] encryptedData)Constructs anEncryptedPrivateKeyInfofrom the encryption algorithm name and the encrypted data.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.StringgetAlgName()Returns the encryption algorithm.java.security.AlgorithmParametersgetAlgParameters()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.java.security.spec.PKCS8EncodedKeySpecgetKeySpec(Cipher cipher)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.java.security.spec.PKCS8EncodedKeySpecgetKeySpec(java.security.Key decryptKey)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.java.security.spec.PKCS8EncodedKeySpecgetKeySpec(java.security.Key decryptKey, java.security.Provider provider)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.java.security.spec.PKCS8EncodedKeySpecgetKeySpec(java.security.Key decryptKey, java.lang.String providerName)Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
-
-
-
Constructor Detail
-
EncryptedPrivateKeyInfo
public EncryptedPrivateKeyInfo(byte[] encoded) throws java.io.IOExceptionConstructs (i.e., parses) anEncryptedPrivateKeyInfofrom its ASN.1 encoding.- Parameters:
encoded- the ASN.1 encoding of this object. The contents of the array are copied to protect against subsequent modification.- Throws:
java.lang.NullPointerException- if theencodedis null.java.io.IOException- if error occurs when parsing the ASN.1 encoding.
-
EncryptedPrivateKeyInfo
public EncryptedPrivateKeyInfo(java.lang.String algName, byte[] encryptedData) throws java.security.NoSuchAlgorithmExceptionConstructs anEncryptedPrivateKeyInfofrom 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- encryption algorithm name. See Appendix A in the Java Cryptography Extension Reference Guide for information about standard Cipher algorithm names.encryptedData- encrypted data. The contents ofencrypedDataare copied to protect against subsequent modification when constructing this object.- Throws:
java.lang.NullPointerException- ifalgNameorencryptedDatais null.java.lang.IllegalArgumentException- ifencryptedDatais empty, i.e. 0-length.java.security.NoSuchAlgorithmException- if the specified algName is not supported.
-
EncryptedPrivateKeyInfo
public EncryptedPrivateKeyInfo(java.security.AlgorithmParameters algParams, byte[] encryptedData) throws java.security.NoSuchAlgorithmExceptionConstructs anEncryptedPrivateKeyInfofrom the encryption algorithm parameters and the encrypted data.- Parameters:
algParams- the algorithm parameters for the encryption algorithm.algParams.getEncoded()should return the ASN.1 encoded bytes of theparametersfield of theAlgorithmIdentifercomponent of theEncryptedPrivateKeyInfotype.encryptedData- encrypted data. The contents ofencrypedDataare copied to protect against subsequent modification when constructing this object.- Throws:
java.lang.NullPointerException- ifalgParamsorencryptedDatais null.java.lang.IllegalArgumentException- ifencryptedDatais empty, i.e. 0-length.java.security.NoSuchAlgorithmException- if the specified algName of the specifiedalgParamsparameter is not supported.
-
-
Method Detail
-
getAlgName
public java.lang.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 Extension Reference Guide for information about standard Cipher algorithm names.
- Returns:
- the encryption algorithm name.
-
getAlgParameters
public java.security.AlgorithmParameters getAlgParameters()
Returns the algorithm parameters used by the encryption algorithm.- Returns:
- the algorithm parameters.
-
getEncryptedData
public byte[] getEncryptedData()
Returns the encrypted data.- Returns:
- the encrypted data. Returns a new array each time this method is called.
-
getKeySpec
public java.security.spec.PKCS8EncodedKeySpec getKeySpec(Cipher cipher) throws java.security.spec.InvalidKeySpecException
Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.
Note: In order to successfully retrieve the enclosed PKCS8EncodedKeySpec object,cipherneeds 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- the initialized cipher object which will be used for decrypting the encrypted data.- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
java.lang.NullPointerException- ifcipheris null.java.security.spec.InvalidKeySpecException- if the given cipher is inappropriate for the encrypted data or the encrypted data is corrupted and cannot be decrypted.
-
getKeySpec
public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key decryptKey) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyExceptionExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.- Parameters:
decryptKey- key used for decrypting the encrypted data.- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
java.lang.NullPointerException- ifdecryptKeyis null.java.security.NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data.java.security.InvalidKeyException- ifdecryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.- Since:
- 1.5
-
getKeySpec
public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key decryptKey, java.lang.String providerName) throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyExceptionExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.- Parameters:
decryptKey- key used for decrypting the encrypted data.providerName- the name of provider whose Cipher implementation will be used.- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
java.lang.NullPointerException- ifdecryptKeyorproviderNameis null.java.security.NoSuchProviderException- if no providerproviderNameis registered.java.security.NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data.java.security.InvalidKeyException- ifdecryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.- Since:
- 1.5
-
getKeySpec
public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key decryptKey, java.security.Provider provider) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyExceptionExtract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.- Parameters:
decryptKey- key used for decrypting the encrypted data.provider- the name of provider whose Cipher implementation will be used.- Returns:
- the PKCS8EncodedKeySpec object.
- Throws:
java.lang.NullPointerException- ifdecryptKeyorprovideris null.java.security.NoSuchAlgorithmException- if cannot find appropriate cipher to decrypt the encrypted data inprovider.java.security.InvalidKeyException- ifdecryptKeycannot be used to decrypt the encrypted data or the decryption result is not a valid PKCS8KeySpec.- Since:
- 1.5
-
getEncoded
public byte[] getEncoded() throws java.io.IOExceptionReturns the ASN.1 encoding of this object.- Returns:
- the ASN.1 encoding. Returns a new array each time this method is called.
- Throws:
java.io.IOException- if error occurs when constructing its ASN.1 encoding.
-
-