私はcrypto/phpの質問があります、私は誰かが私を助けてくれることを望んでいました。私の問題は、PHPで検証しようとしている署名済みのPKCS7ブロックがあることです。ただし、次のPHPコマンドを実行すると次のようになります。
openssl_pkcs7_verify($myfile, PKCS7_BINARY | PKCS7_NOVERIFY, $signers_file);
次のエラーが発生します。
PKCS7 routines:SMIME_read_PKCS7:no content type
私がそのようにルビーを使ってそれをするならば:
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
これは同じコマンドですが、informパラメータを指定しないと、「コンテンツタイプがありません」に関して、前に指定したのと同じエラーメッセージで失敗し、入力ファイル形式を指定する必要があるように見えます。PHPを介してそれを行う方法はありますか?
よろしくお願いします。