Home
|
FAQ
|
Feedback
|
Licence
|
Updates
|
Mirrors
|
Keys
|
Links
|
Team
Download:
Stable
·
Snapshot
|
Docs
|
Changes
|
Wishlist
sshbn.c contains conditionally-activated optimised code for x86 processors which uses 32-bit chunks instead of 16-bit ones, and a small amount of inline assembler to force fast arithmetic with these chunks. This makes a noticeable difference to bignum operations such as at SSH connection setup.
We only have appropriate compiler goop for GCC/x86 currently, so this code will only be activated on many Linux/Unix x86 builds and MinGW/Cygwin Windows builds; in particular, it's not in our standard Windows builds, which are done with MS Visual C.
It would be nice if we could enable the C bit of the optimisation on more processors. In particular, it might be handy on the Mac port, if any of the slower Mac processors can get anything out of it.
Update, 2005-11-23: part of a patch from Lionel Fourquaux that enables this optimisation has now been applied. Since this fixes the overwhelmingly common case, I'm going to declare this fixed, although patches for other compilers/platforms are still welcome.
Here's an example comparing r6460 with r6469 (built with the same compiler), on a slow (P233) client connecting to a fast (Athlon 1800) server:
DH group exchange | 4096-bit RSA2 user auth | |
---|---|---|
Vanilla VC | 12s/11s/11s | 124s/124s/123s |
Optimised VC | 3s/3s/3s | 31s/30s/31s |