diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/params/CramerShoupParameters.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/params/CramerShoupParameters.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/params/CramerShoupParameters.java b/core/src/main/java/org/spongycastle/crypto/params/CramerShoupParameters.java new file mode 100644 index 00000000..d1504bab --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/params/CramerShoupParameters.java @@ -0,0 +1,53 @@ +package org.spongycastle.crypto.params; + +import java.math.BigInteger; + +import org.spongycastle.crypto.CipherParameters; +import org.spongycastle.crypto.Digest; + +public class CramerShoupParameters implements CipherParameters { + + private BigInteger p; // prime order of G + private BigInteger g1, g2; // generate G + + private Digest H; // hash function + + public CramerShoupParameters(BigInteger p, BigInteger g1, BigInteger g2, Digest H) { + this.p = p; + this.g1 = g1; + this.g2 = g2; + this.H = H; + } + + public boolean equals(Object obj) { + if (!(obj instanceof DSAParameters)) { + return false; + } + + CramerShoupParameters pm = (CramerShoupParameters) obj; + + return (pm.getP().equals(p) && pm.getG1().equals(g1) && pm.getG2().equals(g2)); + } + + public int hashCode() { + return getP().hashCode() ^ getG1().hashCode() ^ getG2().hashCode(); + } + + public BigInteger getG1() { + return g1; + } + + public BigInteger getG2() { + return g2; + } + + public BigInteger getP() { + return p; + } + + public Digest getH() { + H.reset(); + return H; + } + +} |