* Use: Creates an implementation for CFB mode.
*/
-#define CFB_DEF(PRE, pre) \
+#define CFB_DEF(PRE, pre) CFB_DEFX(PRE, pre, #pre, #pre)
+
+#define CFB_DEFX(PRE, pre, name, fname) \
\
/* --- @pre_cfbgetiv@ --- * \
* \
}; \
\
const gccipher pre##_cfb = { \
- #pre "-cfb", pre##_keysz, PRE##_BLKSZ, \
+ name "-cfb", pre##_keysz, PRE##_BLKSZ, \
ginit \
}; \
\
-CFB_TEST(PRE, pre)
+CFB_TESTX(PRE, pre, name, fname)
/*----- Test rig ----------------------------------------------------------*/
+#define CFB_TEST(PRE, pre) CFB_TESTX(PRE, pre, #pre, #pre)
+
#ifdef TEST_RIG
#include <stdio.h>
* Use: Standard test rig for CFB functions.
*/
-#define CFB_TEST(PRE, pre) \
+#define CFB_TESTX(PRE, pre, name, fname) \
\
/* --- Initial plaintext for the test --- */ \
\
size_t keysz = PRE##_KEYSZ ? \
PRE##_KEYSZ : strlen((const char *)key); \
\
- fputs(#pre "-cfb: ", stdout); \
+ fputs(name "-cfb: ", stdout); \
\
pre##_init(&k, key, keysz); \
pre##_cfbsetkey(&ctx, &k); \
}
#else
-# define CFB_TEST(PRE, pre)
+# define CFB_TESTX(PRE, pre, name, fname)
#endif
/*----- That's all, folks -------------------------------------------------*/