UNPKG

dte

Version:

Clases que representan los DTE descritos por el SII

273 lines (272 loc) 11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var FirmaElectronica; (function (FirmaElectronica) { /**Firma Digital sobre Documento. */ class Signature { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('SignatureValue'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.SignatureValue = nd[i].textContent; break; } nd = Node.getElementsByTagName('SignedInfo'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.SignedInfo = new SignedInfo(); this.SignedInfo.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('KeyInfo'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.KeyInfo = new KeyInfo(); this.KeyInfo.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.Signature = Signature; /**Descripcion de la Informacion Firmada y del Metodo de Firma. */ class SignedInfo { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('CanonicalizationMethod'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.CanonicalizationMethod = new CanonicalizationMethod(); this.CanonicalizationMethod.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('SignatureMethod'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.SignatureMethod = new SignatureMethod(); this.SignatureMethod.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('Reference'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Reference = new Reference(); this.Reference.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.SignedInfo = SignedInfo; /**Algoritmo de Canonicalizacion. */ class CanonicalizationMethod { constructor() { this.Algorithm = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"; this.ParseFromXMLElement = (Node) => { let nd; if (Node.hasAttribute('Algorithm')) this.Algorithm = Node.getAttribute('Algorithm'); }; } } FirmaElectronica.CanonicalizationMethod = CanonicalizationMethod; /**Algoritmo de Firma. */ class SignatureMethod { constructor() { this.ParseFromXMLElement = (Node) => { let nd; if (Node.hasAttribute('Algorithm')) this.Algorithm = Node.getAttribute('Algorithm'); }; } } FirmaElectronica.SignatureMethod = SignatureMethod; /**Referencia a Elemento Firmado. */ class Reference { constructor() { this.ParseFromXMLElement = (Node) => { let nd; if (Node.hasAttribute('URI')) this.URI = Node.getAttribute('URI'); nd = Node.getElementsByTagName('DigestValue'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.DigestValue = nd[i].textContent; break; } nd = Node.getElementsByTagName('Transforms'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Transforms = new Transforms(); this.Transforms.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('DigestMethod'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.DigestMethod = new DigestMethod(); this.DigestMethod.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.Reference = Reference; /**Algoritmo de Transformacion. */ class Transforms { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('Transform'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Transform = new Transform(); this.Transform.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.Transforms = Transforms; /***/ class Transform { constructor() { this.ParseFromXMLElement = (Node) => { let nd; if (Node.hasAttribute('Algorithm')) this.Algorithm = Node.getAttribute('Algorithm'); }; } } FirmaElectronica.Transform = Transform; /**Algoritmo de Digest. */ class DigestMethod { constructor() { this.Algorithm = "http://www.w3.org/2000/09/xmldsig#sha1"; this.ParseFromXMLElement = (Node) => { let nd; if (Node.hasAttribute('Algorithm')) this.Algorithm = Node.getAttribute('Algorithm'); }; } } FirmaElectronica.DigestMethod = DigestMethod; /**Informacion de Claves Publicas y Certificado. */ class KeyInfo { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('KeyValue'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.KeyValue = new KeyValue(); this.KeyValue.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('X509Data'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.X509Data = new X509Data(); this.X509Data.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.KeyInfo = KeyInfo; /***/ class KeyValue { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('RSAKeyValue'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.RSAKeyValue = new RSAKeyValue(); this.RSAKeyValue.ParseFromXMLElement(nd[i]); break; } nd = Node.getElementsByTagName('DSAKeyValue'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.DSAKeyValue = new DSAKeyValue(); this.DSAKeyValue.ParseFromXMLElement(nd[i]); break; } }; } } FirmaElectronica.KeyValue = KeyValue; /**Informacion de Claves Publicas RSA. */ class RSAKeyValue { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('Modulus'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Modulus = nd[i].textContent; break; } nd = Node.getElementsByTagName('Exponent'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Exponent = nd[i].textContent; break; } }; } } FirmaElectronica.RSAKeyValue = RSAKeyValue; /**Informacion de Claves Publicas DSA. */ class DSAKeyValue { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('P'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.P = nd[i].textContent; break; } nd = Node.getElementsByTagName('Q'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Q = nd[i].textContent; break; } nd = Node.getElementsByTagName('G'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.G = nd[i].textContent; break; } nd = Node.getElementsByTagName('Y'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.Y = nd[i].textContent; break; } }; } } FirmaElectronica.DSAKeyValue = DSAKeyValue; /**Informacion del Certificado Publico. */ class X509Data { constructor() { this.ParseFromXMLElement = (Node) => { let nd; nd = Node.getElementsByTagName('X509Certificate'); for (let i = 0; i < nd.length; ++i) if (nd[i].parentNode == Node) { this.X509Certificate = nd[i].textContent; break; } }; } } FirmaElectronica.X509Data = X509Data; })(FirmaElectronica = exports.FirmaElectronica || (exports.FirmaElectronica = {}));