}
}
-static struct strongrand *strongrand_std_open_internal(int fd, const char *name, uint buf_size, uint flags)
+static struct strongrand *strongrand_std_open_internal(int fd, const char *name, uint flags, uint buf_size)
{
struct strongrand_std *srs = xmalloc(sizeof(*srs) + buf_size);
bzero(srs, sizeof(*srs));
return &srs->sr;
}
-struct strongrand *strongrand_std_open(uint buf_size, uint flags)
+struct strongrand *strongrand_std_open(uint flags, uint buf_size)
{
const char *name;
if (flags & STRONGRAND_STD_URANDOM)
}
#ifdef CONFIG_UCW_GETRANDOM
if (strongrand_getrandom_detect())
- return strongrand_std_open_internal(STRONGRAND_FD_KERNEL_GETRANDOM, name, buf_size, flags);
+ return strongrand_std_open_internal(STRONGRAND_FD_KERNEL_GETRANDOM, name, flags, buf_size);
#endif
- struct strongrand *sr = strongrand_std_open_internal(STRONGRAND_FD_KERNEL_DEVICE, name, buf_size, flags);
+ struct strongrand *sr = strongrand_std_open_internal(STRONGRAND_FD_KERNEL_DEVICE, name, flags, buf_size);
if (!(flags & STRONGRAND_STD_DELAYED))
strongrand_std_open_device((struct strongrand_std *)sr);
return sr;
byte buf[100];
for (uint j = 0; j < 2; j++)
{
- struct strongrand *r = strongrand_std_open((j == 0) ? 0 : 128, STRONGRAND_STD_URANDOM);
+ struct strongrand *r = strongrand_std_open(STRONGRAND_STD_URANDOM, (j == 0) ? 0 : 128);
for (uint i = 1; i <= 100; i++)
{
strongrand_mem(r, buf, i);
struct strongrand *r;
msg(L_INFO, "Benchmarking unbuffered strong random generator");
- r = strongrand_std_open(0, STRONGRAND_STD_URANDOM);
+ r = strongrand_std_open(STRONGRAND_STD_URANDOM, 0);
BENCH_SLOW(50, strongrand_mem(r, buf, 1));
BENCH_SLOW(200, strongrand_mem(r, buf, 100));
strongrand_close(r);
msg(L_INFO, "Benchmarking buffered strong random generator");
- r = strongrand_std_open(128, STRONGRAND_STD_URANDOM);
+ r = strongrand_std_open(STRONGRAND_STD_URANDOM, 128);
BENCH_SLOW(50, strongrand_mem(r, buf, 1));
BENCH_SLOW(200, strongrand_mem(r, buf, 100));
strongrand_close(r);
msg(L_INFO, "Benchmarking buffered strong random generator with autoreset");
- r = strongrand_std_open(128, STRONGRAND_STD_URANDOM | STRONGRAND_STD_AUTO_RESET);
+ r = strongrand_std_open(STRONGRAND_STD_URANDOM | STRONGRAND_STD_AUTO_RESET, 128);
BENCH_SLOW(50, strongrand_mem(r, buf, 1));
BENCH_SLOW(200, strongrand_mem(r, buf, 100));
strongrand_close(r);
* -- STRONGRAND_STD_AUTO_RESET flag
* -- no read since open or last reset (empty buffer)
**/
-struct strongrand *strongrand_std_open(uint buf_size, uint flags);
+struct strongrand *strongrand_std_open(uint flags, uint buf_size);
enum strongrand_std_flags {
STRONGRAND_STD_URANDOM = 0x1, // Use kernel's "urandom" source.