On Tue, Mar 16, 2010 at 6:25 PM, Dr. Stephen Henson <st...@openssl.org> wrote:
> On Tue, Mar 16, 2010, Mathieu Malaterre wrote:
>
>> Hi there,
>>
>>  I am looking at an old piece of code:
>>
>> http://cpansearch.perl.org/src/SAMPO/smime-0.7/smimeutil.c
>>
>> ...
>> #ifdef WINDOWS
>>   LOG_PRINT("RAND_screen...");
>>   RAND_screen(); /* Loading video display memory into random state */
>> #endif
>> ...
>>
>>   And I was wondering why RAND_screen was being called only on windows ?
>>
>
> It was used at one point for PRNG seeding. Now OpenSSL gathers entropy from a
> number of OS specific sources and doesn't need the explicit call any more.

What do you mean 'doesn't anymore' ? I am looking at openssl 0.9.8m
and it reveal:

cat ./apps/smime.c
...
        else if (operation == SMIME_ENCRYPT)
                {
...
                need_rand = 1;
                }
...
        if (need_rand)
                {
                app_RAND_load_file(NULL, bio_err, (inrand != NULL));
...

which in turn:

cat apps/app_rand.c
...
int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn)
  {
  int consider_randfile = (file == NULL);
  char buffer[200];

#ifdef OPENSSL_SYS_WINDOWS
  BIO_printf(bio_e,"Loading 'screen' into random state -");
  BIO_flush(bio_e);
  RAND_screen();
  BIO_printf(bio_e," done\n");
#endif
...

Did I misunderstood something ? This is still in use in 0.9.8m, right
? Should I use another function instead ?

Thanks again for your help,
-- 
Mathieu
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to