1. Go to this page and download the library: Download lyquidity/xml-signer 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/ */
lyquidity / xml-signer example snippets
XAdES::archiveTimestamp(
new SignedDocumentResourceInfo(
__DIR__ . '/my-existing-signature.xml',
ResourceInfo::file,
XAdES::SignatureRootId, // optional id
__DIR__,
'my-existing-signature-with-archive-timestamp.xml',
XMLSecurityDSig::generateGUID('archive-timestamp-')
)
);
use lyquidity\xmldsig\CertificateResourceInfo;
use lyquidity\xmldsig\InputResourceInfo;
use lyquidity\xmldsig\KeyResourceInfo;
use lyquidity\xmldsig\ResourceInfo;
use lyquidity\xmldsig\XAdES;
use lyquidity\xmldsig\xml\SignatureProductionPlaceV2;
use lyquidity\xmldsig\xml\SignerRoleV2;
use lyquidity\xmldsig\XMLSecurityDSig;
XAdES::signDocument(
new InputResourceInfo(
'http://www.xbrlquery.com/xades/hashes for nba.xml', // The source document
ResourceInfo::url, // The source is a url
__DIR__, // The location to save the signed document
'hashes for nba with signature.xml' // The name of the file to save the signed document in
),
new CertificateResourceInfo( '...some path to a signing certificate...', ResourceInfo::file ),
new KeyResourceInfo( '...some path to a correspondoing private key...', ResourceInfo::file ),
new SignatureProductionPlaceV2(
'My city',
'My address', // This is V2 only
'My region',
'My postcode',
'My country code'
),
new SignerRoleV2(
'CEO'
),
array(
'canonicalizationMethod' => XMLSecurityDSig::C14N,
'addTimestamp' => false // Include a timestamp? Can specify an alternative TSA url eg 'http://mytsa.com/'
)
);
new SignerRoleV2(
new ClaimedEoles(
array(
new ClaimedRole('CEO')
)
)
)
ResourceInfo::string | ResourceInfo::pem
XAdES::counterSign(
new SignedDocumentResourceInfo(
'http://www.xbrlquery.com/xades/hashes for nba with signature.xml',
ResourceInfo::url,
'source-sig-id', // this identifies the signature being counter signed
__DIR__,
'hashes-counter-signed.xml',
XMLSecurityDSig::generateGUID('counter-signature-') // A unique id for this signature
),
'... path to a certificate file ...', // or a CertificateResourceInfo instance
'... path to the certificate private key file ...', // or a KeyResourceInfo instance
new SignatureProductionPlaceV2(
'New Malden',
'16 Lynton Road', // This is V2 only
'Surrey',
'KT3 5EE',
'UK'
),
new SignerRoleV2(
new ClaimedRoles( new ClaimedRole('Chief legal counsel') )
)
);
XAdES::timestamp(
new InputResourceInfo(
'http://www.xbrlquery.com/xades/hashes for nba.xml', // The source document
ResourceInfo::url, // The source is a url
__DIR__, // The location to save the signed document
'hashes for nba with timestamped signature.xml', // The name of the file to save the signed document in
null,
true,
'signature-to-timestamp'
),
null // An optional url to an alternative timestamp authority (TSA)
);
if ( ! openssl_pkcs12_read( file_get_contents( '/path_to_pkcs12_file/my.p12' ), $store, '<passphrase>' ) )
{
echo "Oops unable to open the file\n";
die();
}
new CertificateResourceInfo( $store['cert'], ResourceInfo::string | ResourceInfo::binary | ResourceInfo::pem ),
new KeyResourceInfo( $store['pkey'], ResourceInfo::string() | ResourceInfo::binary | ResourceInfo::pem ),
$input = new InputResourceInfo(
'http://www.xbrlquery.com/xades/hashes for nba.xml', // The source document
ResourceInfo::url, // The source is a url
__DIR__, // The location to save the signed document
'hashes for nba with signature.xml' // The name of the file to save the signed document in
);
$input->uri = 'TheIdValue';
sh
php composer.phar
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.