#ifndef __SIGN_H__
#define __SIGN_H__

#include "ecurve.h"

void getFullkey(
    ECC_PARAMS *params,
    char *ID,  // 用户ID
    big d,     // 用户部分私钥
    big x,     // 用户秘密值
    epoint *X, // 用户公钥
    big sa    // 用户完整私钥
);

void sign_Thumbur(
    ECC_PARAMS *params,
    char *ID,  // 用户ID
    char *msg, // 签名消息
    big sa,    // 用户完整私钥
    epoint *Q, // 用户完整公钥
    epoint *U, // 输出签名的随机数变换
    epoint *PK_pub, //kgc公钥
    big v      // 输出签名的计算值
);

bool verify_Thumbur(
    ECC_PARAMS *params,
    char *ID,
    char *msg,
    epoint *Q,
    epoint *PK_pub,
    epoint *U,
    big v
);

#endif