/** * Generates an RSA key pair with a 2048-bit private key and F4 (65537) as the public exponent. * @return the key pair. */ public static KeyPair generateRSAKeyPair() throws GeneralSecurityException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); RSAKeyGenParameterSpec keyGenSpec = new RSAKeyGenParameterSpec( DEFAULT_RSA_KEY_SIZE_BITS, DEFAULT_RSA_PUB_EXPONENT); keyGen.initialize(keyGenSpec, PRNG); return keyGen.generateKeyPair(); }
/** * @throws IllegalArgumentException if data is not correct length */ public static RSASigningPrivateCrtKey fromJavaKey(RSAPrivateCrtKey pk) throws GeneralSecurityException { int sz = pk.getModulus().bitLength(); SigType type; if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA256_2048.getParams()).getKeysize()) type = SigType.RSA_SHA256_2048; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA384_3072.getParams()).getKeysize()) type = SigType.RSA_SHA384_3072; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA512_4096.getParams()).getKeysize()) type = SigType.RSA_SHA512_4096; else throw new GeneralSecurityException("Unknown RSA type"); // private key is modulus (pubkey) + exponent BigInteger n = pk.getModulus(); BigInteger d = pk.getPrivateExponent(); byte[] b = SigUtil.combine(n, d, type.getPrivkeyLen()); return new RSASigningPrivateCrtKey(pk, type, b); }
/** * @deprecated unused */ public static RSAPublicKey toJavaRSAKey(SigningPublicKey pk) throws GeneralSecurityException { SigType type = pk.getType(); KeyFactory kf = KeyFactory.getInstance("RSA"); BigInteger n = new NativeBigInteger(1, pk.getData()); BigInteger e = ((RSAKeyGenParameterSpec)type.getParams()).getPublicExponent(); // modulus exponent KeySpec ks = new RSAPublicKeySpec(n, e); return (RSAPublicKey) kf.generatePublic(ks); }
@Override public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException { if (!(params instanceof RSAKeyGenParameterSpec)) { throw new InvalidAlgorithmParameterException("Only RSAKeyGenParameterSpec supported"); } RSAKeyGenParameterSpec spec = (RSAKeyGenParameterSpec) params; final BigInteger publicExponent = spec.getPublicExponent(); if (publicExponent != null) { this.publicExponent = publicExponent.toByteArray(); } this.modulusBits = spec.getKeysize(); } }
@Override public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException { if (!(params instanceof RSAKeyGenParameterSpec)) { throw new InvalidAlgorithmParameterException("Only RSAKeyGenParameterSpec supported"); } RSAKeyGenParameterSpec spec = (RSAKeyGenParameterSpec) params; final BigInteger publicExponent = spec.getPublicExponent(); if (publicExponent != null) { this.publicExponent = publicExponent.toByteArray(); } this.modulusBits = spec.getKeysize(); } }
@Override public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException { if (!(params instanceof RSAKeyGenParameterSpec)) { throw new InvalidAlgorithmParameterException("Only RSAKeyGenParameterSpec supported"); } RSAKeyGenParameterSpec spec = (RSAKeyGenParameterSpec) params; final BigInteger publicExponent = spec.getPublicExponent(); if (publicExponent != null) { this.publicExponent = publicExponent.toByteArray(); } this.modulusBits = spec.getKeysize(); } }
/** * Generate a spec */ private static RSAKeyGenParameterSpec genSpec(int size, BigInteger exp) { return new RSAKeyGenParameterSpec(size, exp); }
int sz = k.getModulus().bitLength(); SigType type; if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA256_2048.getParams()).getKeysize()) type = SigType.RSA_SHA256_2048; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA384_3072.getParams()).getKeysize()) type = SigType.RSA_SHA384_3072; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA512_4096.getParams()).getKeysize()) type = SigType.RSA_SHA512_4096; else
BigInteger exp = ((RSAKeyGenParameterSpec)type.getParams()).getPublicExponent(); RSAPublicKeySpec rsaks = new RSAPublicKeySpec(rsapriv.getModulus(), exp); KeyFactory rsakf = KeyFactory.getInstance("RSA");
@Override public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException { if (!(params instanceof RSAKeyGenParameterSpec)) { throw new InvalidAlgorithmParameterException("Only RSAKeyGenParameterSpec supported"); } RSAKeyGenParameterSpec spec = (RSAKeyGenParameterSpec) params; final BigInteger publicExponent = spec.getPublicExponent(); if (publicExponent != null) { this.publicExponent = publicExponent.toByteArray(); } this.modulusBits = spec.getKeysize(); } }
keyPairGenerator.initialize(new RSAKeyGenParameterSpec(keySize, publicExponent));
int sz = k.getModulus().bitLength(); SigType type; if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA256_2048.getParams()).getKeysize()) type = SigType.RSA_SHA256_2048; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA384_3072.getParams()).getKeysize()) type = SigType.RSA_SHA384_3072; else if (sz <= ((RSAKeyGenParameterSpec) SigType.RSA_SHA512_4096.getParams()).getKeysize()) type = SigType.RSA_SHA512_4096; else
/** * <p>Configures this instance.</p> * * @param attributes the map of name/value pairs to use. * @exception IllegalArgumentException if the designated MODULUS_LENGTH * value is less than 1024. */ public void setup(Map attributes) { // do we have a SecureRandom, or should we use our own? rnd = (SecureRandom) attributes.get(SOURCE_OF_RANDOMNESS); // are we given a set of RSA params or we shall use our own? RSAKeyGenParameterSpec params = (RSAKeyGenParameterSpec) attributes.get(RSA_PARAMETERS); // find out the modulus length if (params != null) { L = params.getKeysize(); e = params.getPublicExponent(); } else { Integer l = (Integer) attributes.get(MODULUS_LENGTH); L = (l == null ? DEFAULT_MODULUS_LENGTH : l.intValue()); } if (L < 1024) { throw new IllegalArgumentException(MODULUS_LENGTH); } }
RSAKeyGenParameterSpec keyGenParameterSpec = new RSAKeyGenParameterSpec(1408, RSAKeyGenParameterSpec.F0); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(keyGenParameterSpec); //.... rest of the code will be the same I posted above
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); }
/** * Generates an RSA key pair. * * @param bits The amount of bits * @return The key pair */ public static KeyPair generate(int bits) throws Exception { KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA"); RSAKeyGenParameterSpec spec = new RSAKeyGenParameterSpec(bits, RSAKeyGenParameterSpec.F4); keygen.initialize(spec); return keygen.generateKeyPair(); }
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 KeyPair genKeyPair() { KeyPair kpr = null; try { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(new RSAKeyGenParameterSpec(RSAKEYSIZE, RSAKeyGenParameterSpec.F4)); kpr = kpg.generateKeyPair(); } catch (NoSuchAlgorithmException e) { LOG.log(Level.SEVERE, "Error generating key pair", e); } catch (InvalidAlgorithmParameterException e) { LOG.log(Level.SEVERE, "Error generating key pair", e); } return kpr; }
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 KeyPair genKeyPair() { KeyPair kpr = null; try { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(new RSAKeyGenParameterSpec(RSAKEYSIZE, RSAKeyGenParameterSpec.F4)); kpr = kpg.generateKeyPair(); } catch (NoSuchAlgorithmException e) { LOG.log(Level.SEVERE, "Error generating key pair", e); } catch (InvalidAlgorithmParameterException e) { LOG.log(Level.SEVERE, "Error generating key pair", e); } return kpr; }