15#ifndef PAILLIER_LOCAL_H
16#define PAILLIER_LOCAL_H
18#include "hitls_build.h"
19#ifdef HITLS_CRYPTO_PAILLIER
21#include "crypt_paillier.h"
23#include "crypt_local_types.h"
24#include "crypt_types.h"
25#include "sal_atomic.h"
35} CRYPT_PAILLIER_PubKey;
42} CRYPT_PAILLIER_PrvKey;
51 CRYPT_PAILLIER_PubKey *pubKey;
52 CRYPT_PAILLIER_PrvKey *prvKey;
53 CRYPT_PAILLIER_Para *para;
54 BSL_SAL_RefCount references;
58CRYPT_PAILLIER_PrvKey *Paillier_NewPrvKey(uint32_t bits);
59CRYPT_PAILLIER_PubKey *Paillier_NewPubKey(uint32_t bits);
60void PAILLIER_FreePrvKey(CRYPT_PAILLIER_PrvKey *prvKey);
61void PAILLIER_FreePubKey(CRYPT_PAILLIER_PubKey *pubKey);
62CRYPT_PAILLIER_Para *CRYPT_Paillier_DupPara(
const CRYPT_PAILLIER_Para *para);
64#define PAILLIER_FREE_PRV_KEY(prvKey_) \
66 PAILLIER_FreePrvKey((prvKey_)); \
70#define PAILLIER_FREE_PUB_KEY(pubKey_) \
72 PAILLIER_FreePubKey((pubKey_)); \
76#define PAILLIER_FREE_PARA(para_) \
78 CRYPT_PAILLIER_FreePara((para_)); \