前提内容
PHP で zipファイルを、PKCS#7 の Signed-data 形式(RFC2315 準拠)で
電子署名したいと思っています。
とりあえず、openssl_pkcs7_sign を使い、下記のようなソースを書きました。
PHP
1$crt = openssl_x509_read(file_get_contents('./certs/test.crt')); 2$pkey = openssl_pkey_get_private(file_get_contents('./certs/test.key'), 'testtest'); 3openssl_pkcs7_sign('./data/test.zip', './data/out', $crt, $pkey, null, PKCS7_BINARY); 4 5$pem_data = file_get_contents('./data/out'); 6$begin = "Content-Transfer-Encoding: base64"; 7$pem_data = trim( substr($pem_data, strpos($pem_data, $begin)+strlen($begin)) ); 8$der = base64_decode( $pem_data ); 9 10file_put_contents('./data/out2', $der);
質問内容
- 出来上がったデータの ASN.1 構造を確認すると、
ContentInfo でラップされています。
ContentInfo なしで出力する事は可能でしょうか。
0. hash アルゴリズムが sha2-256 になってますが、
sha1 等に変更するは可能でしょうか。
0. 上記の件が openssl_pkcs7_sign で不可能な場合、どのような方法があるでしょうか。
以上、お力添え頂ければ幸いです。
補足情報
PHP 7.0.33
Apache 2.4.18
あなたの回答
tips
プレビュー