in src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java [186:211]
public static CryptoCipher getCryptoCipher(final String transformation, final Properties properties) throws GeneralSecurityException {
final List<String> names = Utils.splitClassNames(getCipherClassString(properties), ",");
if (names.isEmpty()) {
throw new IllegalArgumentException("No class name(s) provided");
}
CryptoCipher cipher = null;
Exception lastException = null;
final StringBuilder errorMessage = new StringBuilder("CryptoCipher ");
for (final String klass : names) {
try {
final Class<?> cls = ReflectionUtils.getClassByName(klass);
cipher = ReflectionUtils.newInstance(cls.asSubclass(CryptoCipher.class), properties, transformation);
break;
} catch (final Exception e) {
lastException = e;
errorMessage.append("{" + klass + "}");
}
}
if (cipher != null) {
return cipher;
}
errorMessage.append(" is not available or transformation " + transformation + " is not supported.");
throw new GeneralSecurityException(errorMessage.toString(), lastException);
}