diff options
author | Werner Koch <[email protected]> | 2001-11-27 17:40:09 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2001-11-27 17:40:09 +0000 |
commit | 944fee70bc3461d80dfe73873f3d66ab0e425e4c (patch) | |
tree | 9d80b776360c32ce54f0326e76141a102f5b4766 /sm/sign.c | |
parent | * assuan-handler.c (assuan_register_input_notify): New. (diff) | |
download | gnupg-944fee70bc3461d80dfe73873f3d66ab0e425e4c.tar.gz gnupg-944fee70bc3461d80dfe73873f3d66ab0e425e4c.zip |
* base64.c: New. Changed all other functions to use this instead
of direct creation of ksba_reader/writer.
* gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
This way we can feed PEM encoded stuff to --verify.
Diffstat (limited to '')
-rw-r--r-- | sm/sign.c | 37 |
1 files changed, 5 insertions, 32 deletions
@@ -35,14 +35,6 @@ #include "i18n.h" - - -struct reader_cb_parm_s { - FILE *fp; -}; - - - static void hash_data (int fd, GCRY_MD_HD md) { @@ -112,19 +104,17 @@ gpgsm_sign (CTRL ctrl, int data_fd, int detached, FILE *out_fp) { int i, rc; KsbaError err; - KsbaWriter writer = NULL; + Base64Context b64writer = NULL; + KsbaWriter writer; KsbaCMS cms = NULL; KsbaStopReason stopreason; KsbaCert cert; KEYDB_HANDLE kh = NULL; GCRY_MD_HD data_md = NULL; - struct reader_cb_parm_s rparm; int signer; const char *algoid; int algo; - memset (&rparm, 0, sizeof rparm); - if (!detached) { rc = seterr (Not_Implemented); @@ -140,25 +130,10 @@ gpgsm_sign (CTRL ctrl, int data_fd, int detached, FILE *out_fp) goto leave; } - rparm.fp = fdopen ( dup (data_fd), "rb"); - if (!rparm.fp) - { - log_error ("fdopen() failed: %s\n", strerror (errno)); - rc = seterr (IO_Error); - goto leave; - } - - writer = ksba_writer_new (); - if (!writer) - { - rc = seterr (Out_Of_Core); - goto leave; - } - rc = ksba_writer_set_file (writer, out_fp); + rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - ksba_writer_release (writer); - rc = map_ksba_err (rc); + log_error ("can't create writer: %s\n", gnupg_strerror (rc)); goto leave; } @@ -357,10 +332,8 @@ gpgsm_sign (CTRL ctrl, int data_fd, int detached, FILE *out_fp) leave: ksba_cms_release (cms); - ksba_writer_release (writer); + gpgsm_destroy_writer (b64writer); keydb_release (kh); gcry_md_close (data_md); - if (rparm.fp) - fclose (rparm.fp); return rc; } |