dte
Version:
Clases que representan los DTE descritos por el SII
273 lines (272 loc) • 11 kB
JavaScript
"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 = {}));