aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2012-01-13 15:20:53 +0000
committerWerner Koch <[email protected]>2012-01-13 15:20:53 +0000
commitcfb193a1de2f0553ee65a19a417a885938539225 (patch)
treef66c1d8655d4f77a807a3e0cafaaea99c1e0cf7d
parentInclude bzip2 code to ease building for W32. (diff)
downloadgnupg-cfb193a1de2f0553ee65a19a417a885938539225.tar.gz
gnupg-cfb193a1de2f0553ee65a19a417a885938539225.zip
Add a DECRYPTION_INFO status.
* g10/status.h (STATUS_DECRYPTION_INFO): New. * g10/status.c (get_status_string): Add new status string. * g10/encr-data.c: Include status.h. (decrypt_data): Print STATUS_DECRYPTION_INFO. -- This is backport of commit 5667e33. DECRYPTION_INFO <mdc_method> <sym_algo> Print information about the symmetric encryption algorithm and the MDC method. This will be emitted even if the decryption fails.
-rw-r--r--g10/encr-data.c15
-rw-r--r--g10/status.c29
-rw-r--r--g10/status.h2
3 files changed, 29 insertions, 17 deletions
diff --git a/g10/encr-data.c b/g10/encr-data.c
index 8347e2a35..a591bebf7 100644
--- a/g10/encr-data.c
+++ b/g10/encr-data.c
@@ -30,7 +30,7 @@
#include "cipher.h"
#include "options.h"
#include "i18n.h"
-
+#include "status.h"
static int mdc_decode_filter( void *opaque, int control, IOBUF a,
byte *buf, size_t *ret_len);
@@ -91,6 +91,15 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
log_info(_("encrypted with unknown algorithm %d\n"), dek->algo );
dek->algo_info_printed = 1;
}
+
+
+ {
+ char buf[20];
+
+ snprintf (buf, sizeof buf, "%d %d", ed->mdc_method, dek->algo);
+ write_status_text (STATUS_DECRYPTION_INFO, buf);
+ }
+
if( (rc=check_cipher_algo(dek->algo)) )
goto leave;
blocksize = cipher_get_blocksize(dek->algo);
@@ -120,7 +129,7 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
{
log_error("key setup failed: %s\n", g10_errstr(rc) );
goto leave;
-
+
}
if (!ed->buf) {
log_error(_("problem handling encrypted packet\n"));
@@ -199,7 +208,7 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
/*log_hexdump("MDC calculated:",md_read( dfx->mdc_hash, 0), datalen);*/
/*log_hexdump("MDC message :", dfx->defer, 20);*/
}
-
+
leave:
release_dfx_context (dfx);
diff --git a/g10/status.c b/g10/status.c
index 217856fc3..9ce9ca87b 100644
--- a/g10/status.c
+++ b/g10/status.c
@@ -75,7 +75,7 @@ progress_cb ( void *ctx, int c )
}
static const char *
-get_status_string ( int no )
+get_status_string ( int no )
{
const char *s;
@@ -165,6 +165,7 @@ get_status_string ( int no )
case STATUS_PKA_TRUST_GOOD : s = "PKA_TRUST_GOOD"; break;
case STATUS_BEGIN_SIGNING : s = "BEGIN_SIGNING"; break;
case STATUS_ERROR : s = "ERROR"; break;
+ case STATUS_DECRYPTION_INFO: s = "DECRYPTION_INFO"; break;
default: s = "?"; break;
}
return s;
@@ -187,13 +188,13 @@ status_currently_allowed (int no)
prompt the user. */
switch (no)
{
- case STATUS_GET_BOOL:
- case STATUS_GET_LINE:
- case STATUS_GET_HIDDEN:
- case STATUS_GOT_IT:
+ case STATUS_GET_BOOL:
+ case STATUS_GET_LINE:
+ case STATUS_GET_HIDDEN:
+ case STATUS_GOT_IT:
case STATUS_IMPORTED:
- case STATUS_IMPORT_OK:
- case STATUS_IMPORT_CHECK:
+ case STATUS_IMPORT_OK:
+ case STATUS_IMPORT_CHECK:
case STATUS_IMPORT_RES:
return 1; /* Yes. */
default:
@@ -214,7 +215,7 @@ set_status_fd ( int fd )
if ( statusfp && statusfp != stdout && statusfp != stderr )
fclose (statusfp);
statusfp = NULL;
- if ( fd == -1 )
+ if ( fd == -1 )
return;
if( fd == 1 )
@@ -260,7 +261,7 @@ write_status_text ( int no, const char *text)
fputs ( "\\n", statusfp );
else if (*text == '\r')
fputs ( "\\r", statusfp );
- else
+ else
putc ( *(const byte *)text, statusfp );
}
}
@@ -287,7 +288,7 @@ write_status_text_and_buffer ( int no, const char *string,
if( !statusfp || !status_currently_allowed (no) )
return; /* Not enabled or allowed. */
-
+
if (wrap == -1) {
lower_limit--;
wrap = 0;
@@ -306,8 +307,8 @@ write_status_text_and_buffer ( int no, const char *string,
first = 0;
}
for (esc=0, s=buffer, n=len; n && !esc; s++, n-- ) {
- if ( *s == '%' || *(const byte*)s <= lower_limit
- || *(const byte*)s == 127 )
+ if ( *s == '%' || *(const byte*)s <= lower_limit
+ || *(const byte*)s == 127 )
esc = 1;
if ( wrap && ++count > wrap ) {
dowrap=1;
@@ -317,7 +318,7 @@ write_status_text_and_buffer ( int no, const char *string,
if (esc) {
s--; n++;
}
- if (s != buffer)
+ if (s != buffer)
fwrite (buffer, s-buffer, 1, statusfp );
if ( esc ) {
fprintf (statusfp, "%%%02X", *(const byte*)s );
@@ -535,7 +536,7 @@ myread(int fd, void *buf, size_t count)
raise (SIGHUP); /* no more input data */
#endif
}
- }
+ }
return rc;
}
diff --git a/g10/status.h b/g10/status.h
index cbc6e7eaa..61a0fcef9 100644
--- a/g10/status.h
+++ b/g10/status.h
@@ -120,6 +120,8 @@
#define STATUS_ERROR 85
+#define STATUS_DECRYPTION_INFO 86
+
/*-- status.c --*/
void set_status_fd ( int fd );