我有一个加密/php 问题,我希望有人可以帮助我。我的问题是我有一个签名的 PKCS7 块,我试图在 PHP 中验证它。但是,当我运行以下 PHP 命令时:
openssl_pkcs7_verify($myfile, PKCS7_BINARY | PKCS7_NOVERIFY, $signers_file);
我收到以下错误:
PKCS7 routines:SMIME_read_PKCS7:no content type
如果我像这样使用 ruby 进行操作:
p7container = OpenSSL::PKCS7.new(file_contents);
mystore = OpenSSL::X509::Store.new
p7container.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY)
有用。
另外,如果我通过 OpenSSL 命令行运行它:
openssl smime -verify -inform der -in my_data_file -noverify
它也有效。但是,如果我运行以下命令:
openssl smime -verify -in my_data_file -noverify
这是相同的命令,但没有指定通知参数,它失败并出现之前指定的相同错误消息,关于“无内容类型”,这使得我似乎需要指定输入文件格式。有什么想法可以通过 PHP 做到这一点吗?
在此先感谢您的帮助,