如何从pkcs7信封中提取签名?

时间:2012-02-10 08:22:02

标签: openssl pkcs#7

我想从pkcs7信封中提取签名。 我该怎么办?

1 个答案:

答案 0 :(得分:2)

使用STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7)检索PKCS7中包含的各个SignerInfos。 要从单个SignerInfo获取实际签名,您必须手动访问相应的指针。 PKCS7_SIGNER_INFO定义为:

typedef struct pkcs7_signer_info_st
{
ASN1_INTEGER            *version;   /* version 1 */
PKCS7_ISSUER_AND_SERIAL     *issuer_and_serial;
X509_ALGOR          *digest_alg;
STACK_OF(X509_ATTRIBUTE)    *auth_attr; /* [ 0 ] */
X509_ALGOR          *digest_enc_alg;
ASN1_OCTET_STRING       *enc_digest;
STACK_OF(X509_ATTRIBUTE)    *unauth_attr;   /* [ 1 ] */

/* The private key to sign with */
EVP_PKEY            *pkey;
} PKCS7_SIGNER_INFO;

正确的字段是(略有误导性)enc_digest