xml-crypto-next 7.0.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/c14n-canonicalization-2.d.ts +37 -0
- package/build/c14n-canonicalization-2.d.ts.map +1 -0
- package/build/c14n-canonicalization-2.js +228 -0
- package/build/c14n-canonicalization.d.ts +48 -0
- package/build/c14n-canonicalization.d.ts.map +1 -0
- package/{lib → build}/c14n-canonicalization.js +95 -75
- package/{lib → build}/enveloped-signature.d.ts +1 -1
- package/build/enveloped-signature.d.ts.map +1 -0
- package/{lib → build}/enveloped-signature.js +4 -9
- package/build/exclusive-canonicalization.d.ts +57 -0
- package/build/exclusive-canonicalization.d.ts.map +1 -0
- package/{lib → build}/exclusive-canonicalization.js +116 -102
- package/{lib → build}/hash-algorithms.d.ts +5 -1
- package/build/hash-algorithms.d.ts.map +1 -0
- package/build/hash-algorithms.js +70 -0
- package/build/index.d.ts +9 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +23 -0
- package/build/signature-algorithms.d.ts +244 -0
- package/build/signature-algorithms.d.ts.map +1 -0
- package/build/signature-algorithms.js +480 -0
- package/{lib → build}/signed-xml.d.ts +2 -2
- package/build/signed-xml.d.ts.map +1 -0
- package/{lib → build}/signed-xml.js +143 -102
- package/{lib → build}/types.d.ts +43 -6
- package/build/types.d.ts.map +1 -0
- package/{lib → build}/types.js +1 -5
- package/{lib → build}/utils.d.ts +34 -4
- package/build/utils.d.ts.map +1 -0
- package/{lib → build}/utils.js +189 -62
- package/build/xmldsig2-transform.d.ts +18 -0
- package/build/xmldsig2-transform.d.ts.map +1 -0
- package/build/xmldsig2-transform.js +65 -0
- package/package.json +74 -73
- package/types/c14n-canonicalization-2.d.ts +38 -0
- package/types/c14n-canonicalization-2.d.ts.map +1 -0
- package/types/c14n-canonicalization.d.ts +49 -0
- package/types/c14n-canonicalization.d.ts.map +1 -0
- package/types/enveloped-signature.d.ts +8 -0
- package/types/enveloped-signature.d.ts.map +1 -0
- package/types/exclusive-canonicalization.d.ts +58 -0
- package/types/exclusive-canonicalization.d.ts.map +1 -0
- package/types/hash-algorithms.d.ts +26 -0
- package/types/hash-algorithms.d.ts.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/index.d.ts.map +1 -0
- package/types/signature-algorithms.d.ts +112 -0
- package/types/signature-algorithms.d.ts.map +1 -0
- package/types/signed-xml.d.ts +237 -0
- package/types/signed-xml.d.ts.map +1 -0
- package/types/src/c14n-canonicalization-2.d.ts +38 -0
- package/types/src/c14n-canonicalization-2.d.ts.map +1 -0
- package/types/src/c14n-canonicalization.d.ts +49 -0
- package/types/src/c14n-canonicalization.d.ts.map +1 -0
- package/types/src/enveloped-signature.d.ts +8 -0
- package/types/src/enveloped-signature.d.ts.map +1 -0
- package/types/src/exclusive-canonicalization.d.ts +58 -0
- package/types/src/exclusive-canonicalization.d.ts.map +1 -0
- package/types/src/hash-algorithms.d.ts +26 -0
- package/types/src/hash-algorithms.d.ts.map +1 -0
- package/types/src/index.d.ts +10 -0
- package/types/src/index.d.ts.map +1 -0
- package/types/src/signature-algorithms.d.ts +245 -0
- package/types/src/signature-algorithms.d.ts.map +1 -0
- package/types/src/signed-xml.d.ts +237 -0
- package/types/src/signed-xml.d.ts.map +1 -0
- package/types/src/types.d.ts +182 -0
- package/types/src/types.d.ts.map +1 -0
- package/types/src/utils.d.ts +96 -0
- package/types/src/utils.d.ts.map +1 -0
- package/types/src/xmldsig2-transform.d.ts +19 -0
- package/types/src/xmldsig2-transform.d.ts.map +1 -0
- package/types/types.d.ts +182 -0
- package/types/types.d.ts.map +1 -0
- package/types/utils.d.ts +96 -0
- package/types/utils.d.ts.map +1 -0
- package/types/xmldsig2-transform.d.ts +19 -0
- package/types/xmldsig2-transform.d.ts.map +1 -0
- package/lib/c14n-canonicalization.d.ts +0 -39
- package/lib/c14n-canonicalization.js.map +0 -1
- package/lib/enveloped-signature.js.map +0 -1
- package/lib/exclusive-canonicalization.d.ts +0 -38
- package/lib/exclusive-canonicalization.js.map +0 -1
- package/lib/hash-algorithms.js +0 -84
- package/lib/hash-algorithms.js.map +0 -1
- package/lib/index.d.ts +0 -5
- package/lib/index.js +0 -28
- package/lib/index.js.map +0 -1
- package/lib/signature-algorithms.d.ts +0 -112
- package/lib/signature-algorithms.js +0 -304
- package/lib/signature-algorithms.js.map +0 -1
- package/lib/signed-xml.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/utils.js.map +0 -1
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { CanonicalizationOrTransformationAlgorithm, CanonicalizationOrTransformationAlgorithmProcessOptions, NamespacePrefix, RenderedNamespace } from "./types";
|
|
2
|
-
export declare class C14nCanonicalization implements CanonicalizationOrTransformationAlgorithm {
|
|
3
|
-
protected includeComments: boolean;
|
|
4
|
-
constructor();
|
|
5
|
-
attrCompare(a: any, b: any): 1 | 0 | -1;
|
|
6
|
-
nsCompare(a: any, b: any): any;
|
|
7
|
-
renderAttrs(node: any): string;
|
|
8
|
-
/**
|
|
9
|
-
* Create the string of all namespace declarations that should appear on this element
|
|
10
|
-
*
|
|
11
|
-
* @param node The node we now render
|
|
12
|
-
* @param prefixesInScope The prefixes defined on this node parents which are a part of the output set
|
|
13
|
-
* @param defaultNs The current default namespace
|
|
14
|
-
* @param defaultNsForPrefix
|
|
15
|
-
* @param ancestorNamespaces Import ancestor namespaces if it is specified
|
|
16
|
-
* @api private
|
|
17
|
-
*/
|
|
18
|
-
renderNs(node: Element, prefixesInScope: string[], defaultNs: string, defaultNsForPrefix: string, ancestorNamespaces: NamespacePrefix[]): RenderedNamespace;
|
|
19
|
-
/**
|
|
20
|
-
* @param node Node
|
|
21
|
-
*/
|
|
22
|
-
processInner(node: any, prefixesInScope: any, defaultNs: any, defaultNsForPrefix: any, ancestorNamespaces: any): string;
|
|
23
|
-
renderComment(node: Comment): string;
|
|
24
|
-
/**
|
|
25
|
-
* Perform canonicalization of the given node
|
|
26
|
-
*
|
|
27
|
-
* @param node
|
|
28
|
-
* @api public
|
|
29
|
-
*/
|
|
30
|
-
process(node: Node, options: CanonicalizationOrTransformationAlgorithmProcessOptions): string;
|
|
31
|
-
getAlgorithmName(): string;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Add c14n#WithComments here (very simple subclass)
|
|
35
|
-
*/
|
|
36
|
-
export declare class C14nCanonicalizationWithComments extends C14nCanonicalization {
|
|
37
|
-
constructor();
|
|
38
|
-
getAlgorithmName(): string;
|
|
39
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"c14n-canonicalization.js","sourceRoot":"","sources":["../src/c14n-canonicalization.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n CanonicalizationOrTransformationAlgorithm,\r\n CanonicalizationOrTransformationAlgorithmProcessOptions,\r\n NamespacePrefix,\r\n RenderedNamespace,\r\n} from \"./types\";\r\nimport * as utils from \"./utils\";\r\nimport * as isDomNode from \"@xmldom/is-dom-node\";\r\n\r\nexport class C14nCanonicalization implements CanonicalizationOrTransformationAlgorithm {\r\n protected includeComments = false;\r\n\r\n constructor() {\r\n this.includeComments = false;\r\n }\r\n\r\n attrCompare(a, b) {\r\n if (!a.namespaceURI && b.namespaceURI) {\r\n return -1;\r\n }\r\n if (!b.namespaceURI && a.namespaceURI) {\r\n return 1;\r\n }\r\n\r\n const left = a.namespaceURI + a.localName;\r\n const right = b.namespaceURI + b.localName;\r\n\r\n if (left === right) {\r\n return 0;\r\n } else if (left < right) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n\r\n nsCompare(a, b) {\r\n const attr1 = a.prefix;\r\n const attr2 = b.prefix;\r\n if (attr1 === attr2) {\r\n return 0;\r\n }\r\n return attr1.localeCompare(attr2);\r\n }\r\n\r\n renderAttrs(node) {\r\n let i;\r\n let attr;\r\n const attrListToRender: Attr[] = [];\r\n\r\n if (isDomNode.isCommentNode(node)) {\r\n return this.renderComment(node);\r\n }\r\n\r\n if (node.attributes) {\r\n for (i = 0; i < node.attributes.length; ++i) {\r\n attr = node.attributes[i];\r\n //ignore namespace definition attributes\r\n if (attr.name.indexOf(\"xmlns\") === 0) {\r\n continue;\r\n }\r\n attrListToRender.push(attr);\r\n }\r\n }\r\n\r\n attrListToRender.sort(this.attrCompare);\r\n\r\n const res = attrListToRender.map((attr) => {\r\n return ` ${attr.name}=\"${utils.encodeSpecialCharactersInAttribute(attr.value)}\"`;\r\n });\r\n\r\n return res.join(\"\");\r\n }\r\n\r\n /**\r\n * Create the string of all namespace declarations that should appear on this element\r\n *\r\n * @param node The node we now render\r\n * @param prefixesInScope The prefixes defined on this node parents which are a part of the output set\r\n * @param defaultNs The current default namespace\r\n * @param defaultNsForPrefix\r\n * @param ancestorNamespaces Import ancestor namespaces if it is specified\r\n * @api private\r\n */\r\n renderNs(\r\n node: Element,\r\n prefixesInScope: string[],\r\n defaultNs: string,\r\n defaultNsForPrefix: string,\r\n ancestorNamespaces: NamespacePrefix[],\r\n ): RenderedNamespace {\r\n let i;\r\n let attr;\r\n const res: string[] = [];\r\n let newDefaultNs = defaultNs;\r\n const nsListToRender: { prefix: string; namespaceURI: string }[] = [];\r\n const currNs = node.namespaceURI || \"\";\r\n\r\n //handle the namespace of the node itself\r\n if (node.prefix) {\r\n if (prefixesInScope.indexOf(node.prefix) === -1) {\r\n nsListToRender.push({\r\n prefix: node.prefix,\r\n namespaceURI: node.namespaceURI || defaultNsForPrefix[node.prefix],\r\n });\r\n prefixesInScope.push(node.prefix);\r\n }\r\n } else if (defaultNs !== currNs) {\r\n //new default ns\r\n newDefaultNs = node.namespaceURI || \"\";\r\n res.push(' xmlns=\"', newDefaultNs, '\"');\r\n }\r\n\r\n //handle the attributes namespace\r\n if (node.attributes) {\r\n for (i = 0; i < node.attributes.length; ++i) {\r\n attr = node.attributes[i];\r\n\r\n //handle all prefixed attributes that are included in the prefix list and where\r\n //the prefix is not defined already. New prefixes can only be defined by `xmlns:`.\r\n if (attr.prefix === \"xmlns\" && prefixesInScope.indexOf(attr.localName) === -1) {\r\n nsListToRender.push({ prefix: attr.localName, namespaceURI: attr.value });\r\n prefixesInScope.push(attr.localName);\r\n }\r\n\r\n //handle all prefixed attributes that are not xmlns definitions and where\r\n //the prefix is not defined already\r\n if (\r\n attr.prefix &&\r\n prefixesInScope.indexOf(attr.prefix) === -1 &&\r\n attr.prefix !== \"xmlns\" &&\r\n attr.prefix !== \"xml\"\r\n ) {\r\n nsListToRender.push({ prefix: attr.prefix, namespaceURI: attr.namespaceURI });\r\n prefixesInScope.push(attr.prefix);\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayHasLength(ancestorNamespaces)) {\r\n // Remove namespaces which are already present in nsListToRender\r\n for (const ancestorNamespace of ancestorNamespaces) {\r\n let alreadyListed = false;\r\n for (const nsToRender of nsListToRender) {\r\n if (\r\n nsToRender.prefix === ancestorNamespace.prefix &&\r\n nsToRender.namespaceURI === ancestorNamespace.namespaceURI\r\n ) {\r\n alreadyListed = true;\r\n }\r\n }\r\n\r\n if (!alreadyListed) {\r\n nsListToRender.push(ancestorNamespace);\r\n }\r\n }\r\n }\r\n\r\n nsListToRender.sort(this.nsCompare);\r\n\r\n //render namespaces\r\n res.push(\r\n ...nsListToRender.map((attr) => {\r\n if (attr.prefix) {\r\n return ` xmlns:${attr.prefix}=\"${attr.namespaceURI}\"`;\r\n }\r\n return ` xmlns=\"${attr.namespaceURI}\"`;\r\n }),\r\n );\r\n\r\n return { rendered: res.join(\"\"), newDefaultNs };\r\n }\r\n\r\n /**\r\n * @param node Node\r\n */\r\n processInner(node, prefixesInScope, defaultNs, defaultNsForPrefix, ancestorNamespaces) {\r\n if (isDomNode.isCommentNode(node)) {\r\n return this.renderComment(node);\r\n }\r\n if (node.data) {\r\n return utils.encodeSpecialCharactersInText(node.data);\r\n }\r\n\r\n if (isDomNode.isElementNode(node)) {\r\n let i;\r\n let pfxCopy;\r\n const ns = this.renderNs(\r\n node,\r\n prefixesInScope,\r\n defaultNs,\r\n defaultNsForPrefix,\r\n ancestorNamespaces,\r\n );\r\n const res = [\"<\", node.tagName, ns.rendered, this.renderAttrs(node), \">\"];\r\n\r\n for (i = 0; i < node.childNodes.length; ++i) {\r\n pfxCopy = prefixesInScope.slice(0);\r\n res.push(\r\n this.processInner(node.childNodes[i], pfxCopy, ns.newDefaultNs, defaultNsForPrefix, []),\r\n );\r\n }\r\n\r\n res.push(\"</\", node.tagName, \">\");\r\n return res.join(\"\");\r\n }\r\n\r\n throw new Error(`Unable to canonicalize node type: ${node.nodeType}`);\r\n }\r\n\r\n // Thanks to deoxxa/xml-c14n for comment renderer\r\n renderComment(node: Comment) {\r\n if (!this.includeComments) {\r\n return \"\";\r\n }\r\n\r\n const isOutsideDocument = node.ownerDocument === node.parentNode;\r\n let isBeforeDocument = false;\r\n let isAfterDocument = false;\r\n\r\n if (isOutsideDocument) {\r\n let nextNode: ChildNode | null = node;\r\n let previousNode: ChildNode | null = node;\r\n\r\n while (nextNode !== null) {\r\n if (nextNode === node.ownerDocument.documentElement) {\r\n isBeforeDocument = true;\r\n break;\r\n }\r\n\r\n nextNode = nextNode.nextSibling;\r\n }\r\n\r\n while (previousNode !== null) {\r\n if (previousNode === node.ownerDocument.documentElement) {\r\n isAfterDocument = true;\r\n break;\r\n }\r\n\r\n previousNode = previousNode.previousSibling;\r\n }\r\n }\r\n\r\n const afterDocument = isAfterDocument ? \"\\n\" : \"\";\r\n const beforeDocument = isBeforeDocument ? \"\\n\" : \"\";\r\n const encodedText = utils.encodeSpecialCharactersInText(node.data);\r\n\r\n return `${afterDocument}<!--${encodedText}-->${beforeDocument}`;\r\n }\r\n\r\n /**\r\n * Perform canonicalization of the given node\r\n *\r\n * @param node\r\n * @api public\r\n */\r\n process(node: Node, options: CanonicalizationOrTransformationAlgorithmProcessOptions): string {\r\n options = options || {};\r\n const defaultNs = options.defaultNs || \"\";\r\n const defaultNsForPrefix = options.defaultNsForPrefix || {};\r\n const ancestorNamespaces = options.ancestorNamespaces || [];\r\n\r\n const prefixesInScope: string[] = [];\r\n for (let i = 0; i < ancestorNamespaces.length; i++) {\r\n prefixesInScope.push(ancestorNamespaces[i].prefix);\r\n }\r\n\r\n const res = this.processInner(\r\n node,\r\n prefixesInScope,\r\n defaultNs,\r\n defaultNsForPrefix,\r\n ancestorNamespaces,\r\n );\r\n return res;\r\n }\r\n\r\n getAlgorithmName() {\r\n return \"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\";\r\n }\r\n}\r\n\r\n/**\r\n * Add c14n#WithComments here (very simple subclass)\r\n */\r\nexport class C14nCanonicalizationWithComments extends C14nCanonicalization {\r\n constructor() {\r\n super();\r\n this.includeComments = true;\r\n }\r\n\r\n getAlgorithmName() {\r\n return \"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\";\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enveloped-signature.js","sourceRoot":"","sources":["../src/enveloped-signature.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,iDAAiD;AAQjD,MAAa,kBAAkB;IAG7B;QAFU,oBAAe,GAAG,KAAK,CAAC;QAGhC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,IAAU,EAAE,OAAgE;QAClF,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAC7B,0FAA0F,EAC1F,IAAI,CACL,CAAC;YACF,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC5D,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAC1C,6CAA6C,EAC7C,aAAa,CACd,CAAC;QACF,IAAI,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACjD,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,IAAI,CAAC;YAE/D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,2FAA2F,EAC3F,IAAI,CACL,CAAC;YACF,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACxE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAClC,6CAA6C,EAC7C,aAAa,CACd,CAAC;gBACF,IAAI,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBACzC,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC;oBAC/C,IAAI,0BAA0B,KAAK,kBAAkB,EAAE,CAAC;wBACtD,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;4BAC7B,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBACtD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,uDAAuD,CAAC;IACjE,CAAC;CACF;AAnDD,gDAmDC","sourcesContent":["import * as xpath from \"xpath\";\r\nimport * as isDomNode from \"@xmldom/is-dom-node\";\r\n\r\nimport type {\r\n CanonicalizationOrTransformationAlgorithm,\r\n CanonicalizationOrTransformationAlgorithmProcessOptions,\r\n CanonicalizationOrTransformAlgorithmType,\r\n} from \"./types\";\r\n\r\nexport class EnvelopedSignature implements CanonicalizationOrTransformationAlgorithm {\r\n protected includeComments = false;\r\n\r\n constructor() {\r\n this.includeComments = false;\r\n }\r\n\r\n process(node: Node, options: CanonicalizationOrTransformationAlgorithmProcessOptions): Node {\r\n if (null == options.signatureNode) {\r\n const signature = xpath.select1(\r\n \"./*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']\",\r\n node,\r\n );\r\n if (isDomNode.isNodeLike(signature) && signature.parentNode) {\r\n signature.parentNode.removeChild(signature);\r\n }\r\n return node;\r\n }\r\n const signatureNode = options.signatureNode;\r\n const expectedSignatureValue = xpath.select1(\r\n \".//*[local-name(.)='SignatureValue']/text()\",\r\n signatureNode,\r\n );\r\n if (isDomNode.isTextNode(expectedSignatureValue)) {\r\n const expectedSignatureValueData = expectedSignatureValue.data;\r\n\r\n const signatures = xpath.select(\r\n \".//*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']\",\r\n node,\r\n );\r\n for (const nodeSignature of Array.isArray(signatures) ? signatures : []) {\r\n const signatureValue = xpath.select1(\r\n \".//*[local-name(.)='SignatureValue']/text()\",\r\n nodeSignature,\r\n );\r\n if (isDomNode.isTextNode(signatureValue)) {\r\n const signatureValueData = signatureValue.data;\r\n if (expectedSignatureValueData === signatureValueData) {\r\n if (nodeSignature.parentNode) {\r\n nodeSignature.parentNode.removeChild(nodeSignature);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n\r\n getAlgorithmName(): CanonicalizationOrTransformAlgorithmType {\r\n return \"http://www.w3.org/2000/09/xmldsig#enveloped-signature\";\r\n }\r\n}\r\n"]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { CanonicalizationOrTransformationAlgorithm, CanonicalizationOrTransformationAlgorithmProcessOptions } from "./types";
|
|
2
|
-
export declare class ExclusiveCanonicalization implements CanonicalizationOrTransformationAlgorithm {
|
|
3
|
-
protected includeComments: boolean;
|
|
4
|
-
constructor();
|
|
5
|
-
attrCompare(a: any, b: any): 1 | 0 | -1;
|
|
6
|
-
nsCompare(a: any, b: any): any;
|
|
7
|
-
renderAttrs(node: any): string;
|
|
8
|
-
/**
|
|
9
|
-
* Create the string of all namespace declarations that should appear on this element
|
|
10
|
-
*
|
|
11
|
-
* @param {Node} node. The node we now render
|
|
12
|
-
* @param {Array} prefixesInScope. The prefixes defined on this node
|
|
13
|
-
* parents which are a part of the output set
|
|
14
|
-
* @param {String} defaultNs. The current default namespace
|
|
15
|
-
* @return {String}
|
|
16
|
-
* @api private
|
|
17
|
-
*/
|
|
18
|
-
renderNs(node: any, prefixesInScope: any, defaultNs: any, defaultNsForPrefix: any, inclusiveNamespacesPrefixList: string[]): {
|
|
19
|
-
rendered: string;
|
|
20
|
-
newDefaultNs: any;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* @param node Node
|
|
24
|
-
*/
|
|
25
|
-
processInner(node: any, prefixesInScope: any, defaultNs: any, defaultNsForPrefix: any, inclusiveNamespacesPrefixList: string[]): string;
|
|
26
|
-
renderComment(node: Comment): string;
|
|
27
|
-
/**
|
|
28
|
-
* Perform canonicalization of the given element node
|
|
29
|
-
*
|
|
30
|
-
* @api public
|
|
31
|
-
*/
|
|
32
|
-
process(elem: Element, options: CanonicalizationOrTransformationAlgorithmProcessOptions): string;
|
|
33
|
-
getAlgorithmName(): string;
|
|
34
|
-
}
|
|
35
|
-
export declare class ExclusiveCanonicalizationWithComments extends ExclusiveCanonicalization {
|
|
36
|
-
constructor();
|
|
37
|
-
getAlgorithmName(): string;
|
|
38
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exclusive-canonicalization.js","sourceRoot":"","sources":["../src/exclusive-canonicalization.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n CanonicalizationOrTransformationAlgorithm,\r\n CanonicalizationOrTransformationAlgorithmProcessOptions,\r\n NamespacePrefix,\r\n} from \"./types\";\r\nimport * as utils from \"./utils\";\r\nimport * as isDomNode from \"@xmldom/is-dom-node\";\r\n\r\nfunction isPrefixInScope(prefixesInScope, prefix, namespaceURI) {\r\n let ret = false;\r\n prefixesInScope.forEach(function (pf) {\r\n if (pf.prefix === prefix && pf.namespaceURI === namespaceURI) {\r\n ret = true;\r\n }\r\n });\r\n\r\n return ret;\r\n}\r\n\r\nexport class ExclusiveCanonicalization implements CanonicalizationOrTransformationAlgorithm {\r\n protected includeComments = false;\r\n\r\n constructor() {\r\n this.includeComments = false;\r\n }\r\n\r\n attrCompare(a, b) {\r\n if (!a.namespaceURI && b.namespaceURI) {\r\n return -1;\r\n }\r\n if (!b.namespaceURI && a.namespaceURI) {\r\n return 1;\r\n }\r\n\r\n const left = a.namespaceURI + a.localName;\r\n const right = b.namespaceURI + b.localName;\r\n\r\n if (left === right) {\r\n return 0;\r\n } else if (left < right) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n\r\n nsCompare(a, b) {\r\n const attr1 = a.prefix;\r\n const attr2 = b.prefix;\r\n if (attr1 === attr2) {\r\n return 0;\r\n }\r\n return attr1.localeCompare(attr2);\r\n }\r\n\r\n renderAttrs(node) {\r\n let i;\r\n let attr;\r\n const res: string[] = [];\r\n const attrListToRender: Attr[] = [];\r\n\r\n if (isDomNode.isCommentNode(node)) {\r\n return this.renderComment(node);\r\n }\r\n\r\n if (node.attributes) {\r\n for (i = 0; i < node.attributes.length; ++i) {\r\n attr = node.attributes[i];\r\n //ignore namespace definition attributes\r\n if (attr.name.indexOf(\"xmlns\") === 0) {\r\n continue;\r\n }\r\n attrListToRender.push(attr);\r\n }\r\n }\r\n\r\n attrListToRender.sort(this.attrCompare);\r\n\r\n for (attr of attrListToRender) {\r\n res.push(\" \", attr.name, '=\"', utils.encodeSpecialCharactersInAttribute(attr.value), '\"');\r\n }\r\n\r\n return res.join(\"\");\r\n }\r\n\r\n /**\r\n * Create the string of all namespace declarations that should appear on this element\r\n *\r\n * @param {Node} node. The node we now render\r\n * @param {Array} prefixesInScope. The prefixes defined on this node\r\n * parents which are a part of the output set\r\n * @param {String} defaultNs. The current default namespace\r\n * @return {String}\r\n * @api private\r\n */\r\n renderNs(\r\n node,\r\n prefixesInScope,\r\n defaultNs,\r\n defaultNsForPrefix,\r\n inclusiveNamespacesPrefixList: string[],\r\n ) {\r\n let i;\r\n let attr;\r\n const res: string[] = [];\r\n let newDefaultNs = defaultNs;\r\n const nsListToRender: NamespacePrefix[] = [];\r\n const currNs = node.namespaceURI || \"\";\r\n\r\n //handle the namespaceof the node itself\r\n if (node.prefix) {\r\n if (\r\n !isPrefixInScope(\r\n prefixesInScope,\r\n node.prefix,\r\n node.namespaceURI || defaultNsForPrefix[node.prefix],\r\n )\r\n ) {\r\n nsListToRender.push({\r\n prefix: node.prefix,\r\n namespaceURI: node.namespaceURI || defaultNsForPrefix[node.prefix],\r\n });\r\n prefixesInScope.push({\r\n prefix: node.prefix,\r\n namespaceURI: node.namespaceURI || defaultNsForPrefix[node.prefix],\r\n });\r\n }\r\n } else if (defaultNs !== currNs) {\r\n //new default ns\r\n newDefaultNs = node.namespaceURI;\r\n res.push(' xmlns=\"', newDefaultNs, '\"');\r\n }\r\n\r\n //handle the attributes namespace\r\n if (node.attributes) {\r\n for (i = 0; i < node.attributes.length; ++i) {\r\n attr = node.attributes[i];\r\n\r\n //handle all prefixed attributes that are included in the prefix list and where\r\n //the prefix is not defined already\r\n if (\r\n attr.prefix &&\r\n !isPrefixInScope(prefixesInScope, attr.localName, attr.value) &&\r\n inclusiveNamespacesPrefixList.indexOf(attr.localName) >= 0\r\n ) {\r\n nsListToRender.push({ prefix: attr.localName, namespaceURI: attr.value });\r\n prefixesInScope.push({ prefix: attr.localName, namespaceURI: attr.value });\r\n }\r\n\r\n //handle all prefixed attributes that are not xmlns definitions and where\r\n //the prefix is not defined already\r\n if (\r\n attr.prefix &&\r\n !isPrefixInScope(prefixesInScope, attr.prefix, attr.namespaceURI) &&\r\n attr.prefix !== \"xmlns\" &&\r\n attr.prefix !== \"xml\"\r\n ) {\r\n nsListToRender.push({ prefix: attr.prefix, namespaceURI: attr.namespaceURI });\r\n prefixesInScope.push({ prefix: attr.prefix, namespaceURI: attr.namespaceURI });\r\n }\r\n }\r\n }\r\n\r\n nsListToRender.sort(this.nsCompare);\r\n\r\n //render namespaces\r\n for (const p of nsListToRender) {\r\n res.push(\" xmlns:\", p.prefix, '=\"', p.namespaceURI, '\"');\r\n }\r\n\r\n return { rendered: res.join(\"\"), newDefaultNs: newDefaultNs };\r\n }\r\n\r\n /**\r\n * @param node Node\r\n */\r\n processInner(\r\n node,\r\n prefixesInScope,\r\n defaultNs,\r\n defaultNsForPrefix,\r\n inclusiveNamespacesPrefixList: string[],\r\n ) {\r\n if (isDomNode.isCommentNode(node)) {\r\n return this.renderComment(node);\r\n }\r\n if (node.data) {\r\n return utils.encodeSpecialCharactersInText(node.data);\r\n }\r\n\r\n if (isDomNode.isElementNode(node)) {\r\n let i;\r\n let pfxCopy;\r\n const ns = this.renderNs(\r\n node,\r\n prefixesInScope,\r\n defaultNs,\r\n defaultNsForPrefix,\r\n inclusiveNamespacesPrefixList,\r\n );\r\n const res = [\"<\", node.tagName, ns.rendered, this.renderAttrs(node), \">\"];\r\n\r\n for (i = 0; i < node.childNodes.length; ++i) {\r\n pfxCopy = prefixesInScope.slice(0);\r\n res.push(\r\n this.processInner(\r\n node.childNodes[i],\r\n pfxCopy,\r\n ns.newDefaultNs,\r\n defaultNsForPrefix,\r\n inclusiveNamespacesPrefixList,\r\n ),\r\n );\r\n }\r\n\r\n res.push(\"</\", node.tagName, \">\");\r\n return res.join(\"\");\r\n }\r\n\r\n throw new Error(`Unable to exclusive canonicalize node type: ${node.nodeType}`);\r\n }\r\n\r\n // Thanks to deoxxa/xml-c14n for comment renderer\r\n renderComment(node: Comment) {\r\n if (!this.includeComments) {\r\n return \"\";\r\n }\r\n\r\n const isOutsideDocument = node.ownerDocument === node.parentNode;\r\n let isBeforeDocument = false;\r\n let isAfterDocument = false;\r\n\r\n if (isOutsideDocument) {\r\n let nextNode: ChildNode | null = node;\r\n let previousNode: ChildNode | null = node;\r\n\r\n while (nextNode != null) {\r\n if (nextNode === node.ownerDocument.documentElement) {\r\n isBeforeDocument = true;\r\n break;\r\n }\r\n\r\n nextNode = nextNode.nextSibling;\r\n }\r\n\r\n while (previousNode != null) {\r\n if (previousNode === node.ownerDocument.documentElement) {\r\n isAfterDocument = true;\r\n break;\r\n }\r\n\r\n previousNode = previousNode.previousSibling;\r\n }\r\n }\r\n\r\n const afterDocument = isAfterDocument ? \"\\n\" : \"\";\r\n const beforeDocument = isBeforeDocument ? \"\\n\" : \"\";\r\n const encodedText = utils.encodeSpecialCharactersInText(node.data);\r\n\r\n return `${afterDocument}<!--${encodedText}-->${beforeDocument}`;\r\n }\r\n\r\n /**\r\n * Perform canonicalization of the given element node\r\n *\r\n * @api public\r\n */\r\n process(elem: Element, options: CanonicalizationOrTransformationAlgorithmProcessOptions): string {\r\n options = options || {};\r\n let inclusiveNamespacesPrefixList = options.inclusiveNamespacesPrefixList || [];\r\n const defaultNs = options.defaultNs || \"\";\r\n const defaultNsForPrefix = options.defaultNsForPrefix || {};\r\n const ancestorNamespaces = options.ancestorNamespaces || [];\r\n\r\n /**\r\n * If the inclusiveNamespacesPrefixList has not been explicitly provided then look it up in CanonicalizationMethod/InclusiveNamespaces\r\n */\r\n if (!utils.isArrayHasLength(inclusiveNamespacesPrefixList)) {\r\n const CanonicalizationMethod = utils.findChildren(elem, \"CanonicalizationMethod\");\r\n if (CanonicalizationMethod.length !== 0) {\r\n const inclusiveNamespaces = utils.findChildren(\r\n CanonicalizationMethod[0],\r\n \"InclusiveNamespaces\",\r\n );\r\n if (inclusiveNamespaces.length !== 0) {\r\n inclusiveNamespacesPrefixList = (\r\n inclusiveNamespaces[0].getAttribute(\"PrefixList\") || \"\"\r\n ).split(\" \");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * If you have a PrefixList then use it and the ancestors to add the necessary namespaces\r\n */\r\n if (utils.isArrayHasLength(inclusiveNamespacesPrefixList)) {\r\n inclusiveNamespacesPrefixList.forEach(function (prefix) {\r\n if (ancestorNamespaces) {\r\n ancestorNamespaces.forEach(function (ancestorNamespace) {\r\n if (prefix === ancestorNamespace.prefix) {\r\n elem.setAttributeNS(\r\n \"http://www.w3.org/2000/xmlns/\",\r\n `xmlns:${prefix}`,\r\n ancestorNamespace.namespaceURI,\r\n );\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n const res = this.processInner(\r\n elem,\r\n [],\r\n defaultNs,\r\n defaultNsForPrefix,\r\n inclusiveNamespacesPrefixList,\r\n );\r\n return res;\r\n }\r\n\r\n getAlgorithmName() {\r\n return \"http://www.w3.org/2001/10/xml-exc-c14n#\";\r\n }\r\n}\r\n\r\nexport class ExclusiveCanonicalizationWithComments extends ExclusiveCanonicalization {\r\n constructor() {\r\n super();\r\n this.includeComments = true;\r\n }\r\n\r\n getAlgorithmName() {\r\n return \"http://www.w3.org/2001/10/xml-exc-c14n#WithComments\";\r\n }\r\n}\r\n"]}
|
package/lib/hash-algorithms.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Shake256 = exports.Sha512 = exports.Sha384 = exports.Sha256 = exports.Sha1 = void 0;
|
|
4
|
-
const crypto = require("crypto");
|
|
5
|
-
class Sha1 {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.getHash = function (xml) {
|
|
8
|
-
const shasum = crypto.createHash("sha1");
|
|
9
|
-
shasum.update(xml, "utf8");
|
|
10
|
-
const res = shasum.digest("base64");
|
|
11
|
-
return res;
|
|
12
|
-
};
|
|
13
|
-
this.getAlgorithmName = function () {
|
|
14
|
-
return "http://www.w3.org/2000/09/xmldsig#sha1";
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.Sha1 = Sha1;
|
|
19
|
-
class Sha256 {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.getHash = function (xml) {
|
|
22
|
-
const shasum = crypto.createHash("sha256");
|
|
23
|
-
shasum.update(xml, "utf8");
|
|
24
|
-
const res = shasum.digest("base64");
|
|
25
|
-
return res;
|
|
26
|
-
};
|
|
27
|
-
this.getAlgorithmName = function () {
|
|
28
|
-
return "http://www.w3.org/2001/04/xmlenc#sha256";
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.Sha256 = Sha256;
|
|
33
|
-
class Sha384 {
|
|
34
|
-
constructor() {
|
|
35
|
-
this.getHash = function (xml) {
|
|
36
|
-
const shasum = crypto.createHash("sha384");
|
|
37
|
-
shasum.update(xml, "utf8");
|
|
38
|
-
const res = shasum.digest("base64");
|
|
39
|
-
return res;
|
|
40
|
-
};
|
|
41
|
-
this.getAlgorithmName = function () {
|
|
42
|
-
return "http://www.w3.org/2001/04/xmlenc#sha384";
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.Sha384 = Sha384;
|
|
47
|
-
class Sha512 {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.getHash = function (xml) {
|
|
50
|
-
const shasum = crypto.createHash("sha512");
|
|
51
|
-
shasum.update(xml, "utf8");
|
|
52
|
-
const res = shasum.digest("base64");
|
|
53
|
-
return res;
|
|
54
|
-
};
|
|
55
|
-
this.getAlgorithmName = function () {
|
|
56
|
-
return "http://www.w3.org/2001/04/xmlenc#sha512";
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.Sha512 = Sha512;
|
|
61
|
-
class Shake256 {
|
|
62
|
-
constructor() {
|
|
63
|
-
// Ed448 内部使用的 SHAKE256 输出长度固定为 114 字节
|
|
64
|
-
this.getHash = function (xml) {
|
|
65
|
-
const shasum = crypto.createHash("shake256", {
|
|
66
|
-
outputLength: 114
|
|
67
|
-
});
|
|
68
|
-
shasum.update(xml, "utf8");
|
|
69
|
-
const res = shasum.digest("base64");
|
|
70
|
-
return res;
|
|
71
|
-
};
|
|
72
|
-
this.getAlgorithmName = function () {
|
|
73
|
-
// 这是一个非标准的 URI,因为标准 Ed448 (PureEdDSA) 不在 DigestMethod 中暴露 SHAKE256。
|
|
74
|
-
// 如果你的库强制需要一个字符串,你可能需要查阅该库的文档。
|
|
75
|
-
// 有些实现可能会复用 sha3-512 的 URI 或者使用自定义 URI。
|
|
76
|
-
// 这里提供一个可能的表示,或者保持与你之前的映射逻辑一致(如果那是库的要求)。
|
|
77
|
-
// 但在密码学上,它不是 sha3-512。
|
|
78
|
-
return "http://www.w3.org/2001/04/xmldsig-more#shake256";
|
|
79
|
-
// 如果必须兼容旧系统且它们错误地期望 sha3-512,请谨慎更改,但原理上是错的。
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.Shake256 = Shake256;
|
|
84
|
-
//# sourceMappingURL=hash-algorithms.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hash-algorithms.js","sourceRoot":"","sources":["../src/hash-algorithms.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAGjC,MAAa,IAAI;IAAjB;QACE,YAAO,GAAG,UAAU,GAAG;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,qBAAgB,GAAG;YACjB,OAAO,wCAAwC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;CAAA;AAXD,oBAWC;AAED,MAAa,MAAM;IAAnB;QACE,YAAO,GAAG,UAAU,GAAG;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,qBAAgB,GAAG;YACjB,OAAO,yCAAyC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;CAAA;AAXD,wBAWC;AACD,MAAa,MAAM;IAAnB;QACE,YAAO,GAAG,UAAU,GAAG;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,qBAAgB,GAAG;YACjB,OAAO,yCAAyC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;CAAA;AAXD,wBAWC;AACD,MAAa,MAAM;IAAnB;QACE,YAAO,GAAG,UAAU,GAAG;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,qBAAgB,GAAG;YACjB,OAAO,yCAAyC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;CAAA;AAXD,wBAWC;AACD,MAAa,QAAQ;IAArB;QACE,sCAAsC;QAEtC,YAAO,GAAG,UAAU,GAAG;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAC;gBAC1C,YAAY,EAAE,GAAG;aAClB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,qBAAgB,GAAG;YACrB,oEAAoE;YAChE,+BAA+B;YAC/B,wCAAwC;YACxC,yCAAyC;YACzC,uBAAuB;YACvB,OAAO,iDAAiD,CAAC;YACzD,4CAA4C;QAC9C,CAAC,CAAC;IACJ,CAAC;CAAA;AArBD,4BAqBC","sourcesContent":["import * as crypto from \"crypto\";\r\nimport type { HashAlgorithm } from \"./types\";\r\n\r\nexport class Sha1 implements HashAlgorithm {\r\n getHash = function (xml) {\r\n const shasum = crypto.createHash(\"sha1\");\r\n shasum.update(xml, \"utf8\");\r\n const res = shasum.digest(\"base64\");\r\n return res;\r\n };\r\n\r\n getAlgorithmName = function () {\r\n return \"http://www.w3.org/2000/09/xmldsig#sha1\";\r\n };\r\n}\r\n\r\nexport class Sha256 implements HashAlgorithm {\r\n getHash = function (xml) {\r\n const shasum = crypto.createHash(\"sha256\");\r\n shasum.update(xml, \"utf8\");\r\n const res = shasum.digest(\"base64\");\r\n return res;\r\n };\r\n\r\n getAlgorithmName = function () {\r\n return \"http://www.w3.org/2001/04/xmlenc#sha256\";\r\n };\r\n}\r\nexport class Sha384 implements HashAlgorithm {\r\n getHash = function (xml) {\r\n const shasum = crypto.createHash(\"sha384\");\r\n shasum.update(xml, \"utf8\");\r\n const res = shasum.digest(\"base64\");\r\n return res;\r\n };\r\n\r\n getAlgorithmName = function () {\r\n return \"http://www.w3.org/2001/04/xmlenc#sha384\";\r\n };\r\n}\r\nexport class Sha512 implements HashAlgorithm {\r\n getHash = function (xml) {\r\n const shasum = crypto.createHash(\"sha512\");\r\n shasum.update(xml, \"utf8\");\r\n const res = shasum.digest(\"base64\");\r\n return res;\r\n };\r\n\r\n getAlgorithmName = function () {\r\n return \"http://www.w3.org/2001/04/xmlenc#sha512\";\r\n };\r\n}\r\nexport class Shake256 implements HashAlgorithm {\r\n // Ed448 内部使用的 SHAKE256 输出长度固定为 114 字节\r\n\r\n getHash = function (xml) {\r\n const shasum = crypto.createHash(\"shake256\",{\r\n outputLength: 114\r\n });\r\n shasum.update(xml, \"utf8\");\r\n const res = shasum.digest(\"base64\");\r\n return res;\r\n };\r\n\r\n getAlgorithmName = function () {\r\n// 这是一个非标准的 URI,因为标准 Ed448 (PureEdDSA) 不在 DigestMethod 中暴露 SHAKE256。\r\n // 如果你的库强制需要一个字符串,你可能需要查阅该库的文档。\r\n // 有些实现可能会复用 sha3-512 的 URI 或者使用自定义 URI。\r\n // 这里提供一个可能的表示,或者保持与你之前的映射逻辑一致(如果那是库的要求)。\r\n // 但在密码学上,它不是 sha3-512。\r\n return \"http://www.w3.org/2001/04/xmldsig-more#shake256\";\r\n // 如果必须兼容旧系统且它们错误地期望 sha3-512,请谨慎更改,但原理上是错的。\r\n };\r\n}\r\n\r\n"]}
|
package/lib/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { C14nCanonicalization, C14nCanonicalizationWithComments } from "./c14n-canonicalization";
|
|
2
|
-
export { ExclusiveCanonicalization, ExclusiveCanonicalizationWithComments, } from "./exclusive-canonicalization";
|
|
3
|
-
export { SignedXml } from "./signed-xml";
|
|
4
|
-
export * from "./types";
|
|
5
|
-
export * from "./utils";
|
package/lib/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SignedXml = exports.ExclusiveCanonicalizationWithComments = exports.ExclusiveCanonicalization = exports.C14nCanonicalizationWithComments = exports.C14nCanonicalization = void 0;
|
|
18
|
-
var c14n_canonicalization_1 = require("./c14n-canonicalization");
|
|
19
|
-
Object.defineProperty(exports, "C14nCanonicalization", { enumerable: true, get: function () { return c14n_canonicalization_1.C14nCanonicalization; } });
|
|
20
|
-
Object.defineProperty(exports, "C14nCanonicalizationWithComments", { enumerable: true, get: function () { return c14n_canonicalization_1.C14nCanonicalizationWithComments; } });
|
|
21
|
-
var exclusive_canonicalization_1 = require("./exclusive-canonicalization");
|
|
22
|
-
Object.defineProperty(exports, "ExclusiveCanonicalization", { enumerable: true, get: function () { return exclusive_canonicalization_1.ExclusiveCanonicalization; } });
|
|
23
|
-
Object.defineProperty(exports, "ExclusiveCanonicalizationWithComments", { enumerable: true, get: function () { return exclusive_canonicalization_1.ExclusiveCanonicalizationWithComments; } });
|
|
24
|
-
var signed_xml_1 = require("./signed-xml");
|
|
25
|
-
Object.defineProperty(exports, "SignedXml", { enumerable: true, get: function () { return signed_xml_1.SignedXml; } });
|
|
26
|
-
__exportStar(require("./types"), exports);
|
|
27
|
-
__exportStar(require("./utils"), exports);
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAAiG;AAAxF,6HAAA,oBAAoB,OAAA;AAAE,yIAAA,gCAAgC,OAAA;AAC/D,2EAGsC;AAFpC,uIAAA,yBAAyB,OAAA;AACzB,mJAAA,qCAAqC,OAAA;AAEvC,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,0CAAwB;AACxB,0CAAwB","sourcesContent":["export { C14nCanonicalization, C14nCanonicalizationWithComments } from \"./c14n-canonicalization\";\r\nexport {\r\n ExclusiveCanonicalization,\r\n ExclusiveCanonicalizationWithComments,\r\n} from \"./exclusive-canonicalization\";\r\nexport { SignedXml } from \"./signed-xml\";\r\nexport * from \"./types\";\r\nexport * from \"./utils\";\r\n"]}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import * as crypto from "crypto";
|
|
2
|
-
import { type SignatureAlgorithm } from "./types";
|
|
3
|
-
export declare class RsaSha1 implements SignatureAlgorithm {
|
|
4
|
-
getSignature: {
|
|
5
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
6
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
7
|
-
};
|
|
8
|
-
verifySignature: {
|
|
9
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
10
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
11
|
-
};
|
|
12
|
-
getAlgorithmName: () => string;
|
|
13
|
-
}
|
|
14
|
-
export declare class RsaSha256 implements SignatureAlgorithm {
|
|
15
|
-
getSignature: {
|
|
16
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
17
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
18
|
-
};
|
|
19
|
-
verifySignature: {
|
|
20
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
21
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
22
|
-
};
|
|
23
|
-
getAlgorithmName: () => string;
|
|
24
|
-
}
|
|
25
|
-
export declare class RsaSha256Mgf1 implements SignatureAlgorithm {
|
|
26
|
-
getSignature: {
|
|
27
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
28
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
29
|
-
};
|
|
30
|
-
verifySignature: {
|
|
31
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
32
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
33
|
-
};
|
|
34
|
-
getAlgorithmName: () => string;
|
|
35
|
-
}
|
|
36
|
-
export declare class RsaSha384 implements SignatureAlgorithm {
|
|
37
|
-
getSignature: {
|
|
38
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
39
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
40
|
-
};
|
|
41
|
-
verifySignature: {
|
|
42
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
43
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
44
|
-
};
|
|
45
|
-
getAlgorithmName: () => string;
|
|
46
|
-
}
|
|
47
|
-
export declare class RsaSha384Mgf1 implements SignatureAlgorithm {
|
|
48
|
-
getSignature: {
|
|
49
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
50
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
51
|
-
};
|
|
52
|
-
verifySignature: {
|
|
53
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
54
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
55
|
-
};
|
|
56
|
-
getAlgorithmName: () => string;
|
|
57
|
-
}
|
|
58
|
-
export declare class RsaSha512 implements SignatureAlgorithm {
|
|
59
|
-
getSignature: {
|
|
60
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
61
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
62
|
-
};
|
|
63
|
-
verifySignature: {
|
|
64
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
65
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
66
|
-
};
|
|
67
|
-
getAlgorithmName: () => string;
|
|
68
|
-
}
|
|
69
|
-
export declare class RsaSha512Mgf1 implements SignatureAlgorithm {
|
|
70
|
-
getSignature: {
|
|
71
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
72
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
73
|
-
};
|
|
74
|
-
verifySignature: {
|
|
75
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
76
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
77
|
-
};
|
|
78
|
-
getAlgorithmName: () => string;
|
|
79
|
-
}
|
|
80
|
-
export declare class Ed25519 implements SignatureAlgorithm {
|
|
81
|
-
getSignature: {
|
|
82
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
83
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
84
|
-
};
|
|
85
|
-
verifySignature: {
|
|
86
|
-
(material: crypto.BinaryLike, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
87
|
-
(material: crypto.BinaryLike, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
88
|
-
};
|
|
89
|
-
getAlgorithmName: () => string;
|
|
90
|
-
}
|
|
91
|
-
export declare class Ed488 implements SignatureAlgorithm {
|
|
92
|
-
getSignature: {
|
|
93
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
94
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
95
|
-
};
|
|
96
|
-
verifySignature: {
|
|
97
|
-
(material: crypto.BinaryLike, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
98
|
-
(material: crypto.BinaryLike, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
99
|
-
};
|
|
100
|
-
getAlgorithmName: () => string;
|
|
101
|
-
}
|
|
102
|
-
export declare class HmacSha1 implements SignatureAlgorithm {
|
|
103
|
-
getSignature: {
|
|
104
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike): string;
|
|
105
|
-
(signedInfo: crypto.BinaryLike, privateKey: crypto.KeyLike, args_2: import("./types").ErrorFirstCallback<string>): void;
|
|
106
|
-
};
|
|
107
|
-
verifySignature: {
|
|
108
|
-
(material: string, key: crypto.KeyLike, signatureValue: string): boolean;
|
|
109
|
-
(material: string, key: crypto.KeyLike, signatureValue: string, args_3: import("./types").ErrorFirstCallback<boolean>): void;
|
|
110
|
-
};
|
|
111
|
-
getAlgorithmName: () => string;
|
|
112
|
-
}
|