UNPKG

xmldsigjs

Version:

XML Digital Signature implementation in TypeScript/JavaScript using Web Crypto API

50 lines (49 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Transforms = void 0; const tslib_1 = require("tslib"); const xml_core_1 = require("xml-core"); const transform_js_1 = require("./transform.js"); const xml_names_js_1 = require("./xml_names.js"); const xml_object_js_1 = require("./xml_object.js"); let Transforms = class Transforms extends xml_object_js_1.XmlSignatureCollection { OnLoadXml(element) { super.OnLoadXml(element); this.items = this.GetIterator().map((item) => { switch (item.Algorithm) { case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigEnvelopedSignatureTransform: return ChangeTransform(item, transforms.XmlDsigEnvelopedSignatureTransform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigC14NTransform: return ChangeTransform(item, transforms.XmlDsigC14NTransform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigC14NWithCommentsTransform: return ChangeTransform(item, transforms.XmlDsigC14NWithCommentsTransform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigExcC14NTransform: return ChangeTransform(item, transforms.XmlDsigExcC14NTransform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigExcC14NWithCommentsTransform: return ChangeTransform(item, transforms.XmlDsigExcC14NWithCommentsTransform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigBase64Transform: return ChangeTransform(item, transforms.XmlDsigBase64Transform); case xml_names_js_1.XmlSignature.AlgorithmNamespaces.XmlDsigXPathTransform: return ChangeTransform(item, transforms.XmlDsigXPathTransform); default: throw new xml_core_1.XmlError(xml_core_1.XE.CRYPTOGRAPHIC_UNKNOWN_TRANSFORM, item.Algorithm); } }); } }; exports.Transforms = Transforms; exports.Transforms = Transforms = tslib_1.__decorate([ (0, xml_core_1.XmlElement)({ localName: xml_names_js_1.XmlSignature.ElementNames.Transforms, parser: transform_js_1.Transform, }) ], Transforms); function ChangeTransform(t1, t2) { const t = new t2(); if (!t1.Element) { throw new Error('Transform element is not defined'); } t.LoadXml(t1.Element); return t; } const transforms = tslib_1.__importStar(require("./transforms/index.js"));