Changeset 481 for trunk/src/sh_entropy.c
- Timestamp:
- Jul 18, 2015, 5:06:52 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/sh_entropy.c
r473 r481 300 300 { 301 301 m_count = sl_read_timeout_fd(fd2, nbuf, nbytes, 302 timeout_val, S L_FALSE);302 timeout_val, S_FALSE); 303 303 if (m_count < 0) 304 304 m_count = 0; … … 337 337 338 338 #ifdef NAME_OF_DEV_URANDOM 339 m_count = read_mbytes ( 1, NAME_OF_DEV_RANDOM, nbuf, nbytes);339 m_count = read_mbytes ( 10, NAME_OF_DEV_URANDOM, nbuf, nbytes); 340 340 #else 341 m_count = read_mbytes (300, NAME_OF_DEV_RANDOM, nbuf, nbytes);341 m_count = read_mbytes (300, NAME_OF_DEV_RANDOM, nbuf, nbytes); 342 342 #endif 343 343 … … 346 346 #ifdef NAME_OF_DEV_URANDOM 347 347 sh_error_handle (SH_ERR_NOTICE, FIL__, __LINE__, EIO, MSG_NODEV, 348 (long) sh.real.uid, NAME_OF_DEV_ RANDOM);348 (long) sh.real.uid, NAME_OF_DEV_URANDOM); 349 349 #else 350 350 sh_error_handle ((-1), FIL__, __LINE__, EIO, MSG_NODEV, … … 353 353 } 354 354 355 #ifdef NAME_OF_DEV_ URANDOM355 #ifdef NAME_OF_DEV_RANDOM 356 356 if (m_count < nbytes) 357 357 { 358 i = read_mbytes(30 , NAME_OF_DEV_URANDOM, &nbuf[m_count], nbytes-m_count);358 i = read_mbytes(300, NAME_OF_DEV_RANDOM, &nbuf[m_count], nbytes-m_count); 359 359 if (i == 0) 360 360 sh_error_handle ((-1), FIL__, __LINE__, EIO, MSG_NODEV, 361 (long) sh.real.uid, NAME_OF_DEV_ URANDOM);361 (long) sh.real.uid, NAME_OF_DEV_RANDOM); 362 362 else 363 363 m_count += i; … … 601 601 /* don't leak file descriptors 602 602 */ 603 sh_unix_closeall (3, -1, S L_TRUE); /* in child process */603 sh_unix_closeall (3, -1, S_TRUE); /* in child process */ 604 604 605 605 /* zero priv info … … 942 942 } 943 943 944 #ifdef HAVE_GETTIMEOFDAY 945 { 946 unsigned short tseed[3]; 947 948 gettimeofday(&tv, 0); 949 tseed[0] = tv.tv_sec & 0xFFFF; 950 tseed[1] = tv.tv_usec & 0xFFFF; 951 tseed[2] = (tv.tv_sec ^ tv.tv_usec) >> 16; 952 keybuf = (char *) sh_tiger_hash_uint32 ((char *) tseed, 953 TIGER_DATA, sizeof(tseed), 954 kbuf, KEY_BYT/sizeof(UINT32)); 955 memset(addbuf, '\0', sizeof(addbuf)); 956 for (i = 0; i < KEY_BYT; ++i) 957 { 958 addbuf[i] = keybuf[i]; 959 addbuf[i+KEY_BYT] = skey->poolv[i]; 960 } 961 SH_MUTEX_LOCK_UNSAFE(mutex_skey); 962 for (i = 0; i < KEY_BYT; ++i) 963 skey->poolv[i] ^= keybuf[i]; 964 SH_MUTEX_UNLOCK_UNSAFE(mutex_skey); 965 } 966 #endif 967 944 968 if (bufcount > 0) 945 969 { … … 1002 1026 char bufy[9 * sizeof(UINT32) + 1]; 1003 1027 int status; 1004 1005 memset(skey->poolv, '\0', KEY_BYT); 1006 1007 status = sh_entropy (24, bufx); 1008 CuAssertTrue(tc, 0 == status); 1009 1010 memset(skey->poolv, '\0', KEY_BYT); 1011 1012 status = sh_entropy (24, bufy); 1013 CuAssertTrue(tc, 0 == status); 1014 1015 CuAssertTrue(tc, 0 != memcmp(bufx, bufy, 24)); 1028 int count; 1029 1030 for (count = 0; count < 20; ++count) 1031 { 1032 memset(skey->poolv, '\0', KEY_BYT); 1033 skey->poolc = 0; 1034 1035 status = sh_entropy (24, bufx); 1036 CuAssertTrue(tc, 0 == status); 1037 1038 memset(skey->poolv, '\0', KEY_BYT); 1039 skey->poolc = 0; 1040 1041 status = sh_entropy (24, bufy); 1042 CuAssertTrue(tc, 0 == status); 1043 1044 CuAssertTrue(tc, 0 != memcmp(bufx, bufy, 24)); 1045 } 1016 1046 } 1017 1047 #endif
Note:
See TracChangeset
for help on using the changeset viewer.