aboutsummaryrefslogtreecommitdiff
path: root/toys/other
diff options
context:
space:
mode:
Diffstat (limited to 'toys/other')
-rw-r--r--toys/other/mcookie.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/toys/other/mcookie.c b/toys/other/mcookie.c
new file mode 100644
index 00000000..fb83f5e3
--- /dev/null
+++ b/toys/other/mcookie.c
@@ -0,0 +1,35 @@
+/* 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]);
+}