diff options
-rw-r--r-- | g10/encr-data.c | 10 | ||||
-rw-r--r-- | g10/mainproc.c | 11 |
2 files changed, 11 insertions, 10 deletions
diff --git a/g10/encr-data.c b/g10/encr-data.c index a591bebf7..8d277ce2e 100644 --- a/g10/encr-data.c +++ b/g10/encr-data.c @@ -100,6 +100,16 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek ) write_status_text (STATUS_DECRYPTION_INFO, buf); } + if (opt.show_session_key) + { + char *buf = xmalloc (dek->keylen*2 + 20); + sprintf (buf, "%d:", dek->algo); + for (i=0; i < dek->keylen; i++ ) + sprintf(buf+strlen(buf), "%02X", dek->key[i] ); + log_info ("session key: `%s'\n", buf); + write_status_text (STATUS_SESSION_KEY, buf); + } + if( (rc=check_cipher_algo(dek->algo)) ) goto leave; blocksize = cipher_get_blocksize(dek->algo); diff --git a/g10/mainproc.c b/g10/mainproc.c index d03a9a700..5b6d8db04 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -587,6 +587,7 @@ proc_encrypted( CTX c, PACKET *pkt ) } else if( !c->dek ) result = G10ERR_NO_SECKEY; + if( !result ) result = decrypt_data( c, pkt->pkt.encrypted, c->dek ); @@ -600,16 +601,6 @@ proc_encrypted( CTX c, PACKET *pkt ) write_status( STATUS_GOODMDC ); else if(!opt.no_mdc_warn) log_info (_("WARNING: message was not integrity protected\n")); - if(opt.show_session_key) - { - int i; - char *buf = xmalloc ( c->dek->keylen*2 + 20 ); - sprintf ( buf, "%d:", c->dek->algo ); - for(i=0; i < c->dek->keylen; i++ ) - sprintf(buf+strlen(buf), "%02X", c->dek->key[i] ); - log_info( "session key: `%s'\n", buf ); - write_status_text ( STATUS_SESSION_KEY, buf ); - } } else if( result == G10ERR_BAD_SIGN ) { log_error(_("WARNING: encrypted message has been manipulated!\n")); |