blob: 05f819213ea84de99df6c7704dda8db16b7554a4 [file] [log] [blame]
Andrzej Kurekc53dee32018-01-23 05:44:20 -05001#!/bin/sh
2set -u -e
3
4TOKEN_DIR=softhsm2.d
5
6if [ -e library/aes.c ]; then
7 TOPDIR="$PWD"
8elif [ -e ../library/aes.c ]; then
9 TOPDIR="${PWD%/*}"
10elif [ -e ../../library/aes.c ]; then
11 TOPDIR="${PWD%/*/*}"
12elif [ -e ../../../library/aes.c ]; then
13 TOPDIR="${PWD%/*/*/*}"
14else
15 unset TOPDIR
16fi
Andrzej Kureke1f26b82018-02-19 03:57:07 -050017# 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 Kurekc53dee32018-01-23 05:44:20 -050019if [ -n "${TOPDIR+1}" ] &&
Andrzej Kurekd8510332018-03-01 09:20:34 -050020 make -C "$TOPDIR/programs" test/syslog2stderr.so >/dev/null 2>&1
Andrzej Kurekc53dee32018-01-23 05:44:20 -050021then
22 case $(uname) in
23 Darwin)
Andrzej Kurekd8510332018-03-01 09:20:34 -050024 export DYLD_PRELOAD="${DYLD_PRELOAD-}:$TOPDIR/programs/test/syslog2stderr.so";;
Andrzej Kurekc53dee32018-01-23 05:44:20 -050025 *)
Andrzej Kurekd8510332018-03-01 09:20:34 -050026 export LD_PRELOAD="${LD_PRELOAD-}:$TOPDIR/programs/test/syslog2stderr.so";;
Andrzej Kurekc53dee32018-01-23 05:44:20 -050027 esac
28fi
29
30# softhsm2_find_token LABEL
31softhsm2_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
40softhsm2_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
47softhsm2_init () {
48 test -d "$TOKEN_DIR" || mkdir "$TOKEN_DIR"
49 scratch_token=$(softhsm2_create_token "scratch")
50}
51
52case $1 in
53 find_slot) softhsm2_find_token "$2";;
54 init) softhsm2_init;;
55 *) echo >&2 "$0: Unknown command: $1"; exit 120;;
56esac