PAdES (PKCS11) and Zend_Pdf

Similar to my last post about Zend_Mail S/MIME class, this one allows to digitally sign and even add TSA (timestamping) support to your PDF documents generated using Zend_Pdf. There is a standalone ASN1 parser included that can be used for other projects that require ASN1 data interchange. See https://en.wikipedia.org/wiki/PAdEShttps://www.ietf.org/rfc/rfc3161.txt for reference. The challenge was to add the BytesRange element with right byte bounds of the signed document. How to use it:

setSigParams(array(
    'Name' => 'Someone',
    'Location' => 'Kharkov, UA',
    'Reason' => 'I'm approving this document',
    'ContactInfo' => 'someones@email.com'
));
$signature->setTSAParams(array(
    'TSA_username' => '',
    'TSA_password' => '',
    'TSA_url'      => 'https://timestamping.edelweb.fr/service/tsp',
    'TSA_cert'     => '',
    'TSA_algorithm' => 'sha1'
));
 
$pdf->setSignature($signature);
 
$fp = fopen('tmp3.pdf','w');
$pdf->render(false,$fp);
fclose($fp);

Note, that you need a writeable by php user directory (tmp in the example above). See attached Zend_Pdf modified class + Zend_ASN1 parser.

Zend_Pades_TSA

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.