5 #include <ccan/list/list.h>
8 #define ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING \
12 struct list_node list;
14 char secret_drawer[42];
17 static bool not_randomized = true;
19 struct opaque *create_opaque_blob(void)
21 struct opaque *blob = calloc(1, sizeof(struct opaque));
24 srandom((int)time(NULL));
25 not_randomized = false;
28 blob->secret_offset = random() % (sizeof(blob->secret_drawer));
29 blob->secret_drawer[blob->secret_offset] =
30 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING;
35 bool if_blobs_know_the_secret(struct opaque *blob)
39 for (i = 0; i < sizeof(blob->secret_drawer) /
40 sizeof(blob->secret_drawer[0]); i++)
41 if (i != blob->secret_offset)
42 answer = answer && (blob->secret_drawer[i] == 0);
45 (blob->secret_drawer[blob->secret_offset] ==
46 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING);
51 void destroy_opaque_blob(struct opaque *blob)