0

这是代码的一部分:

flags = 0;
flags |= PKCS7_BINARY;
flags |= PKCS7_NOATTR;
pkcs7 = PKCS7_sign( cert, pkey, NULL, bio_data, flags );
if ( !pkcs7 )
    return;

iErr = i2d_PKCS7_bio( bio_out_der, pkcs7 );
if ( iErr != 1 )
    return;

运行时没有错误,但我不明白为什么输出数据不包含符号。输出数据是正确的 PKCS7 signedData 结构,但它已经准备好唱歌数据而不是签名本身。这是输出 PKCS7 结构末尾的数据示例:

04400001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF003021300906052B0E03021A0500041440BD001563085FC35165329EA1FF5C5ECBDBBEEF

即这是SHA1的OID,要签名的数据的SHA1,填充,即必须用私钥签名的数据。为什么不执行签名?

4

0 回答 0