Openssl PKCS#7符号码图像提取

Openssl PKCS#7符号码图像提取,openssl,x509certificate,x509,pkcs#7,Openssl,X509certificate,X509,Pkcs#7,我想使用C/CPP从PKCS#7签名代码图像中提取签名者信息。我想知道openssl API的 请让我知道openssl API,我可以在C/CPP中使用它来提取每个签名者和签名者信息,并验证签名者 有没有像X509_LOOKUP_buffer()而不是X509_LOOKUP_file()这样的API 提前感谢opensid我遇到了类似的问题。我必须从PKCS#7签名中提取signingTime属性。我在互联网上找不到最终的解决方案,但我可以从不同的地方找到一些零碎的东西,然后找到这个。也许有更

我想使用C/CPP从PKCS#7签名代码图像中提取签名者信息。我想知道openssl API的

请让我知道openssl API,我可以在C/CPP中使用它来提取每个签名者和签名者信息,并验证签名者

有没有像X509_LOOKUP_buffer()而不是X509_LOOKUP_file()这样的API


提前感谢opensid

我遇到了类似的问题。我必须从PKCS#7签名中提取signingTime属性。我在互联网上找不到最终的解决方案,但我可以从不同的地方找到一些零碎的东西,然后找到这个。也许有更好/更好/更安全的方法,这是我第一次这么做,但似乎有效

在一个函数中,我在一个由const void*ppkcs7sig指向的缓冲区中有p#u pkcs7SigSize字节的PKCS#7签名。这样我就有了签约时间。我已经删除了错误处理,不要使用此代码冗长

BIO                         *v_in          = NULL;
PKCS7                       *v_p7          = NULL;
STACK_OF(PKCS7_SIGNER_INFO) *v_signerInfos = NULL;
PKCS7_SIGNER_INFO           *v_signerInfo  = NULL;
ASN1_TYPE                   *v_asn1SigningTime  = NULL;

/* make BIO for input buffer */
v_in = BIO_new_mem_buf( (void*)(uintptr_t) p_pkcs7Sig, p_pkcs7SigSize );

/* make a PKCS7 object of it */
v_p7 = d2i_PKCS7_bio( v_in, NULL);

/* get all signer infos */
v_signerInfos = PKCS7_get_signer_info( v_p7 );

/* if you need all signer infos then loop through all, 
 * count you get by k_PKCS7_SIGNER_INFO_num(v_signerInfos) 
 */

/* get the first signer info */
v_signerInfo = sk_PKCS7_SIGNER_INFO_value(v_signerInfos,0);

/* get signing time */
v_asn1SigningTime = PKCS7_get_signed_attribute( v_signerInfo, NID_pkcs9_signingTime );

/* You should got a v_asn1SigningTime->type == V_ASN1_UTCTIME, 
 * if yes then the actual value is in the string buffer at
 * v_asn1SigningTime->value.utctime->data 
 */

if ( v_in )
{
   BIO_free_all( v_in );
   v_in = NULL;
}

Fudaraku,有可能从PKCS7签名代码图像中获得签名内容吗?嗨,我得到了答案,谢谢你的支持。“aaa=PKCS7_-verify(p7,certs,NULL,in,NULL,PKCS7_-NOVERIFY);”用于验证。用于复制签名内容“aaa=PKCS7_verify(p7,certs,NULL,in,out,PKCS7_NOVERIFY);”可以正常工作。char*p;长时间lSize;lSize=生物获取内存数据(输出和输出);p包含已签名的内容。谢谢