#include <openssl/base.h>
#include <string.h>
#include "./address.h"
#include "./merkle.h"
#include "./params.h"
#include "./thash.h"
#include "./wots.h"
void spx_treehash(uint8_t out_pk[SPX_N], const uint8_t sk_seed[SPX_N],
uint32_t i ,
uint32_t z ,
const uint8_t pk_seed[SPX_N], uint8_t addr[32]) { … }
void spx_xmss_sign(uint8_t *sig, const uint8_t msg[SPX_N], unsigned int idx,
const uint8_t sk_seed[SPX_N], const uint8_t pk_seed[SPX_N],
uint8_t addr[32]) { … }
void spx_xmss_pk_from_sig(uint8_t *root, const uint8_t *xmss_sig,
unsigned int idx, const uint8_t msg[SPX_N],
const uint8_t pk_seed[SPX_N], uint8_t addr[32]) { … }
void spx_ht_sign(uint8_t *sig, const uint8_t message[SPX_N], uint64_t idx_tree,
uint32_t idx_leaf, const uint8_t sk_seed[SPX_N],
const uint8_t pk_seed[SPX_N]) { … }
int spx_ht_verify(const uint8_t sig[SPX_D * SPX_XMSS_BYTES],
const uint8_t message[SPX_N], uint64_t idx_tree,
uint32_t idx_leaf, const uint8_t pk_root[SPX_N],
const uint8_t pk_seed[SPX_N]) { … }