I am on Win 10/PHP 7.3/Laravel and I am trying to sign a PDF using certificate files generated by:
openssl genrsa -out my-private-key.pem 2048
openssl req -new -key my-private-key.pem -x509 -days 3650 -out my-public-key.pem
But when I open the bearing_signed.pdf, it doesn't contain a signature. Below is my code block I am currently using:
openssl_pkcs7_sign(
$app_path . 'bearing.pdf',
$app_path . 'bearing_signed.pdf',
"file://" . $app_path . "my-public-key.pem",
array("file://" . $app_path . "my-private-key.pem", ""),
array(
"To" => $to_email,
"From" => env('MAIL_FROM_NAME') . '<' . env('MAIL_FROM_ADDRESS') . '>',
"Subject" => $data['subject']
),
PKCS7_BINARY
);
// convert PEM to DER
$pem_data = file_get_contents($app_path . 'bearing_signed.pdf');
$begin = "Content-Transfer-Encoding: base64";
$pem_data = trim(substr($pem_data, strpos($pem_data, $begin) + strlen($begin)));
$der = base64_decode($pem_data);
$fp = fopen($app_path . 'bearing_signed.pdf', "w");
if ($fp) {
fwrite($fp, $der);
fclose($fp);
}
what can be the problem with this code?