![]() ![]() |
Info | ![]() |
![]() |
![]() ![]() |
Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2019-11-06 (2 months ago) ![]() | Not yet rated by the users | Total: 81 This week: 5 | All time: 9,441 This week: 59![]() |
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 |
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.