summaryrefslogtreecommitdiffstats
path: root/tests/cms/sm-sign+verify
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cms/sm-sign+verify')
-rw-r--r--tests/cms/sm-sign+verify73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/cms/sm-sign+verify b/tests/cms/sm-sign+verify
new file mode 100644
index 000000000..1c3ae7dbd
--- /dev/null
+++ b/tests/cms/sm-sign+verify
@@ -0,0 +1,73 @@
+# sm-sign+verify
+#
+# Creating a signature and verifying it
+# Requirements: a plain file "text-1.txt"
+
+srcdir = getenv srcdir
+plaintext = let $srcdir/text-1.txt
+
+in = openfile $plaintext
+out = createfile msg.sig
+in2 = openfile msg.sig
+out2 = createfile msg.unsig
+
+pipeserver $GPGSM
+send INPUT FD=$in
+expect-ok
+send OUTPUT FD=$out
+expect-ok
+send SIGN
+expect-ok
+
+send RESET
+expect-ok
+send INPUT FD=$in2
+expect-ok
+send OUTPUT FD=$out2
+expect-ok
+goodsig = count-status GOODSIG
+trusted = count-status TRUST_FULLY
+send VERIFY
+expect-ok
+echo goodsig=$goodsig trusted=$trusted
+fail-if !$goodsig
+fail-if !$trusted
+send BYE
+expect-ok
+
+# Unset variables so that the files get closed.
+in =
+out =
+in2 =
+out2=
+
+cmpfiles $plaintext msg.unsig
+fail-if !$?
+
+# Lets check it again with a new server instance, this time we keep
+# the server running to check whether the entire message has been
+# output after the VERIFY.
+in = openfile msg.sig
+out = createfile msg.unsig
+pipeserver $GPGSM
+send INPUT FD=$in
+expect-ok
+send OUTPUT FD=$out
+expect-ok
+goodsig = count-status GOODSIG
+trusted = count-status TRUST_FULLY
+send VERIFY
+expect-ok
+echo goodsig=$goodsig trusted=$trusted
+fail-if !$goodsig
+fail-if !$trusted
+
+cmpfiles $plaintext msg.unsig
+fail-if !$?
+
+send BYE
+expect-ok
+
+
+quit
+