BankHacker wrote:
Please, could you tell me how to use the structure correctly? Thanks. Any hint to continue will be appreciate.
Looks like initstate_r() is a big secret and the whole deal is poorly documented.
http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=6273 Here is my guess at the meaning of it all that appears to work: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> int nRandom; struct random_data randomdataState; char szBufferState[1024]; int main(int argc, char ** argv) { int n; int fd=open("/dev/urandom", O_RDONLY); if(fd<1) { perror("unable to open /dev/urandom"); return 1; } read(fd, szBufferState, sizeof(szBufferState)); close(fd);initstate_r(*((int *)szBufferState), (szBufferState+sizeof(int)), sizeof(szBufferState)-sizeof(int), &randomdataState);
for(n=0;n<2048;n++) { random_r(&randomdataState, &nRandom); printf("%d\n", nRandom); } return (0); } -Andy
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature