summaryrefslogtreecommitdiff
path: root/tests/do-sign.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/do-sign.sh')
-rwxr-xr-xtests/do-sign.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/do-sign.sh b/tests/do-sign.sh
new file mode 100755
index 0000000..9552a5a
--- /dev/null
+++ b/tests/do-sign.sh
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+set -eu
+
+SIGFILE="$1"; shift
+P11_PROVIDER="$1"; shift
+OPENSSL_CONF="$1"; shift
+SERVER_PROVIDER=
+[ $# -ge 1 ] && { SERVER_PROVIDER="$1"; shift; }
+
+if [ -n "$SERVER_PROVIDER" ]; then
+ P11_KIT_ENV=$(p11-kit server $SERVER_PROVIDER)
+ eval "$P11_KIT_ENV"
+fi
+
+openssl dgst -sha256 -engine pkcs11 -keyform ENGINE \
+ -sign "$(p11tool --login --provider=$P11_PROVIDER --list-token-urls)" \
+ -out $SIGFILE
+
+if [ -n "$SERVER_PROVIDER" ]; then
+ p11-kit server --kill > /dev/null
+fi