public static void main()

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);
        }
    }