aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java')
-rw-r--r--libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java234
1 files changed, 0 insertions, 234 deletions
diff --git a/libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java b/libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java
deleted file mode 100644
index 19f22ebe6..000000000
--- a/libraries/spongycastle/jce/src/main/java/javax/crypto/EncryptedPrivateKeyInfo.java
+++ /dev/null
@@ -1,234 +0,0 @@
-package javax.crypto;
-
-import java.io.*;
-
-import java.security.*;
-import java.security.spec.*;
-
-import org.spongycastle.asn1.ASN1InputStream;
-import org.spongycastle.asn1.DEROutputStream;
-import org.spongycastle.asn1.ASN1Sequence;
-import org.spongycastle.asn1.DERObjectIdentifier;
-import org.spongycastle.asn1.x509.AlgorithmIdentifier;
-
-/**
- * This class implements the <code>EncryptedPrivateKeyInfo</code> type
- * as defined in PKCS #8.
- * <p>Its ASN.1 definition is as follows:
- *
- * <pre>
- * EncryptedPrivateKeyInfo ::= SEQUENCE {
- * encryptionAlgorithm AlgorithmIdentifier,
- * encryptedData OCTET STRING }
- *
- * AlgorithmIdentifier ::= SEQUENCE {
- * algorithm OBJECT IDENTIFIER,
- * parameters ANY DEFINED BY algorithm OPTIONAL }
- * </pre>
- */
-public class EncryptedPrivateKeyInfo
-{
- private org.spongycastle.asn1.pkcs.EncryptedPrivateKeyInfo infoObj;
- private AlgorithmParameters algP;
-
- /*
- * Constructs (i.e., parses) an <code>EncryptedPrivateKeyInfo</code> from
- * its ASN.1 encoding.
- *
- * @param encoded the ASN.1 encoding of this object.
- * @exception NullPointerException if the <code>encoded</code> is null.
- * @exception IOException if error occurs when parsing the ASN.1 encoding.
- */
- public EncryptedPrivateKeyInfo(
- byte[] encoded)
- throws NullPointerException, IOException
- {
- if (encoded == null)
- {
- throw new NullPointerException("parameters null");
- }
-
- ByteArrayInputStream bIn = new ByteArrayInputStream(encoded);
- ASN1InputStream dIn = new ASN1InputStream(bIn);
-
- infoObj = org.spongycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getInstance((ASN1Sequence)dIn.readObject());
-
- try
- {
- algP = this.getParameters();
- }
- catch (NoSuchAlgorithmException e)
- {
- throw new IOException("can't create parameters: " + e.toString());
- }
- }
-
- /*
- * Constructs an <code>EncryptedPrivateKeyInfo</code> from the
- * encryption algorithm name and the encrypted data.
- * <p>Note: the <code>encrypedData</code> is cloned when constructing
- * this object.
- * <p>
- * If encryption algorithm has associated parameters use the constructor
- * with AlgorithmParameters as the parameter.
- *
- * @param algName algorithm name.
- * @param encryptedData encrypted data.
- * @exception NullPointerException if <code>algName</code> or <code>encryptedData</code> is null.
- * @exception IllegalArgumentException if <code>encryptedData</code> is empty, i.e. 0-length.
- * @exception NoSuchAlgorithmException if the specified algName is not supported.
- */
- public EncryptedPrivateKeyInfo(
- String algName,
- byte[] encryptedData)
- throws NullPointerException, IllegalArgumentException, NoSuchAlgorithmException
- {
- if (algName == null || encryptedData == null)
- {
- throw new NullPointerException("parameters null");
- }
-
- org.spongycastle.asn1.x509.AlgorithmIdentifier kAlgId = new AlgorithmIdentifier(new DERObjectIdentifier(algName), null);
-
- infoObj = new org.spongycastle.asn1.pkcs.EncryptedPrivateKeyInfo(kAlgId, (byte[])encryptedData.clone());
- algP = this.getParameters();
- }
-
- /**
- * Constructs an <code>EncryptedPrivateKeyInfo</code> from the
- * encryption algorithm parameters and the encrypted data.
- * <p>Note: the <code>encrypedData</code> is cloned when constructing
- * this object.
- *
- * @param algParams the algorithm parameters for the encryption
- * algorithm. <code>algParams.getEncoded()</code> should return
- * the ASN.1 encoded bytes of the <code>parameters</code> field
- * of the <code>AlgorithmIdentifer</code> component of the
- * <code>EncryptedPrivateKeyInfo</code> type.
- * @param encryptedData encrypted data.
- * @exception NullPointerException if <code>algParams</code> or <code>encryptedData</code> is null.
- * @exception IllegalArgumentException if <code>encryptedData</code> is empty, i.e. 0-length.
- * @exception NoSuchAlgorithmException if the specified algName of the specified <code>algParams</code> parameter is not supported.
- */
- public EncryptedPrivateKeyInfo(
- AlgorithmParameters algParams,
- byte[] encryptedData)
- throws NullPointerException, IllegalArgumentException, NoSuchAlgorithmException
- {
- if (algParams == null || encryptedData == null)
- {
- throw new NullPointerException("parameters null");
- }
-
- org.spongycastle.asn1.x509.AlgorithmIdentifier kAlgId = null;
-
- try
- {
- ByteArrayInputStream bIn = new ByteArrayInputStream(algParams.getEncoded());
- ASN1InputStream dIn = new ASN1InputStream(bIn);
-
- kAlgId = new AlgorithmIdentifier(
- new DERObjectIdentifier(algParams.getAlgorithm()), dIn.readObject());
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException("error in encoding: " + e.toString());
- }
-
- infoObj = new org.spongycastle.asn1.pkcs.EncryptedPrivateKeyInfo(kAlgId, (byte[])encryptedData.clone());
- algP = this.getParameters();
- }
-
- /**
- * Returns the encryption algorithm.
- *
- * @returns the algorithm name.
- */
- public String getAlgName()
- {
- return infoObj.getEncryptionAlgorithm().getObjectId().getId();
- }
-
- private AlgorithmParameters getParameters()
- throws NoSuchAlgorithmException
- {
- AlgorithmParameters ap = AlgorithmParameters.getInstance(this.getAlgName());
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dOut = new DEROutputStream(bOut);
-
- try
- {
- dOut.writeObject(infoObj.getEncryptionAlgorithm().getParameters());
- dOut.close();
-
- ap.init(bOut.toByteArray());
- }
- catch (IOException e)
- {
- throw new NoSuchAlgorithmException("unable to parse parameters");
- }
-
- return ap;
- }
-
- /**
- * Returns the algorithm parameters used by the encryption algorithm.
- *
- * @returns the algorithm parameters.
- */
- public AlgorithmParameters getAlgParameters()
- {
- return algP;
- }
-
- /**
- * Returns a copy of the encrypted data.
- *
- * @returns a copy of the encrypted data.
- */
- public byte[] getEncryptedData()
- {
- return infoObj.getEncryptedData();
- }
-
- /**
- * Extract the enclosed PKCS8EncodedKeySpec object from the
- * encrypted data and return it.
- *
- * @return the PKCS8EncodedKeySpec object.
- * @exception InvalidKeySpecException if the given cipher is
- * inappropriate for the encrypted data or the encrypted
- * data is corrupted and cannot be decrypted.
- */
- public PKCS8EncodedKeySpec getKeySpec(
- Cipher c)
- throws InvalidKeySpecException
- {
- try
- {
- return new PKCS8EncodedKeySpec(c.doFinal(this.getEncryptedData()));
- }
- catch (Exception e)
- {
- throw new InvalidKeySpecException("can't get keySpec: " + e.toString());
- }
- }
-
- /**
- * Returns the ASN.1 encoding of this object.
- *
- * @returns the ASN.1 encoding.
- * @throws IOException if error occurs when constructing its ASN.1 encoding.
- */
- public byte[] getEncoded()
- throws IOException
- {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dOut = new DEROutputStream(bOut);
-
- dOut.writeObject(infoObj);
- dOut.close();
-
- return bOut.toByteArray();
- }
-}