diff options
author | Robey Pointer <robey@lag.net> | 2003-11-09 20:59:51 +0000 |
---|---|---|
committer | Robey Pointer <robey@lag.net> | 2003-11-09 20:59:51 +0000 |
commit | 79fecc456499cc12e56e373871991cf804468a9d (patch) | |
tree | d7d90acf36f17170b74836e824b003371d150b3d /kex_gex.py | |
parent | 7d4d90a8c52a722accd7bfedb84d5a6c62d3fc97 (diff) |
[project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-4]
change kex-gex server code to generate primes by hand
added a util function "generate_prime" to compare to the incredibly slow C
version, but it's no faster of course. i think kex-gex from the server is
just not going to be feasible without having a separate thread generate some
primes in the background to have handy when a request comes in. so in short,
this still doesn't work.
also i put bit_length into util and a tb_strings function which gets stack
traceback info and splits it into a list of strings.
Diffstat (limited to 'kex_gex.py')
-rw-r--r-- | kex_gex.py | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -4,7 +4,8 @@ # are provided by the server. a bit more work is required on our side (and a # LOT more on the server side). -from message import Message, inflate_long, deflate_long +from message import Message +from util import inflate_long, deflate_long, generate_prime from secsh import SSHException from transport import MSG_NEWKEYS from Crypto.Hash import SHA @@ -95,10 +96,11 @@ class KexGex(object): # generate prime while 1: # does not work FIXME + # the problem is that it's too fscking SLOW self.transport.log(DEBUG, 'stir...') self.transport.randpool.stir() self.transport.log(DEBUG, 'get-prime %d...' % preferred) - self.p = number.getPrime(preferred, self.transport.randpool.get_bytes) + self.p = generate_prime(preferred, self.transport.randpool) self.transport.log(DEBUG, 'got ' + repr(self.p)) if number.isPrime((self.p - 1) // 2): break |