in src/main/java/org/apache/commons/crypto/Crypto.java [188:235]
public static void main(final String[] args) throws Exception {
quiet = args.length == 1 && args[0].equals("-q");
info("%s=%s", JNI_LIBRARY_PATH_PROPERTY, System.getProperty(JNI_LIBRARY_PATH_PROPERTY));
info("%s=%s", JNI_LIBRARY_NAME_PROPERTY, System.getProperty(JNI_LIBRARY_NAME_PROPERTY));
info("%s %s", getComponentName(), getComponentVersion());
if (isNativeCodeLoaded()) {
info("Native code loaded OK: %s", OpenSslInfoNative.NativeVersion());
info("Native name: %s", OpenSslInfoNative.NativeName());
info("Native built: %s", OpenSslInfoNative.NativeTimeStamp());
info("Native header file info: 0x%s %s", Long.toHexString(OpenSslInfoNative.HeaderVersionNumber()), OpenSslInfoNative.HeaderVersionText());
info("OpenSSL library loaded OK, version: 0x%s", Long.toHexString(OpenSslInfoNative.OpenSSL()));
info("OpenSSL library info: %s", OpenSslInfoNative.OpenSSLVersion(0));
info("DLL name: %s", OpenSslInfoNative.DLLName());
info("DLL path: %s", OpenSslInfoNative.DLLPath());
info("Additional OpenSSL_version(n) details:");
for (int j = 1; j < Utils.OPENSSL_VERSION_MAX_INDEX; j++) { // entry 0 is shown above
final String data = OpenSslInfoNative.OpenSSLVersion(j);
if (!"not available".equals(data)) {
info("OpenSSLVersion(%d): %s", j, data);
}
}
try { // CryptoRandom
final Properties props = new Properties();
props.setProperty(CryptoRandomFactory.CLASSES_KEY, CryptoRandomFactory.RandomProvider.OPENSSL.getClassName());
try (CryptoRandom cryptoRandom = CryptoRandomFactory.getCryptoRandom(props)) {
info("Random instance created OK: %s", cryptoRandom);
}
} catch (final Exception e) {
info("Failed: %s", e);
}
try { // CryptoCipher
final Properties props = new Properties();
props.setProperty(CryptoCipherFactory.CLASSES_KEY, CryptoCipherFactory.CipherProvider.OPENSSL.getClassName());
try (CryptoCipher cryptoCipher = CryptoCipherFactory.getCryptoCipher(AES.CTR_NO_PADDING, props)) {
info("Cipher %s instance created OK: %s", AES.CTR_NO_PADDING, cryptoCipher);
}
} catch (final Exception e) {
info("Failed: %s", e);
}
} else {
final Throwable error = getLoadingError();
String msg = "";
if (error != null) {
msg = error.getMessage();
}
info("Native load failed: %s %s", error, msg);
}
}