• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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