mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 03:35:13 +00:00
Didn't finish it. Gotta' pee.
This commit is contained in:
parent
effb1a0534
commit
3a10e698c9
3 changed files with 76 additions and 9 deletions
|
@ -121,14 +121,7 @@ function bb_parse_crypt($match) {
|
|||
if ($matches[1] != "")
|
||||
$hint = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
|
||||
|
||||
// Next we really should link to a JS routine based on the algorithm which prompts for a key
|
||||
// something like zdecrypt_{algorithm}, which will be a no-op if the decryption algorithm is not present
|
||||
// We can either pass the text or pass a message ID and let the decryption module call /viewsrc or something
|
||||
// to get the text. The text might be large so the message ID might be preferable. But if we pass the
|
||||
// text directly we won't have to do a network fetch; and can potentially display the results in a popup.
|
||||
|
||||
|
||||
$Text = '<br/><img src="' . z_root() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />' . t('Algorithm: ') . $algorithm . '<br />' . t('Key hint: ') . $hint . '<br />';
|
||||
$Text = '<br/><img src="' . z_root() . '/images/lock_icon.gif" onclick="red_decrypt(\'' . $algorithm . '\',\'' . $hint . '\',\'' . $match[2] . '\');" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />';
|
||||
|
||||
return $Text;
|
||||
|
||||
|
@ -503,7 +496,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
|
|||
}
|
||||
|
||||
if (strpos($Text,'[/crypt]') !== false) {
|
||||
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
|
||||
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" onclick="red_decrypt(\'rot13\',\'\',\'$1\');" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
|
||||
$Text = preg_replace_callback("/\[crypt (.*?)\](.*?)\[\/crypt\]/ism", 'bb_parse_crypt', $Text);
|
||||
}
|
||||
// Try to Oembed
|
||||
|
|
72
js/crypto.js
72
js/crypto.js
|
@ -1,4 +1,76 @@
|
|||
|
||||
|
||||
function str_rot13 (str) {
|
||||
// http://kevin.vanzonneveld.net
|
||||
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
|
||||
// + improved by: Ates Goral (http://magnetiq.com)
|
||||
// + bugfixed by: Onno Marsman
|
||||
// + improved by: Rafa? Kukawski (http://blog.kukawski.pl)
|
||||
// * example 1: str_rot13('Kevin van Zonneveld');
|
||||
// * returns 1: 'Xriva ina Mbaariryq'
|
||||
// * example 2: str_rot13('Xriva ina Mbaariryq');
|
||||
// * returns 2: 'Kevin van Zonneveld'
|
||||
// * example 3: str_rot13(33);
|
||||
// * returns 3: '33'
|
||||
return (str + '').replace(/[a-z]/gi, function (s) {
|
||||
return String.fromCharCode(s.charCodeAt(0) + (s.toLowerCase() < 'n' ? 13 : -13));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function red_encrypt(alg, elem,text) {
|
||||
var enc_text = '';
|
||||
var newdiv = '';
|
||||
|
||||
if(! alg)
|
||||
alg = 'rot13';
|
||||
|
||||
if((alg == 'rot13') || (alg == 'triple-rot13'))
|
||||
newdiv = "[crypt alg='rot13']" + str_rot13(text) + '[/crypt]';
|
||||
else if(alg == 'aes256') {
|
||||
var enc_key = prompt('key');
|
||||
var enc_hint = prompt('hint');
|
||||
|
||||
enc_text = base64_encode(CryptoJS.AES.encrypt(text,key));
|
||||
|
||||
newdiv = "[crypt alg='aes256' hint=' + hint + ']" + enc_text + '[/crypt]';
|
||||
}
|
||||
|
||||
alert(newdiv);
|
||||
|
||||
|
||||
textarea = document.getElementById(elem);
|
||||
if (document.selection) {
|
||||
textarea.focus();
|
||||
selected = document.selection.createRange();
|
||||
selected.text = newdiv;
|
||||
} else if (textarea.selectionStart || textarea.selectionStart == "0") {
|
||||
var start = textarea.selectionStart;
|
||||
var end = textarea.selectionEnd;
|
||||
textarea.value = textarea.value.substring(0, start) + newdiv + textarea.value.substring(end, textarea.value.length);
|
||||
}
|
||||
}
|
||||
|
||||
function red_decrypt(alg,hint,text) {
|
||||
|
||||
var enc_text = '';
|
||||
|
||||
if(alg == 'rot13' || alg == 'triple-rot13')
|
||||
enc_text = str_rot13(text);
|
||||
|
||||
if(alg == 'aes256') {
|
||||
var enc_key = prompt(hint);
|
||||
enc_text = CryptoJS.AES.decrypt(base64_decode(text),enc_key);
|
||||
}
|
||||
|
||||
alert(enc_text);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function base64_encode (data) {
|
||||
// http://kevin.vanzonneveld.net
|
||||
// + original by: Tyler Akins (http://rumkin.com)
|
||||
|
|
|
@ -25,9 +25,11 @@ head_add_js('library/jquery_ac/friendica.complete.js');
|
|||
head_add_js('library/tiptip/jquery.tipTip.minified.js');
|
||||
head_add_js('library/jgrowl/jquery.jgrowl_minimized.js');
|
||||
head_add_js('library/tinymce/jscripts/tiny_mce/tiny_mce_src.js');
|
||||
head_add_js('library/cryptojs/rollups/aes.js');
|
||||
head_add_js('js/acl.js');
|
||||
head_add_js('js/webtoolkit.base64.js');
|
||||
head_add_js('js/main.js');
|
||||
head_add_js('js/crypto.js');
|
||||
head_add_js('library/jslider/bin/jquery.slider.min.js');
|
||||
head_add_js('docready.js');
|
||||
head_add_js('library/prettyphoto/js/jquery.prettyPhoto.js');
|
||||
|
|
Loading…
Reference in a new issue