#include <openssl/base.h>
#include <string.h>
#define OPENSSL_UNSTABLE_EXPERIMENTAL_SPX
#include <openssl/experimental/spx.h>
#include <openssl/rand.h>
#include "./address.h"
#include "./fors.h"
#include "./merkle.h"
#include "./params.h"
#include "./spx_util.h"
#include "./thash.h"
void SPX_generate_key(uint8_t out_public_key[SPX_PUBLIC_KEY_BYTES],
uint8_t out_secret_key[SPX_SECRET_KEY_BYTES]) { … }
void SPX_generate_key_from_seed(uint8_t out_public_key[SPX_PUBLIC_KEY_BYTES],
uint8_t out_secret_key[SPX_SECRET_KEY_BYTES],
const uint8_t seed[3 * SPX_N]) { … }
void SPX_sign(uint8_t out_signature[SPX_SIGNATURE_BYTES],
const uint8_t secret_key[SPX_SECRET_KEY_BYTES],
const uint8_t *msg, size_t msg_len, int randomized) { … }
int SPX_verify(const uint8_t signature[SPX_SIGNATURE_BYTES],
const uint8_t public_key[SPX_SECRET_KEY_BYTES],
const uint8_t *msg, size_t msg_len) { … }