LibreDTE

XmlSignatureNode
in package

Clase que representa el nodo "Signature" en un XML firmado electrónicamente utilizando el estándar de firma digital de XML (XML DSIG).

Table of Contents

Properties

$certificate  : Certificate
Instancia del certificado digital cuando se están creando firmas.
$data  : array<string|int, mixed>
Datos del nodo Signature.
$doc  : XmlDocument
Documento XML que representa el nodo de la firma electrónica.

Methods

getDigestValue()  : string|null
Obtiene el valor del DigestValue del nodo "Reference".
getReference()  : string|null
Obtiene la referencia asociada a la firma electrónica, si existe.
getXML()  : string
Obtiene el XML que representa el nodo "Signature" como string.
loadXML()  : self
Carga el contenido de un nodo XML "Signature" en la instancia actual.
setDigestValue()  : self
Establece el valor del DigestValue del nodo "Reference".
setReference()  : self
Establece la referencia URI para la firma electrónica.
sign()  : self
Firma el nodo "SignedInfo" del documento XML utilizando un certificado digital. Si no se ha proporcionado previamente un certificado, este puede ser pasado como argumento en la firma.
validate()  : void
Valida el nodo de la firma electrónica del XML.
validateDigestValue()  : void
Validar DigestValue de los datos firmados.
validateSignatureValue()  : void
Valida la firma del nodo "SignedInfo" del XML utilizando el certificado X509.
getCertificate()  : Certificate|null
Obtiene el certificado asociado a la firma electrónica.
getSignatureValue()  : string
Obtiene la firma calculada para el nodo "SignedInfo".
getX509Certificate()  : string
Obtiene el certificado X509 asociado al nodo "KeyInfo".
getXmlDocument()  : XmlDocument
Obtiene el objeto `XmlDocument` que representa el nodo "Signature".
setCertificate()  : self
Asigna un certificado digital a la instancia actual y actualiza los valores correspondientes en el nodo "KeyInfo" (módulo, exponente y certificado en formato X509).
setSignatureValue()  : self
Establece el valor de la firma calculada para el nodo "SignedInfo".

Properties

$data

Datos del nodo Signature.

private array<string|int, mixed> $data = [ // Nodo raíz es Signature. // Este es el nodo que se incluirá en los XML firmados. 'Signature' => [ '@attributes' => ['xmlns' => 'http://www.w3.org/2000/09/xmldsig#'], // Datos que se firmarán. Acá el más importante es el tag // "DigestValue" que contiene un "resumen" (digestión) del C14N // del nodo de la referencia. 'SignedInfo' => ['@attributes' => ['xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'], 'CanonicalizationMethod' => ['@attributes' => ['Algorithm' => 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315']], 'SignatureMethod' => ['@attributes' => ['Algorithm' => 'http://www.w3.org/2000/09/xmldsig#rsa-sha1']], 'Reference' => ['@attributes' => [ // Indica cuál es el nodo de la referencia, debe tener // como prefijo un "#". Si está vacío se entiende que // se desea firmar todo el XML. 'URI' => '', ], 'Transforms' => ['Transform' => ['@attributes' => ['Algorithm' => 'http://www.w3.org/2000/09/xmldsig#enveloped-signature']]], 'DigestMethod' => ['@attributes' => ['Algorithm' => 'http://www.w3.org/2000/09/xmldsig#sha1']], 'DigestValue' => '']], // Firma del C14N del nodo "SignedInfo". // Se agrega después de construir el C14N del SignedInfo y firmar. 'SignatureValue' => '', // Obligatorio. // Información de la clave pública para la validación posterior // de la firma electrónica. 'KeyInfo' => ['KeyValue' => ['RSAKeyValue' => [ 'Modulus' => '', // Obligatorio. 'Exponent' => '', ]], 'X509Data' => ['X509Certificate' => '']], ], ]

Por defecto se dejan vacíos los datos que se completarán posteriormente. Ya sea mediante una asignación de los datos o bien mediante la carga de un nuevo XML con los datos.

Methods

getDigestValue()

Obtiene el valor del DigestValue del nodo "Reference".

public getDigestValue() : string|null
Return values
string|null

El valor del DigestValue o null si no está definido.

getReference()

Obtiene la referencia asociada a la firma electrónica, si existe.

public getReference() : string|null
Return values
string|null

La referencia URI asociada al nodo "Signature", o null si no tiene.

getXML()

Obtiene el XML que representa el nodo "Signature" como string.

public getXML() : string
Return values
string

El XML en formato string del nodo "Signature".

loadXML()

Carga el contenido de un nodo XML "Signature" en la instancia actual.

public loadXML(string $xml) : self
Parameters
$xml : string

String XML que representa el nodo "Signature".

Return values
self

La instancia actual para encadenamiento de métodos.

setDigestValue()

Establece el valor del DigestValue del nodo "Reference".

public setDigestValue(string $digestValue) : self
Parameters
$digestValue : string

El DigestValue calculado.

Return values
self

La instancia actual para encadenamiento de métodos.

setReference()

Establece la referencia URI para la firma electrónica.

public setReference([string|null $reference = null ]) : self
Parameters
$reference : string|null = null

La referencia URI (debe incluir el prefijo "#").

Return values
self

La instancia actual para encadenamiento de métodos.

sign()

Firma el nodo "SignedInfo" del documento XML utilizando un certificado digital. Si no se ha proporcionado previamente un certificado, este puede ser pasado como argumento en la firma.

public sign([Certificate|null $certificate = null ]) : self
Parameters
$certificate : Certificate|null = null

El certificado digital a usar para firmar. Si no se proporciona, se utilizará el ya asignado.

Tags
throws
SignatureException

Si no se ha asignado el DigestValue o el certificado digital.

Return values
self

La instancia actual para encadenamiento de métodos.

validate()

Valida el nodo de la firma electrónica del XML.

public validate(XmlDocument|string $xml) : void

Valida el DigestValue y la firma de dicho DigestValue.

Parameters
$xml : XmlDocument|string

Documento XML que se desea validar.

Tags
throws
SignatureException

En caso de error de DigestValue o firma.

validateSignatureValue()

Valida la firma del nodo "SignedInfo" del XML utilizando el certificado X509.

public validateSignatureValue() : void
Tags
throws
SignatureException

Si la firma electrónica del XML no es válida.

getCertificate()

Obtiene el certificado asociado a la firma electrónica.

private getCertificate() : Certificate|null
Return values
Certificate|null

El certificado asociado o null si no está asignado.

getSignatureValue()

Obtiene la firma calculada para el nodo "SignedInfo".

private getSignatureValue() : string
Return values
string

El valor de la firma calculada en base64.

getX509Certificate()

Obtiene el certificado X509 asociado al nodo "KeyInfo".

private getX509Certificate() : string
Return values
string

El certificado X509 en base64.

getXmlDocument()

Obtiene el objeto `XmlDocument` que representa el nodo "Signature".

private getXmlDocument() : XmlDocument
Return values
XmlDocument

El objeto XmlDocument con los datos del nodo "Signature".

setCertificate()

Asigna un certificado digital a la instancia actual y actualiza los valores correspondientes en el nodo "KeyInfo" (módulo, exponente y certificado en formato X509).

private setCertificate(Certificate $certificate) : self
Parameters
$certificate : Certificate

El certificado digital a asignar.

Return values
self

La instancia actual para encadenamiento de métodos.

setSignatureValue()

Establece el valor de la firma calculada para el nodo "SignedInfo".

private setSignatureValue(string $signatureValue) : self
Parameters
$signatureValue : string

El valor de la firma en base64.

Return values
self

La instancia actual para encadenamiento de métodos.


        
On this page

Search results