|
@@ -399,8 +399,8 @@ static int evp_pkey_signature_init(EVP_PKEY_CTX *ctx, int operation,
|
|
|
int iter;
|
|
|
|
|
|
if (ctx == NULL) {
|
|
|
- ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
- return -2;
|
|
|
+ ERR_raise(ERR_LIB_EVP, ERR_R_PASSED_NULL_PARAMETER);
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
evp_pkey_ctx_free_old_ops(ctx);
|
|
@@ -630,8 +630,8 @@ int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,
|
|
|
int ret;
|
|
|
|
|
|
if (ctx == NULL) {
|
|
|
- ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
- return -2;
|
|
|
+ ERR_raise(ERR_LIB_EVP, ERR_R_PASSED_NULL_PARAMETER);
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
if (ctx->operation != EVP_PKEY_OP_SIGN) {
|
|
@@ -642,6 +642,11 @@ int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,
|
|
|
if (ctx->op.sig.algctx == NULL)
|
|
|
goto legacy;
|
|
|
|
|
|
+ if (ctx->op.sig.signature->sign == NULL) {
|
|
|
+ ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
+ return -2;
|
|
|
+ }
|
|
|
+
|
|
|
ret = ctx->op.sig.signature->sign(ctx->op.sig.algctx, sig, siglen,
|
|
|
(sig == NULL) ? 0 : *siglen, tbs, tbslen);
|
|
|
|
|
@@ -674,8 +679,8 @@ int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
|
|
|
int ret;
|
|
|
|
|
|
if (ctx == NULL) {
|
|
|
- ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
- return -2;
|
|
|
+ ERR_raise(ERR_LIB_EVP, ERR_R_PASSED_NULL_PARAMETER);
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
if (ctx->operation != EVP_PKEY_OP_VERIFY) {
|
|
@@ -686,6 +691,11 @@ int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
|
|
|
if (ctx->op.sig.algctx == NULL)
|
|
|
goto legacy;
|
|
|
|
|
|
+ if (ctx->op.sig.signature->verify == NULL) {
|
|
|
+ ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
+ return -2;
|
|
|
+ }
|
|
|
+
|
|
|
ret = ctx->op.sig.signature->verify(ctx->op.sig.algctx, sig, siglen,
|
|
|
tbs, tbslen);
|
|
|
|
|
@@ -717,8 +727,8 @@ int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
|
|
|
int ret;
|
|
|
|
|
|
if (ctx == NULL) {
|
|
|
- ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
- return -2;
|
|
|
+ ERR_raise(ERR_LIB_EVP, ERR_R_PASSED_NULL_PARAMETER);
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
if (ctx->operation != EVP_PKEY_OP_VERIFYRECOVER) {
|
|
@@ -729,6 +739,11 @@ int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
|
|
|
if (ctx->op.sig.algctx == NULL)
|
|
|
goto legacy;
|
|
|
|
|
|
+ if (ctx->op.sig.signature->verify_recover == NULL) {
|
|
|
+ ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
|
|
+ return -2;
|
|
|
+ }
|
|
|
+
|
|
|
ret = ctx->op.sig.signature->verify_recover(ctx->op.sig.algctx, rout,
|
|
|
routlen,
|
|
|
(rout == NULL ? 0 : *routlen),
|