1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

* 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.
This commit is contained in:
Werner Koch 2001-11-27 17:40:09 +00:00
parent 5a6a2ca248
commit 944fee70bc
10 changed files with 782 additions and 331 deletions

View file

@ -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;
}