aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pubkey-enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/pubkey-enc.c')
-rw-r--r--g10/pubkey-enc.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index 7fd3101bd..0525f336f 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -50,36 +50,20 @@ get_session_key( PKT_pubkey_enc *k, DEK *dek )
goto leave;
if( k->pubkey_algo == PUBKEY_ALGO_ELGAMAL ) {
- ELG_secret_key skey;
-
if( DBG_CIPHER ) {
log_mpidump("Encr DEK a:", k->d.elg.a );
log_mpidump(" DEK b:", k->d.elg.b );
}
- skey.p = skc->d.elg.p;
- skey.g = skc->d.elg.g;
- skey.y = skc->d.elg.y;
- skey.x = skc->d.elg.x;
- plain_dek = mpi_alloc_secure( mpi_get_nlimbs(skey.p) );
- elg_decrypt( plain_dek, k->d.elg.a, k->d.elg.b, &skey );
- memset( &skey, 0, sizeof skey );
+ plain_dek = mpi_alloc_secure( mpi_get_nlimbs(skc->d.elg.p) );
+ elg_decrypt( plain_dek, k->d.elg.a, k->d.elg.b, &skc->d.elg );
}
#ifdef HAVE_RSA_CIPHER
else if( k->pubkey_algo == PUBKEY_ALGO_RSA ) {
- RSA_secret_key skey;
-
if( DBG_CIPHER )
log_mpidump("Encr DEK frame:", k->d.rsa.rsa_integer );
- skey.e = skc->d.rsa.rsa_e;
- skey.n = skc->d.rsa.rsa_n;
- skey.p = skc->d.rsa.rsa_p;
- skey.q = skc->d.rsa.rsa_q;
- skey.d = skc->d.rsa.rsa_d;
- skey.u = skc->d.rsa.rsa_u;
- plain_dek = mpi_alloc_secure( mpi_get_nlimbs(skey.n) );
- rsa_secret( plain_dek, k->d.rsa.rsa_integer, &skey );
- memset( &skey, 0, sizeof skey );
+ plain_dek = mpi_alloc_secure( mpi_get_nlimbs(skc->d.rsa.n) );
+ rsa_secret( plain_dek, k->d.rsa.rsa_integer, &skc->d.rsa );
}
#endif/*HAVE_RSA_CIPHER*/
else {