1. Go to this page and download the library: Download selective/xmldsig library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
selective / xmldsig example snippets
use Selective\XmlDSig\PrivateKeyStore;
// ...
$privateKeyStore = new PrivateKeyStore();
// load a private key from a string
$privateKeyStore->loadFromPem('private key content', 'password');
// or load a private key from a PEM file
$privateKeyStore->loadFromPem(file_get_contents('filename.pem'), 'password');
// load pfx PKCS#12 certificate from a string
$privateKeyStore->loadFromPkcs12('pfx content', 'password');
// or load PKCS#12 certificate from a file
$privateKeyStore->loadFromPkcs12(file_get_contents('filename.p12'), 'password');
use Selective\XmlDSig\Algorithm;
$algorithm = new Algorithm(Algorithm::METHOD_SHA1);
use Selective\XmlDSig\CryptoSigner;
$cryptoSigner = new CryptoSigner($privateKeyStore, $algorithm);
use Selective\XmlDSig\XmlSigner;
// Create a XmlSigner and pass the crypto signer
$xmlSigner = new XmlSigner($cryptoSigner);
// Optional: Set reference URI
$xmlSigner->setReferenceUri('');
// Create a signed XML string
$signedXml = $xmlSigner->signXml('<?xml ...');
// or sign an XML file
$signedXml = $xmlSigner->signXml(file_get_contents($filename));
// or sign an DOMDocument
$xml = new DOMDocument();
$xml->preserveWhiteSpace = true;
$xml->formatOutput = false;
$xml->loadXML($data);
$signedXml = $xmlSigner->signDocument($xml);
use Selective\XmlDSig\Algorithm;
use Selective\XmlDSig\CryptoSigner;
use Selective\XmlDSig\PrivateKeyStore;
use Selective\XmlDSig\XmlSigner;
use DOMDocument;
use DOMXPath;
// ...
// Load the XML content you want to sign
$xml = new DOMDocument();
$xml->preserveWhiteSpace = true;
$xml->formatOutput = false;
$xml->loadXML($data);
// Create a XPATH query to select the element you want to sign
$xpath = new DOMXPath($xml);
// Change this query according to your
use Selective\XmlDSig\PublicKeyStore;
use Selective\XmlDSig\CryptoVerifier;
use Selective\XmlDSig\XmlSignatureVerifier;
$publicKeyStore = new PublicKeyStore();
// load a public key from a string
$publicKeyStore->loadFromPem('public key content');
// or load a public key file
$publicKeyStore->loadFromPem(file_get_contents('cacert.pem'));
// or load a public key from a PKCS#12 certificate string
$publicKeyStore->loadFromPkcs12('public key content', 'password');
// or load a public key from a PKCS#12 certificate file
$publicKeyStore->loadFromPkcs12(file_get_contents('filename.pfx'), 'password');
// Load public keys from DOMDocument X509Certificate nodes
$publicKeyStore->loadFromDocument($xml);
// Load public key from existing OpenSSLCertificate resource
$publicKeyStore->loadFromCertificate($certificate);
use Selective\XmlDSig\CryptoVerifier;
$cryptoVerifier = new CryptoVerifier($publicKeyStore);
use Selective\XmlDSig\XmlSignatureVerifier;
// Create a verifier instance and pass the crypto decoder
$xmlSignatureVerifier = new XmlSignatureVerifier($cryptoVerifier);
// Verify XML from a string
$isValid = $xmlSignatureVerifier->verifyXml($signedXml);
// or verify a XML file
$isValid = $xmlSignatureVerifier->verifyXml(file_get_contents('signed.xml'));
// or verifying an DOMDocument instance
$xml = new DOMDocument();
$xml->preserveWhiteSpace = true;
$xml->formatOutput = false;
$xml->loadXML($data);
$isValid = $xmlSignatureVerifier->verifyDocument($xml);
if ($isValid === true) {
echo 'The XML signature is valid.';
} else {
echo 'The XML signature is not valid.';
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.