Andrzej Kurek | c53dee3 | 2018-01-23 05:44:20 -0500 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | set -u -e |
| 3 | |
| 4 | TOKEN_DIR=softhsm2.d |
| 5 | |
| 6 | if [ -e library/aes.c ]; then |
| 7 | TOPDIR="$PWD" |
| 8 | elif [ -e ../library/aes.c ]; then |
| 9 | TOPDIR="${PWD%/*}" |
| 10 | elif [ -e ../../library/aes.c ]; then |
| 11 | TOPDIR="${PWD%/*/*}" |
| 12 | elif [ -e ../../../library/aes.c ]; then |
| 13 | TOPDIR="${PWD%/*/*/*}" |
| 14 | else |
| 15 | unset TOPDIR |
| 16 | fi |
Andrzej Kurek | e1f26b8 | 2018-02-19 03:57:07 -0500 | [diff] [blame] | 17 | # The SoftHSM library sends error messages to the system logs. If possible, send |
| 18 | # the messages to standard error instead, by overloading the logging functions. |
Andrzej Kurek | c53dee3 | 2018-01-23 05:44:20 -0500 | [diff] [blame] | 19 | if [ -n "${TOPDIR+1}" ] && |
Andrzej Kurek | d851033 | 2018-03-01 09:20:34 -0500 | [diff] [blame] | 20 | make -C "$TOPDIR/programs" test/syslog2stderr.so >/dev/null 2>&1 |
Andrzej Kurek | c53dee3 | 2018-01-23 05:44:20 -0500 | [diff] [blame] | 21 | then |
| 22 | case $(uname) in |
| 23 | Darwin) |
Andrzej Kurek | d851033 | 2018-03-01 09:20:34 -0500 | [diff] [blame] | 24 | export DYLD_PRELOAD="${DYLD_PRELOAD-}:$TOPDIR/programs/test/syslog2stderr.so";; |
Andrzej Kurek | c53dee3 | 2018-01-23 05:44:20 -0500 | [diff] [blame] | 25 | *) |
Andrzej Kurek | d851033 | 2018-03-01 09:20:34 -0500 | [diff] [blame] | 26 | export LD_PRELOAD="${LD_PRELOAD-}:$TOPDIR/programs/test/syslog2stderr.so";; |
Andrzej Kurek | c53dee3 | 2018-01-23 05:44:20 -0500 | [diff] [blame] | 27 | esac |
| 28 | fi |
| 29 | |
| 30 | # softhsm2_find_token LABEL |
| 31 | softhsm2_find_token () { |
| 32 | softhsm2-util --show-slots | awk -v label="$1" ' |
| 33 | $1 == "Slot" && $2 ~ /^[0-9]+$/ {slot = $2} |
| 34 | $1 == "Label:" && $2 == label {print slot; found=1; exit} |
| 35 | END {exit(!found)} |
| 36 | ' |
| 37 | } |
| 38 | |
| 39 | # softhsm2_create_token LABEL |
| 40 | softhsm2_create_token () { |
| 41 | softhsm2_find_token "$1" || { |
| 42 | softhsm2-util --init-token --free --so-pin 0000 --pin 0000 --label "$1" && |
| 43 | softhsm2_find_token "$1" |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | softhsm2_init () { |
| 48 | test -d "$TOKEN_DIR" || mkdir "$TOKEN_DIR" |
| 49 | scratch_token=$(softhsm2_create_token "scratch") |
| 50 | } |
| 51 | |
| 52 | case $1 in |
| 53 | find_slot) softhsm2_find_token "$2";; |
| 54 | init) softhsm2_init;; |
| 55 | *) echo >&2 "$0: Unknown command: $1"; exit 120;; |
| 56 | esac |