/* * 'dev_random.c' created: Sun Oct 13 00:24:52 2002 * * Copyright 2002 by Lubomir Host <8host AT pauli.fmph.uniba.sk> * * License: GNU GPL (GNU Public License) * */ /* $Platon$ */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "main.h" #include "dev_random.h" RNG_device_t rng_dev_random = { "/dev/random", -1, 0, 500, 255, 0, open_dev_random, read_dev_random, close_dev_random }; int open_dev_random(void) { int retval = RNG_OK; rng_dev_random.fd = open("/dev/random", O_RDONLY); if (rng_dev_random.fd == -1) retval = RNG_FAIL; return retval; } Real_t read_dev_random(void) { Real_t retval; ssize_t size; unsigned char ret; /* fprintf(stderr, "Read from device /dev/random.\n"); */ size = read(rng_dev_random.fd, &ret, 1); retval = (Real_t) ret; if (size == -1) fprintf(stderr, "Read from device /dev/random failed!\n"); return retval; } int close_dev_random(void) { int retval = RNG_OK; fprintf(stderr, "Device /dev/random sucessfully closed.\n"); retval = close(rng_dev_random.fd); return retval; } /* Modeline for ViM {{{ * vim: set ts=4: * vim600: fdm=marker fdl=0 fdc=3: * }}} */