package threshold.mr04.data;
import java.io.Serializable;
import java.math.BigInteger;
import org.bouncycastle.crypto.params.ECDomainParameters;
import org.bouncycastle.math.ec.ECCurve;
import org.bouncycastle.math.ec.ECPoint;
import threshold.mr04.PaillierPublicKey;
public class PublicParameters implements Serializable {
private static final long serialVersionUID = 446196880585148373L;
// public final ECDomainParameters CURVE;
public final byte[] gRaw;
public BigInteger q;
public final int kPrime;
public final BigInteger h1;
public final BigInteger h2;
public final BigInteger nHat;
public final PaillierPublicKey alicesPaillierPubKey;
public final PaillierPublicKey otherPaillierPubKey;
public PublicParameters(ECDomainParameters CURVE, BigInteger nHat, int kPrime, BigInteger h1,
BigInteger h2, PaillierPublicKey alicesPaillierPubKey, PaillierPublicKey otherPaillierPubKey) {
// this.CURVE = CURVE;
gRaw = CURVE.getG().getEncoded();
q = CURVE.getN();
this.nHat = nHat;
this.kPrime = kPrime;
this.h1 = h1;
this.h2 = h2;
this.alicesPaillierPubKey = alicesPaillierPubKey;
this.otherPaillierPubKey = otherPaillierPubKey;
}
public ECPoint G(ECCurve curve) {
return curve.decodePoint(gRaw);
}
}