
Bleichenbacher's DSA attack. With this implementation, the expected number of iterations never exceeds 2. New semantics for BN_rand_range(): BN_rand_range(r, min, range) now generates r such that min <= r < min+range. (Previously, BN_rand_range(r, min, max) generated r such that min <= r < max. It is more convenient to have the range; also the previous prototype was misleading because max was larger than the actual maximum.)
The stuff in here is based on patches supplied to me by Steven Schoch <schoch@sheba.arc.nasa.gov> to do DSS. I have since modified a them a little but a debt of gratitude is due for doing the initial work.