debug_print
void debug_print(char *fmt, ...); /* prototype to silence warning */
#define DEBUG_PRINT(x) debug_print x
debug_print("set ctx params %p\n", ctx);
debug_print("set ctx params OK\n");
debug_print("encaps %p to %p\n", vctx, out);
debug_print("encaps outlens set to %zu and %zu\n", *outlen, *secretlen);
debug_print("encaps OK\n");
debug_print("decaps %p to %p inlen at %zu\n", vctx, out, inlen);
debug_print("decaps outlen set to %zu \n", *outlen);
debug_print("decaps OK\n");
debug_print("newctx called\n");
debug_print("newctx returns %p\n", ctx);
debug_print("freectx %p\n", ctx);
debug_print("init %p / %p\n", ctx, vkey);
debug_print("init OK\n");
debug_print("has %p\n", keydata);
debug_print("has result %d\n", ok);
debug_print("matching %p and %p\n", keydata1, keydata2);
debug_print("match result %d\n", ok);
debug_print("export %p\n", key);
debug_print("export result %d\n", ret);
debug_print("import %p\n", key);
debug_print("import result %d\n", ok);
debug_print("getting imexport types\n");
debug_print("get params %p\n", key);
debug_print("get params OK\n");
debug_print("gettable params called\n");
debug_print("set params called for %p\n", key);
debug_print("set params OK\n");
debug_print("settable params called\n");
debug_print("empty gen_set params called for %p\n", gctx);
debug_print("gen init called for %p\n", provctx);
debug_print("gen init returns %p\n", gctx);
debug_print("gen called for %p\n", gctx);
debug_print("gen returns set %p\n", key);
debug_print("gen returns NULL\n");
debug_print("gen cleanup for %p\n", gctx);
debug_print("dup called for %p\n", vsrckey);
debug_print("dup returns %p\n", dstkey);
debug_print("dup returns NULL\n");
debug_print("new key req\n");
debug_print("new key = %p\n", key);
debug_print("free key %p\n", vkey);