From be6618588b4f7c5f4f03c480c25dc25e89f95cf0 Mon Sep 17 00:00:00 2001 From: Gnieark Date: Wed, 25 Dec 2019 18:13:47 +0100 Subject: [PATCH] hide crypt metadata --- public/js/main.js | 29 +++++++++++++++++++---------- src/Controller/PadController.php | 16 +++++++++++++--- src/Entity/Pad.php | 6 +++--- templates/pad-view.html.twig | 3 +++ 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/public/js/main.js b/public/js/main.js index c33c07b..d3072f4 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -8,6 +8,14 @@ function showHideMenu() doc.className = "hidden-by-default"; } } +function truncateCryptFields(){ + getEncFieldsListIntegers().forEach( element=> { + document.getElementById("form_crypt_" + element).value = ""; + }); + getEncFieldsListStrings().forEach( element=> { + document.getElementById("form_crypt_" + element).value = ""; + }); +} function getEncFieldsListStrings(){ return ['iv','mode','adata','cipher','salt']; } @@ -29,14 +37,7 @@ function crypt() 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 = ""; - }); -} + function uncrypt() @@ -58,6 +59,7 @@ function uncrypt() try{ + var clearTxt = sjcl.decrypt(key,JSON.stringify(encArr)); document.getElementById("form_content").value = clearTxt; truncateCryptFields(); @@ -67,8 +69,15 @@ function uncrypt() alert("Le pad n'a pas pu être déchiffré."); } }else{ - var clearTxt = sjcl.decrypt(key,document.getElementById("content").innerHTML); - document.getElementById("content").innerHTML = clearTxt; + sjclArr["ct"] = document.getElementById("content").innerHTML; + try{ + var clearTxt = sjcl.decrypt(key,JSON.stringify(sjclArr)); + document.getElementById("content").innerHTML = clearTxt; + } + catch(error) + { + alert("Le pad n'a pas pu être déchiffré."); + } } } function ready(){ diff --git a/src/Controller/PadController.php b/src/Controller/PadController.php index 1716076..aaea2e0 100644 --- a/src/Controller/PadController.php +++ b/src/Controller/PadController.php @@ -54,12 +54,22 @@ Class PadController extends AbstractController $pad = $pads[0]; - return $this->render('pad-view.html.twig', [ 'head_title' => 'Pad id: ' . $pad->getName(), 'page_title' => 'Pad id: ' . $pad->getName(), 'pad_content' => $pad->getContent(), - 'crypted' => (!empty($pad->getCryptCipher)) + 'crypted' => (bool)($pad->getCryptCipher() <> "none"), + 'sjclArr' => array( + "iv" => $pad->getCryptIv(), + "v" => $pad->getCryptV(), + "iter" => $pad->getCryptIter(), + "ks" => $pad->getCryptKs(), + "ts" => $pad->getCryptTs(), + "mode" => $pad->getCryptMode(), + "adata" => $pad->getCryptAdata(), + "cipher" => $pad->getCryptCipher(), + "salt" => $pad->getCryptSalt() + ) ]); } private function get_free_name( $depth = 0, $length=6) @@ -97,7 +107,7 @@ Class PadController extends AbstractController ->setName( $this-> get_free_name() ) ->setCryptIv( $data["crypt_iv"] ) ->setCryptMode( $data["crypt_mode"] ) - ->setCryptAdata( $data["crypt_adata"]) + ->setCryptAdata( is_null( $data["crypt_adata"])? "" : $data["crypt_adata"] ) ->setCryptCipher( $data["crypt_cipher"] ) ->setCryptSalt( $data["crypt_salt"] ) ->setCryptV( $data["crypt_v"] ) diff --git a/src/Entity/Pad.php b/src/Entity/Pad.php index dbf2a19..f663ff5 100644 --- a/src/Entity/Pad.php +++ b/src/Entity/Pad.php @@ -49,7 +49,7 @@ class Pad /** * @ORM\Column(type="string", length=255, nullable=true) */ - private $crypt_iv; + private $crypt_iv = ""; /** * @ORM\Column(type="integer", nullable=true) @@ -79,7 +79,7 @@ class Pad /** * @ORM\Column(type="string", length=255, nullable=true) */ - private $crypt_cipher; + private $crypt_cipher = ""; /** * @ORM\Column(type="string", length=255, nullable=true) @@ -89,7 +89,7 @@ class Pad /** * @ORM\Column(type="string", length=255, nullable=true) */ - private $crypt_adata; + private $crypt_adata = ""; public function __construct() diff --git a/templates/pad-view.html.twig b/templates/pad-view.html.twig index 969a20b..e24b8f3 100644 --- a/templates/pad-view.html.twig +++ b/templates/pad-view.html.twig @@ -19,6 +19,9 @@ + {% endif %}
{{ pad_content|e('html') }}