public void initialize( int strength, SecureRandom random) { param = new RSAKeyGenerationParameters(defaultPublicExponent, random, strength, defaultTests); engine.init(param); }
public void init(KeyGenerationParameters param) { this.param = (RSAKeyGenerationParameters)param; this.iterations = getNumberOfIterations(this.param.getStrength(), this.param.getCertainty()); }
protected boolean isProbablePrime(BigInteger x) { /* * Primes class for FIPS 186-4 C.3 primality checking */ return !Primes.hasAnySmallFactors(x) && Primes.isMRProbablePrime(x, param.getRandom(), iterations); }
int strength = param.getStrength(); int pbitlength = (strength + 1) / 2; int qbitlength = strength - pbitlength; int mindiffbits = strength / 3; e = param.getPublicExponent(); p = new BigInteger(pbitlength, 1, param.getRandom()); if (!p.isProbablePrime(param.getCertainty())) q = new BigInteger(qbitlength, 1, param.getRandom()); if (!q.isProbablePrime(param.getCertainty())) if (n.bitLength() == param.getStrength())
int strength = param.getStrength(); int pbitlength = (strength + 1) / 2; int qbitlength = strength - pbitlength; e = param.getPublicExponent();
public KeyPairGeneratorSpi() { super("RSA"); engine = new RSAKeyPairGenerator(); param = new RSAKeyGenerationParameters(defaultPublicExponent, new SecureRandom(), 2048, defaultTests); engine.init(param); }
BigInteger p = new BigInteger(bitlength, 1, param.getRandom());
public KeyPairGeneratorSpi() { super("RSA"); engine = new RSAKeyPairGenerator(); param = new RSAKeyGenerationParameters(defaultPublicExponent, new SecureRandom(), 2048, PrimeCertaintyCalculator.getDefaultCertainty(2048)); engine.init(param); }
public void initialize( int strength, SecureRandom random) { param = new RSAKeyGenerationParameters(defaultPublicExponent, random, strength, PrimeCertaintyCalculator.getDefaultCertainty(strength)); 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(), defaultTests); 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(), PrimeCertaintyCalculator.getDefaultCertainty(2048)); engine.init(param); }
/** * Generate a new key pair, with all options specified. * * @param bitStrength bit strength of the key, e.g. 2048 * @param e RSA public exponent * @param certainty RSA key generation certainty * @param mgf1HashType The type of the hash(digest) function used for OAEP MGF1 hash generation. */ public void generate(int bitStrength, byte[] e, int certainty, HashType oaepHashType, HashType mgf1HashType) { final RSAKeyPairGenerator keyGen = new RSAKeyPairGenerator(); keyGen.init(new RSAKeyGenerationParameters( BigIntegers.fromUnsignedByteArray(e), new SecureRandom(), bitStrength, certainty)); final AsymmetricCipherKeyPair keyPair = keyGen.generateKeyPair(); final RSAPrivateCrtKeyParameters privateKey = (RSAPrivateCrtKeyParameters) keyPair.getPrivate(); if (mgf1HashType == null) { mgf1HashType = DEFAULT_MGF1_HASH; } // Don't worry we are passing thread-unsafe hash and mgf1Hash Digest instances: // init() will clone them anyway. init(e, BigIntegers.asUnsignedByteArray(privateKey.getP()), BigIntegers.asUnsignedByteArray(privateKey.getQ()), oaepHashType, mgf1HashType, new SecureRandom()); }
/** * Generate a fresh hashname key pair for a newly provisioned Telehash node. * * @return The new hashname key pair. * @throws TelehashException */ @Override public HashNameKeyPair generateHashNameKeyPair() throws TelehashException { // generate a 2048 bit key pair RSAKeyPairGenerator generator = new RSAKeyPairGenerator(); generator.init( new RSAKeyGenerationParameters( new BigInteger("10001", 16),//publicExponent // TODO: see warning in getRandomBytes()! new SecureRandom(), 2048, // key length 80 // prime certainty ) ); AsymmetricCipherKeyPair keyPair = generator.generateKeyPair(); AsymmetricKeyParameter publicKey = keyPair.getPublic(); AsymmetricKeyParameter privateKey = keyPair.getPrivate(); if (! (privateKey instanceof RSAPrivateCrtKeyParameters)) { throw new TelehashException("generated key is not an RSA private key."); } return new HashNameKeyPairImpl( new HashNamePublicKeyImpl(publicKey), new HashNamePrivateKeyImpl((RSAPrivateCrtKeyParameters)privateKey) ); }
int keySize = KEY_SIZES[rng.nextInt(KEY_SIZES.length)]; keyGen.init(new RSAKeyGenerationParameters(BigInteger.valueOf(publicExponent), new SecureRandom(), keySize, RSA_KEY_CERTAINTY)); AsymmetricCipherKeyPair keyPair = keyGen.generateKeyPair();