summaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2009-09-30 20:47:11 +0200
committerWerner Koch <wk@gnupg.org>2009-09-30 20:47:11 +0200
commitfafe852c336de9bf26695bab055199509a4ea195 (patch)
treeeae24a02063b061bbafd815a025b4c4f0afc0639 /g10
parentSome changes to suport g13. (diff)
downloadgnupg2-fafe852c336de9bf26695bab055199509a4ea195.tar.xz
gnupg2-fafe852c336de9bf26695bab055199509a4ea195.zip
Re-indentation
Diffstat (limited to 'g10')
-rw-r--r--g10/decrypt.c94
-rw-r--r--g10/server.c31
2 files changed, 74 insertions, 51 deletions
diff --git a/g10/decrypt.c b/g10/decrypt.c
index ce400b022..c76c295c8 100644
--- a/g10/decrypt.c
+++ b/g10/decrypt.c
@@ -1,6 +1,6 @@
-/* decrypt.c - verify signed data
+/* decrypt.c - decrypt and verify data
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- * 2007 Free Software Foundation, Inc.
+ * 2007, 2009 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -36,67 +36,69 @@
#include "status.h"
#include "i18n.h"
-
-
-/****************
- * Assume that the input is an encrypted message and decrypt
+/* Assume that the input is an encrypted message and decrypt
* (and if signed, verify the signature on) it.
* This command differs from the default operation, as it never
* writes to the filename which is included in the file and it
* rejects files which don't begin with an encrypted message.
*/
-
int
-decrypt_message( const char *filename )
+decrypt_message (const char *filename)
{
- IOBUF fp;
- armor_filter_context_t *afx = NULL;
- progress_filter_context_t *pfx;
- int rc;
- int no_out = 0;
-
- pfx = new_progress_context ();
-
- /* Open the message file. */
- fp = iobuf_open(filename);
- if (fp && is_secured_file (iobuf_get_fd (fp)))
- {
- iobuf_close (fp);
- fp = NULL;
- errno = EPERM;
- }
- if( !fp ) {
- rc = gpg_error_from_syserror ();
- log_error (_("can't open `%s': %s\n"), print_fname_stdin(filename),
- gpg_strerror (rc));
- release_progress_context (pfx);
- return rc;
+ IOBUF fp;
+ armor_filter_context_t *afx = NULL;
+ progress_filter_context_t *pfx;
+ int rc;
+ int no_out = 0;
+
+ pfx = new_progress_context ();
+
+ /* Open the message file. */
+ fp = iobuf_open (filename);
+ if (fp && is_secured_file (iobuf_get_fd (fp)))
+ {
+ iobuf_close (fp);
+ fp = NULL;
+ errno = EPERM;
+ }
+ if ( !fp )
+ {
+ rc = gpg_error_from_syserror ();
+ log_error (_("can't open `%s': %s\n"), print_fname_stdin(filename),
+ gpg_strerror (rc));
+ release_progress_context (pfx);
+ return rc;
}
- handle_progress (pfx, fp, filename);
+ handle_progress (pfx, fp, filename);
- if( !opt.no_armor ) {
- if( use_armor_filter( fp ) ) {
- afx = new_armor_context ();
- push_armor_filter ( afx, fp );
+ if ( !opt.no_armor )
+ {
+ if ( use_armor_filter( fp ) )
+ {
+ afx = new_armor_context ();
+ push_armor_filter ( afx, fp );
}
}
- if( !opt.outfile ) {
- no_out = 1;
- opt.outfile = "-";
+ if (!opt.outfile)
+ {
+ no_out = 1;
+ opt.outfile = "-";
}
- rc = proc_encryption_packets( NULL, fp );
- if( no_out )
- opt.outfile = NULL;
- iobuf_close(fp);
- release_armor_context (afx);
- release_progress_context (pfx);
- return rc;
+ rc = proc_encryption_packets ( NULL, fp );
+ if (no_out)
+ opt.outfile = NULL;
+
+ iobuf_close (fp);
+ release_armor_context (afx);
+ release_progress_context (pfx);
+ return rc;
}
+
void
-decrypt_messages(int nfiles, char *files[])
+decrypt_messages (int nfiles, char *files[])
{
IOBUF fp;
armor_filter_context_t *afx = NULL;
diff --git a/g10/server.c b/g10/server.c
index 87a52d21f..33f9bb6ed 100644
--- a/g10/server.c
+++ b/g10/server.c
@@ -345,14 +345,33 @@ cmd_encrypt (assuan_context_t ctx, char *line)
/* DECRYPT
- This performs the decrypt operation after doing some checks on the
- internal state (e.g. that only needed data has been set). */
+ This performs the decrypt operation. */
static gpg_error_t
cmd_decrypt (assuan_context_t ctx, char *line)
{
- (void)ctx;
- (void)line;
- return gpg_error (GPG_ERR_NOT_SUPPORTED);
+ ctrl_t ctrl = assuan_get_pointer (ctx);
+ gpg_error_t err;
+ int inp_fd, out_fd;
+
+ (void)line; /* LINE is not used. */
+
+ inp_fd = translate_sys2libc_fd (assuan_get_input_fd (ctx), 0);
+ if (inp_fd == -1)
+ return set_error (GPG_ERR_ASS_NO_INPUT, NULL);
+ out_fd = translate_sys2libc_fd (assuan_get_output_fd (ctx), 1);
+ if (out_fd == -1)
+ return set_error (GPG_ERR_ASS_NO_OUTPUT, NULL);
+
+ err = gpg_error (GPG_ERR_NOT_IMPLEMENTED);
+
+ /* Close and reset the fds. */
+ close_message_fd (ctrl);
+ assuan_close_input_fd (ctx);
+ assuan_close_output_fd (ctx);
+
+ if (err)
+ log_error ("command '%s' failed: %s\n", "DECRYPT", gpg_strerror (err));
+ return err;
}
@@ -406,6 +425,8 @@ cmd_verify (assuan_context_t ctx, char *line)
assuan_close_input_fd (ctx);
assuan_close_output_fd (ctx);
+ if (rc)
+ log_error ("command '%s' failed: %s\n", "VERIFY", gpg_strerror (rc));
return rc;
}