我正致力于确认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
导致这个问题的原因是什么?
感谢任何帮助
陈松答案 0 :(得分:1)
您忘记在应用程序启动时调用SSL_library_init()? 为了获得更多信息,您应该通过在“err”标签上调用ERR_get_error()和ERR_error_string_n()来阅读详细的ssl错误。