#ifndef XMSS_H
#define XMSS_H
#include <stdint.h>
#include "namespace.h"
#define xmss_keypair XMSS_NAMESPACE(xmss_keypair)
int xmss_keypair(unsigned char *pk, unsigned char *sk, const uint32_t oid);
#define xmss_sign XMSS_NAMESPACE(xmss_sign)
int xmss_sign(unsigned char *sk,
unsigned char *sm, unsigned long long *smlen,
const unsigned char *m, unsigned long long mlen);
#define xmss_sign_open XMSS_NAMESPACE(xmss_sign_open)
int xmss_sign_open(const unsigned char *m, unsigned long long mlen,
const unsigned char *sm, unsigned long long smlen,
const unsigned char *pk);
#define xmss_remaining_signatures XMSS_NAMESPACE(xmss_remaining_signatures)
int xmss_remaining_signatures(unsigned long long *remain, const unsigned char *sk);
#define xmss_total_signatures XMSS_NAMESPACE(xmss_total_signatures)
int xmss_total_signatures(unsigned long long *max, const unsigned char *sk);
#define xmssmt_keypair XMSS_NAMESPACE(xmssmt_keypair)
int xmssmt_keypair(unsigned char *pk, unsigned char *sk, const uint32_t oid);
#define xmssmt_sign XMSS_NAMESPACE(xmssmt_sign)
int xmssmt_sign(unsigned char *sk,
unsigned char *sm, unsigned long long *smlen,
const unsigned char *m, unsigned long long mlen);
#define xmssmt_sign_open XMSS_NAMESPACE(xmssmt_sign_open)
int xmssmt_sign_open(const unsigned char *m, unsigned long long mlen,
const unsigned char *sm, unsigned long long smlen,
const unsigned char *pk);
#define xmssmt_remaining_signatures XMSS_NAMESPACE(xmssmt_remaining_signatures)
int xmssmt_remaining_signatures(unsigned long long *remain, const unsigned char *sk);
#define xmssmt_total_signatures XMSS_NAMESPACE(xmssmt_total_signatures)
int xmssmt_total_signatures(unsigned long long *max, const unsigned char *sk);
#endif