Ejemplo n.º 1
0
int main() {
    int i;
    int tests=0;
    unsigned myseed;

    printf("1..10\n");
    unsigned int numbers[10];
    rand_set_seed(0x19610910);

    for (i = 0;i < 10;i++) {
      numbers[i] = rand_rand();
    }
    myseed = 0x19610910;
    for (i = 0; i < 3; i++)
    {
      for (i = 0;i<10;i++) {
        unsigned int n = rand_rand_r(&myseed);
        if (n == numbers[i]) {
          printf("ok %d\n",++tests);
        } else {
          printf("not ok %d # got: %d expected: %d\n",++tests,n,numbers[i]);
        }
      }
    }

    return 0;
}
Ejemplo n.º 2
0
void random_init(void)
{
    unsigned int seed;

    if (RAND_status() == 0) {
        i_fatal("Random generator not initialized: "
                "Install egd on /var/run/egd-pool");
    }

    random_fill(&seed, sizeof(seed));
    rand_set_seed(seed);
}
Ejemplo n.º 3
0
void random_init(void)
{
    unsigned int seed;

    if (init_refcount++ > 0)
        return;

    urandom_fd = open(DEV_URANDOM_PATH, O_RDONLY);
    if (urandom_fd == -1) {
        if (errno == ENOENT) {
            i_fatal(DEV_URANDOM_PATH" doesn't exist, "
                    "currently we require it");
        } else {
            i_fatal("Can't open "DEV_URANDOM_PATH": %m");
        }
    }

    random_fill(&seed, sizeof(seed));
    rand_set_seed(seed);

    fd_close_on_exec(urandom_fd, TRUE);
}