aboutsummaryrefslogtreecommitdiffstats
path: root/sm/sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'sm/sign.c')
-rw-r--r--sm/sign.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/sm/sign.c b/sm/sign.c
index 0949d0680..98e3dbf81 100644
--- a/sm/sign.c
+++ b/sm/sign.c
@@ -34,18 +34,14 @@
#include "keydb.h"
#include "i18n.h"
+
+
+
struct reader_cb_parm_s {
FILE *fp;
};
-static int
-do_sign(KsbaCert cert, GCRY_MD_HD md, int algo, char **r_sigval)
-{
- return 0;
-}
-
-
static void
hash_data (int fd, GCRY_MD_HD md)
@@ -329,15 +325,22 @@ gpgsm_sign (CTRL ctrl, int data_fd, int detached, FILE *out_fp)
}
sigval = NULL;
- rc = do_sign (cert, md, algo, &sigval);
+ rc = gpgsm_create_cms_signature (cert, md, algo, &sigval);
if (rc)
{
ksba_cert_release (cert);
goto leave;
}
- log_debug ("sigval=`%s'\n", sigval);
+ err = ksba_cms_set_sig_val (cms, signer, sigval);
xfree (sigval);
+ if (err)
+ {
+ log_error ("failed to store the signature: %s\n",
+ ksba_strerror (err));
+ rc = map_ksba_err (err);
+ goto leave;
+ }
}
}
}