Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       09 Jan 2003  19:28:23
 To : 3APA3A
 Subject : Re: Remote Administrator server
 -------------------------------------------------------------------------------- 
 
 
  3> По поводу стойкости pw_getrand - не знаю, не видел реализации.
 
 #ifndef lint
 static const char rcsid[] =
   "$FreeBSD: src/usr.sbin/pw/pw_user.c,v 1.34.2.12 2002/08/11 14:27:31 dwmalone 
 Exp $";
 #endif /* not lint */
 
 [skip]
 
 #if defined(USE_MD5RAND)
 u_char *
 pw_getrand(u_char *buf, int len)  /* cryptographically secure rng */
 {
   int i;
   for (i=0;i<len;i+=16) {
    u_char ubuf[16];
 
    MD5_CTX md5_ctx;
    struct timeval tv, tvo;
    struct rusage ru;
    int n=0;
    int t;
 
    MD5Init (&md5_ctx);
    t=getpid();
    MD5Update (&md5_ctx, (u_char*)&t, sizeof t);
    t=getppid();
    MD5Update (&md5_ctx, (u_char*)&t, sizeof t);
    gettimeofday (&tvo, NULL);
    do {
       getrusage (RUSAGE_SELF, &ru);
       MD5Update (&md5_ctx, (u_char*)&ru, sizeof ru);
       gettimeofday (&tv, NULL);
       MD5Update (&md5_ctx, (u_char*)&tv, sizeof tv);
    } while (n++<20 || tv.tv_usec-tvo.tv_usec<100*1000);
    MD5Final (ubuf, &md5_ctx);
    memcpy(buf+i, ubuf, MIN(16, len-i));
   }
   return buf;
 }
 
 Eugene
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.7.4 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Remote Administrator server   Eugene Grosbein   09 Jan 2003 19:28:23 
Архивное /ru.nethack/260937add4013.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional