According to the man pages on EVP_DigestVerifyFinal
(https://www.openssl.org/docs/crypto/EVP_DigestVerifyInit.html):

    EVP_DigestVerifyInit() and EVP_DigestVerifyUpdate() return 1 for
    success and 0 or a negative value for failure...

I have an unexplained failure in EVP_DigestVerifyInit (i.e., its not
returning 1).

Looking at apps/dgst.c, around line 580:

    if(sigin)
        {
        EVP_MD_CTX *ctx;
        BIO_get_md_ctx(bp, &ctx);
        i = EVP_DigestVerifyFinal(ctx, sigin, (unsigned int)siglen);
        if(i > 0)
            BIO_printf(out, "Verified OK\n");
        else if(i == 0)
            {
            BIO_printf(out, "Verification Failure\n");
            return 1;
            }
        else
            {
            BIO_printf(bio_err, "Error Verifying Data\n");
            ERR_print_errors(bio_err);
            return 1;
            }
        return 0;
        }

So does EVP_DigestVerifyInit return 1 on success, or does it return
something else? If its 1, then digst.c is wrong. If its something else
(like >0), then the docs are wrong.

Is anyone familiar with this function who can comment?
_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to