#ifndef SIG_H
#define SIG_H

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
#include "params.h"
#include "fips202.h"
#include "byte.h"
#include "poly.h"
#include "rand.h"

//int sig_keygen(unsigned char *pk, unsigned char *sk);
//int sig_sign(unsigned char *sk,const unsigned char *m, unsigned long long mlen,unsigned char *sm, unsigned long long *smlen, unsigned char *rb);
//int sig_verf(unsigned char *pk,unsigned char *sm, unsigned long long smlen,unsigned char *m, unsigned long long mlen);
unsigned long long sig_get_pk_byts();
unsigned long long sig_get_sk_byts();
unsigned long long sig_get_sn_byts();
//void hash_pack(int32_t *a, unsigned char *chtohash, int inputlen);
int sig_keygen(unsigned char *pk, unsigned long long *pk_byts, 
	unsigned char *sk, unsigned long long *sk_byts);
int sig_sign(unsigned char *sk, unsigned long long sk_byts,
	const unsigned char *m, unsigned long long mlen,
	unsigned char *sm, unsigned long long *smlen);
int sig_verf(unsigned char *pk, unsigned long long pk_byts,
	unsigned char *sm, unsigned long long smlen,
	unsigned char *m, unsigned long long mlen);

#endif