pike.git / src / builtin.cmod

version» Context lines:

pike.git/src/builtin.cmod:2204:   PIKECLASS RandomSystem   {    INHERIT RandomInterface;    CVAR HCRYPTPROV handle;       INIT    {    THIS->handle = NULL;    }    -  PIKEFUN string random_string(int(0..) len) +  PIKEFUN string(8bit) random_string(int len)    { -  +  if( len<1 ) +  RETURN empty_pike_string;    if(!crypto_handle)    {    if( !CryptAcquireContext(&THIS->handle, 0, 0, PROV_RSA_FULL,    CRYPT_VERIFYCONTEXT|CRYPT_SILENT) )    Pike_error("Failed to set up Crypto Service.\n");    }       struct pike_string *res = begin_shared_string(size);    if( !CryptGenRandom(THIS->handle, size, (BYTE*)res->str) )    {
pike.git/src/builtin.cmod:2239:    INIT    {    THIS->fd = -1;    }       EXIT    {    close(THIS->fd);    }    -  PIKEFUN string random_string(int(0..) len) +  PIKEFUN string(8bit) random_string(int len)    { -  +  if( len<1 ) +  RETURN empty_pike_string; +     if( THIS->fd==-1 )    {    THIS->fd = open("/dev/urandom", O_RDONLY);    if( THIS->fd==-1 )    Pike_error("Failed to open /dev/urandom.\n");    }       struct pike_string *ret = begin_shared_string(len);    char* str = ret->str;    while( len )