2019-12-18 21:55:46 +01:00
|
|
|
function showHideMenu()
|
|
|
|
{
|
|
|
|
var doc = document.getElementById("moreoptions");
|
|
|
|
if(doc.className == "hidden-by-default")
|
|
|
|
{
|
2019-12-19 17:05:52 +01:00
|
|
|
doc.className = "moreoptions";
|
2019-12-18 21:55:46 +01:00
|
|
|
}else{
|
|
|
|
doc.className = "hidden-by-default";
|
|
|
|
}
|
|
|
|
}
|
2019-12-22 20:40:15 +01:00
|
|
|
function getEncFieldsListStrings(){
|
|
|
|
return ['iv','mode','adata','cipher','salt'];
|
|
|
|
}
|
|
|
|
function getEncFieldsListIntegers(){
|
|
|
|
return ['v','iter','ks','ts'];
|
|
|
|
}
|
2019-12-18 21:55:46 +01:00
|
|
|
function crypt()
|
|
|
|
{
|
|
|
|
var key = document.getElementById("key").value;
|
2019-12-22 20:40:15 +01:00
|
|
|
var enc = JSON.parse(sjcl.encrypt(key,document.getElementById("form_content").value));
|
|
|
|
var encFields = getEncFieldsListStrings();
|
|
|
|
encFields.forEach(element => {
|
|
|
|
document.getElementById("form_crypt_" + element).value = enc[element];
|
|
|
|
});
|
|
|
|
var encFields = getEncFieldsListIntegers();
|
|
|
|
encFields.forEach(element => {
|
|
|
|
document.getElementById("form_crypt_" + element).value = parseInt(enc[element]);
|
|
|
|
});
|
|
|
|
|
|
|
|
document.getElementById("form_content").value = enc["ct"];
|
|
|
|
}
|
|
|
|
function truncateCryptFields(){
|
|
|
|
getEncFieldsListIntegers().forEach( element=> {
|
|
|
|
document.getElementById("form_crypt_" + element).value = "";
|
|
|
|
});
|
|
|
|
getEncFieldsListStrings().forEach( element=> {
|
|
|
|
document.getElementById("form_crypt_" + element).value = "";
|
|
|
|
});
|
2019-12-18 21:55:46 +01:00
|
|
|
}
|
|
|
|
|
2019-12-22 20:40:15 +01:00
|
|
|
|
2019-12-18 21:55:46 +01:00
|
|
|
function uncrypt()
|
|
|
|
{
|
2019-12-22 20:40:15 +01:00
|
|
|
|
2019-12-18 21:55:46 +01:00
|
|
|
var key = document.getElementById("key").value;
|
|
|
|
if( document.getElementById("form_content") ){
|
2019-12-22 20:40:15 +01:00
|
|
|
|
|
|
|
var encArr = new Object();
|
|
|
|
var encFields = getEncFieldsListStrings();
|
|
|
|
encFields.forEach(element => {
|
|
|
|
encArr[element] = document.getElementById("form_crypt_" + element).value;
|
|
|
|
});
|
|
|
|
var encFields = getEncFieldsListIntegers();
|
|
|
|
encFields.forEach(element => {
|
|
|
|
encArr[element] = parseInt(document.getElementById("form_crypt_" + element).value);
|
|
|
|
});
|
|
|
|
encArr["ct"] = document.getElementById("form_content").value;
|
|
|
|
|
|
|
|
|
|
|
|
try{
|
|
|
|
var clearTxt = sjcl.decrypt(key,JSON.stringify(encArr));
|
|
|
|
document.getElementById("form_content").value = clearTxt;
|
|
|
|
truncateCryptFields();
|
|
|
|
}
|
|
|
|
catch(error)
|
|
|
|
{
|
|
|
|
alert("Le pad n'a pas pu être déchiffré.");
|
|
|
|
}
|
2019-12-18 21:55:46 +01:00
|
|
|
}else{
|
|
|
|
var clearTxt = sjcl.decrypt(key,document.getElementById("content").innerHTML);
|
|
|
|
document.getElementById("content").innerHTML = clearTxt;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function ready(){
|
|
|
|
document.getElementById("showOptions").addEventListener("click",showHideMenu);
|
|
|
|
if(document.getElementById("buttonCrypt")){
|
|
|
|
document.getElementById("buttonCrypt").addEventListener("click",crypt);
|
|
|
|
}
|
|
|
|
document.getElementById("buttonUncrypt").addEventListener("click",uncrypt);
|
|
|
|
}
|