#!/bin/sh

SOFTHSM_UTIL=/usr/bin/softhsm2-util

rm -f /var/run/pkcs11proxyd.socket

if test -d /var/lib/pkcs11proxyd/tokens;then
	logger -t pkcs11proxyd-softhsm-init Tokens are already initialized
	exit 0
fi

if test -e /etc/pkcs11proxyd/pins.txt;then
	. /etc/pkcs11proxyd/pins.txt
else
	logger -t pkcs11proxyd-softhsm-init Using random PIN and PUK
	PIN=$RANDOM
	PUK=$RANDOM$RANDOM
	umask 066
	printf "PIN=$PIN\nPUK=$PUK" >/etc/pkcs11proxyd/pins.txt
fi


su pkcs11proxyd -s /bin/sh -c "mkdir /var/lib/pkcs11proxyd/tokens; SOFTHSM2_CONF=/var/lib/pkcs11proxyd/softhsm.conf $SOFTHSM_UTIL --init-token --slot 0 --label \"System softtoken\" --so-pin $PUK --pin $PIN"
if test $? != 0;then
	logger -t pkcs11proxyd-softhsm-init could not create new token
	rmdir /var/lib/pkcs11proxyd/tokens
	exit 1
fi

exit 0
