diff --git a/js/dms.js b/js/dms.js index 15a9557..8a0c6d4 100644 --- a/js/dms.js +++ b/js/dms.js @@ -39,6 +39,21 @@ socket.addEventListener("message", async function (event) { var posting_id = undefined; var cd = true //inversed "cooldown" +let encryption_keys = "" + +function set_keys(s_key) { + let key = extend(s_key,512) + let msgkey = key.substring(0,128) + let sigkey = key.substring(129,512) + + let packed = pack_keys({ + signkey: sigkey, + messagekey: msgkey + }) + + encryption_keys = packed +} + async function postMessage() { let len = document.getElementById("post-text").value.length if(len >= 1001) { @@ -46,12 +61,21 @@ async function postMessage() { return } if(cd && posting_id!=undefined) { - let r = await post("/api/dms/post",{"message":document.getElementById("post-text").value,"reply_id":reply_id,"receiver":currentChannel,"pid": posting_id}) + cd = false + + let text = document.getElementById("post-text").value + + if(typeof encrypt == "function" && encryption_keys != "") { + text = encrypt(test,{ + packed: encryption_keys + }) + } + + let r = await post("/api/dms/post",{"message":text,"reply_id":reply_id,"receiver":currentChannel,"pid": posting_id}) update_pid() if(window.location.href.split("?mention=")[1])location.replace('/posts'); document.getElementById("post-text").value="" unreply() - cd = false setTimeout(function(){ cd = true },200) diff --git a/js/extend_key.js b/js/extend_key.js new file mode 100644 index 0000000..7fb9d00 --- /dev/null +++ b/js/extend_key.js @@ -0,0 +1,36 @@ +var sha256=function a(b){function c(a,b){return a>>>b|a<<32-b}for(var d,e,f=Math.pow,g=f(2,32),h="length",i="",j=[],k=8*b[h],l=a.h=a.h||[],m=a.k=a.k||[],n=m[h],o={},p=2;64>n;p++)if(!o[p]){for(d=0;313>d;d+=p)o[d]=p;l[n]=f(p,.5)*g|0,m[n++]=f(p,1/3)*g|0}for(b+="\x80";b[h]%64-56;)b+="\x00";for(d=0;d>8)return;j[d>>2]|=e<<(3-d)%4*8}for(j[j[h]]=k/g|0,j[j[h]]=k,e=0;ed;d++){var s=q[d-15],t=q[d-2],u=l[0],v=l[4],w=l[7]+(c(v,6)^c(v,11)^c(v,25))+(v&l[5]^~v&l[6])+m[d]+(q[d]=16>d?q[d]:q[d-16]+(c(s,7)^c(s,18)^s>>>3)+q[d-7]+(c(t,17)^c(t,19)^t>>>10)|0),x=(c(u,2)^c(u,13)^c(u,22))+(u&l[1]^u&l[2]^l[1]&l[2]);l=[w+x|0].concat(l),l[4]=l[4]+w|0}for(d=0;8>d;d++)l[d]=l[d]+r[d]|0}for(d=0;8>d;d++)for(e=3;e+1;e--){var y=l[d]>>8*e&255;i+=(16>y?0:"")+y.toString(16)}return i}; + +function hash(str,salt,num) { + if(!num && num!==0)num=1; + if(!str)return; + if(!salt)salt="" + let ret = str; + for (let i = 0; i < num; i++) { + ret = sha256(ret+salt) + } + return ret; +} + +function extend(key,len) { + let temp = [] + let out = [] + + len = len || 265 + + let hashes = 0 + + for(let i=0;i + +