openssl验证签名错误,但命令行工具还可以

时间:2014-12-24 10:34:18

标签: openssl

我正致力于确认ECDSA-WITH-SHA256的签名。我的代码库来自openssl v1.0.1h,可以使用openssl命令行运行。但是我的代码在执行以下代码时返回错误:

if (!(p7bio=PKCS7_dataInit(p7,tmpin)))
    goto err;

PKCS7_dataInit中的代码如下:

for (i=0; i<sk_X509_ALGOR_num(md_sk); i++)
    if (!PKCS7_bio_add_digest(&out, sk_X509_ALGOR_value(md_sk, i)))
        goto err;

PKCS7_bio_add_digest返回错误,以便验证失败。

我构建完全相同的命令行参数,如下面的命令行工具: [openssl smime] -verify -inform DER -in signature -content message -noverify

导致这个问题的原因是什么?

感谢任何帮助

陈松

1 个答案:

答案 0 :(得分:1)

您忘记在应用程序启动时调用SSL_library_init()? 为了获得更多信息,您应该通过在“err”标签上调用ERR_get_error()和ERR_error_string_n()来阅读详细的ssl错误。