使用OpenSSL获取PKCS7数据长度

时间:2016-08-29 20:44:20

标签: c openssl pkcs#7

我有一些PKCS7数据,我可以用OpenSSL读取这些数据:

$ openssl asn1parse -i -inform der -in data.dat
0:d=0  hl=4 l=16208 cons: SEQUENCE
4:d=1  hl=2 l=    9 prim:  OBJECT            :pkcs7-signedData
.. more ..

我可以在代码中加载它:

// buf contains the raw data, len the length
BIO *bio = BIO_new_mem_buf(buf, len);

PKCS7 *pkcs7 = d2i_PKCS7_bio(bio, NULL);
if (!pkcs7) {
    // die
}
printf("Success!");

这很好,我可以成功获取签名者信息等。但是我想从输入数据中获得解析的长度值。在我的例子中,这是16208,见于ASN1输出的第二行。

我注意到PKCS7结构有length属性(请参阅include/openssl/pkcs7.h),但打印时pkcs7->length始终为零。

如何获得包含PKCS7签名数据的整个序列的长度?

0 个答案:

没有答案