shachain: allow overriding of number of bits, add cmdline tool.
[ccan] / ccan / crypto / shachain / shachain.h
index ba4ba11cd64c02d1d66a362d35bac98e39a2f0bc..90f2380ed39b89d8277db3542e669fcc22f7176e 100644 (file)
 #define shachain_index_t uint64_t
 #endif
 
 #define shachain_index_t uint64_t
 #endif
 
+#ifndef SHACHAIN_BITS
+#define SHACHAIN_BITS (sizeof(shachain_index_t) * 8)
+#endif
+
 /**
  * shachain_from_seed - Generate an unpredictable SHA from a seed value.
  * @seed: (secret) seed value to use
 /**
  * shachain_from_seed - Generate an unpredictable SHA from a seed value.
  * @seed: (secret) seed value to use
@@ -56,7 +60,7 @@ struct shachain {
        struct {
                shachain_index_t index;
                struct sha256 hash;
        struct {
                shachain_index_t index;
                struct sha256 hash;
-       } known[sizeof(shachain_index_t) * 8 + 1];
+       } known[SHACHAIN_BITS + 1];
 };
 
 /**
 };
 
 /**