Blob Blame History Raw
diff --git a/tests/pkcs11/setup-softhsm-tokens.sh b/tests/pkcs11/setup-softhsm-tokens.sh
index 532c86a7..9050cea6 100755
--- a/tests/pkcs11/setup-softhsm-tokens.sh
+++ b/tests/pkcs11/setup-softhsm-tokens.sh
@@ -17,10 +17,10 @@ echo "OBJNAME: $OBJNAME"
 echo "LOADPUBLIC: $LOADPUBLIC"

 # Create temporary directory for tokens
-install -d -m 0755 $TESTDIR/db
+install -d -m 0755 "$TESTDIR/db"

 # Create SoftHSM configuration file
-cat >$TESTDIR/softhsm.conf <<EOF
+cat >"$TESTDIR/softhsm.conf" <<EOF
 directories.tokendir = $TESTDIR/db
 objectstore.backend = file
 log.level = DEBUG
@@ -28,12 +28,12 @@ EOF

 export SOFTHSM2_CONF=$TESTDIR/softhsm.conf

-cat $TESTDIR/softhsm.conf
+cat "$TESTDIR/softhsm.conf"

 #init
-cmd='softhsm2-util --init-token --label "$OBJNAME" --free --pin 1234 --so-pin 1234'
+cmd="softhsm2-util --init-token --label $OBJNAME --free --pin 1234 --so-pin 1234"
 eval echo "$cmd"
-out=$(eval $cmd)
+out=$(eval "$cmd")
 ret=$?
 if [ $ret -ne 0 ]; then
     echo "Init token failed"
@@ -41,10 +41,29 @@ if [ $ret -ne 0 ]; then
     exit 1
 fi

+find_library_path() {
+    echo "$@"
+    for _lib in "$@" ; do
+        if test -f "$_lib" ; then
+            LIBSOFTHSM_PATH="$_lib"
+            echo "Using libsofthsm path: $LIBSOFTHSM_PATH"
+            return
+        fi
+    done
+    echo "libsofthsm2.so not found"
+    exit 1
+}
+
+find_library_path \
+    /usr/lib64/libsofthsm2.so \
+    /usr/lib/libsofthsm2.so \
+    /usr/local/lib/softhsm/libsofthsm2.so \
+    /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
+
 #load private key
-cmd='p11tool --provider /usr/lib64/pkcs11/libsofthsm2.so --write --load-privkey "$PRIVKEY" --label "$OBJNAME" --login --set-pin=1234 "pkcs11:token="$OBJNAME""'
+cmd="p11tool --provider $LIBSOFTHSM_PATH --write --load-privkey $PRIVKEY --label $OBJNAME --login --set-pin=1234 \"pkcs11:token=$OBJNAME\""
 eval echo "$cmd"
-out=$(eval $cmd)
+out=$(eval "$cmd")
 ret=$?
 if [ $ret -ne 0 ]; then
    echo "Loading privkey failed"
@@ -52,15 +71,15 @@ if [ $ret -ne 0 ]; then
    exit 1
 fi

-cat $PUBKEY
+cat "$PUBKEY"

-ls -l $TESTDIR
+ls -l "$TESTDIR"

-if [ $LOADPUBLIC -ne 0 ]; then
+if [ "$LOADPUBLIC" -ne 0 ]; then
 #load public key
-    cmd='p11tool --provider /usr/lib64/pkcs11/libsofthsm2.so --write --load-pubkey "$PUBKEY" --label "$OBJNAME" --login --set-pin=1234 "pkcs11:token="$OBJNAME""'
+    cmd="p11tool --provider $LIBSOFTHSM_PATH --write --load-pubkey $PUBKEY --label $OBJNAME --login --set-pin=1234 \"pkcs11:token=$OBJNAME\""
     eval echo "$cmd"
-    out=$(eval $cmd)
+    out=$(eval "$cmd")
     ret=$?
     if [ $ret -ne 0 ]; then
         echo "Loading pubkey failed"
@@ -69,9 +88,9 @@ if [ $LOADPUBLIC -ne 0 ]; then
     fi
 fi

-cmd='p11tool --list-all --login "pkcs11:token="$OBJNAME"" --set-pin=1234'
+cmd="p11tool --list-all --login \"pkcs11:token=$OBJNAME\" --set-pin=1234"
 eval echo "$cmd"
-out=$(eval $cmd)
+out=$(eval "$cmd")
 ret=$?
 if [ $ret -ne 0 ]; then
     echo "Loging failed"