javax.crypto

Class EncryptedPrivateKeyInfo


public class EncryptedPrivateKeyInfo
extends Object

An implementation of the EncryptedPrivateKeyInfo ASN.1 type as specified in PKCS #8 - Private-Key Information Syntax Standard.

The ASN.1 type EncryptedPrivateKeyInfo is:

EncryptedPrivateKeyInfo ::= SEQUENCE {
   encryptionAlgorithm EncryptionAlgorithmIdentifier,
   encryptedData EncryptedData }

 EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier

 EncrytpedData ::= OCTET STRING

 AlgorithmIdentifier ::= SEQUENCE {
   algorithm  OBJECT IDENTIFIER,
   parameters ANY DEFINED BY algorithm OPTIONAL }
Since:
1.4
See Also:
PKCS8EncodedKeySpec

Constructor Summary

EncryptedPrivateKeyInfo(byte[] encoded)
Create a new EncryptedPrivateKeyInfo from an encoded representation, parsing the ASN.1 sequence.
EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)
Create a new EncryptedPrivateKeyInfo from the cipher name and the encrytpedData.
EncryptedPrivateKeyInfo(AlgorithmParameters params, byte[] encryptedData)
Create a new EncryptedPrivateKeyInfo object from raw encrypted data and the parameters used for encryption.

Method Summary

String
getAlgName()
Return the name of the cipher used to encrypt this key.
AlgorithmParameters
getAlgParameters()
byte[]
getEncoded()
byte[]
getEncryptedData()
PKCS8EncodedKeySpec
getKeySpec(Cipher cipher)

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(byte[] encoded)
            throws IOException
Create a new EncryptedPrivateKeyInfo from an encoded representation, parsing the ASN.1 sequence.
Parameters:
encoded - The encoded info.
Throws:
IOException - If parsing the encoded data fails.
NullPointerException - If encoded is null.

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(String algName,
                               byte[] encryptedData)
            throws IllegalArgumentException,
                   NoSuchAlgorithmException,
                   NullPointerException
Create a new EncryptedPrivateKeyInfo from the cipher name and the encrytpedData.

The encryptedData array is cloned.

Parameters:
algName - The name of the algorithm (as an object identifier).
encryptedData - The encrypted key data.
Throws:
IllegalArgumentException - If the encryptedData array is empty (zero-length).
NoSuchAlgorithmException - If algName is not the name of a supported algorithm.
NullPointerException - If encryptedData is null.

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(AlgorithmParameters params,
                               byte[] encryptedData)
            throws IllegalArgumentException,
                   NoSuchAlgorithmException
Create a new EncryptedPrivateKeyInfo object from raw encrypted data and the parameters used for encryption.

The encryptedData array is cloned.

Parameters:
params - The encryption algorithm parameters.
encryptedData - The encrypted key data.
Throws:
IllegalArgumentException - If the encryptedData array is empty (zero-length).
NoSuchAlgorithmException - If the algorithm specified in the parameters is not supported.
NullPointerException - If encryptedData is null.

Method Details

getAlgName

public String getAlgName()
Return the name of the cipher used to encrypt this key.
Returns:
The algorithm name.

getAlgParameters

public AlgorithmParameters getAlgParameters()

getEncoded

public byte[] getEncoded()
            throws IOException

getEncryptedData

public byte[] getEncryptedData()

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Cipher cipher)
            throws InvalidKeySpecException

EncryptedPrivateKeyInfo.java -- As in PKCS #8. Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.