From 435e2dae0e9204afd7288c14748e88f680276969 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 11 Nov 2013 00:21:00 -0800 Subject: display encrypted text inline --- js/crypto.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'js') diff --git a/js/crypto.js b/js/crypto.js index bed1525cd..6970229ce 100644 --- a/js/crypto.js +++ b/js/crypto.js @@ -33,14 +33,23 @@ function red_encrypt(alg, elem,text) { var text = $(elem).val(); + // key and hint need to be localised + var enc_key = prompt('key'); + // If you don't provide a key you get rot13, which doesn't need a key + // but consequently isn't secure. + if(! enc_key) alg = 'rot13'; if((alg == 'rot13') || (alg == 'triple-rot13')) newdiv = "[crypt alg='rot13']" + str_rot13(text) + '[/crypt]'; else if(alg == 'aes256') { + + // This is the prompt we're going to use when the receiver tries to open it. + // Maybe "Grandma's maiden name" or "our secret place" or something. + var enc_hint = prompt('hint'); enc_text = CryptoJS.AES.encrypt(text,enc_key); @@ -66,7 +75,7 @@ function red_encrypt(alg, elem,text) { // } } -function red_decrypt(alg,hint,text) { +function red_decrypt(alg,hint,text,elem) { var enc_text = ''; @@ -78,8 +87,13 @@ function red_decrypt(alg,hint,text) { enc_text = CryptoJS.AES.decrypt(text,enc_key); } - alert(enc_text.toString(CryptoJS.enc.Utf8)); + // Not sure whether to drop this back in the conversation display. + // It probably needs a lightbox or popup window because any conversation + // updates could + // wipe out the text and make you re-enter the key if it was in the + // conversation. For now we do that so you can read it. + $(elem).html(b2h(enc_text.toString(CryptoJS.enc.Utf8))); } -- cgit v1.2.3