Loading crypto/evp/evp.h +1 −1 Original line number Diff line number Diff line Loading @@ -906,7 +906,7 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new(int ktype, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey); void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); Loading crypto/evp/evp_locl.h +9 −11 Original line number Diff line number Diff line Loading @@ -266,39 +266,37 @@ struct evp_pkey_method_st int (*init)(EVP_PKEY_CTX *ctx); int (*paramgen_init)(EVP_PKEY_CTX *ctx); int (*paramgen)(EVP_PKEY *key, EVP_PKEY_CTX *ctx); int (*paramgen)(EVP_PKEY_CTX *ctx); int (*keygen_init)(EVP_PKEY_CTX *ctx); int (*keygen)(EVP_PKEY *key, EVP_PKEY_CTX *ctx); int (*keygen)(EVP_PKEY_CTX *ctx); int (*sign_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*sign_init)(EVP_PKEY_CTX *ctx); int (*sign)(EVP_PKEY_CTX *ctx, unsigned char *sig, int *siglen, unsigned char *tbs, int tbslen); int (*verify_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*verify_init)(EVP_PKEY_CTX *ctx); int (*verify)(EVP_PKEY_CTX *ctx, unsigned char *sig, int siglen, unsigned char *tbs, int tbslen); int (*verify_recover_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*verify_recover_init)(EVP_PKEY_CTX *ctx); int (*verify_recover)(EVP_PKEY_CTX *ctx, unsigned char *rout, int *routlen, unsigned char *sig, int siglen); int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx, EVP_PKEY *pkey); int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); int (*signctx)(EVP_PKEY_CTX *ctx, unsigned char *sig, int *siglen, EVP_MD_CTX *mctx); int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx, EVP_PKEY *pkey); int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); int (*verifyctx)(EVP_PKEY_CTX *ctx, unsigned char *sig, int siglen, EVP_MD_CTX *mctx); int (*encrypt_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*encrypt_init)(EVP_PKEY_CTX *ctx); int (*encrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, int *outlen, unsigned char *in, int inlen); int (*decrypt_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*decrypt_init)(EVP_PKEY_CTX *ctx); int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, int *outlen, unsigned char *in, int inlen); Loading crypto/evp/pmeth_fn.c +10 −10 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ #include <openssl/evp.h> #include "evp_locl.h" int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->sign_init) Loading @@ -73,7 +73,7 @@ int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_SIGN; ret = ctx->pmeth->sign_init(ctx, pkey); ret = ctx->pmeth->sign_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -97,7 +97,7 @@ int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen); } int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_init) Loading @@ -107,7 +107,7 @@ int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_VERIFY; ret = ctx->pmeth->verify_init(ctx, pkey); ret = ctx->pmeth->verify_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -131,7 +131,7 @@ int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen); } int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_recover_init) Loading @@ -141,7 +141,7 @@ int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_VERIFYRECOVER; ret = ctx->pmeth->verify_recover_init(ctx, pkey); ret = ctx->pmeth->verify_recover_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -165,7 +165,7 @@ int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen); } int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->encrypt_init) Loading @@ -175,7 +175,7 @@ int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_ENCRYPT; ret = ctx->pmeth->encrypt_init(ctx, pkey); ret = ctx->pmeth->encrypt_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -199,7 +199,7 @@ int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen); } int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->decrypt_init) Loading @@ -209,7 +209,7 @@ int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_DECRYPT; ret = ctx->pmeth->decrypt_init(ctx, pkey); ret = ctx->pmeth->decrypt_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading crypto/evp/pmeth_lib.c +7 −3 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <openssl/objects.h> #include "cryptlib.h" #include <openssl/evp.h> #include "asn1_locl.h" #include "evp_locl.h" STACK *app_pkey_methods = NULL; Loading Loading @@ -100,17 +101,20 @@ const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type, ENGINE *e) return *ret; } EVP_PKEY_CTX *EVP_PKEY_CTX_new(int ktype, ENGINE *e) EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey) { EVP_PKEY_CTX *ret; const EVP_PKEY_METHOD *pmeth; pmeth = EVP_PKEY_meth_find(ktype, e); if (!pkey || !pkey->ameth) return NULL; pmeth = EVP_PKEY_meth_find(pkey->ameth->pkey_id, NULL); if (pmeth == NULL) return NULL; ret = OPENSSL_malloc(sizeof(EVP_PKEY_CTX)); ret->pmeth = pmeth; ret->operation = EVP_PKEY_OP_UNDEFINED; ret->pkey = NULL; CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY); ret->pkey = pkey; ret->data = NULL; if (pmeth->init) Loading Loading
crypto/evp/evp.h +1 −1 Original line number Diff line number Diff line Loading @@ -906,7 +906,7 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new(int ktype, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey); void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); Loading
crypto/evp/evp_locl.h +9 −11 Original line number Diff line number Diff line Loading @@ -266,39 +266,37 @@ struct evp_pkey_method_st int (*init)(EVP_PKEY_CTX *ctx); int (*paramgen_init)(EVP_PKEY_CTX *ctx); int (*paramgen)(EVP_PKEY *key, EVP_PKEY_CTX *ctx); int (*paramgen)(EVP_PKEY_CTX *ctx); int (*keygen_init)(EVP_PKEY_CTX *ctx); int (*keygen)(EVP_PKEY *key, EVP_PKEY_CTX *ctx); int (*keygen)(EVP_PKEY_CTX *ctx); int (*sign_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*sign_init)(EVP_PKEY_CTX *ctx); int (*sign)(EVP_PKEY_CTX *ctx, unsigned char *sig, int *siglen, unsigned char *tbs, int tbslen); int (*verify_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*verify_init)(EVP_PKEY_CTX *ctx); int (*verify)(EVP_PKEY_CTX *ctx, unsigned char *sig, int siglen, unsigned char *tbs, int tbslen); int (*verify_recover_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*verify_recover_init)(EVP_PKEY_CTX *ctx); int (*verify_recover)(EVP_PKEY_CTX *ctx, unsigned char *rout, int *routlen, unsigned char *sig, int siglen); int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx, EVP_PKEY *pkey); int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); int (*signctx)(EVP_PKEY_CTX *ctx, unsigned char *sig, int *siglen, EVP_MD_CTX *mctx); int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx, EVP_PKEY *pkey); int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); int (*verifyctx)(EVP_PKEY_CTX *ctx, unsigned char *sig, int siglen, EVP_MD_CTX *mctx); int (*encrypt_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*encrypt_init)(EVP_PKEY_CTX *ctx); int (*encrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, int *outlen, unsigned char *in, int inlen); int (*decrypt_init)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); int (*decrypt_init)(EVP_PKEY_CTX *ctx); int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, int *outlen, unsigned char *in, int inlen); Loading
crypto/evp/pmeth_fn.c +10 −10 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ #include <openssl/evp.h> #include "evp_locl.h" int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->sign_init) Loading @@ -73,7 +73,7 @@ int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_SIGN; ret = ctx->pmeth->sign_init(ctx, pkey); ret = ctx->pmeth->sign_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -97,7 +97,7 @@ int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen); } int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_init) Loading @@ -107,7 +107,7 @@ int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_VERIFY; ret = ctx->pmeth->verify_init(ctx, pkey); ret = ctx->pmeth->verify_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -131,7 +131,7 @@ int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen); } int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->verify_recover_init) Loading @@ -141,7 +141,7 @@ int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_VERIFYRECOVER; ret = ctx->pmeth->verify_recover_init(ctx, pkey); ret = ctx->pmeth->verify_recover_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -165,7 +165,7 @@ int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen); } int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->encrypt_init) Loading @@ -175,7 +175,7 @@ int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_ENCRYPT; ret = ctx->pmeth->encrypt_init(ctx, pkey); ret = ctx->pmeth->encrypt_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading @@ -199,7 +199,7 @@ int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen); } int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx) { int ret; if (!ctx || !ctx->pmeth || !ctx->pmeth->decrypt_init) Loading @@ -209,7 +209,7 @@ int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) return -2; } ctx->operation = EVP_PKEY_OP_DECRYPT; ret = ctx->pmeth->decrypt_init(ctx, pkey); ret = ctx->pmeth->decrypt_init(ctx); if (ret <= 0) ctx->operation = EVP_PKEY_OP_UNDEFINED; return ret; Loading
crypto/evp/pmeth_lib.c +7 −3 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <openssl/objects.h> #include "cryptlib.h" #include <openssl/evp.h> #include "asn1_locl.h" #include "evp_locl.h" STACK *app_pkey_methods = NULL; Loading Loading @@ -100,17 +101,20 @@ const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type, ENGINE *e) return *ret; } EVP_PKEY_CTX *EVP_PKEY_CTX_new(int ktype, ENGINE *e) EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey) { EVP_PKEY_CTX *ret; const EVP_PKEY_METHOD *pmeth; pmeth = EVP_PKEY_meth_find(ktype, e); if (!pkey || !pkey->ameth) return NULL; pmeth = EVP_PKEY_meth_find(pkey->ameth->pkey_id, NULL); if (pmeth == NULL) return NULL; ret = OPENSSL_malloc(sizeof(EVP_PKEY_CTX)); ret->pmeth = pmeth; ret->operation = EVP_PKEY_OP_UNDEFINED; ret->pkey = NULL; CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY); ret->pkey = pkey; ret->data = NULL; if (pmeth->init) Loading