mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-17 15:44:34 +02:00
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.
This commit is contained in:
parent
1575678710
commit
cfb193a1de
@ -30,7 +30,7 @@
|
|||||||
#include "cipher.h"
|
#include "cipher.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
#include "status.h"
|
||||||
|
|
||||||
static int mdc_decode_filter( void *opaque, int control, IOBUF a,
|
static int mdc_decode_filter( void *opaque, int control, IOBUF a,
|
||||||
byte *buf, size_t *ret_len);
|
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 );
|
log_info(_("encrypted with unknown algorithm %d\n"), dek->algo );
|
||||||
dek->algo_info_printed = 1;
|
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)) )
|
if( (rc=check_cipher_algo(dek->algo)) )
|
||||||
goto leave;
|
goto leave;
|
||||||
blocksize = cipher_get_blocksize(dek->algo);
|
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) );
|
log_error("key setup failed: %s\n", g10_errstr(rc) );
|
||||||
goto leave;
|
goto leave;
|
||||||
|
|
||||||
}
|
}
|
||||||
if (!ed->buf) {
|
if (!ed->buf) {
|
||||||
log_error(_("problem handling encrypted packet\n"));
|
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 calculated:",md_read( dfx->mdc_hash, 0), datalen);*/
|
||||||
/*log_hexdump("MDC message :", dfx->defer, 20);*/
|
/*log_hexdump("MDC message :", dfx->defer, 20);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
release_dfx_context (dfx);
|
release_dfx_context (dfx);
|
||||||
|
29
g10/status.c
29
g10/status.c
@ -75,7 +75,7 @@ progress_cb ( void *ctx, int c )
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
get_status_string ( int no )
|
get_status_string ( int no )
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
@ -165,6 +165,7 @@ get_status_string ( int no )
|
|||||||
case STATUS_PKA_TRUST_GOOD : s = "PKA_TRUST_GOOD"; break;
|
case STATUS_PKA_TRUST_GOOD : s = "PKA_TRUST_GOOD"; break;
|
||||||
case STATUS_BEGIN_SIGNING : s = "BEGIN_SIGNING"; break;
|
case STATUS_BEGIN_SIGNING : s = "BEGIN_SIGNING"; break;
|
||||||
case STATUS_ERROR : s = "ERROR"; break;
|
case STATUS_ERROR : s = "ERROR"; break;
|
||||||
|
case STATUS_DECRYPTION_INFO: s = "DECRYPTION_INFO"; break;
|
||||||
default: s = "?"; break;
|
default: s = "?"; break;
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
@ -187,13 +188,13 @@ status_currently_allowed (int no)
|
|||||||
prompt the user. */
|
prompt the user. */
|
||||||
switch (no)
|
switch (no)
|
||||||
{
|
{
|
||||||
case STATUS_GET_BOOL:
|
case STATUS_GET_BOOL:
|
||||||
case STATUS_GET_LINE:
|
case STATUS_GET_LINE:
|
||||||
case STATUS_GET_HIDDEN:
|
case STATUS_GET_HIDDEN:
|
||||||
case STATUS_GOT_IT:
|
case STATUS_GOT_IT:
|
||||||
case STATUS_IMPORTED:
|
case STATUS_IMPORTED:
|
||||||
case STATUS_IMPORT_OK:
|
case STATUS_IMPORT_OK:
|
||||||
case STATUS_IMPORT_CHECK:
|
case STATUS_IMPORT_CHECK:
|
||||||
case STATUS_IMPORT_RES:
|
case STATUS_IMPORT_RES:
|
||||||
return 1; /* Yes. */
|
return 1; /* Yes. */
|
||||||
default:
|
default:
|
||||||
@ -214,7 +215,7 @@ set_status_fd ( int fd )
|
|||||||
if ( statusfp && statusfp != stdout && statusfp != stderr )
|
if ( statusfp && statusfp != stdout && statusfp != stderr )
|
||||||
fclose (statusfp);
|
fclose (statusfp);
|
||||||
statusfp = NULL;
|
statusfp = NULL;
|
||||||
if ( fd == -1 )
|
if ( fd == -1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( fd == 1 )
|
if( fd == 1 )
|
||||||
@ -260,7 +261,7 @@ write_status_text ( int no, const char *text)
|
|||||||
fputs ( "\\n", statusfp );
|
fputs ( "\\n", statusfp );
|
||||||
else if (*text == '\r')
|
else if (*text == '\r')
|
||||||
fputs ( "\\r", statusfp );
|
fputs ( "\\r", statusfp );
|
||||||
else
|
else
|
||||||
putc ( *(const byte *)text, statusfp );
|
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) )
|
if( !statusfp || !status_currently_allowed (no) )
|
||||||
return; /* Not enabled or allowed. */
|
return; /* Not enabled or allowed. */
|
||||||
|
|
||||||
if (wrap == -1) {
|
if (wrap == -1) {
|
||||||
lower_limit--;
|
lower_limit--;
|
||||||
wrap = 0;
|
wrap = 0;
|
||||||
@ -306,8 +307,8 @@ write_status_text_and_buffer ( int no, const char *string,
|
|||||||
first = 0;
|
first = 0;
|
||||||
}
|
}
|
||||||
for (esc=0, s=buffer, n=len; n && !esc; s++, n-- ) {
|
for (esc=0, s=buffer, n=len; n && !esc; s++, n-- ) {
|
||||||
if ( *s == '%' || *(const byte*)s <= lower_limit
|
if ( *s == '%' || *(const byte*)s <= lower_limit
|
||||||
|| *(const byte*)s == 127 )
|
|| *(const byte*)s == 127 )
|
||||||
esc = 1;
|
esc = 1;
|
||||||
if ( wrap && ++count > wrap ) {
|
if ( wrap && ++count > wrap ) {
|
||||||
dowrap=1;
|
dowrap=1;
|
||||||
@ -317,7 +318,7 @@ write_status_text_and_buffer ( int no, const char *string,
|
|||||||
if (esc) {
|
if (esc) {
|
||||||
s--; n++;
|
s--; n++;
|
||||||
}
|
}
|
||||||
if (s != buffer)
|
if (s != buffer)
|
||||||
fwrite (buffer, s-buffer, 1, statusfp );
|
fwrite (buffer, s-buffer, 1, statusfp );
|
||||||
if ( esc ) {
|
if ( esc ) {
|
||||||
fprintf (statusfp, "%%%02X", *(const byte*)s );
|
fprintf (statusfp, "%%%02X", *(const byte*)s );
|
||||||
@ -535,7 +536,7 @@ myread(int fd, void *buf, size_t count)
|
|||||||
raise (SIGHUP); /* no more input data */
|
raise (SIGHUP); /* no more input data */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,6 +120,8 @@
|
|||||||
|
|
||||||
#define STATUS_ERROR 85
|
#define STATUS_ERROR 85
|
||||||
|
|
||||||
|
#define STATUS_DECRYPTION_INFO 86
|
||||||
|
|
||||||
|
|
||||||
/*-- status.c --*/
|
/*-- status.c --*/
|
||||||
void set_status_fd ( int fd );
|
void set_status_fd ( int fd );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user