#include <libecc/libsig.h>
typedef struct {
const char *name;
ec_alg_type sig_alg;
hash_alg_type hash;
const ec_str_params *curve;
const unsigned char *pubkey;
unsigned int pubkeylen;
const unsigned char *msg;
unsigned int msglen;
const unsigned char *sig;
unsigned int siglen;
int result;
const char *comment;
} wycheproof_ecdsa_test;
typedef struct {
const char *name;
ec_alg_type sig_alg;
hash_alg_type hash;
const ec_str_params *curve;
const unsigned char *pubkey;
unsigned int pubkeylen;
const unsigned char *privkey;
unsigned int privkeylen;
const unsigned char *msg;
unsigned int msglen;
const unsigned char *sig;
unsigned int siglen;
int result;
const char *comment;
} wycheproof_eddsa_test;
typedef struct {
const char *name;
ec_alg_type xdh_alg;
const ec_str_params *curve;
const unsigned char *peerpubkey;
unsigned int peerpubkeylen;
const unsigned char *ourpubkey;
unsigned int ourpubkeylen;
const unsigned char *privkey;
unsigned int privkeylen;
const unsigned char *sharedsecret;
unsigned int sharedsecretlen;
int result;
const char *comment;
} wycheproof_xdh_test;
typedef struct {
const char *name;
ec_alg_type ecdh_alg;
const ec_str_params *curve;
const unsigned char *peerpubkey;
unsigned int peerpubkeylen;
int compressed;
const unsigned char *ourpubkey;
unsigned int ourpubkeylen;
const unsigned char *privkey;
unsigned int privkeylen;
const unsigned char *sharedsecret;
unsigned int sharedsecretlen;
int result;
const char *comment;
} wycheproof_ecdh_test;
typedef struct {
const char *name;
hash_alg_type hash;
const unsigned char *key;
unsigned int keylen;
const unsigned char *msg;
unsigned int msglen;
const unsigned char *tag;
unsigned int taglen;
int result;
const char *comment;
} wycheproof_hmac_test;