使用OpenSSL获取PKCS7数据长度
我有一些PKCS7数据,我可以通过OpenSSL这样读取:使用OpenSSL获取PKCS7数据长度,c,openssl,pkcs#7,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
$ 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签名数据的整个序列的长度