pub/dh-kcdsa.c: Free the correct factor.
[catacomb] / symm / mgf-def.h
index 529428f..832cd07 100644 (file)
@@ -59,7 +59,9 @@
 
 /*----- Macros ------------------------------------------------------------*/
 
-#define MGF_DEF(PRE, pre)                                              \
+#define MGF_DEF(PRE, pre) MGF_DEFX(PRE, pre, #pre, #pre)
+
+#define MGF_DEFX(PRE, pre, name, fname)                                        \
                                                                        \
 /* --- Useful constants --- */                                         \
                                                                        \
@@ -235,7 +237,7 @@ static const gcipher_ops gops = {                                   \
 };                                                                     \
                                                                        \
 const gccipher pre##_mgf = {                                           \
-  #pre "-mgf", pre##_mgfkeysz, 0,                                      \
+  name "-mgf", pre##_mgfkeysz, 0,                                      \
   ginit                                                                        \
 };                                                                     \
                                                                        \
@@ -324,7 +326,7 @@ static void grfill(grand *r, void *p, size_t sz)                    \
 }                                                                      \
                                                                        \
 static const grand_ops grops = {                                       \
-  #pre "-mgf",                                                         \
+  name "-mgf",                                                         \
   GRAND_CRYPTO, 0,                                                     \
   grmisc, grdestroy,                                                   \
   grword, grbyte, grword, grand_defaultrange, grfill                   \
@@ -349,10 +351,12 @@ extern grand *pre##_mgfrand(const void *k, size_t sz)                     \
   return (&g->r);                                                      \
 }                                                                      \
                                                                        \
-MGF_TEST(PRE, pre)
+MGF_TESTX(PRE, pre, name, fname)
 
 /*----- Test rig ----------------------------------------------------------*/
 
+#define MGF_TEST(PRE, pre) MGF_TESTX(PRE, pre, #pre, #pre)
+
 #ifdef TEST_RIG
 
 #include <stdio.h>
@@ -366,7 +370,7 @@ MGF_TEST(PRE, pre)
  * Use:                Standard test rig for MGF functions.
  */
 
-#define MGF_TEST(PRE, pre)                                             \
+#define MGF_TESTX(PRE, pre, name, fname)                               \
                                                                        \
 /* --- Initial plaintext for the test --- */                           \
                                                                        \
@@ -400,7 +404,7 @@ int main(void)                                                              \
                                                                        \
   size_t keysz = strlen((const char *)key);                            \
                                                                        \
-  fputs(#pre "-mgf: ", stdout);                                                \
+  fputs(name "-mgf: ", stdout);                                                \
                                                                        \
   pre##_mgfinit(&ctx, key, keysz);                                     \
                                                                        \
@@ -446,7 +450,7 @@ int main(void)                                                              \
 }
 
 #else
-#  define MGF_TEST(PRE, pre)
+#  define MGF_TESTX(PRE, pre, name, fname)
 #endif
 
 /*----- That's all, folks -------------------------------------------------*/