/*----- 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 --- */ \
\
}; \
\
const gccipher pre##_mgf = { \
- #pre "-mgf", pre##_mgfkeysz, 0, \
+ name "-mgf", pre##_mgfkeysz, 0, \
ginit \
}; \
\
} \
\
static const grand_ops grops = { \
- #pre "-mgf", \
+ name "-mgf", \
GRAND_CRYPTO, 0, \
grmisc, grdestroy, \
grword, grbyte, grword, grand_defaultrange, grfill \
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>
* Use: Standard test rig for MGF functions.
*/
-#define MGF_TEST(PRE, pre) \
+#define MGF_TESTX(PRE, pre, name, fname) \
\
/* --- Initial plaintext for the test --- */ \
\
\
size_t keysz = strlen((const char *)key); \
\
- fputs(#pre "-mgf: ", stdout); \
+ fputs(name "-mgf: ", stdout); \
\
pre##_mgfinit(&ctx, key, keysz); \
\
}
#else
-# define MGF_TEST(PRE, pre)
+# define MGF_TESTX(PRE, pre, name, fname)
#endif
/*----- That's all, folks -------------------------------------------------*/