chiark / gitweb /
server/admin.c: Export `a_info'.
[tripe] / server / tripe.h
index d419c287cf348165061ea4d21ec68a8437cda4e3..4669711eeb3a80ff4cdbf4acbb91eaa16e9ad8c8 100644 (file)
 typedef struct keyset keyset;
 typedef struct algswitch algswitch;
 
-typedef struct bulkcrypto {
+typedef struct bulkops {
   const char *name;
   unsigned prim;
   int (*check)(const algswitch */*a*/, dstr */*e*/);
@@ -167,7 +167,7 @@ typedef struct bulkcrypto {
   int (*encrypt)(keyset */*ks*/, unsigned /*ty*/, buf */*b*/, buf */*bb*/);
   int (*decrypt)(keyset */*ks*/, unsigned /*ty*/,
                 buf */*b*/, buf */*bb*/, uint32 */*seq*/);
-} bulkcrypto;
+} bulkops;
 
 #define BCP_CIPHER 1
 #define BCP_MAC 2
@@ -176,7 +176,7 @@ typedef struct bulkcrypto {
 struct algswitch {
   const gchash *h;                     /* Hash function */
   const gccipher *mgf;                 /* Mask-generation function */
-  const struct bulkcrypto *bulk;       /* Bulk crypto transformation */
+  const bulkops *bulk;                 /* Bulk crypto transformation */
   const gccipher *c;                   /* Symmetric encryption scheme */
   const gcmac *m;                      /* Message authentication code */
   const gccipher *b;                   /* Block cipher */
@@ -210,7 +210,7 @@ typedef struct knode {
 
 #define HASH_STRING(h, s) GH_HASH((h), (s), sizeof(s))
 
-extern const struct bulkcrypto bulktab[];
+extern const bulkops bulktab[];
 
 /*----- Data structures ---------------------------------------------------*/
 
@@ -266,7 +266,7 @@ struct keyset {
   unsigned long sz_exp, sz_regen;      /* Data limits for the keyset */
   T( unsigned seq; )                   /* Sequence number for tracing */
   unsigned f;                          /* Various useful flags */
-  const bulkcrypto *bulk;              /* Bulk crypto transform */
+  const bulkops *bulk;                 /* Bulk crypto transform */
   size_t tagsz;                                /* Length to truncate MAC tags */
   struct ksdir {
     gcipher *c;                                /* Keyset cipher for encryption */
@@ -576,7 +576,8 @@ extern unsigned tr_flags;           /* Trace options flags */
 
 /*----- Other macros ------------------------------------------------------*/
 
-#define TIMER noise_timer(RAND_GLOBAL)
+#define QUICKRAND                                                      \
+  do { rand_quick(RAND_GLOBAL); noise_timer(RAND_GLOBAL); } while (0)
 
 /*----- Key management ----------------------------------------------------*/
 
@@ -979,6 +980,19 @@ extern void a_vformat(dstr */*d*/, const char */*fmt*/, va_list */*ap*/);
 
 extern void EXECL_LIKE(0) a_format(dstr */*d*/, const char */*fmt*/, ...);
 
+/* --- @a_info@ --- *
+ *
+ * Arguments:  @admin *a@ = connection
+ *             @const char *fmt@ = format string
+ *             @...@ = other arguments
+ *
+ * Returns:    ---
+ *
+ * Use:                Report information to an admin client.
+ */
+
+extern void EXECL_LIKE(0) a_info(admin */*a*/, const char */*fmt*/, ...);
+
 /* --- @a_warn@ --- *
  *
  * Arguments:  @const char *fmt@ = pointer to format string