aboutsummaryrefslogtreecommitdiffstats
path: root/sm/sign.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2010-03-08 12:22:18 +0000
committerWerner Koch <[email protected]>2010-03-08 12:22:18 +0000
commit943aaf0cba2c222f740b2f81725739cfb6e6ec72 (patch)
tree267ee23ec1a0f7257e6e680cc5b0412fd7b7f3cd /sm/sign.c
parentChanges required to use estream in gpgsm. (diff)
downloadgnupg-943aaf0cba2c222f740b2f81725739cfb6e6ec72.tar.gz
gnupg-943aaf0cba2c222f740b2f81725739cfb6e6ec72.zip
Replace use stdio by estream functions.
Diffstat (limited to 'sm/sign.c')
-rw-r--r--sm/sign.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/sm/sign.c b/sm/sign.c
index 2ab8b4266..e6ce05ddd 100644
--- a/sm/sign.c
+++ b/sm/sign.c
@@ -1,5 +1,6 @@
/* sign.c - Sign a message
- * Copyright (C) 2001, 2002, 2003, 2008 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002, 2003, 2008,
+ * 2010 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -38,12 +39,12 @@
static int
hash_data (int fd, gcry_md_hd_t md)
{
- FILE *fp;
+ estream_t fp;
char buffer[4096];
int nread;
int rc = 0;
- fp = fdopen ( dup (fd), "rb");
+ fp = es_fdopen_nc (fd, "rb");
if (!fp)
{
log_error ("fdopen(%d) failed: %s\n", fd, strerror (errno));
@@ -52,40 +53,41 @@ hash_data (int fd, gcry_md_hd_t md)
do
{
- nread = fread (buffer, 1, DIM(buffer), fp);
+ nread = es_fread (buffer, 1, DIM(buffer), fp);
gcry_md_write (md, buffer, nread);
}
while (nread);
- if (ferror (fp))
+ if (es_ferror (fp))
{
log_error ("read error on fd %d: %s\n", fd, strerror (errno));
rc = -1;
}
- fclose (fp);
+ es_fclose (fp);
return rc;
}
+
static int
hash_and_copy_data (int fd, gcry_md_hd_t md, ksba_writer_t writer)
{
gpg_error_t err;
- FILE *fp;
+ estream_t fp;
char buffer[4096];
int nread;
int rc = 0;
int any = 0;
- fp = fdopen ( dup (fd), "rb");
+ fp = es_fdopen_nc (fd, "rb");
if (!fp)
{
- gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
+ gpg_error_t tmperr = gpg_error_from_syserror ();
log_error ("fdopen(%d) failed: %s\n", fd, strerror (errno));
return tmperr;
}
do
{
- nread = fread (buffer, 1, DIM(buffer), fp);
+ nread = es_fread (buffer, 1, DIM(buffer), fp);
if (nread)
{
any = 1;
@@ -99,18 +101,18 @@ hash_and_copy_data (int fd, gcry_md_hd_t md, ksba_writer_t writer)
}
}
while (nread && !rc);
- if (ferror (fp))
+ if (es_ferror (fp))
{
- rc = gpg_error (gpg_err_code_from_errno (errno));
+ rc = gpg_error_from_syserror ();
log_error ("read error on fd %d: %s\n", fd, strerror (errno));
}
- fclose (fp);
+ es_fclose (fp);
if (!any)
{
/* We can't allow to sign an empty message because it does not
- make much sense and more seriously, ksba-cms_build has
+ make much sense and more seriously, ksba_cms_build has
already written the tag for data and now expects an octet
- string but an octet string of zeize 0 is illegal. */
+ string and an octet string of size 0 is illegal. */
log_error ("cannot sign an empty message\n");
rc = gpg_error (GPG_ERR_NO_DATA);
}
@@ -310,7 +312,7 @@ add_certificate_list (ctrl_t ctrl, ksba_cms_t cms, ksba_cert_t cert)
be used if the value of this argument is NULL. */
int
gpgsm_sign (ctrl_t ctrl, certlist_t signerlist,
- int data_fd, int detached, FILE *out_fp)
+ int data_fd, int detached, estream_t out_fp)
{
int i, rc;
gpg_error_t err;
@@ -338,7 +340,7 @@ gpgsm_sign (ctrl_t ctrl, certlist_t signerlist,
}
ctrl->pem_name = "SIGNED MESSAGE";
- rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, NULL, &writer);
+ rc = gpgsm_create_writer (&b64writer, ctrl, NULL, out_fp, &writer);
if (rc)
{
log_error ("can't create writer: %s\n", gpg_strerror (rc));