You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
861 B
36 lines
861 B
7 months ago
|
/* mcookie - generate a 128-bit random number (used for X "magic cookies")
|
||
|
*
|
||
|
* Copyright 2019 AD Isaac Dunham <ibid.ag@gmail.com>
|
||
|
*
|
||
|
* No standard.
|
||
|
*
|
||
|
* -f and -m are not supported: md5sums of arbitrary files are not a good
|
||
|
* source of entropy, just ask the system for 128 bits and print it.
|
||
|
|
||
|
USE_MCOOKIE(NEWTOY(mcookie, "v(verbose)V(version)", TOYFLAG_USR|TOYFLAG_BIN))
|
||
|
|
||
|
config MCOOKIE
|
||
|
bool "mcookie"
|
||
|
default y
|
||
|
help
|
||
|
usage: mcookie [-vV]
|
||
|
|
||
|
Generate a 128-bit strong random number.
|
||
|
|
||
|
-v show entropy source (verbose)
|
||
|
-V show version
|
||
|
*/
|
||
|
|
||
|
#define FOR_mcookie
|
||
|
#include "toys.h"
|
||
|
|
||
|
void mcookie_main(void)
|
||
|
{
|
||
|
long long *ll = (void *)toybuf;
|
||
|
|
||
|
if (FLAG(V)) return (void)puts("mcookie from toybox");
|
||
|
xgetrandom(toybuf, 16, 0);
|
||
|
if (FLAG(v)) fputs("Got 16 bytes from xgetrandom()\n", stderr);
|
||
|
xprintf("%016llx%06llx\n", ll[0], ll[1]);
|
||
|
}
|