mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Change --show-session-key to print the session key earlier.
* g10/cpr.c (write_status_strings): New. (write_status_text): Replace code by a call to write_status_strings. * g10/mainproc.c (proc_encrypted): Remove show_session_key code. * g10/decrypt-data.c (decrypt_data): Add new show_session_key code. -- This feature can be used to return the session key for just a part of a file. For example to downloading just the first 32k of a huge file, decrypting that incomplete part and while ignoring all the errors break out the session key. The session key may then be used on the server to decrypt the entire file without the need to have the private key on the server. GnuPG-bug-id: 1389 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
59207a86e5
commit
101a54add3
5 changed files with 50 additions and 21 deletions
|
@ -570,6 +570,7 @@ proc_encrypted( CTX c, PACKET *pkt )
|
|||
}
|
||||
else if( !c->dek )
|
||||
result = G10ERR_NO_SECKEY;
|
||||
|
||||
if (!result)
|
||||
result = decrypt_data (c->ctrl, c, pkt->pkt.encrypted, c->dek );
|
||||
|
||||
|
@ -584,16 +585,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 ) {
|
||||
glo_ctrl.lasterr = result;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue