[or-cvs] Oops. It looks like there *was* an easy way to make openssl...

Nick Mathewson nickm at seul.org
Mon Nov 14 19:18:33 UTC 2005


Update of /home/or/cvsroot/tor/src/common
In directory moria:/tmp/cvs-serv15473/common

Modified Files:
	crypto.c 
Log Message:
Oops. It looks like there *was* an easy way to make openssl do what we wanted.

Index: crypto.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/common/crypto.c,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -d -r1.174 -r1.175
--- crypto.c	11 Nov 2005 21:44:38 -0000	1.174
+++ crypto.c	14 Nov 2005 19:18:31 -0000	1.175
@@ -1361,6 +1361,8 @@
   dh_param_g = g;
 }
 
+#define DH_PRIVATE_KEY_BITS 320
+
 /** Allocate and return a new DH object for a key exchange.
  */
 crypto_dh_env_t *
@@ -1382,6 +1384,8 @@
   if (!(res->dh->g = BN_dup(dh_param_g)))
     goto err;
 
+  res->dh->length = DH_PRIVATE_KEY_BITS;
+
   return res;
  err:
   crypto_log_errors(LOG_WARN, "creating DH object");
@@ -1390,8 +1394,6 @@
   return NULL;
 }
 
-#define DH_PRIVATE_KEY_BITS 320
-
 /** Return the length of the DH key in <b>dh</b>, in bytes.
  */
 int
@@ -1407,22 +1409,7 @@
 int
 crypto_dh_generate_public(crypto_dh_env_t *dh)
 {
-  int pk_bits = BN_num_bits(dh->dh->p);
-  if (pk_bits > DH_PRIVATE_KEY_BITS)
-    pk_bits = DH_PRIVATE_KEY_BITS;
  again:
-  if (!dh->dh->priv_key) {
-    dh->dh->priv_key = BN_new();
-    if (!dh->dh->priv_key) {
-      err(LD_MM, "Unable to allocate BN.");
-      return -1;
-    }
-  }
-  /* We generate the key ourselves so that we can get a 2-3x speedup by using
-   * a 320-bit x instead of a 1024-bit x. */
-  if (!BN_rand(dh->dh->priv_key, pk_bits, 0, 0)) {
-    crypto_log_errors(LOG_WARN, "Generating DH private key");
-  }
   if (!DH_generate_key(dh->dh)) {
     crypto_log_errors(LOG_WARN, "generating DH key");
     return -1;



More information about the tor-commits mailing list