use of org.openecard.bouncycastle.jce.spec.ElGamalParameterSpec in project open-ecard by ecsec.
the class PACEKey method generateKeyPair.
/**
* Generate a key pair.
*/
public void generateKeyPair() {
reseed();
if (pdp.isDH()) {
ElGamalParameterSpec p = (ElGamalParameterSpec) pdp.getParameter();
int numBits = p.getG().bitLength();
BigInteger d = new BigInteger(numBits, rand);
ElGamalParameters egp = new ElGamalParameters(p.getP(), p.getG());
sk = new ElGamalPrivateKeyParameters(d, egp);
pk = new ElGamalPublicKeyParameters(egp.getG().multiply(d), egp);
} else if (pdp.isECDH()) {
ECParameterSpec p = (ECParameterSpec) pdp.getParameter();
int numBits = p.getN().bitLength();
BigInteger d = new BigInteger(numBits, rand);
ECDomainParameters ecp = new ECDomainParameters(p.getCurve(), p.getG(), p.getN(), p.getH());
sk = new ECPrivateKeyParameters(d, ecp);
pk = new ECPublicKeyParameters(ecp.getG().multiply(d), ecp);
} else {
throw new IllegalArgumentException();
}
}
use of org.openecard.bouncycastle.jce.spec.ElGamalParameterSpec in project open-ecard by ecsec.
the class CAKey method generateKeyPair.
/**
* Generate a key pair.
*/
public void generateKeyPair() {
reseed();
if (cdp.isDH()) {
ElGamalParameterSpec p = (ElGamalParameterSpec) cdp.getParameter();
int numBits = p.getG().bitLength();
BigInteger d = new BigInteger(numBits, rand);
ElGamalParameters egp = new ElGamalParameters(p.getP(), p.getG());
sk = new ElGamalPrivateKeyParameters(d, egp);
pk = new ElGamalPublicKeyParameters(egp.getG().multiply(d), egp);
} else if (cdp.isECDH()) {
ECParameterSpec p = (ECParameterSpec) cdp.getParameter();
int numBits = p.getN().bitLength();
BigInteger d = new BigInteger(numBits, rand);
ECDomainParameters ecp = new ECDomainParameters(p.getCurve(), p.getG(), p.getN(), p.getH());
sk = new ECPrivateKeyParameters(d, ecp);
pk = new ECPublicKeyParameters(ecp.getG().multiply(d), ecp);
} else {
throw new IllegalArgumentException();
}
}
Aggregations