com.fitbur.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi Maven / Gradle / Ivy
package com.fitbur.bouncycastle.jcajce.provider.asymmetric.rsa;
import java.math.BigInteger;
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyPair;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.RSAKeyGenParameterSpec;
import com.fitbur.bouncycastle.crypto.AsymmetricCipherKeyPair;
import com.fitbur.bouncycastle.crypto.generators.RSAKeyPairGenerator;
import com.fitbur.bouncycastle.crypto.params.RSAKeyGenerationParameters;
import com.fitbur.bouncycastle.crypto.params.RSAKeyParameters;
import com.fitbur.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters;
public class KeyPairGeneratorSpi
extends java.security.KeyPairGenerator
{
public KeyPairGeneratorSpi(
String algorithmName)
{
super(algorithmName);
}
final static BigInteger com.fitburfaultPublicExponent = BigInteger.valueOf(0x10001);
final static int com.fitburfaultTests = 12;
RSAKeyGenerationParameters param;
RSAKeyPairGenerator engine;
public KeyPairGeneratorSpi()
{
super("RSA");
engine = new RSAKeyPairGenerator();
param = new RSAKeyGenerationParameters(com.fitburfaultPublicExponent,
new SecureRandom(), 2048, com.fitburfaultTests);
engine.init(param);
}
public void initialize(
int strength,
SecureRandom random)
{
param = new RSAKeyGenerationParameters(com.fitburfaultPublicExponent,
random, strength, com.fitburfaultTests);
engine.init(param);
}
public void initialize(
AlgorithmParameterSpec params,
SecureRandom random)
throws InvalidAlgorithmParameterException
{
if (!(params instanceof RSAKeyGenParameterSpec))
{
throw new InvalidAlgorithmParameterException("parameter object not a RSAKeyGenParameterSpec");
}
RSAKeyGenParameterSpec rsaParams = (RSAKeyGenParameterSpec)params;
param = new RSAKeyGenerationParameters(
rsaParams.getPublicExponent(),
random, rsaParams.getKeysize(), com.fitburfaultTests);
engine.init(param);
}
public KeyPair generateKeyPair()
{
AsymmetricCipherKeyPair pair = engine.generateKeyPair();
RSAKeyParameters pub = (RSAKeyParameters)pair.getPublic();
RSAPrivateCrtKeyParameters priv = (RSAPrivateCrtKeyParameters)pair.getPrivate();
return new KeyPair(new BCRSAPublicKey(pub),
new BCRSAPrivateCrtKey(priv));
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy