# 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

