diff --git a/crypto/paillier/pai_ameth.c b/crypto/paillier/pai_ameth.c new file mode 100644 index 00000000..4b20ae2d --- /dev/null +++ b/crypto/paillier/pai_ameth.c @@ -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 +}; diff --git a/crypto/paillier/pai_pmeth.c b/crypto/paillier/pai_pmeth.c new file mode 100644 index 00000000..d5d578ff --- /dev/null +++ b/crypto/paillier/pai_pmeth.c @@ -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 +}; +