From 71c7865fa0a3141dd6c34f8f5cae186ef6c5bd54 Mon Sep 17 00:00:00 2001 From: Chris Conlon Date: Mon, 17 Aug 2026 16:10:04 -0600 Subject: [PATCH] F-8217: anchor provider example launcher paths to script location --- examples/provider/CertPathBuilderExample.sh | 10 ++++--- examples/provider/CryptoBenchmark.sh | 26 +++++++++++-------- examples/provider/KeyStoreBenchmark.sh | 10 ++++--- examples/provider/MlDsaExample.sh | 9 ++++--- examples/provider/MlKemExample.sh | 10 ++++--- examples/provider/ProviderTest.sh | 9 ++++--- examples/provider/SlhDsaExample.sh | 9 ++++--- examples/provider/WolfSSLKeyStoreExample.sh | 9 ++++--- .../WolfSSLKeyStoreGetKeyBenchmark.sh | 10 ++++--- examples/provider/XmssExample.sh | 10 ++++--- 10 files changed, 74 insertions(+), 38 deletions(-) diff --git a/examples/provider/CertPathBuilderExample.sh b/examples/provider/CertPathBuilderExample.sh index 16e47a31..4078f93b 100755 --- a/examples/provider/CertPathBuilderExample.sh +++ b/examples/provider/CertPathBuilderExample.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ CertPathBuilderExample $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" CertPathBuilderExample "$@" diff --git a/examples/provider/CryptoBenchmark.sh b/examples/provider/CryptoBenchmark.sh index 9eb28346..1b66336e 100755 --- a/examples/provider/CryptoBenchmark.sh +++ b/examples/provider/CryptoBenchmark.sh @@ -37,7 +37,7 @@ verify_sha256() { # Function to download Bouncy Castle JARs with pinned version download_bc_jars() { local bc_version="$BC_VERSION" - local lib_dir="../../../lib" + local lib_dir="$LIB_DIR" local bc_url="https://repo1.maven.org/maven2/org/bouncycastle" echo -n "Downloading Bouncy Castle JARs (version $bc_version)... " @@ -81,25 +81,29 @@ download_bc_jars() { # Function to cleanup BC JARs cleanup_bc_jars() { - local lib_dir="../../../lib" + local lib_dir="$LIB_DIR" echo -n "Removing Bouncy Castle JARs... " rm -f "$lib_dir/bcprov-jdk18on-"*".jar" "$lib_dir/bctls-jdk18on-"*".jar" && echo "done" || echo "failed" } -cd ./examples/build/provider || { - echo "Error: Cannot change to ./examples/build/provider" +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || { + echo "Error: Cannot change to $SCRIPT_DIR/../build/provider" exit 1 } -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib:/usr/local/lib -CLASSPATH="../../../lib/wolfcrypt-jni.jar:." +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +CLASSPATH="$LIB_DIR/wolfcrypt-jni.jar:." # Check for existing Bouncy Castle JARs (any version) -if ls "../../../lib/bcprov-jdk18on-"*".jar" "../../../lib/bctls-jdk18on-"*".jar" 2>/dev/null; then - latest_bc_jar=$(ls -t "../../../lib/bcprov-jdk18on-"*".jar" | head -n 1) +if ls "$LIB_DIR/bcprov-jdk18on-"*".jar" "$LIB_DIR/bctls-jdk18on-"*".jar" 2>/dev/null; then + latest_bc_jar=$(ls -t "$LIB_DIR/bcprov-jdk18on-"*".jar" | head -n 1) bc_version=$(basename "$latest_bc_jar" | sed -e 's/bcprov-jdk18on-//' -e 's/.jar$//') echo "Running crypto benchmark with Bouncy Castle (version $bc_version)" - CLASSPATH="$CLASSPATH:$latest_bc_jar:../../../lib/bctls-jdk18on-$bc_version.jar" + CLASSPATH="$CLASSPATH:$latest_bc_jar:$LIB_DIR/bctls-jdk18on-$bc_version.jar" else echo "Bouncy Castle JARs not found in lib directory" read -p "Would you like to download Bouncy Castle JARs? (y/n) " -n 1 -r @@ -107,7 +111,7 @@ else if [[ $REPLY =~ ^[Yy]$ ]]; then if download_bc_jars; then echo "Running crypto benchmark with Bouncy Castle (version $BC_VERSION)" - CLASSPATH="$CLASSPATH:../../../lib/bcprov-jdk18on-$BC_VERSION.jar:../../../lib/bctls-jdk18on-$BC_VERSION.jar" + CLASSPATH="$CLASSPATH:$LIB_DIR/bcprov-jdk18on-$BC_VERSION.jar:$LIB_DIR/bctls-jdk18on-$BC_VERSION.jar" else echo "Running crypto benchmark without Bouncy Castle due to download failure" fi @@ -125,7 +129,7 @@ java -Xint \ -XX:+UseG1GC \ -XX:MaxGCPauseMillis=100 \ -classpath "$CLASSPATH" \ - -Dsun.boot.library.path=../../../lib/ \ + -Dsun.boot.library.path="$LIB_DIR/" \ CryptoBenchmark "$@" if [ "$BC_DOWNLOADED" = true ]; then diff --git a/examples/provider/KeyStoreBenchmark.sh b/examples/provider/KeyStoreBenchmark.sh index 79771029..ff31f8c0 100755 --- a/examples/provider/KeyStoreBenchmark.sh +++ b/examples/provider/KeyStoreBenchmark.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ KeyStoreBenchmark $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" KeyStoreBenchmark "$@" diff --git a/examples/provider/MlDsaExample.sh b/examples/provider/MlDsaExample.sh index f7a12686..a9762096 100755 --- a/examples/provider/MlDsaExample.sh +++ b/examples/provider/MlDsaExample.sh @@ -1,6 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ MlDsaExample $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" MlDsaExample "$@" diff --git a/examples/provider/MlKemExample.sh b/examples/provider/MlKemExample.sh index f45fc429..825fd056 100755 --- a/examples/provider/MlKemExample.sh +++ b/examples/provider/MlKemExample.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ MlKemExample "$@" +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" MlKemExample "$@" diff --git a/examples/provider/ProviderTest.sh b/examples/provider/ProviderTest.sh index d03fec8b..80ddd9f0 100755 --- a/examples/provider/ProviderTest.sh +++ b/examples/provider/ProviderTest.sh @@ -1,6 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ -Dwolfjce.debug=true ProviderTest $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" -Dwolfjce.debug=true ProviderTest "$@" diff --git a/examples/provider/SlhDsaExample.sh b/examples/provider/SlhDsaExample.sh index ffdda82b..bf7931d1 100755 --- a/examples/provider/SlhDsaExample.sh +++ b/examples/provider/SlhDsaExample.sh @@ -1,6 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ SlhDsaExample "$@" +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" SlhDsaExample "$@" diff --git a/examples/provider/WolfSSLKeyStoreExample.sh b/examples/provider/WolfSSLKeyStoreExample.sh index 19414765..c4b06e16 100755 --- a/examples/provider/WolfSSLKeyStoreExample.sh +++ b/examples/provider/WolfSSLKeyStoreExample.sh @@ -1,6 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ -Dwolfjce.debug=true WolfSSLKeyStoreExample $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" -Dwolfjce.debug=true WolfSSLKeyStoreExample "$@" diff --git a/examples/provider/WolfSSLKeyStoreGetKeyBenchmark.sh b/examples/provider/WolfSSLKeyStoreGetKeyBenchmark.sh index b4d44071..55891115 100755 --- a/examples/provider/WolfSSLKeyStoreGetKeyBenchmark.sh +++ b/examples/provider/WolfSSLKeyStoreGetKeyBenchmark.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ WolfSSLKeyStoreGetKeyBenchmark $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" WolfSSLKeyStoreGetKeyBenchmark "$@" diff --git a/examples/provider/XmssExample.sh b/examples/provider/XmssExample.sh index 44574596..65f47f34 100755 --- a/examples/provider/XmssExample.sh +++ b/examples/provider/XmssExample.sh @@ -1,5 +1,9 @@ #!/bin/bash -cd ./examples/build/provider -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../../lib/:/usr/local/lib -java -classpath ../../../lib/wolfcrypt-jni.jar:./ -Dsun.boot.library.path=../../../lib/ XmssExample $@ +# Paths anchored to this script location, runs from any directory +SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) || exit 1 +LIB_DIR="$SCRIPT_DIR/../../lib" + +cd "$SCRIPT_DIR/../build/provider" || exit 1 +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIB_DIR:/usr/local/lib" +java -classpath "$LIB_DIR/wolfcrypt-jni.jar:./" -Dsun.boot.library.path="$LIB_DIR/" XmssExample "$@"