elgamalkeypairgenerator.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 55 行

JAVA
55
字号
package org.bouncycastle.crypto.generators;import java.math.BigInteger;import java.security.SecureRandom;import org.bouncycastle.crypto.KeyGenerationParameters;import org.bouncycastle.crypto.AsymmetricCipherKeyPair;import org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator;import org.bouncycastle.crypto.params.ElGamalParameters;import org.bouncycastle.crypto.params.ElGamalPublicKeyParameters;import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters;import org.bouncycastle.crypto.params.ElGamalKeyGenerationParameters;/** * a ElGamal key pair generator. * <p> * This generates keys consistent for use with ElGamal as described in * page 164 of "Handbook of Applied Cryptography". */public class ElGamalKeyPairGenerator    implements AsymmetricCipherKeyPairGenerator{    private ElGamalKeyGenerationParameters param;    public void init(        KeyGenerationParameters param)    {        this.param = (ElGamalKeyGenerationParameters)param;    }    public AsymmetricCipherKeyPair generateKeyPair()    {        BigInteger           p, g, x, y;        int                  qLength = param.getStrength() - 1;        ElGamalParameters    elParams = param.getParameters();        p = elParams.getP();        g = elParams.getG();            //        // calculate the private key        //        x = new BigInteger(qLength, param.getRandom());        //        // calculate the public key.        //        y = g.modPow(x, p);        return new AsymmetricCipherKeyPair(                new ElGamalPublicKeyParameters(y, elParams),                new ElGamalPrivateKeyParameters(x, elParams));    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?