| Recommend this page to a friend! | 
| Info | Documentation | Reputation | Support forum | Blog | Links | 
| Ratings | Unique User Downloads | Download Rankings | ||||
| Not yet rated by the users | Total: 154 | All time:  9,043 This week: 67 | ||||
| Version | License | PHP version | Categories | |||
| dsigsdk 1.0.0 | GNU Lesser Genera... | 5 | XML, PHP 5, Cryptography | 
and provide
For help finding a good PHP cryptography library, please review * Choosing the Right Cryptography Library for your PHP Project: A Guide
To parse an Dsig (Signature root) XML file (using XMLReader) :
<?php
namespace Kigkonsult\DsigSdk;
use Kigkonsult\DsigSdk\XMLParse\DsigParser;
$dsig = DsigParser::factory()->parse( 
    file_get_contents( 'DsigFile.xml' )
);
$signedInfo = $dsig->getsignedInfo();
...
The XML parser save the XMLreader node properties (baseURI, localName, name, namespaceURI, prefix) for each XML (Dto) element as 'XMLattributes' as well as XML attributes (xmlns, xmlns:*, schemaLocation), if set (more info below).
'any' [XSD] elements are accepted as 'Anytype' object instances (more info below, 'AnyType').
To build up dsig structure:
<?php
namespace Kigkonsult\DsigSdk;
use Kigkonsult\DsigSdk\Dto\AnyType;
use Kigkonsult\DsigSdk\Dto\CanonicalizationMethodType;
use Kigkonsult\DsigSdk\Dto\KeyInfoType;
use Kigkonsult\DsigSdk\Dto\SignedInfoType;
use Kigkonsult\DsigSdk\Dto\SignatureType;
use Kigkonsult\DsigSdk\Dto\SignatureValueType;
$dsig = SignatureType::factory()
    ->setSignedInfo( 
        SignedInfoType::factory()
            ->setCanonicalizationMethod(
                CanonicalizationMethodType::factory()
                    ->setAlgorithm( SignatureType::MINICANONICAL )
                    ->setAny( [
                        AnyType::factory()
                            ->setElementName( 'nonSchemaElement1')
                            ->setAttributes( [
                                'id' => '12345' 
                                ] )
                             ->setContent( 'Lr1mKGxP7VAgMB...' ),
                        AnyType::factory()
                            ->setElementName( 'nonSchemaElement2')
                            ->setSubElements( [
                                AnyType::factory()
                                    ->setElementName( 'nonSchemaElement3')
                                    ->setContent( 'Lr1mKGxP7VAgMB...' ),
                            ] )
                        ]
                    )
            )
    )
    ->setSignatureValue(
        SignatureValueType::factory()
            ->setSignatureValueType( 'vgGZnRlm8...' )
    )
    ->setKeyInfo(
        KeyInfoType::factory()
            ->setKeyInfoType( [
                [                 // one set of elements
                    [             // element
                        SignatureType::X509DATA => 
                            X509DataType::factory()
                                ->setX509Certificate( ... )
                    ],
                ],
        ] )
    )
    ->setObject(
        ...
    )
    ...
You can set (single 'element') XMLattribute using
$dsig->setXMLAttribut( <key>, <value> );
To set (ex. prefix) and 'propagate' down in hierarchy:
$dsig->setXMLAttribut( SignatureType::PREFIX, <value>, true );
You can remove (single 'element') XMLattribute using
$dsig->unsetXMLAttribut( <key> );
To unset (ex. prefix) and 'propagate' down in hierarchy:
$dsig->unsetXMLAttribut( SignatureType::PREFIX, true );
To fetch and iterate over XMLAttributes
foreach( $dsig->getXMLAttributes() as $key => $value {
    ...
}
Anytype object instances are used for 'any' [XSD] elements. The element name are stored and fetched with
$anytype->setElementName( <name> );
$anytypeName = $anytype->getElementName();
The 'any' [XSD] element attributes may include XML attributes.
The AnyType attributes are stored and fetched as array.
$anytype->setAttributes( [ <key> => <value> ] );
foreach( $anytype->getAttributes() as $key => $value {
    ...
}
Note, an AnyType instance may have * content * type string, * AnyType::setContent() * AnyType::getContent()
or * sub-elements type array [AnyType] * AnyType::setSubElements() * AnyType::getSubElements()
but not both.
DsigSdk uses XMLWriter creating output.
$XMLstring = DsigWriter::factory()->write( $dsig );
The XMLwriter adds for each element * element name with prefix, if exists XMLattribute xmlns, xmlns: and schemaLocation, if exists.
$domNode = DsigWriter::factory()->write( $dsig, true );
For class structure and architecture, please review * the [XSD] * docs/Dsig.png class design * the src/DsigLoader directory
You may find convenient constants in - src/DsigInterface - src/XMLAttributesInterface
For base64Encode/base64Decode/hash support, please review src/Impl/Impl.md
From the Command Line:
composer require kigkonsult/dsigsdk
In your composer.json:
{
    "require": {
        "kigkonsult/dsigsdk": "dev-master"
    }
}
Acquire access
namespace Kigkonsult\DsigSdk;
...
include 'vendor/autoload.php';
Run tests
cd pathToSource/DsigSdk
vendor/bin/phpunit
Download and acquire..
namepace Kigkonsult\DsigSdk;
...
include 'pathToSource/DsigSdk/autoload.php';
For support, please use [Github]/issues.
This project is licensed under the LGPLv3 License
[Composer]:https://getcomposer.org/ [Github]:https://github.com/iCalcreator/dsigsdk/issues [http://www.w3.org/2000/09/xmldsig#]:http://www.w3.org/2000/09/xmldsig# [XSD]:https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
| File | Role | Description | ||
|---|---|---|---|---|
| Aux. | Auxiliary script | |||
| Data | Auxiliary data | |||
| Data | Auxiliary data | |||
| Doc. | Read me | |||
| / | docs | 
| File | Role | Description | 
|---|---|---|
|  | Data | Auxiliary data | 
|  | Doc. | Documentation | 
|  | Doc. | Documentation | 
|  | Doc. | Documentation | 
|  | Doc. | Documentation | 
|  | Data | Auxiliary data | 
| / | src | 
| File | Role | Description | ||
|---|---|---|---|---|
|  | Class | Class source | ||
|  | Class | Class source | ||
|  | Class | Class source | ||
|  | Class | Class source | ||
| / | src | / | DsigLoader | 
| File | Role | Description | 
|---|---|---|
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| / | src | / | Dto | 
| File | Role | Description | 
|---|---|---|
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| / | src | / | Impl | 
| File | Role | Description | 
|---|---|---|
|  | Data | Auxiliary data | 
|  | Class | Class source | 
|  | Data | Auxiliary data | 
|  | Class | Class source | 
|  | Data | Auxiliary data | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Data | Auxiliary data | 
|  | Data | Auxiliary data | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| / | src | / | XMLParse | 
| File | Role | Description | 
|---|---|---|
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| / | src | / | XMLWrite | 
| File | Role | Description | 
|---|---|---|
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| / | test | 
| File | Role | Description | ||
|---|---|---|---|---|
|  | Class | Class source | ||
|  | Class | Class source | ||
| / | test | / | Impl | 
| File | Role | Description | 
|---|---|---|
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
|  | Class | Class source | 
| The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. | 
| Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
| 100% | 
 | 
 | 
| Applications that use this package | 
![]() If you know an application of this package, send a message to the author to add a link here.
 If you know an application of this package, send a message to the author to add a link here.