/* mcookie - generate a 128-bit random number (used for X "magic cookies") * * Copyright 2019 AD Isaac Dunham * * 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]); }