Show / Hide Table of Contents
Edit on GitHub

PHP 5.5+ samples project

The PHP 5.5+ samples project shows how to use Rest PKI together with Web PKI on a project using PHP 5.5+ (including 7.x). It is hosted on GitHub at:

https://github.com/LacunaSoftware/RestPkiSamples/tree/master/PHP/standard

Note

For projects targeting earlier PHP versions, click here.

Running the project

  1. Download the project or clone the repository
  2. Generate an API access token on the REST PKI website
  3. Paste your access token on the file PHP/standard/config.php
  4. In a command prompt, navigate to the folder PHP/standard and run the command composer install to download the dependencies (if you don't have Composer installed, get it here)
  5. Setup a website on your local HTTP server pointing to the PHP/standard folder
  6. Open the index.php file on the browser on the corresponding URL (depending on the previous step)

Project map

This section lists where to find the relevant parts in each feature sample on the project.

Authentication with digital certificate

  • authentication.php
    • JavaScript: signature-form.js
  • authentication-action.php

PAdES signature with file already on server

  • pades-signature.php
    • JavaScript: signature-form.js
  • pades-signature-action.php

PAdES signature with file uploaded by user

After the file upload (which is crudely implemented merely for demonstration purposes on upload.php) is done the control flow is the same as in the sample PAdES signature with file already on server, but with the URL parameter userfile filled.

PAdES co-signature

After the control flow of the sample PAdES signature with file already on server is completed and the link Co-sign with another certificate is clicked, the same control flow is repeated, but now with the URL parameter userfile filled.

PAdES marks

This feature is demonstrated as an optional configuration on the PAdES signature with file already on server sample which by default starts commented out. To enable it, uncomment the following line on pades-signature.php:

array_push($signatureStarter->pdfMarks, getPdfMark(1));
Tip

Try changing the argument to the getPdfMark() function to see different PDF mark configurations

The relevant code is on the file util-pades.php, function getPdfMark().

PAdES signature using server key

  • pades-signature-server-key.php

    PAdES signature without client communication

Not yet available on this project.

Open/validate an existing PAdES signature

  • open-pades-signature.php

Printer-friendly version

After the control flow of the sample PAdES signature with file already on server is completed and the link Download a printer-friendly version of the signed file is clicked, the flow goes to the file printer-friendly-version.php with the URL parameter file filled.

The generated PDF contains links to the file check.php, which shows details of the signatures.

CAdES signature with file already on server

  • cades-signature.php
    • JavaScript: signature-form.js
  • cades-signature-action.php

CAdES signature with file uploaded by user

After the file upload (which is crudely implemented merely for demonstration purposes on upload.php) is done the control flow is the same as in the sample CAdES signature with file already on server, but with the URL parameter userfile filled.

CAdES co-signature

After the control flow of the sample CAdES signature with file already on server is completed and the link Co-sign with another certificate is clicked, the same control flow is repeated, but now with the URL parameter cmsfile filled.

CAdES signature using server key

  • cades-signature-server-key.php

Open/validate an existing CAdES signature

  • open-cades-signature.php

XML signature of the entire document

  • xml-full-signature.php
    • JavaScript: signature-form.js
  • xml-full-signature-action.php

XML signature of an element

  • xml-element-signature.php
    • JavaScript: signature-form.js
  • xml-element-signature-action.php

XAdES signature of an element

Not yet available on this project.

Open/validate signatures on an existing XML file

  • open-xml-signature.php

Batch of PAdES signatures

  • batch-signature.php
    • JavaScript: batch-signature-form.js
    • AJAX handlers: batch-signature-start.php and batch-signature-complete.php

Optimized batch of PAdES signatures

Not yet available on this project.

Batch of CAdES signatures

Not yet available on this project.

Batch of XML signatures of elements on the same document

  • batch-xml-element-signature.php
    • JavaScript: batch-xml-element-signature-form.js
    • AJAX handlers: batch-xml-element-signature-start.php and batch-xml-element-signature-complete.php
Back to top Copyright © 2015-2020 Lacuna Software