@Override protected void runImpl() { final KeyPairGenerator rsa; try { rsa = KeyPairGenerator.getInstance("RSA"); rsa.initialize(new RSAKeyGenParameterSpec(512, RSAKeyGenParameterSpec.F4)); } catch (GeneralSecurityException e) { _log.fatal("Could not generate RSA key pairs!", e); Shutdown.exit(TerminationStatus.ENVIRONMENT_MISSING_COMPONENT_OR_SERVICE); return; // never happens } final int count = Rnd.get( RSA_KEY_PAIR_COUNT / 2, RSA_KEY_PAIR_COUNT * 3 / 2); // so clients will never know if they have all of them or not final KeyPair[] result = new KeyPair[count]; for (int i = 0; i < count; i++) result[i] = rsa.generateKeyPair(); _keyPairs = result; }
/** * Returns a RSA key pair. * * @return a key pair */ public KeyPair getKeyPair() { return Rnd.get(getKeyPairs()); }