diff options
author | Werner Koch <[email protected]> | 2010-03-08 12:22:18 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2010-03-08 12:22:18 +0000 |
commit | 943aaf0cba2c222f740b2f81725739cfb6e6ec72 (patch) | |
tree | 267ee23ec1a0f7257e6e680cc5b0412fd7b7f3cd /sm/sign.c | |
parent | Changes required to use estream in gpgsm. (diff) | |
download | gnupg-943aaf0cba2c222f740b2f81725739cfb6e6ec72.tar.gz gnupg-943aaf0cba2c222f740b2f81725739cfb6e6ec72.zip |
Replace use stdio by estream functions.
Diffstat (limited to 'sm/sign.c')
-rw-r--r-- | sm/sign.c | 36 |
1 files changed, 19 insertions, 17 deletions
@@ -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)); |