UNPKG

xmldsigjs

Version:

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

47 lines (46 loc) 2.23 kB
import { __decorate } from "tslib"; import { XE, XmlError, XmlElement } from 'xml-core'; import { Transform } from './transform.js'; import { XmlSignature } from './xml_names.js'; import { XmlSignatureCollection } from './xml_object.js'; let Transforms = class Transforms extends XmlSignatureCollection { OnLoadXml(element) { super.OnLoadXml(element); this.items = this.GetIterator().map((item) => { switch (item.Algorithm) { case XmlSignature.AlgorithmNamespaces.XmlDsigEnvelopedSignatureTransform: return ChangeTransform(item, transforms.XmlDsigEnvelopedSignatureTransform); case XmlSignature.AlgorithmNamespaces.XmlDsigC14NTransform: return ChangeTransform(item, transforms.XmlDsigC14NTransform); case XmlSignature.AlgorithmNamespaces.XmlDsigC14NWithCommentsTransform: return ChangeTransform(item, transforms.XmlDsigC14NWithCommentsTransform); case XmlSignature.AlgorithmNamespaces.XmlDsigExcC14NTransform: return ChangeTransform(item, transforms.XmlDsigExcC14NTransform); case XmlSignature.AlgorithmNamespaces.XmlDsigExcC14NWithCommentsTransform: return ChangeTransform(item, transforms.XmlDsigExcC14NWithCommentsTransform); case XmlSignature.AlgorithmNamespaces.XmlDsigBase64Transform: return ChangeTransform(item, transforms.XmlDsigBase64Transform); case XmlSignature.AlgorithmNamespaces.XmlDsigXPathTransform: return ChangeTransform(item, transforms.XmlDsigXPathTransform); default: throw new XmlError(XE.CRYPTOGRAPHIC_UNKNOWN_TRANSFORM, item.Algorithm); } }); } }; Transforms = __decorate([ XmlElement({ localName: XmlSignature.ElementNames.Transforms, parser: Transform, }) ], Transforms); export { 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; } import * as transforms from './transforms/index.js';