key-flags.c, key-pack.c, key-pass.c: Don't use the `key.h' machinery.
[u/mdw/catacomb] / gcipher.h
index 42faad4..5682738 100644 (file)
--- a/gcipher.h
+++ b/gcipher.h
 
 #include <mLib/bits.h>
 
+#ifndef CATACOMB_KEYSZ_H
+#  include "keysz.h"
+#endif
+
 /*----- Generic symmetric cipher interface --------------------------------*/
 
 typedef struct gcipher {
@@ -72,51 +76,6 @@ typedef struct gccipher {
 #define GC_SETIV(c, iv)                (c)->ops->setiv((c), (iv))
 #define GC_BDRY(c)             (c)->ops->bdry((c))
 
-/*----- Key size management -----------------------------------------------*/
-
-/* --- Key size type constants --- *
- *
- * A key size limitation is an array of bytes.  The first byte describes the
- * kind of limitation on the key size %$k$%; the rest are argument bytes
- * %$a_i$%, for %$i \ge 0$%.  In all cases, %$a_0$% is the `recommended' key
- * size.
- *
- *   * @KSZ_ANY@ means there is no restriction.
- *
- *   * @KSZ_RANGE@ requires that %$k \ge a_1$%, %$k \equiv 0 \pmod{a_3}$%,
- *     and, if %$a_2 \ne 0$%, %$k \le a_2$%.
- *
- *   * @KSZ_SET@ requires that %$k \in {\,a_i\,}$%.
- */
-
-enum {
-  KSZ_ANY,                             /* Allows any key at all */
-  KSZ_RANGE,                           /* Allows keys within a range */
-  KSZ_SET                              /* Allows specific sizes of keys */
-};
-
-/* --- @keysz@ --- *
- *
- * Arguments:  @size_t sz@ = a proposed key size, or zero
- *             @const octet *ksz@ = pointer to key size table
- *
- * Returns:    See below.
- *
- * Use:                Returns a sensible key size.  If @sz@ is nonzero, it is
- *             interpreted as an amount (in bytes) of key material which the
- *             caller has available, and the return value is either the
- *             largest allowable key size less than or equal to the caller's
- *             size, or zero if there is no valid key length small enough.
- *             If @sz@ is zero, the function returns a `recommended' key
- *             size.
- */
-
-extern size_t keysz(size_t /*sz*/, const octet */*ksz*/);
-
-#define KSZ_CHECK(pre, sz) (keysz((sz), pre##_keysz) == (sz))
-#define KSZ_ASSERT(pre, sz)                                            \
-  assert(((void)"Bad key size for " #pre, KSZ_CHECK(pre, sz)))
-
 /*----- Tables ------------------------------------------------------------*/
 
 extern const gccipher *const gciphertab[];