On Tue, Sep 12, 2000, Jeffrey Altman wrote:

> What you are saying is that RAND_status() is going to call RAND_poll()
> regardless of whether or not the PRNG has been seeded.  In other
> words, you are saying that you do not trust (and I don't really blame
> you) the application author to know how to see the PRNG.  

Unfortunately there is evidence (lots!) that application authors cannot
be trusted to seed the PRNG. I recommend reading Peter Gutmann's PRNG
paper for some examples. The algorithm used in RNAD_poll() also comes
from Peter's paper.

> I agree 100% with this.  RAND_poll() should only be called if proper
> seeding has not been done.  Perhaps you can add a function that allows
> the knowledgeable application designer to set the "initialized" flag
> when the work has been done.

That sounds reasonable.

> In the meantime, I suggest that the if (kernel) if (snap ...) section
> of RAND_poll() be rewritten to only read the first HEAPENTRY32 struct
> of each HEAPLIST32.  And that a mechanism be provided for application
> developers to perform proper seeding prior to calling RAND_status().
 
> Also, I would suggest that RAND_screen() be changed to call
> ssleay_rand_bytes() instead of RAND_poll() since neither readscreen()
> nor RAND_poll() are capable of setting the 'initialized' flag which is
> a static in md_rand.c

Thanks for the suggestions. Right now it doesn't quite work the way it
was intended. I don't have much time at the moment, but if nobody else
does it, I'll try to fix it for beta2.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to