From 79fecc456499cc12e56e373871991cf804468a9d Mon Sep 17 00:00:00 2001 From: Robey Pointer Date: Sun, 9 Nov 2003 20:59:51 +0000 Subject: [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. --- kex_gex.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'kex_gex.py') diff --git a/kex_gex.py b/kex_gex.py index cf4b6d3c..2b6e11cd 100644 --- a/kex_gex.py +++ b/kex_gex.py @@ -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 -- cgit v1.2.3