OQS_CPU_has_extension:
  219|      2|OQS_API int OQS_CPU_has_extension(OQS_CPU_EXT ext) {
  220|      2|#if defined(OQS_DIST_BUILD)
  221|      2|#if defined(OQS_USE_PTHREADS)
  222|      2|	pthread_once(&once_control, &set_available_cpu_extensions);
  223|       |#else
  224|       |	if (0 == cpu_ext_data[OQS_CPU_EXT_INIT]) {
  225|       |		set_available_cpu_extensions();
  226|       |	}
  227|       |#endif
  228|      2|	if (0 < ext && ext < OQS_CPU_EXT_COUNT) {
  ------------------
  |  Branch (228:6): [True: 0, False: 2]
  |  Branch (228:17): [True: 0, False: 0]
  ------------------
  229|      0|		return (int)cpu_ext_data[ext];
  230|      0|	}
  231|       |#else
  232|       |	(void)ext;
  233|       |#endif
  234|      2|	return 0;
  235|      2|}
OQS_init:
  237|      2|OQS_API void OQS_init(void) {
  238|      2|#if defined(OQS_DIST_BUILD)
  239|      2|	OQS_CPU_has_extension(OQS_CPU_EXT_INIT);
  240|      2|#endif
  241|      2|}
common.c:set_available_cpu_extensions:
   47|      2|static void set_available_cpu_extensions(void) {
   48|       |	/* mark that this function has been called */
   49|      2|	cpu_ext_data[OQS_CPU_EXT_INIT] = 1;
   50|       |
   51|      2|	cpuid_out leaf_1;
   52|      2|	cpuid(&leaf_1, 1);
   53|      2|	if (leaf_1.eax == 0) {
  ------------------
  |  Branch (53:6): [True: 0, False: 2]
  ------------------
   54|      0|		return;
   55|      0|	}
   56|       |
   57|      2|	cpuid_out leaf_7;
   58|      2|	cpuid(&leaf_7, 7);
   59|       |
   60|      2|	const unsigned int has_xsave = is_bit_set(leaf_1.ecx, 26);
   61|      2|	const unsigned int has_osxsave = is_bit_set(leaf_1.ecx, 27);
   62|      2|	const uint32_t xcr0_eax = (has_xsave && has_osxsave) ? xgetbv_eax(0) : 0;
  ------------------
  |  Branch (62:29): [True: 2, False: 0]
  |  Branch (62:42): [True: 2, False: 0]
  ------------------
   63|       |
   64|      2|	cpu_ext_data[OQS_CPU_EXT_AES] = is_bit_set(leaf_1.ecx, 25);
   65|      2|	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM)) {
  ------------------
  |  |   14|      2|#define MASK_XMM 0x2
  ------------------
              	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM)) {
  ------------------
  |  |   15|      2|#define MASK_YMM 0x4
  ------------------
  |  Branch (65:6): [True: 2, False: 0]
  ------------------
   66|      2|		cpu_ext_data[OQS_CPU_EXT_AVX] = is_bit_set(leaf_1.ecx, 28);
   67|      2|		cpu_ext_data[OQS_CPU_EXT_AVX2] = is_bit_set(leaf_7.ebx, 5);
   68|      2|	}
   69|      2|	cpu_ext_data[OQS_CPU_EXT_PCLMULQDQ] = is_bit_set(leaf_1.ecx, 1);
   70|      2|	cpu_ext_data[OQS_CPU_EXT_POPCNT] = is_bit_set(leaf_1.ecx, 23);
   71|      2|	cpu_ext_data[OQS_CPU_EXT_BMI1] = is_bit_set(leaf_7.ebx, 3);
   72|      2|	cpu_ext_data[OQS_CPU_EXT_BMI2] = is_bit_set(leaf_7.ebx, 8);
   73|      2|	cpu_ext_data[OQS_CPU_EXT_ADX] = is_bit_set(leaf_7.ebx, 19);
   74|       |
   75|      2|	if (has_mask(xcr0_eax, MASK_XMM)) {
  ------------------
  |  |   14|      2|#define MASK_XMM 0x2
  ------------------
  |  Branch (75:6): [True: 2, False: 0]
  ------------------
   76|      2|		cpu_ext_data[OQS_CPU_EXT_SSE] = is_bit_set(leaf_1.edx, 25);
   77|      2|		cpu_ext_data[OQS_CPU_EXT_SSE2] = is_bit_set(leaf_1.edx, 26);
   78|      2|		cpu_ext_data[OQS_CPU_EXT_SSE3] = is_bit_set(leaf_1.ecx, 0);
   79|      2|	}
   80|       |
   81|      2|	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM | MASK_MASKREG | MASK_ZMM0_15 | MASK_ZMM16_31)) {
  ------------------
  |  |   14|      2|#define MASK_XMM 0x2
  ------------------
              	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM | MASK_MASKREG | MASK_ZMM0_15 | MASK_ZMM16_31)) {
  ------------------
  |  |   15|      2|#define MASK_YMM 0x4
  ------------------
              	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM | MASK_MASKREG | MASK_ZMM0_15 | MASK_ZMM16_31)) {
  ------------------
  |  |   16|      2|#define MASK_MASKREG 0x20
  ------------------
              	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM | MASK_MASKREG | MASK_ZMM0_15 | MASK_ZMM16_31)) {
  ------------------
  |  |   17|      2|#define MASK_ZMM0_15 0x40
  ------------------
              	if (has_mask(xcr0_eax, MASK_XMM | MASK_YMM | MASK_MASKREG | MASK_ZMM0_15 | MASK_ZMM16_31)) {
  ------------------
  |  |   18|      2|#define MASK_ZMM16_31 0x80
  ------------------
  |  Branch (81:6): [True: 0, False: 2]
  ------------------
   82|      0|		unsigned int avx512f = is_bit_set(leaf_7.ebx, 16);
   83|      0|		unsigned int avx512bw = is_bit_set(leaf_7.ebx, 30);
   84|      0|		unsigned int avx512dq = is_bit_set(leaf_7.ebx, 17);
   85|      0|		if (avx512f && avx512bw && avx512dq) {
  ------------------
  |  Branch (85:7): [True: 0, False: 0]
  |  Branch (85:18): [True: 0, False: 0]
  |  Branch (85:30): [True: 0, False: 0]
  ------------------
   86|      0|			cpu_ext_data[OQS_CPU_EXT_AVX512] = 1;
   87|      0|		}
   88|      0|		cpu_ext_data[OQS_CPU_EXT_VPCLMULQDQ] = is_bit_set(leaf_7.ecx, 10);
   89|      0|	}
   90|      2|}

common.c:cpuid:
   47|      4|static inline void cpuid(cpuid_out *out, const uint32_t eax_leaf) {
   48|      4|	const uint32_t ecx_leaf = 0;
   49|       |
   50|      4|#if defined(__GNUC__) || defined(__clang__)
   51|      4|	uint32_t eax, ebx, ecx, edx;
   52|      4|	__asm__("cpuid" : "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx) : "a"(eax_leaf), "c"(ecx_leaf) : );
   53|      4|	out->eax = eax;
   54|      4|	out->ebx = ebx;
   55|      4|	out->ecx = ecx;
   56|      4|	out->edx = edx;
   57|       |#elif defined(_MSC_VER)
   58|       |	uint32_t output[4];
   59|       |	__cpuidex(output, eax_leaf, ecx_leaf);
   60|       |	out->eax = output[0];
   61|       |	out->ebx = output[1];
   62|       |	out->ecx = output[2];
   63|       |	out->edx = output[3];
   64|       |#else
   65|       |#error "Only GCC, Clang, and MSVC are supported."
   66|       |#endif
   67|      4|}
common.c:is_bit_set:
   43|     26|static inline unsigned int is_bit_set(const uint32_t val, const unsigned int bit_pos) {
   44|     26|	return val & (1 << bit_pos) ? 1 : 0;
  ------------------
  |  Branch (44:9): [True: 26, False: 0]
  ------------------
   45|     26|}
common.c:xgetbv_eax:
   27|      2|static inline uint32_t xgetbv_eax(uint32_t xcr) {
   28|      2|#if defined(__GNUC__) || defined(__clang__)
   29|      2|	uint32_t eax;
   30|      2|	__asm__ ( ".byte 0x0f, 0x01, 0xd0" : "=a"(eax) : "c"(xcr));
   31|      2|	return eax;
   32|       |#elif defined(_MSC_VER)
   33|       |	return _xgetbv(xcr) & 0xFFFF;
   34|       |#else
   35|       |#error "Only GCC, Clang, and MSVC are supported."
   36|       |#endif
   37|      2|}
common.c:has_mask:
   39|      6|static unsigned int has_mask(const uint32_t value, const uint32_t mask) {
   40|      6|	return (value & mask) == mask;
   41|      6|}

OQS_SIG_STFL_new:
  570|      2|OQS_API OQS_SIG_STFL *OQS_SIG_STFL_new(const char *method_name) {
  571|      2|	assert(method_name != NULL);
  572|       |
  573|      2|	if (0) {
  ------------------
  |  Branch (573:6): [Folded, False: 2]
  ------------------
  574|       |
  575|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h10)) {
  ------------------
  |  |   47|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h10 "XMSS-SHA2_10_256"
  ------------------
  |  Branch (575:13): [True: 0, False: 2]
  ------------------
  576|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h10
  577|       |		return OQS_SIG_STFL_alg_xmss_sha256_h10_new();
  578|       |#else
  579|      0|		return NULL;
  580|      0|#endif
  581|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h16)) {
  ------------------
  |  |   49|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h16 "XMSS-SHA2_16_256"
  ------------------
  |  Branch (581:13): [True: 0, False: 2]
  ------------------
  582|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h16
  583|       |		return OQS_SIG_STFL_alg_xmss_sha256_h16_new();
  584|       |#else
  585|      0|		return NULL;
  586|      0|#endif
  587|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h20)) {
  ------------------
  |  |   51|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h20 "XMSS-SHA2_20_256"
  ------------------
  |  Branch (587:13): [True: 0, False: 2]
  ------------------
  588|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h20
  589|       |		return OQS_SIG_STFL_alg_xmss_sha256_h20_new();
  590|       |#else
  591|      0|		return NULL;
  592|      0|#endif
  593|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake128_h10)) {
  ------------------
  |  |   53|      2|#define OQS_SIG_STFL_alg_xmss_shake128_h10 "XMSS-SHAKE_10_256"
  ------------------
  |  Branch (593:13): [True: 0, False: 2]
  ------------------
  594|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake128_h10
  595|       |		return OQS_SIG_STFL_alg_xmss_shake128_h10_new();
  596|       |#else
  597|      0|		return NULL;
  598|      0|#endif
  599|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake128_h16)) {
  ------------------
  |  |   55|      2|#define OQS_SIG_STFL_alg_xmss_shake128_h16 "XMSS-SHAKE_16_256"
  ------------------
  |  Branch (599:13): [True: 0, False: 2]
  ------------------
  600|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake128_h16
  601|       |		return OQS_SIG_STFL_alg_xmss_shake128_h16_new();
  602|       |#else
  603|      0|		return NULL;
  604|      0|#endif
  605|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake128_h20)) {
  ------------------
  |  |   57|      2|#define OQS_SIG_STFL_alg_xmss_shake128_h20 "XMSS-SHAKE_20_256"
  ------------------
  |  Branch (605:13): [True: 0, False: 2]
  ------------------
  606|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake128_h20
  607|       |		return OQS_SIG_STFL_alg_xmss_shake128_h20_new();
  608|       |#else
  609|      0|		return NULL;
  610|      0|#endif
  611|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha512_h10)) {
  ------------------
  |  |   59|      2|#define OQS_SIG_STFL_alg_xmss_sha512_h10 "XMSS-SHA2_10_512"
  ------------------
  |  Branch (611:13): [True: 0, False: 2]
  ------------------
  612|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha512_h10
  613|       |		return OQS_SIG_STFL_alg_xmss_sha512_h10_new();
  614|       |#else
  615|      0|		return NULL;
  616|      0|#endif
  617|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha512_h16)) {
  ------------------
  |  |   61|      2|#define OQS_SIG_STFL_alg_xmss_sha512_h16 "XMSS-SHA2_16_512"
  ------------------
  |  Branch (617:13): [True: 0, False: 2]
  ------------------
  618|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha512_h16
  619|       |		return OQS_SIG_STFL_alg_xmss_sha512_h16_new();
  620|       |#else
  621|      0|		return NULL;
  622|      0|#endif
  623|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha512_h20)) {
  ------------------
  |  |   63|      2|#define OQS_SIG_STFL_alg_xmss_sha512_h20 "XMSS-SHA2_20_512"
  ------------------
  |  Branch (623:13): [True: 0, False: 2]
  ------------------
  624|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha512_h20
  625|       |		return OQS_SIG_STFL_alg_xmss_sha512_h20_new();
  626|       |#else
  627|      0|		return NULL;
  628|      0|#endif
  629|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10)) {
  ------------------
  |  |   65|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h10 "XMSS-SHAKE_10_512"
  ------------------
  |  Branch (629:13): [True: 0, False: 2]
  ------------------
  630|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10
  631|       |		return OQS_SIG_STFL_alg_xmss_shake256_h10_new();
  632|       |#else
  633|      0|		return NULL;
  634|      0|#endif
  635|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16)) {
  ------------------
  |  |   67|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h16 "XMSS-SHAKE_16_512"
  ------------------
  |  Branch (635:13): [True: 0, False: 2]
  ------------------
  636|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16
  637|       |		return OQS_SIG_STFL_alg_xmss_shake256_h16_new();
  638|       |#else
  639|      0|		return NULL;
  640|      0|#endif
  641|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20)) {
  ------------------
  |  |   69|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h20 "XMSS-SHAKE_20_512"
  ------------------
  |  Branch (641:13): [True: 0, False: 2]
  ------------------
  642|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20
  643|       |		return OQS_SIG_STFL_alg_xmss_shake256_h20_new();
  644|       |#else
  645|      0|		return NULL;
  646|      0|#endif
  647|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h10_192)) {
  ------------------
  |  |   71|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h10_192 "XMSS-SHA2_10_192"
  ------------------
  |  Branch (647:13): [True: 0, False: 2]
  ------------------
  648|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h10_192
  649|       |		return OQS_SIG_STFL_alg_xmss_sha256_h10_192_new();
  650|       |#else
  651|      0|		return NULL;
  652|      0|#endif
  653|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h16_192)) {
  ------------------
  |  |   73|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h16_192 "XMSS-SHA2_16_192"
  ------------------
  |  Branch (653:13): [True: 0, False: 2]
  ------------------
  654|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h16_192
  655|       |		return OQS_SIG_STFL_alg_xmss_sha256_h16_192_new();
  656|       |#else
  657|      0|		return NULL;
  658|      0|#endif
  659|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_sha256_h20_192)) {
  ------------------
  |  |   75|      2|#define OQS_SIG_STFL_alg_xmss_sha256_h20_192 "XMSS-SHA2_20_192"
  ------------------
  |  Branch (659:13): [True: 0, False: 2]
  ------------------
  660|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_sha256_h20_192
  661|       |		return OQS_SIG_STFL_alg_xmss_sha256_h20_192_new();
  662|       |#else
  663|      0|		return NULL;
  664|      0|#endif
  665|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10_192)) {
  ------------------
  |  |   77|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h10_192 "XMSS-SHAKE256_10_192"
  ------------------
  |  Branch (665:13): [True: 0, False: 2]
  ------------------
  666|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_192
  667|       |		return OQS_SIG_STFL_alg_xmss_shake256_h10_192_new();
  668|       |#else
  669|      0|		return NULL;
  670|      0|#endif
  671|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_192)) {
  ------------------
  |  |   79|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h16_192 "XMSS-SHAKE256_16_192"
  ------------------
  |  Branch (671:13): [True: 0, False: 2]
  ------------------
  672|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_192
  673|       |		return OQS_SIG_STFL_alg_xmss_shake256_h16_192_new();
  674|       |#else
  675|      0|		return NULL;
  676|      0|#endif
  677|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_192)) {
  ------------------
  |  |   81|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h20_192 "XMSS-SHAKE256_20_192"
  ------------------
  |  Branch (677:13): [True: 0, False: 2]
  ------------------
  678|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_192
  679|       |		return OQS_SIG_STFL_alg_xmss_shake256_h20_192_new();
  680|       |#else
  681|      0|		return NULL;
  682|      0|#endif
  683|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10_256)) {
  ------------------
  |  |   83|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h10_256 "XMSS-SHAKE256_10_256"
  ------------------
  |  Branch (683:13): [True: 0, False: 2]
  ------------------
  684|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256
  685|       |		return OQS_SIG_STFL_alg_xmss_shake256_h10_256_new();
  686|       |#else
  687|      0|		return NULL;
  688|      0|#endif
  689|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_256)) {
  ------------------
  |  |   85|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h16_256 "XMSS-SHAKE256_16_256"
  ------------------
  |  Branch (689:13): [True: 0, False: 2]
  ------------------
  690|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256
  691|       |		return OQS_SIG_STFL_alg_xmss_shake256_h16_256_new();
  692|       |#else
  693|      0|		return NULL;
  694|      0|#endif
  695|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_256)) {
  ------------------
  |  |   87|      2|#define OQS_SIG_STFL_alg_xmss_shake256_h20_256 "XMSS-SHAKE256_20_256"
  ------------------
  |  Branch (695:13): [True: 0, False: 2]
  ------------------
  696|       |#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256
  697|       |		return OQS_SIG_STFL_alg_xmss_shake256_h20_256_new();
  698|       |#else
  699|      0|		return NULL;
  700|      0|#endif
  701|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h20_2)) {
  ------------------
  |  |   90|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2 "XMSSMT-SHA2_20/2_256"
  ------------------
  |  Branch (701:13): [True: 0, False: 2]
  ------------------
  702|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2
  703|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h20_2_new();
  704|       |#else
  705|      0|		return NULL;
  706|      0|#endif
  707|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h20_4)) {
  ------------------
  |  |   92|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h20_4 "XMSSMT-SHA2_20/4_256"
  ------------------
  |  Branch (707:13): [True: 0, False: 2]
  ------------------
  708|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_4
  709|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h20_4_new();
  710|       |#else
  711|      0|		return NULL;
  712|      0|#endif
  713|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h40_2)) {
  ------------------
  |  |   94|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_2 "XMSSMT-SHA2_40/2_256"
  ------------------
  |  Branch (713:13): [True: 0, False: 2]
  ------------------
  714|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h40_2
  715|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h40_2_new();
  716|       |#else
  717|      0|		return NULL;
  718|      0|#endif
  719|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h40_4)) {
  ------------------
  |  |   96|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_4 "XMSSMT-SHA2_40/4_256"
  ------------------
  |  Branch (719:13): [True: 0, False: 2]
  ------------------
  720|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h40_4
  721|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h40_4_new();
  722|       |#else
  723|      0|		return NULL;
  724|      0|#endif
  725|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h40_8)) {
  ------------------
  |  |   98|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_8 "XMSSMT-SHA2_40/8_256"
  ------------------
  |  Branch (725:13): [True: 0, False: 2]
  ------------------
  726|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h40_8
  727|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h40_8_new();
  728|       |#else
  729|      0|		return NULL;
  730|      0|#endif
  731|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h60_3)) {
  ------------------
  |  |  100|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_3 "XMSSMT-SHA2_60/3_256"
  ------------------
  |  Branch (731:13): [True: 0, False: 2]
  ------------------
  732|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h60_3
  733|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h60_3_new();
  734|       |#else
  735|      0|		return NULL;
  736|      0|#endif
  737|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h60_6)) {
  ------------------
  |  |  102|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_6 "XMSSMT-SHA2_60/6_256"
  ------------------
  |  Branch (737:13): [True: 0, False: 2]
  ------------------
  738|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h60_6
  739|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h60_6_new();
  740|       |#else
  741|      0|		return NULL;
  742|      0|#endif
  743|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h60_12)) {
  ------------------
  |  |  104|      2|#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_12 "XMSSMT-SHA2_60/12_256"
  ------------------
  |  Branch (743:13): [True: 0, False: 2]
  ------------------
  744|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h60_12
  745|       |		return OQS_SIG_STFL_alg_xmssmt_sha256_h60_12_new();
  746|       |#else
  747|      0|		return NULL;
  748|      0|#endif
  749|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h20_2)) {
  ------------------
  |  |  106|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h20_2 "XMSSMT-SHAKE_20/2_256"
  ------------------
  |  Branch (749:13): [True: 0, False: 2]
  ------------------
  750|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h20_2
  751|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h20_2_new();
  752|       |#else
  753|      0|		return NULL;
  754|      0|#endif
  755|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h20_4)) {
  ------------------
  |  |  108|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h20_4 "XMSSMT-SHAKE_20/4_256"
  ------------------
  |  Branch (755:13): [True: 0, False: 2]
  ------------------
  756|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h20_4
  757|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h20_4_new();
  758|       |#else
  759|      0|		return NULL;
  760|      0|#endif
  761|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h40_2)) {
  ------------------
  |  |  110|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_2 "XMSSMT-SHAKE_40/2_256"
  ------------------
  |  Branch (761:13): [True: 0, False: 2]
  ------------------
  762|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h40_2
  763|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h40_2_new();
  764|       |#else
  765|      0|		return NULL;
  766|      0|#endif
  767|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h40_4)) {
  ------------------
  |  |  112|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_4 "XMSSMT-SHAKE_40/4_256"
  ------------------
  |  Branch (767:13): [True: 0, False: 2]
  ------------------
  768|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h40_4
  769|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h40_4_new();
  770|       |#else
  771|      0|		return NULL;
  772|      0|#endif
  773|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h40_8)) {
  ------------------
  |  |  114|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_8 "XMSSMT-SHAKE_40/8_256"
  ------------------
  |  Branch (773:13): [True: 0, False: 2]
  ------------------
  774|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h40_8
  775|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h40_8_new();
  776|       |#else
  777|      0|		return NULL;
  778|      0|#endif
  779|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h60_3)) {
  ------------------
  |  |  116|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_3 "XMSSMT-SHAKE_60/3_256"
  ------------------
  |  Branch (779:13): [True: 0, False: 2]
  ------------------
  780|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h60_3
  781|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h60_3_new();
  782|       |#else
  783|      0|		return NULL;
  784|      0|#endif
  785|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h60_6)) {
  ------------------
  |  |  118|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_6 "XMSSMT-SHAKE_60/6_256"
  ------------------
  |  Branch (785:13): [True: 0, False: 2]
  ------------------
  786|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h60_6
  787|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h60_6_new();
  788|       |#else
  789|      0|		return NULL;
  790|      0|#endif
  791|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_shake128_h60_12)) {
  ------------------
  |  |  120|      2|#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_12 "XMSSMT-SHAKE_60/12_256"
  ------------------
  |  Branch (791:13): [True: 0, False: 2]
  ------------------
  792|       |#ifdef OQS_ENABLE_SIG_STFL_xmssmt_shake128_h60_12
  793|       |		return OQS_SIG_STFL_alg_xmssmt_shake128_h60_12_new();
  794|       |#else
  795|      0|		return NULL;
  796|      0|#endif
  797|      0|	}
  798|       |//#ifdef OQS_ENABLE_SIG_STFL_LMS
  799|      2|	else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h5_w1)) {
  ------------------
  |  |  124|      2|#define OQS_SIG_STFL_alg_lms_sha256_h5_w1 "LMS_SHA256_H5_W1" //"5/1"
  ------------------
  |  Branch (799:11): [True: 0, False: 2]
  ------------------
  800|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h5_w1
  801|       |		return OQS_SIG_STFL_alg_lms_sha256_h5_w1_new();
  802|       |#else
  803|      0|		return NULL;
  804|      0|#endif
  805|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h5_w2)) {
  ------------------
  |  |  126|      2|#define OQS_SIG_STFL_alg_lms_sha256_h5_w2 "LMS_SHA256_H5_W2" //"5/2"
  ------------------
  |  Branch (805:13): [True: 2, False: 0]
  ------------------
  806|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h5_w2
  807|       |		return OQS_SIG_STFL_alg_lms_sha256_h5_w2_new();
  808|       |#else
  809|      2|		return NULL;
  810|      2|#endif
  811|      2|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h5_w4)) {
  ------------------
  |  |  128|      0|#define OQS_SIG_STFL_alg_lms_sha256_h5_w4 "LMS_SHA256_H5_W4" //"5/4"
  ------------------
  |  Branch (811:13): [True: 0, False: 0]
  ------------------
  812|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h5_w4
  813|       |		return OQS_SIG_STFL_alg_lms_sha256_h5_w4_new();
  814|       |#else
  815|      0|		return NULL;
  816|      0|#endif
  817|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h5_w8)) {
  ------------------
  |  |  130|      0|#define OQS_SIG_STFL_alg_lms_sha256_h5_w8 "LMS_SHA256_H5_W8" //"5/8"
  ------------------
  |  Branch (817:13): [True: 0, False: 0]
  ------------------
  818|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8
  819|       |		return OQS_SIG_STFL_alg_lms_sha256_h5_w8_new();
  820|       |#else
  821|      0|		return NULL;
  822|      0|#endif
  823|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w1)) {
  ------------------
  |  |  133|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w1 "LMS_SHA256_H10_W1" //"10/1"
  ------------------
  |  Branch (823:13): [True: 0, False: 0]
  ------------------
  824|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w1
  825|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w1_new();
  826|       |#else
  827|      0|		return NULL;
  828|      0|#endif
  829|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w2)) {
  ------------------
  |  |  135|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w2 "LMS_SHA256_H10_W2" //"10/2"
  ------------------
  |  Branch (829:13): [True: 0, False: 0]
  ------------------
  830|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w2
  831|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w2_new();
  832|       |#else
  833|      0|		return NULL;
  834|      0|#endif
  835|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w4)) {
  ------------------
  |  |  137|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w4 "LMS_SHA256_H10_W4" //"10/4"
  ------------------
  |  Branch (835:13): [True: 0, False: 0]
  ------------------
  836|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4
  837|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w4_new();
  838|       |#else
  839|      0|		return NULL;
  840|      0|#endif
  841|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w8)) {
  ------------------
  |  |  139|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w8 "LMS_SHA256_H10_W8" //"10/8"
  ------------------
  |  Branch (841:13): [True: 0, False: 0]
  ------------------
  842|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w8
  843|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w8_new();
  844|       |#else
  845|      0|		return NULL;
  846|      0|#endif
  847|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w1)) {
  ------------------
  |  |  142|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w1 "LMS_SHA256_H15_W1" //"15/1"
  ------------------
  |  Branch (847:13): [True: 0, False: 0]
  ------------------
  848|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w1
  849|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w1_new();
  850|       |#else
  851|      0|		return NULL;
  852|      0|#endif
  853|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w2)) {
  ------------------
  |  |  144|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w2 "LMS_SHA256_H15_W2" //"15/2"
  ------------------
  |  Branch (853:13): [True: 0, False: 0]
  ------------------
  854|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w2
  855|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w2_new();
  856|       |#else
  857|      0|		return NULL;
  858|      0|#endif
  859|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w4)) {
  ------------------
  |  |  146|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w4 "LMS_SHA256_H15_W4" //"15/4"
  ------------------
  |  Branch (859:13): [True: 0, False: 0]
  ------------------
  860|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w4
  861|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w4_new();
  862|       |#else
  863|      0|		return NULL;
  864|      0|#endif
  865|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w8)) {
  ------------------
  |  |  148|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w8 "LMS_SHA256_H15_W8" //"15/8"
  ------------------
  |  Branch (865:13): [True: 0, False: 0]
  ------------------
  866|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8
  867|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w8_new();
  868|       |#else
  869|      0|		return NULL;
  870|      0|#endif
  871|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w1)) {
  ------------------
  |  |  151|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w1 "LMS_SHA256_H20_W1" //"20/1"
  ------------------
  |  Branch (871:13): [True: 0, False: 0]
  ------------------
  872|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w1
  873|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w1_new();
  874|       |#else
  875|      0|		return NULL;
  876|      0|#endif
  877|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w2)) {
  ------------------
  |  |  153|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w2 "LMS_SHA256_H20_W2" //"20/2"
  ------------------
  |  Branch (877:13): [True: 0, False: 0]
  ------------------
  878|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w2
  879|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w2_new();
  880|       |#else
  881|      0|		return NULL;
  882|      0|#endif
  883|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w4)) {
  ------------------
  |  |  155|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w4 "LMS_SHA256_H20_W4" //"20/4"
  ------------------
  |  Branch (883:13): [True: 0, False: 0]
  ------------------
  884|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w4
  885|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w4_new();
  886|       |#else
  887|      0|		return NULL;
  888|      0|#endif
  889|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w8)) {
  ------------------
  |  |  157|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w8 "LMS_SHA256_H20_W8" //"20/8"
  ------------------
  |  Branch (889:13): [True: 0, False: 0]
  ------------------
  890|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8
  891|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w8_new();
  892|       |#else
  893|      0|		return NULL;
  894|      0|#endif
  895|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h25_w1)) {
  ------------------
  |  |  160|      0|#define OQS_SIG_STFL_alg_lms_sha256_h25_w1 "LMS_SHA256_H25_W1" //"25/1"
  ------------------
  |  Branch (895:13): [True: 0, False: 0]
  ------------------
  896|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h25_w1
  897|       |		return OQS_SIG_STFL_alg_lms_sha256_h25_w1_new();
  898|       |#else
  899|      0|		return NULL;
  900|      0|#endif
  901|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h25_w2)) {
  ------------------
  |  |  162|      0|#define OQS_SIG_STFL_alg_lms_sha256_h25_w2 "LMS_SHA256_H25_W2" //"25/2"
  ------------------
  |  Branch (901:13): [True: 0, False: 0]
  ------------------
  902|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h25_w2
  903|       |		return OQS_SIG_STFL_alg_lms_sha256_h25_w2_new();
  904|       |#else
  905|      0|		return NULL;
  906|      0|#endif
  907|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h25_w4)) {
  ------------------
  |  |  164|      0|#define OQS_SIG_STFL_alg_lms_sha256_h25_w4 "LMS_SHA256_H25_W4" //"25/4"
  ------------------
  |  Branch (907:13): [True: 0, False: 0]
  ------------------
  908|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h25_w4
  909|       |		return OQS_SIG_STFL_alg_lms_sha256_h25_w4_new();
  910|       |#else
  911|      0|		return NULL;
  912|      0|#endif
  913|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h25_w8)) {
  ------------------
  |  |  166|      0|#define OQS_SIG_STFL_alg_lms_sha256_h25_w8 "LMS_SHA256_H25_W8" //"25/8"
  ------------------
  |  Branch (913:13): [True: 0, False: 0]
  ------------------
  914|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h25_w8
  915|       |		return OQS_SIG_STFL_alg_lms_sha256_h25_w8_new();
  916|       |#else
  917|      0|		return NULL;
  918|      0|#endif
  919|      0|	}
  920|       |//2-Level LMS
  921|      0|	else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8)) {
  ------------------
  |  |  170|      0|#define OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8 "LMS_SHA256_H5_W8_H5_W8" //"5/8, 5/8"
  ------------------
  |  Branch (921:11): [True: 0, False: 0]
  ------------------
  922|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8_h5_w8
  923|       |		return OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8_new();
  924|       |#else
  925|      0|		return NULL;
  926|      0|#endif
  927|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8)) {
  ------------------
  |  |  174|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8 "LMS_SHA256_H10_W4_H5_W8" //"10/4, 5/8"
  ------------------
  |  Branch (927:13): [True: 0, False: 0]
  ------------------
  928|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4_h5_w8
  929|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8_new();
  930|       |#else
  931|      0|		return NULL;
  932|      0|#endif
  933|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8)) {
  ------------------
  |  |  177|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8 "LMS_SHA256_H10_W8_H5_W8"   //"10/8, 5/8"
  ------------------
  |  Branch (933:13): [True: 0, False: 0]
  ------------------
  934|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w8_h5_w8
  935|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8_new();
  936|       |#else
  937|      0|		return NULL;
  938|      0|#endif
  939|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2)) {
  ------------------
  |  |  179|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2 "LMS_SHA256_H10_W2_H10_W2" //"10/2, 10/2"
  ------------------
  |  Branch (939:13): [True: 0, False: 0]
  ------------------
  940|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w2_h10_w2
  941|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2_new();
  942|       |#else
  943|      0|		return NULL;
  944|      0|#endif
  945|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4)) {
  ------------------
  |  |  181|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4 "LMS_SHA256_H10_W4_H10_W4" //"10/4, 10/4"
  ------------------
  |  Branch (945:13): [True: 0, False: 0]
  ------------------
  946|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4_h10_w4
  947|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4_new();
  948|       |#else
  949|      0|		return NULL;
  950|      0|#endif
  951|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8)) {
  ------------------
  |  |  183|      0|#define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8 "LMS_SHA256_H10_W8_H10_W8" //"10/8, 10/8"
  ------------------
  |  Branch (951:13): [True: 0, False: 0]
  ------------------
  952|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h10_w8_h10_w8
  953|       |		return OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8_new();
  954|       |#else
  955|      0|		return NULL;
  956|      0|#endif
  957|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8)) {
  ------------------
  |  |  186|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8 "LMS_SHA256_H15_W8_H5_W8"   //"15/8, 5/8"
  ------------------
  |  Branch (957:13): [True: 0, False: 0]
  ------------------
  958|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8_h5_w8
  959|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8_new();
  960|       |#else
  961|      0|		return NULL;
  962|      0|#endif
  963|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8)) {
  ------------------
  |  |  188|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8 "LMS_SHA256_H15_W8_H10_W8" //"15/8, 10/8"
  ------------------
  |  Branch (963:13): [True: 0, False: 0]
  ------------------
  964|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8_h10_w8
  965|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8_new();
  966|       |#else
  967|      0|		return NULL;
  968|      0|#endif
  969|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8)) {
  ------------------
  |  |  190|      0|#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8 "LMS_SHA256_H15_W8_H15_W8" //"15/8, 15/8"
  ------------------
  |  Branch (969:13): [True: 0, False: 0]
  ------------------
  970|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8_h15_w8
  971|       |		return OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8_new();
  972|       |#else
  973|      0|		return NULL;
  974|      0|#endif
  975|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8)) {
  ------------------
  |  |  193|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8 "LMS_SHA256_H20_W8_H5_W8"   //"20/8, 5/8"
  ------------------
  |  Branch (975:13): [True: 0, False: 0]
  ------------------
  976|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8_h5_w8
  977|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8_new();
  978|       |#else
  979|      0|		return NULL;
  980|      0|#endif
  981|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8)) {
  ------------------
  |  |  195|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8 "LMS_SHA256_H20_W8_H10_W8" //"20/8, 10/8"
  ------------------
  |  Branch (981:13): [True: 0, False: 0]
  ------------------
  982|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8_h10_w8
  983|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8_new();
  984|       |#else
  985|      0|		return NULL;
  986|      0|#endif
  987|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8)) {
  ------------------
  |  |  197|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8 "LMS_SHA256_H20_W8_H15_W8" //"20/8, 15/8"
  ------------------
  |  Branch (987:13): [True: 0, False: 0]
  ------------------
  988|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8_h15_w8
  989|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8_new();
  990|       |#else
  991|      0|		return NULL;
  992|      0|#endif
  993|      0|	} else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8)) {
  ------------------
  |  |  199|      0|#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8 "LMS_SHA256_H20_W8_H20_W8" //"20/8, 20/8"
  ------------------
  |  Branch (993:13): [True: 0, False: 0]
  ------------------
  994|       |#ifdef OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8_h20_w8
  995|       |		return OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8_new();
  996|       |#else
  997|      0|		return NULL;
  998|      0|#endif
  999|      0|	}
 1000|       |//#endif //OQS_ENABLE_SIG_STFL_LMS
 1001|      0|	else {
 1002|       |		return NULL;
 1003|      0|	}
 1004|      2|}

LLVMFuzzerInitialize:
  281|      2|int LLVMFuzzerInitialize(int *argc, char ***argv) {
  282|      2|	(void)argc;
  283|      2|	(void)argv;
  284|      2|	OQS_init();
  285|      2|	if (OQS_SUCCESS != init_vectors()) {
  ------------------
  |  Branch (285:6): [True: 2, False: 0]
  ------------------
  286|      2|		return -1;
  287|      2|	}
  288|      0|	initialised = true;
  289|      0|	return 0;
  290|      2|}
LLVMFuzzerTestOneInput:
  292|      1|int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  293|      1|	if (!initialised) {
  ------------------
  |  Branch (293:6): [True: 1, False: 0]
  ------------------
  294|      1|		return -1;
  295|      1|	}
  296|      0|	fuzz_sig_stfl_lms(data, size);
  297|      0|	return 0;
  298|      1|}
fuzz_test_sig_stfl_lms.c:init_vectors:
  127|      2|static OQS_STATUS init_vectors(void) {
  128|      6|	for (size_t i = 0; i < NUM_TARGET_ALGS; i++) {
  ------------------
  |  Branch (128:21): [True: 4, False: 2]
  ------------------
  129|      4|		cached[i].sig = NULL;
  130|      4|		cached[i].public_key = NULL;
  131|      4|		cached[i].signature = NULL;
  132|      4|		cached[i].message = NULL;
  133|      4|	}
  134|       |
  135|      2|	for (size_t i = 0; i < NUM_TARGET_ALGS; i++) {
  ------------------
  |  Branch (135:21): [True: 2, False: 0]
  ------------------
  136|      2|		OQS_SIG_STFL *sig = OQS_SIG_STFL_new(TARGET_ALGS[i]);
  ------------------
  |  |  280|      2|#define OQS_SIG_STFL OQS_SIG
  ------------------
  137|      2|		if (sig == NULL) {
  ------------------
  |  Branch (137:7): [True: 2, False: 0]
  ------------------
  138|      2|			fprintf(stderr, "ERROR: %s not enabled at compile-time.\n",
  139|      2|			        TARGET_ALGS[i]);
  140|      2|			cleanup_cached();
  141|      2|			return OQS_ERROR;
  142|      2|		}
  143|      0|		cached[i].sig = sig;
  144|       |
  145|      0|		cached[i].public_key = OQS_MEM_malloc(sig->length_public_key);
  146|      0|		cached[i].signature = OQS_MEM_malloc(sig->length_signature);
  147|      0|		cached[i].signature_len = sig->length_signature;
  148|      0|		cached[i].message_len = strlen(KAT_HEX[i].msg_hex) / 2;
  149|      0|		cached[i].message = OQS_MEM_malloc(cached[i].message_len);
  150|       |
  151|      0|		if (!cached[i].public_key || !cached[i].message || !cached[i].signature) {
  ------------------
  |  Branch (151:7): [True: 0, False: 0]
  |  Branch (151:32): [True: 0, False: 0]
  |  Branch (151:54): [True: 0, False: 0]
  ------------------
  152|      0|			fprintf(stderr, "ERROR: OQS_MEM_malloc failed for %s.\n",
  153|      0|			        TARGET_ALGS[i]);
  154|      0|			cleanup_cached();
  155|      0|			return OQS_ERROR;
  156|      0|		}
  157|       |
  158|      0|		if (hex_decode(KAT_HEX[i].pk_hex, cached[i].public_key,
  ------------------
  |  Branch (158:7): [True: 0, False: 0]
  ------------------
  159|      0|		               sig->length_public_key) != OQS_SUCCESS) {
  160|      0|			fprintf(stderr, "ERROR: KAT pk hex length mismatch for %s.\n",
  161|      0|			        TARGET_ALGS[i]);
  162|      0|			cleanup_cached();
  163|      0|			return OQS_ERROR;
  164|      0|		}
  165|      0|		if (hex_decode(KAT_HEX[i].msg_hex, cached[i].message,
  ------------------
  |  Branch (165:7): [True: 0, False: 0]
  ------------------
  166|      0|		               cached[i].message_len) != OQS_SUCCESS) {
  167|      0|			fprintf(stderr, "ERROR: KAT msg hex for %s.\n", TARGET_ALGS[i]);
  168|      0|			cleanup_cached();
  169|      0|			return OQS_ERROR;
  170|      0|		}
  171|      0|		if (hex_decode(KAT_HEX[i].sm_hex, cached[i].signature,
  ------------------
  |  Branch (171:7): [True: 0, False: 0]
  ------------------
  172|      0|		               sig->length_signature) != OQS_SUCCESS) {
  173|      0|			fprintf(stderr, "ERROR: KAT sm hex length mismatch for %s.\n",
  174|      0|			        TARGET_ALGS[i]);
  175|      0|			cleanup_cached();
  176|      0|			return OQS_ERROR;
  177|      0|		}
  178|      0|	}
  179|      0|	return OQS_SUCCESS;
  180|      2|}
fuzz_test_sig_stfl_lms.c:cleanup_cached:
  101|      2|static void cleanup_cached(void) {
  102|      6|	for (size_t i = 0; i < NUM_TARGET_ALGS; i++) {
  ------------------
  |  Branch (102:21): [True: 4, False: 2]
  ------------------
  103|      4|		if (cached[i].sig != NULL) {
  ------------------
  |  Branch (103:7): [True: 0, False: 4]
  ------------------
  104|      0|			OQS_MEM_insecure_free(cached[i].public_key);
  105|      0|			OQS_MEM_insecure_free(cached[i].signature);
  106|      0|			OQS_MEM_secure_free(cached[i].message, cached[i].message_len);
  107|      0|			OQS_SIG_STFL_free(cached[i].sig);
  108|       |			cached[i].sig = NULL;
  109|      0|		}
  110|      4|	}
  111|      2|}

