mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-19 03:13:39 +08:00
paillier pen support
and some bug fixes
This commit is contained in:
@@ -956,6 +956,7 @@ int ERR_load_ASN1_strings(void);
|
||||
# define ASN1_F_I2D_ASN1_BIO_STREAM 211
|
||||
# define ASN1_F_I2D_DSA_PUBKEY 161
|
||||
# define ASN1_F_I2D_EC_PUBKEY 181
|
||||
# define ASN1_F_I2D_PAILLIER_PUBKEY 101
|
||||
# define ASN1_F_I2D_PRIVATEKEY 163
|
||||
# define ASN1_F_I2D_PUBLICKEY 164
|
||||
# define ASN1_F_I2D_RSA_PUBKEY 165
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
# define EVP_PKEY_CMAC NID_cmac
|
||||
# define EVP_PKEY_TLS1_PRF NID_tls1_prf
|
||||
# define EVP_PKEY_HKDF NID_hkdf
|
||||
# define EVP_PKEY_PAILLIER NID_paillier
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -445,6 +446,11 @@ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
|
||||
(char *)(eckey))
|
||||
# endif
|
||||
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
# define EVP_PKEY_assign_PAILLIER(pkey,paillier) EVP_PKEY_assign((pkey),EVP_PKEY_PAILLIER,\
|
||||
(char *)(paillier))
|
||||
# endif
|
||||
|
||||
/* Add some extra combinations */
|
||||
# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
|
||||
# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a))
|
||||
@@ -1000,6 +1006,12 @@ int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
|
||||
struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey);
|
||||
struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
struct paillier_st;
|
||||
int EVP_PKEY_set1_PAILLIER(EVP_PKEY *pkey, struct paillier_st *key);
|
||||
struct paillier_st *EVP_PKEY_get0_PAILLIER(EVP_PKEY *pkey);
|
||||
struct paillier_st *EVP_PKEY_get1_PAILLIER(EVP_PKEY *pkey);
|
||||
# endif
|
||||
|
||||
EVP_PKEY *EVP_PKEY_new(void);
|
||||
int EVP_PKEY_up_ref(EVP_PKEY *pkey);
|
||||
@@ -1572,6 +1584,7 @@ int ERR_load_EVP_strings(void);
|
||||
# define EVP_F_EVP_PKEY_GET0_DSA 120
|
||||
# define EVP_F_EVP_PKEY_GET0_EC_KEY 131
|
||||
# define EVP_F_EVP_PKEY_GET0_HMAC 183
|
||||
# define EVP_F_EVP_PKEY_GET0_PAILLIER 172
|
||||
# define EVP_F_EVP_PKEY_GET0_RSA 121
|
||||
# define EVP_F_EVP_PKEY_KEYGEN 146
|
||||
# define EVP_F_EVP_PKEY_KEYGEN_INIT 147
|
||||
@@ -1616,6 +1629,7 @@ int ERR_load_EVP_strings(void);
|
||||
# define EVP_R_EXPECTING_A_DH_KEY 128
|
||||
# define EVP_R_EXPECTING_A_DSA_KEY 129
|
||||
# define EVP_R_EXPECTING_A_EC_KEY 142
|
||||
# define EVP_R_EXPECTING_A_PAILLIER 176
|
||||
# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167
|
||||
# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171
|
||||
# define EVP_R_INITIALIZATION_ERROR 134
|
||||
|
||||
@@ -74,8 +74,10 @@ int PAILLIER_decrypt(BIGNUM *out, const BIGNUM *in, PAILLIER *key);
|
||||
int PAILLIER_ciphertext_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, PAILLIER *key);
|
||||
int PAILLIER_ciphertext_scalar_mul(BIGNUM *r, const BIGNUM *scalar, const BIGNUM *a, PAILLIER *key);
|
||||
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PAILLIER_PUBLIC_KEY)
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PAILLIER_PRIVATE_KEY)
|
||||
int PAILLIER_up_ref(PAILLIER *key);
|
||||
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PaillierPrivateKey)
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PaillierPublicKey)
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/*
|
||||
|
||||
@@ -79,12 +79,12 @@ extern "C" {
|
||||
#define PEM_STRING_BB1IBE_MASTER "BB1IBE MASTER SECRET"
|
||||
#define PEM_STRING_BB1IBE_PRIVATE "BB1IBE PRIVATE KEY"
|
||||
|
||||
/*
|
||||
DECLARE_PEM_rw_cb(PaillierPrivateKey, PAILLIER)
|
||||
DECLARE_PEM_rw(PaillierPrivateKey, PAILLIER)
|
||||
DECLARE_PEM_rw_cb(CPK_PUBLIC_PARAM, CPK)
|
||||
DECLARE_PEM_rw_cb(CPK_PUBLIC_PARAMS, CPK)
|
||||
*/
|
||||
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
DECLARE_PEM_rw_cb(PAILLIERPrivateKey, PAILLIER)
|
||||
DECLARE_PEM_rw_const(PAILLIERPublicKey, PAILLIER)
|
||||
DECLARE_PEM_rw(PAILLIER_PUBKEY, PAILLIER)
|
||||
# endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
# include <openssl/asn1.h>
|
||||
# include <openssl/safestack.h>
|
||||
# include <openssl/ec.h>
|
||||
# include <openssl/paillier.h>
|
||||
|
||||
# if OPENSSL_API_COMPAT < 0x10100000L
|
||||
# include <openssl/rsa.h>
|
||||
@@ -393,6 +394,14 @@ int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa);
|
||||
RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa);
|
||||
int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
PAILLIER *d2i_PaillierPrivateKey_fp(FILE *fp, PAILLIER **paillier);
|
||||
int i2d_PaillierPrivateKey_fp(FILE *fp, PAILLIER *paillier);
|
||||
PAILLIER *d2i_PaillierPublicKey_fp(FILE *fp, PAILLIER **paillier);
|
||||
int i2d_PaillierPublicKey_fp(FILE *fp, PAILLIER *paillier);
|
||||
PAILLIER *d2i_PAILLIER_PUBKEY_fp(FILE *fp, PAILLIER **paillier);
|
||||
int i2d_PAILLIER_PUBKEY_fp(FILE *fp, PAILLIER *paillier);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_DSA
|
||||
DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
|
||||
int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
|
||||
@@ -431,6 +440,14 @@ int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa);
|
||||
RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
|
||||
int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
PAILLIER *d2i_PaillierPrivateKey_bio(BIO *bp, PAILLIER **paillier);
|
||||
int i2d_PaillierPrivateKey_bio(BIO *bp, PAILLIER *paillier);
|
||||
PAILLIER *d2i_PaillierPublicKey_bio(BIO *bp, PAILLIER **paillier);
|
||||
int i2d_PaillierPublicKey_bio(BIO *bp, PAILLIER *paillier);
|
||||
PAILLIER *d2i_PAILLIER_PUBKEY_bio(BIO *bp, PAILLIER **paillier);
|
||||
int i2d_PAILLIER_PUBKEY_bio(BIO *bp, PAILLIER *paillier);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_DSA
|
||||
DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
|
||||
int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
|
||||
@@ -513,6 +530,11 @@ DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length);
|
||||
int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp);
|
||||
EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length);
|
||||
# endif
|
||||
# ifndef OPENSSL_NO_PAILLIER
|
||||
int i2d_PAILLIER_PUBKEY(PAILLIER *a, unsigned char **pp);
|
||||
PAILLIER *d2i_PAILLIER_PUBKEY(PAILLIER **a, const unsigned char **pp, long length);
|
||||
# endif
|
||||
|
||||
|
||||
DECLARE_ASN1_FUNCTIONS(X509_SIG)
|
||||
void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg,
|
||||
@@ -762,7 +784,7 @@ int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
|
||||
int X509_print_fp(FILE *bp, X509 *x);
|
||||
int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
|
||||
int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
|
||||
int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent,
|
||||
int X509_NAMpaillierE_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent,
|
||||
unsigned long flags);
|
||||
# endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user