mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-07 08:56:17 +08:00
add paillier methods
This commit is contained in:
96
crypto/paillier/pai_ameth.c
Normal file
96
crypto/paillier/pai_ameth.c
Normal file
@@ -0,0 +1,96 @@
|
||||
|
||||
|
||||
|
||||
static int paillier_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_size(const EVP_PKEY *pkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_bits(const EVP_PKEY *pkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int paillier_security_bits(const EVP_PKEY *pkey)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void paillier_free(EVP_PKEY *pkey)
|
||||
{
|
||||
}
|
||||
|
||||
static int paillier_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int paillier_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int paillier_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int paillier_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
const EVP_PKEY_ASN1_METHOD paillier_ameth = {
|
||||
NID_paillier,
|
||||
NID_paillier,
|
||||
0,
|
||||
"PAILLER",
|
||||
"GmSSL Paillier algorithm",
|
||||
|
||||
paillier_pub_decode,
|
||||
paillier_pub_encode,
|
||||
paillier_pub_cmp,
|
||||
paillier_pub_print,
|
||||
|
||||
paillier_priv_decode,
|
||||
paillier_priv_encode,
|
||||
paillier_priv_print,
|
||||
|
||||
paillier_size,
|
||||
paillier_bits,
|
||||
paillier_security_bits,
|
||||
|
||||
0, 0, 0, 0,
|
||||
paillier_cmp_parameters,
|
||||
0, 0,
|
||||
|
||||
paillier_free,
|
||||
paillier_ctrl,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
71
crypto/paillier/pai_pmeth.c
Normal file
71
crypto/paillier/pai_pmeth.c
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static int pkey_paillier_init(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pkey_paillier_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void pkey_paillier_cleanup(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
}
|
||||
|
||||
static int pkey_paillier_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pkey_paillier_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pkey_paillier_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pkey_paillier_ctrl_str(EVP_PKEY_CTX *ctx,
|
||||
const char *type, const char *value)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
const EVP_PKEY_METHOD paillier_pmeth = {
|
||||
EVP_PKEY_PAILLIER,
|
||||
0,
|
||||
pkey_paillier_init,
|
||||
pkey_paillier_copy,
|
||||
pkey_paillier_cleanup,
|
||||
|
||||
0, 0,
|
||||
|
||||
0,
|
||||
pkey_paillier_keygen,
|
||||
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0, 0, 0,
|
||||
|
||||
0,
|
||||
pkey_paillier_encrypt,
|
||||
0,
|
||||
pkey_paillier_decrypt,
|
||||
|
||||
0, 0,
|
||||
|
||||
pkey_paillier_ctrl,
|
||||
pkey_paillier_ctrl_str
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user