From 162e96cebdaced6fca3d6b981d17ecef6d4e624b Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Tue, 13 Dec 2022 13:02:56 +0300 Subject: [PATCH] Developing --- .../src/wasm/oform_plugin/module/after.py | 4 +- .../src/wasm/oform_plugin/module/code.js | 138 ++---------------- .../wasm/oform_plugin/module/engine_base.js | 4 +- .../src/wasm/oform_plugin/module/index.html | 34 +---- 4 files changed, 16 insertions(+), 164 deletions(-) diff --git a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/after.py b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/after.py index 3a9d29e23c..8f4dbfc0cb 100644 --- a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/after.py +++ b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/after.py @@ -2,8 +2,8 @@ import sys; sys.path.append("../../../../../../../build_tools/scripts"); import base; -base.replaceInFile("./deploy/engine.js", "__ATPOSTRUN__=[];", "__ATPOSTRUN__=[function(){window.Asc.cryptoJS.onLoad();}];"); -base.replaceInFile("./deploy/engine.js", "__ATPOSTRUN__ = [];", "__ATPOSTRUN__=[function(){window.Asc.cryptoJS.onLoad();}];"); +base.replaceInFile("./deploy/engine.js", "__ATPOSTRUN__=[];", "__ATPOSTRUN__=[function(){window.cryptoJS.onLoad();}];"); +base.replaceInFile("./deploy/engine.js", "__ATPOSTRUN__ = [];", "__ATPOSTRUN__=[function(){window.cryptoJS.onLoad();}];"); base.replaceInFile("./deploy/engine.js", "function getBinaryPromise()", "function getBinaryPromise2()"); base.copy_file("./index.html", "./deploy/index.html"); diff --git a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/code.js b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/code.js index 32c9572527..04f140f53e 100644 --- a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/code.js +++ b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/code.js @@ -1,134 +1,18 @@ window.onload = function() { - var xmlCertificate = new window.XmlSignature(); - var XmlError = window.XmlSignatureError; - - function loadCert(data, password) + let url = "./engine"; + let useWasm = false; + let webAsmObj = window["WebAssembly"]; + if (typeof webAsmObj === "object" && typeof webAsmObj["Memory"] === "function") { - window.certFileData = data; - var err = xmlCertificate.loadCert(window.certFileData, password); - switch (err) - { - case XmlError.OPEN_SSL_WARNING_ERR: - { - alert("error"); - break; - } - case XmlError.OPEN_SSL_WARNING_ALL_OK: - { - document.getElementById("key").style.display = "none"; - document.getElementById("password").style.display = "none"; - break; - } - case XmlError.OPEN_SSL_WARNING_OK: - { - document.getElementById("key").style.display = ""; - document.getElementById("password").style.display = "none"; - break; - } - case XmlError.OPEN_SSL_WARNING_PASS: - { - document.getElementById("key").style.display = "none"; - document.getElementById("password").style.display = ""; - break; - } - default: - break; - } + if ((typeof webAsmObj["instantiateStreaming"] === "function") || (typeof webAsmObj["instantiate"] === "function")) + useWasm = true; } - function loadKey(data, password) - { - window.keyFileData = data; - var err = xmlCertificate.loadKey(window.keyFileData, password); - switch (err) - { - case XmlError.OPEN_SSL_WARNING_ERR: - { - alert("error"); - break; - } - case XmlError.OPEN_SSL_WARNING_ALL_OK: - case XmlError.OPEN_SSL_WARNING_OK: - { - document.getElementById("password").style.display = "none"; - break; - } - case XmlError.OPEN_SSL_WARNING_PASS: - { - document.getElementById("password").style.display = ""; - break; - } - default: - break; - } - } - - document.getElementById('button_certificate').onchange = function() { - var reader = new FileReader(); - reader.onload = function() { - loadCert(this.result); - }; - reader.readAsArrayBuffer(this.files[0]); - }; - - document.getElementById('button_key').onchange = function() { - var reader = new FileReader(); - reader.onload = function() { - loadKey(this.result); - }; - reader.readAsArrayBuffer(this.files[0]); - }; - - document.getElementById('file_select').onchange = function() { - var reader = new FileReader(); - reader.onload = function() { - window.fileFileData = this.result; - }; - reader.readAsArrayBuffer(this.files[0]); - }; - - document.getElementById('button_password').onclick = function() { - if (document.getElementById("key").style.display == "none") - loadCert(window.certFileData, document.getElementById("area_password").value); - else - loadKey(window.keyFileData, document.getElementById("area_password").value); - }; - - document.getElementById('button_sign').onclick = function() { - - if (!window.fileFileData) - { - alert("Please select file"); - return; - } - - function downloadBlob(data, fileName, mimeType) { - var blob, url; - blob = new Blob([data], { - type: mimeType - }); - url = window.URL.createObjectURL(blob); - downloadURL(url, fileName); - setTimeout(function() { - return window.URL.revokeObjectURL(url); - }, 1000); - }; - - function downloadURL(data, fileName) { - var a; - a = document.createElement('a'); - a.href = data; - a.download = fileName; - document.body.appendChild(a); - a.style = 'display: none'; - a.click(); - a.remove(); - }; - - var result = xmlCertificate.sign(window.fileFileData); - downloadBlob(result, 'sign_file.docx', 'application/octet-stream'); - - }; + url += (useWasm ? ".js" : "_ie.js"); + let script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = url; + document.head.appendChild(script); }; diff --git a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/engine_base.js b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/engine_base.js index d3a5bd0d30..337803ee57 100644 --- a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/engine_base.js +++ b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/engine_base.js @@ -86,7 +86,7 @@ }; CryptoJS.prototype.onLoad = function() { - CryptoJS.prototype.isModuleInit = true; + this.isModuleInit = true; }; CryptoJS.prototype.generateKeys = function(password, salt) @@ -201,7 +201,7 @@ return privateKeyString; }; - window.CryptoJS = CryptoJS; + window.cryptoJS = new CryptoJS(); //module diff --git a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/index.html b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/index.html index 2f627fc013..dc502126ce 100644 --- a/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/index.html +++ b/DesktopEditor/xmlsec/src/wasm/oform_plugin/module/index.html @@ -5,38 +5,6 @@ - - - - -
- - -
- - - - - -
- - -
- -
- -
- - +