diff options
author | Kévin THIERRY <kevin.thierry@open.eurogiciel.org> | 2014-11-13 09:26:18 +0100 |
---|---|---|
committer | Kévin THIERRY <kevin.thierry@open.eurogiciel.org> | 2014-11-13 09:26:18 +0100 |
commit | e87a22655de485af790db1d4c51f4bc166a2bbd6 (patch) | |
tree | 93d088c2bc13d9a26e6f24b70936d998bd1404df /g10/encr-data.c | |
parent | 6576640b55777bd811a12a188b9b1f3c63653799 (diff) | |
download | gpg2-e87a22655de485af790db1d4c51f4bc166a2bbd6.tar.gz gpg2-e87a22655de485af790db1d4c51f4bc166a2bbd6.tar.bz2 gpg2-e87a22655de485af790db1d4c51f4bc166a2bbd6.zip |
Imported Upstream version 2.0.26upstream/2.0.26
Diffstat (limited to 'g10/encr-data.c')
-rw-r--r-- | g10/encr-data.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/g10/encr-data.c b/g10/encr-data.c index 602ae55..c5c3c19 100644 --- a/g10/encr-data.c +++ b/g10/encr-data.c @@ -104,6 +104,23 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek ) write_status_text (STATUS_DECRYPTION_INFO, buf); } + if (opt.show_session_key) + { + char numbuf[25]; + char *hexbuf; + + snprintf (numbuf, sizeof numbuf, "%d:", dek->algo); + hexbuf = bin2hex (dek->key, dek->keylen, NULL); + if (!hexbuf) + { + rc = gpg_error_from_syserror (); + goto leave; + } + log_info ("session key: '%s%s'\n", numbuf, hexbuf); + write_status_strings (STATUS_SESSION_KEY, numbuf, hexbuf, NULL); + xfree (hexbuf); + } + rc = openpgp_cipher_test_algo (dek->algo); if (rc) goto leave; @@ -119,7 +136,7 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek ) if (gcry_md_open (&dfx->mdc_hash, ed->mdc_method, 0 )) BUG (); if ( DBG_HASHING ) - gcry_md_start_debug (dfx->mdc_hash, "checkmdc"); + gcry_md_debug (dfx->mdc_hash, "checkmdc"); } rc = openpgp_cipher_open (&dfx->cipher_hd, dek->algo, @@ -223,14 +240,10 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek ) gcry_md_write (dfx->mdc_hash, dfx->defer, 2); gcry_md_final (dfx->mdc_hash); - if (dfx->defer[0] != '\xd3' || dfx->defer[1] != '\x14' ) - { - log_error("mdc_packet with invalid encoding\n"); - rc = gpg_error (GPG_ERR_INV_PACKET); - } - else if (datalen != 20 - || memcmp (gcry_md_read (dfx->mdc_hash, 0), - dfx->defer+2,datalen )) + if ( dfx->defer[0] != '\xd3' + || dfx->defer[1] != '\x14' + || datalen != 20 + || memcmp (gcry_md_read (dfx->mdc_hash, 0), dfx->defer+2, datalen)) rc = gpg_error (GPG_ERR_BAD_SIGNATURE); /* log_printhex("MDC message:", dfx->defer, 22); */ /* log_printhex("MDC calc:", gcry_md_read (dfx->mdc_hash,0), datalen); */ |