📄 dsakeypairgenerator.java
字号:
package org.bouncycastle.crypto.generators;import org.bouncycastle.crypto.AsymmetricCipherKeyPair;import org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator;import org.bouncycastle.crypto.KeyGenerationParameters;import org.bouncycastle.crypto.params.DSAKeyGenerationParameters;import org.bouncycastle.crypto.params.DSAParameters;import org.bouncycastle.crypto.params.DSAPrivateKeyParameters;import org.bouncycastle.crypto.params.DSAPublicKeyParameters;import java.math.BigInteger;import java.security.SecureRandom;/** * a DSA key pair generator. * * This generates DSA keys in line with the method described * in FIPS 186-2. */public class DSAKeyPairGenerator implements AsymmetricCipherKeyPairGenerator{ private static final BigInteger ZERO = BigInteger.valueOf(0); private DSAKeyGenerationParameters param; public void init( KeyGenerationParameters param) { this.param = (DSAKeyGenerationParameters)param; } public AsymmetricCipherKeyPair generateKeyPair() { BigInteger p, q, g, x, y; DSAParameters dsaParams = param.getParameters(); SecureRandom random = param.getRandom(); q = dsaParams.getQ(); p = dsaParams.getP(); g = dsaParams.getG(); do { x = new BigInteger(160, random); } while (x.equals(ZERO) || x.compareTo(q) >= 0); // // calculate the public key. // y = g.modPow(x, p); return new AsymmetricCipherKeyPair( new DSAPublicKeyParameters(y, dsaParams), new DSAPrivateKeyParameters(x, dsaParams)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -