mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Developing
This commit is contained in:
@ -2,8 +2,8 @@ import sys;
|
|||||||
sys.path.append("../../../../../../../build_tools/scripts");
|
sys.path.append("../../../../../../../build_tools/scripts");
|
||||||
import base;
|
import base;
|
||||||
|
|
||||||
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.Asc.cryptoJS.onLoad();}];");
|
base.replaceInFile("./deploy/engine.js", "__ATPOSTRUN__ = [];", "__ATPOSTRUN__=[function(){window.cryptoJS.onLoad();}];");
|
||||||
base.replaceInFile("./deploy/engine.js", "function getBinaryPromise()", "function getBinaryPromise2()");
|
base.replaceInFile("./deploy/engine.js", "function getBinaryPromise()", "function getBinaryPromise2()");
|
||||||
|
|
||||||
base.copy_file("./index.html", "./deploy/index.html");
|
base.copy_file("./index.html", "./deploy/index.html");
|
||||||
|
|||||||
@ -1,134 +1,18 @@
|
|||||||
window.onload = function()
|
window.onload = function()
|
||||||
{
|
{
|
||||||
var xmlCertificate = new window.XmlSignature();
|
let url = "./engine";
|
||||||
var XmlError = window.XmlSignatureError;
|
let useWasm = false;
|
||||||
|
let webAsmObj = window["WebAssembly"];
|
||||||
function loadCert(data, password)
|
if (typeof webAsmObj === "object" && typeof webAsmObj["Memory"] === "function")
|
||||||
{
|
{
|
||||||
window.certFileData = data;
|
if ((typeof webAsmObj["instantiateStreaming"] === "function") || (typeof webAsmObj["instantiate"] === "function"))
|
||||||
var err = xmlCertificate.loadCert(window.certFileData, password);
|
useWasm = true;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadKey(data, password)
|
url += (useWasm ? ".js" : "_ie.js");
|
||||||
{
|
|
||||||
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');
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
let script = document.createElement('script');
|
||||||
|
script.type = 'text/javascript';
|
||||||
|
script.src = url;
|
||||||
|
document.head.appendChild(script);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -86,7 +86,7 @@
|
|||||||
};
|
};
|
||||||
CryptoJS.prototype.onLoad = function()
|
CryptoJS.prototype.onLoad = function()
|
||||||
{
|
{
|
||||||
CryptoJS.prototype.isModuleInit = true;
|
this.isModuleInit = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
CryptoJS.prototype.generateKeys = function(password, salt)
|
CryptoJS.prototype.generateKeys = function(password, salt)
|
||||||
@ -201,7 +201,7 @@
|
|||||||
return privateKeyString;
|
return privateKeyString;
|
||||||
};
|
};
|
||||||
|
|
||||||
window.CryptoJS = CryptoJS;
|
window.cryptoJS = new CryptoJS();
|
||||||
|
|
||||||
//module
|
//module
|
||||||
|
|
||||||
|
|||||||
@ -5,38 +5,6 @@
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=IE8">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=IE8">
|
||||||
<script src="./code.js"></script>
|
<script src="./code.js"></script>
|
||||||
<script src="./openssl.js"></script>
|
|
||||||
<style>
|
|
||||||
div {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body style="width:100%;height:100%;margin:50;padding:0;overflow:hidden;">
|
<body></body>
|
||||||
|
|
||||||
<div id="certificate">
|
|
||||||
<label for="button_certificate">Select Certificate</label>
|
|
||||||
<input type="file" id="button_certificate">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="key" style="display:none;">
|
|
||||||
<label for="button_key">Select Private Key</label>
|
|
||||||
<input type="file" id="button_key" value="load key">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="password" style="display:none;">
|
|
||||||
<textarea id="area_password" placeholder="password..."></textarea>
|
|
||||||
<input type="button" id="button_password" value="setup password">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="file">
|
|
||||||
<label for="file_select">Select OOXML File</label>
|
|
||||||
<input type="file" id="file_select" value="load file">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="sign">
|
|
||||||
<input type="button" id="button_sign" value="Sign">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user