1
1
libssh/tests/pkcs11/setup-softhsm-tokens.sh
Sahana Prasad 317cf070e2 tests/pkcs11: Adds a script to setup PKCS11 tokens using softhsm and p11tool.
Signed-off-by: Sahana Prasad <sahana@redhat.com>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2019-12-20 14:36:57 +01:00

80 строки
1.6 KiB
Bash
Исполняемый файл

#!/bin/bash
# The client keys are stored in a SoftHSM device.
TESTDIR=$1
PRIVKEY=$2
OBJNAME=$3
shift 3
PUBKEY="$PRIVKEY.pub"
echo "TESTDIR: $TESTDIR"
echo "PRIVKEY: $PRIVKEY"
echo "PUBKEY: $PUBKEY"
echo "OBJNAME: $OBJNAME"
# Create temporary directory for tokens
install -d -m 0755 $TESTDIR/db
# Create SoftHSM configuration file
cat >$TESTDIR/softhsm.conf <<EOF
directories.tokendir = $TESTDIR/db
objectstore.backend = file
log.level = DEBUG
EOF
export SOFTHSM2_CONF=$TESTDIR/softhsm.conf
cat $TESTDIR/softhsm.conf
#init
cmd='softhsm2-util --init-token --label "$OBJNAME" --free --pin 1234 --so-pin 1234'
eval echo "$cmd"
out=$(eval $cmd)
ret=$?
if [ $ret -ne 0 ]; then
echo "Init token failed"
echo "$out"
exit 1
fi
#load private key
cmd='p11tool --provider /usr/lib64/pkcs11/libsofthsm2.so --write --load-privkey "$PRIVKEY" --label "$OBJNAME" --login --set-pin=1234 "pkcs11:token="$OBJNAME""'
eval echo "$cmd"
out=$(eval $cmd)
ret=$?
if [ $ret -ne 0 ]; then
echo "Loading privkey failed"
echo "$out"
exit 1
fi
cat $PUBKEY
ls -l $TESTDIR
#load public key
cmd='p11tool --provider /usr/lib64/pkcs11/libsofthsm2.so --write --load-pubkey "$PUBKEY" --label "$OBJNAME" --login --set-pin=1234 "pkcs11:token="$OBJNAME""'
eval echo "$cmd"
out=$(eval $cmd)
ret=$?
if [ $ret -ne 0 ]; then
echo "Loading pubkey failed"
echo "$out"
exit 1
fi
cmd='p11tool --list-all --login "pkcs11:token="$OBJNAME"" --set-pin=1234'
eval echo "$cmd"
out=$(eval $cmd)
ret=$?
if [ $ret -ne 0 ]; then
echo "Loging failed"
echo "$out"
exit 1
fi
echo "$out"
exit 0