当前位置: 首页 > 知识库问答 >
问题:

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

冀俊良
2023-03-14

我正在研究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_添加_摘要返回错误,因此验证失败。

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

是什么导致了这个问题

谢谢你的帮助

陈松

共有1个答案

柴磊
2023-03-14

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

 类似资料:
  • 我想创建一个签名并使用openssl验证它。我想有我的签名的十六进制输出。 这是我的密码 我得到这个错误: 如果我在创建签名的过程中删除了-hex,它就可以工作了。

  • 我正在OSX 10.6上使用openssl 1.0.1b的命令行界面。 首先,我创建一个DSA密钥。 接下来,我使用该密钥创建一个自签名证书。 接下来,我使用该证书和密钥创建文件的分离smime签名。 最后,我立即尝试验证相同的文件/签名* 但不知怎的,我失败了。 没有任何东西在改变文件,手动md5哈希在前后匹配,但不知何故签名摘要失败了。有人知道我做错了什么吗? 谢谢。 `*注意,-noveri

  • 我正在编写一些代码,试图对一些数据进行签名。在将openssl生成的私钥转换为Java密钥库之后,我将Java签名类与SHA256withRSA一起使用。我试图确认openssl中Java类返回的签名,但由于某些原因,我无法让openssl进行验证。我最终需要在iOS Swift 3中实现这个签名验证,但在找到库之前,我想尝试根据openssl标准检查Java签名。 例如,我从我们的登录服务器得到

  • 我正在尝试使用公钥验证散列的ECDSA签名。我写了一个小的围棋程序,成功地做到了这一点,但是我不能把它移植到C语言中。 这是我的输入数据: < li >公钥:< code > mfkwewyhkozizj 0 caqyikozij0 dackcdqgaedd 9 vxm phjv 4 vofo 0 zofplr r5 iczxquxsr 9 eka ouo 9 b 7 wl 1 daggi 0 e

  • 我们正在制作一个网络应用程序,其功能之一是制作PaDES签名。代码太大,无法在此处共享,但工作流如下所示: PDF通过在浏览器中进行所有必要的转换来准备签名 摘要使用所选算法计算 摘要被发送到后端,如果分离的CaDES签名是使用DSS库 在后端生成的分离签名被发送回浏览器,以便插入到准备好的PDF中以制作PaDES签名 对于大多数PDF文件,该解决方案都很有效。然而,在有些文件中,Acrobat不