diff options
author | Sergio Giro <sgiro@google.com> | 2016-02-01 18:54:35 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-02-01 18:54:35 +0000 |
commit | 3e75bd6b407dd472c834a50f16aae54cca67ea9c (patch) | |
tree | b5eb091b97b2aade28e5b45a15352125a4a776d7 /bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java | |
parent | 9218edabd1ef9852bc2f13115dcadc81b442dd6c (diff) | |
parent | c1040cb5656c3299f1c2d0fe0bd7c44b10466aaf (diff) | |
download | android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.tar.gz android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.tar.bz2 android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.zip |
Merge "Restoring the contents of aosp after"
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java deleted file mode 100644 index cd31cc5..0000000 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/elgamal/BCElGamalPublicKey.java +++ /dev/null @@ -1,172 +0,0 @@ -package org.bouncycastle.jcajce.provider.asymmetric.elgamal; - -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.ASN1Encoding; -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.jce.interfaces.ElGamalPublicKey; -import org.bouncycastle.jce.spec.ElGamalParameterSpec; -import org.bouncycastle.jce.spec.ElGamalPublicKeySpec; - -public class BCElGamalPublicKey - implements ElGamalPublicKey, DHPublicKey -{ - static final long serialVersionUID = 8712728417091216948L; - - private BigInteger y; - private transient ElGamalParameterSpec elSpec; - - BCElGamalPublicKey( - ElGamalPublicKeySpec spec) - { - this.y = spec.getY(); - this.elSpec = new ElGamalParameterSpec(spec.getParams().getP(), spec.getParams().getG()); - } - - BCElGamalPublicKey( - DHPublicKeySpec spec) - { - this.y = spec.getY(); - this.elSpec = new ElGamalParameterSpec(spec.getP(), spec.getG()); - } - - BCElGamalPublicKey( - ElGamalPublicKey key) - { - this.y = key.getY(); - this.elSpec = key.getParameters(); - } - - BCElGamalPublicKey( - DHPublicKey key) - { - this.y = key.getY(); - this.elSpec = new ElGamalParameterSpec(key.getParams().getP(), key.getParams().getG()); - } - - BCElGamalPublicKey( - ElGamalPublicKeyParameters params) - { - this.y = params.getY(); - this.elSpec = new ElGamalParameterSpec(params.getParameters().getP(), params.getParameters().getG()); - } - - BCElGamalPublicKey( - BigInteger y, - ElGamalParameterSpec elSpec) - { - this.y = y; - this.elSpec = elSpec; - } - - BCElGamalPublicKey( - 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() - { - try - { - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(OIWObjectIdentifiers.elGamalAlgorithm, new ElGamalParameter(elSpec.getP(), elSpec.getG())), new ASN1Integer(y)); - - return info.getEncoded(ASN1Encoding.DER); - } - catch (IOException e) - { - return null; - } - } - - public ElGamalParameterSpec getParameters() - { - return elSpec; - } - - public DHParameterSpec getParams() - { - return new DHParameterSpec(elSpec.getP(), elSpec.getG()); - } - - public BigInteger getY() - { - return y; - } - - public int hashCode() - { - return this.getY().hashCode() ^ this.getParams().getG().hashCode() - ^ this.getParams().getP().hashCode() ^ this.getParams().getL(); - } - - public boolean equals( - Object o) - { - if (!(o instanceof DHPublicKey)) - { - return false; - } - - DHPublicKey other = (DHPublicKey)o; - - return this.getY().equals(other.getY()) - && this.getParams().getG().equals(other.getParams().getG()) - && this.getParams().getP().equals(other.getParams().getP()) - && this.getParams().getL() == other.getParams().getL(); - } - - private void readObject( - ObjectInputStream in) - throws IOException, ClassNotFoundException - { - in.defaultReadObject(); - - this.elSpec = new ElGamalParameterSpec((BigInteger)in.readObject(), (BigInteger)in.readObject()); - } - - private void writeObject( - ObjectOutputStream out) - throws IOException - { - out.defaultWriteObject(); - - out.writeObject(elSpec.getP()); - out.writeObject(elSpec.getG()); - } -} |