diff --git a/lib/xmlenc.js b/lib/xmlenc.js index b5b204f..534d754 100644 --- a/lib/xmlenc.js +++ b/lib/xmlenc.js @@ -184,7 +184,7 @@ function decrypt(xml, options, callback) { if (!options.key) return callback(new Error('key option is mandatory and you should provide a valid RSA private key')); try { - var doc = typeof xml === 'string' ? new xmldom.DOMParser().parseFromString(xml) : xml; + var doc = typeof xml === 'string' ? new xmldom.DOMParser().parseFromString(xml, options.mimeType ?? xmldom.MIME_TYPE.XML_APPLICATION) : xml; var symmetricKey = decryptKeyInfo(doc, options); var encryptionMethod = xpath.select("//*[local-name(.)='EncryptedData']/*[local-name(.)='EncryptionMethod']", doc)[0]; @@ -218,7 +218,7 @@ function decrypt(xml, options, callback) { } function decryptKeyInfo(doc, options) { - if (typeof doc === 'string') doc = new xmldom.DOMParser().parseFromString(doc); + if (typeof doc === 'string') doc = new xmldom.DOMParser().parseFromString(doc, options.mimeType ?? xmldom.MIME_TYPE.XML_APPLICATION); var keyRetrievalMethodUri; var keyInfo = xpath.select("//*[local-name(.)='KeyInfo' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']", doc)[0]; diff --git a/package-lock.json b/package-lock.json index 42bb319..ad29830 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.1.0", "license": "MIT", "dependencies": { - "@xmldom/xmldom": "^0.8.5", + "@xmldom/xmldom": "^0.9.8", "escape-html": "^1.0.3", "xpath": "0.0.32" }, @@ -69,11 +69,11 @@ "license": "(Unlicense OR Apache-2.0)" }, "node_modules/@xmldom/xmldom": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", - "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", "engines": { - "node": ">=10.0.0" + "node": ">=14.6" } }, "node_modules/ansi-colors": { @@ -1580,9 +1580,9 @@ "dev": true }, "@xmldom/xmldom": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", - "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==" + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==" }, "ansi-colors": { "version": "3.2.3", diff --git a/package.json b/package.json index ff81c49..d2c3aa5 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ ], "license": "MIT", "dependencies": { - "@xmldom/xmldom": "^0.8.5", + "@xmldom/xmldom": "^0.9.8", "escape-html": "^1.0.3", "xpath": "0.0.32" },