summaryrefslogtreecommitdiffstats
path: root/bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java139
1 files changed, 0 insertions, 139 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java b/bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java
deleted file mode 100644
index 30780c8..0000000
--- a/bcprov/src/main/java/org/bouncycastle/jce/provider/JCEElGamalPublicKey.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.bouncycastle.jce.provider;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.math.BigInteger;
-
-import javax.crypto.interfaces.DHPublicKey;
-import javax.crypto.spec.DHParameterSpec;
-import javax.crypto.spec.DHPublicKeySpec;
-
-import org.bouncycastle.asn1.ASN1Integer;
-import org.bouncycastle.asn1.oiw.ElGamalParameter;
-import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers;
-import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
-import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
-import org.bouncycastle.crypto.params.ElGamalPublicKeyParameters;
-import org.bouncycastle.jcajce.provider.asymmetric.util.KeyUtil;
-import org.bouncycastle.jce.interfaces.ElGamalPublicKey;
-import org.bouncycastle.jce.spec.ElGamalParameterSpec;
-import org.bouncycastle.jce.spec.ElGamalPublicKeySpec;
-
-public class JCEElGamalPublicKey
- implements ElGamalPublicKey, DHPublicKey
-{
- static final long serialVersionUID = 8712728417091216948L;
-
- private BigInteger y;
- private ElGamalParameterSpec elSpec;
-
- JCEElGamalPublicKey(
- ElGamalPublicKeySpec spec)
- {
- this.y = spec.getY();
- this.elSpec = new ElGamalParameterSpec(spec.getParams().getP(), spec.getParams().getG());
- }
-
- JCEElGamalPublicKey(
- DHPublicKeySpec spec)
- {
- this.y = spec.getY();
- this.elSpec = new ElGamalParameterSpec(spec.getP(), spec.getG());
- }
-
- JCEElGamalPublicKey(
- ElGamalPublicKey key)
- {
- this.y = key.getY();
- this.elSpec = key.getParameters();
- }
-
- JCEElGamalPublicKey(
- DHPublicKey key)
- {
- this.y = key.getY();
- this.elSpec = new ElGamalParameterSpec(key.getParams().getP(), key.getParams().getG());
- }
-
- JCEElGamalPublicKey(
- ElGamalPublicKeyParameters params)
- {
- this.y = params.getY();
- this.elSpec = new ElGamalParameterSpec(params.getParameters().getP(), params.getParameters().getG());
- }
-
- JCEElGamalPublicKey(
- BigInteger y,
- ElGamalParameterSpec elSpec)
- {
- this.y = y;
- this.elSpec = elSpec;
- }
-
- JCEElGamalPublicKey(
- SubjectPublicKeyInfo info)
- {
- ElGamalParameter params = ElGamalParameter.getInstance(info.getAlgorithm().getParameters());
- ASN1Integer derY = null;
-
- try
- {
- derY = (ASN1Integer)info.parsePublicKey();
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException("invalid info structure in DSA public key");
- }
-
- this.y = derY.getValue();
- this.elSpec = new ElGamalParameterSpec(params.getP(), params.getG());
- }
-
- public String getAlgorithm()
- {
- return "ElGamal";
- }
-
- public String getFormat()
- {
- return "X.509";
- }
-
- public byte[] getEncoded()
- {
- return KeyUtil.getEncodedSubjectPublicKeyInfo(new AlgorithmIdentifier(OIWObjectIdentifiers.elGamalAlgorithm, new ElGamalParameter(elSpec.getP(), elSpec.getG())), new ASN1Integer(y));
- }
-
- public ElGamalParameterSpec getParameters()
- {
- return elSpec;
- }
-
- public DHParameterSpec getParams()
- {
- return new DHParameterSpec(elSpec.getP(), elSpec.getG());
- }
-
- public BigInteger getY()
- {
- return y;
- }
-
- private void readObject(
- ObjectInputStream in)
- throws IOException, ClassNotFoundException
- {
- this.y = (BigInteger)in.readObject();
- this.elSpec = new ElGamalParameterSpec((BigInteger)in.readObject(), (BigInteger)in.readObject());
- }
-
- private void writeObject(
- ObjectOutputStream out)
- throws IOException
- {
- out.writeObject(this.getY());
- out.writeObject(elSpec.getP());
- out.writeObject(elSpec.getG());
- }
-}