This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-crypto.git


The following commit(s) were added to refs/heads/master by this push:
     new 48f646e5 Return OpenSSL header file version used for build
48f646e5 is described below

commit 48f646e56e121d227df600725e960951852d78ff
Author: Sebb <[email protected]>
AuthorDate: Tue Nov 21 23:59:53 2023 +0000

    Return OpenSSL header file version used for build
---
 src/main/java/org/apache/commons/crypto/Crypto.java          |  1 +
 .../java/org/apache/commons/crypto/OpenSslInfoNative.java    | 10 ++++++++++
 .../native/org/apache/commons/crypto/OpenSslInfoNative.c     | 12 ++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/src/main/java/org/apache/commons/crypto/Crypto.java 
b/src/main/java/org/apache/commons/crypto/Crypto.java
index b4519cc3..e8d08295 100644
--- a/src/main/java/org/apache/commons/crypto/Crypto.java
+++ b/src/main/java/org/apache/commons/crypto/Crypto.java
@@ -186,6 +186,7 @@ public final class Crypto {
             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());
diff --git a/src/main/java/org/apache/commons/crypto/OpenSslInfoNative.java 
b/src/main/java/org/apache/commons/crypto/OpenSslInfoNative.java
index 8c68963e..b2e7487f 100644
--- a/src/main/java/org/apache/commons/crypto/OpenSslInfoNative.java
+++ b/src/main/java/org/apache/commons/crypto/OpenSslInfoNative.java
@@ -71,6 +71,16 @@ final class OpenSslInfoNative {
      */
     public static native String OpenSSLVersion(int type);
 
+    /**
+     * @return version of OPENSSL_VERSION_TEXT from the header file used to 
compile the code
+     */
+    public static native String HeaderVersionText();
+
+    /**
+     * @return the value of OPENSSL_VERSION_NUMBER from the header file used 
to compile the code
+     */
+    public static native long HeaderVersionNumber();
+
     /**
      * Makes the constructor private.
      */
diff --git a/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c 
b/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c
index 38b68b6d..2dbaa92a 100644
--- a/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c
+++ b/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c
@@ -101,6 +101,18 @@ JNIEXPORT jstring JNICALL 
Java_org_apache_commons_crypto_OpenSslInfoNative_Nativ
   return (*env)->NewStringUTF(env, PROJECT_NAME);
 }
 
+JNIEXPORT jstring JNICALL 
Java_org_apache_commons_crypto_OpenSslInfoNative_HeaderVersionText
+  (JNIEnv *env, jobject object)
+{
+  return (*env)->NewStringUTF(env, OPENSSL_VERSION_TEXT); // from the OpenSSL 
header files
+}
+
+JNIEXPORT jlong JNICALL 
Java_org_apache_commons_crypto_OpenSslInfoNative_HeaderVersionNumber
+  (JNIEnv *env, jclass clazz)
+{
+  return OPENSSL_VERSION_NUMBER; // from the OpenSSL header files
+}
+
 JNIEXPORT jlong JNICALL 
Java_org_apache_commons_crypto_OpenSslInfoNative_OpenSSL
   (JNIEnv *env, jclass clazz)
 {

Reply via email to