1 /* mcookie - generate a 128-bit random number (used for X "magic cookies")
2 *
3 * Copyright 2019 AD Isaac Dunham <ibid.ag@gmail.com>
4 *
5 * No standard.
6 *
7 * -f and -m are not supported: md5sums of arbitrary files are not a good
8 * source of entropy, just ask the system for 128 bits and print it.
9
10 USE_MCOOKIE(NEWTOY(mcookie, "v(verbose)V(version)", TOYFLAG_USR|TOYFLAG_BIN))
11
12 config MCOOKIE
13 bool "mcookie"
14 default y
15 help
16 usage: mcookie [-vV]
17
18 Generate a 128-bit strong random number.
19
20 -v show entropy source (verbose)
21 -V show version
22 */
23
24 #define FOR_mcookie
25 #include "toys.h"
26
mcookie_main(void)27 void mcookie_main(void)
28 {
29 long long *ll = (void *)toybuf;
30
31 if (FLAG(V)) return (void)puts("mcookie from toybox");
32 xgetrandom(toybuf, 16, 0);
33 if (FLAG(v)) fputs("Got 16 bytes from xgetrandom()\n", stderr);
34 xprintf("%016llx%06llx\n", ll[0], ll[1]);
35 }
36