aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoritz Schulte <[email protected]>2004-07-19 16:21:18 +0000
committerMoritz Schulte <[email protected]>2004-07-19 16:21:18 +0000
commit7a8d82b412ce2d56bb785157143d010dd04b5eb0 (patch)
tree0d8f22f41a23856cf12613c6df1b19ca49750599
parent2004-07-19 Moritz Schulte <[email protected]> (diff)
downloadgnupg-7a8d82b412ce2d56bb785157143d010dd04b5eb0.tar.gz
gnupg-7a8d82b412ce2d56bb785157143d010dd04b5eb0.zip
2004-07-19 Moritz Schulte <[email protected]>
* command-ssh.c (ssh_identity_register): passphrase must not be freed.
-rw-r--r--agent/ChangeLog2
-rw-r--r--agent/command-ssh.c23
2 files changed, 21 insertions, 4 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog
index 7293e23ce..b80cbead2 100644
--- a/agent/ChangeLog
+++ b/agent/ChangeLog
@@ -1,5 +1,7 @@
2004-07-19 Moritz Schulte <[email protected]>
+ * command-ssh.c (ssh_identity_register): passphrase must not be freed.
+
* Makefile.am (gpg_agent_SOURCES): Adding: gpg-stream.c,
gpg-stream.h, buffer.c, buffer.h, command-ssh.c.
diff --git a/agent/command-ssh.c b/agent/command-ssh.c
index cc8144e22..a487c9f06 100644
--- a/agent/command-ssh.c
+++ b/agent/command-ssh.c
@@ -486,14 +486,32 @@ ssh_receive_key_secret (gpg_stream_t stream, ssh_key_secret_t *key_secret)
if (err)
break;
+ log_debug ("key->p = ");
+ gcry_mpi_dump (key.material.rsa.p);
+ log_debug ("\n");
+ log_debug ("key->q = ");
+ gcry_mpi_dump (key.material.rsa.q);
+ log_debug ("\n");
+ log_debug ("key->u = ");
+ gcry_mpi_dump (key.material.rsa.iqmp);
+ log_debug ("\n");
+
if (gcry_mpi_cmp (key.material.rsa.p, key.material.rsa.q))
{
/* P shall be smaller then Q! */
gcry_mpi_t tmp = NULL;
+ log_debug ("p >= q! swapping primes.\n");
+
tmp = key.material.rsa.p;
key.material.rsa.p = key.material.rsa.q;
key.material.rsa.q = tmp;
+
+ gcry_mpi_invm (key.material.rsa.iqmp, key.material.rsa.p, key.material.rsa.q);
+
+ log_debug ("new key->u = ");
+ gcry_mpi_dump (key.material.rsa.iqmp);
+ log_debug ("\n");
}
break;
@@ -1308,10 +1326,7 @@ ssh_identity_register (ssh_key_secret_t *key, int ttl)
out:
- if (passphrase)
- gcry_free (passphrase);
- if (buffer)
- free (buffer);
+ free (buffer);
return err;
}