diff options
author | Marvin Borner | 2018-05-10 20:42:13 +0200 |
---|---|---|
committer | Marvin Borner | 2018-05-10 20:42:13 +0200 |
commit | a8d37fab30ccbced5ec8819510ee84893460bb5e (patch) | |
tree | d5983c82b866661c71d8683032ce303789847e29 /main/app/sprinkles/core/assets | |
parent | ef6fc62a5048afd8467af20b34861ad085566481 (diff) |
Began chat encrpytion integration and ECC key generation on registration
Diffstat (limited to 'main/app/sprinkles/core/assets')
4 files changed, 75 insertions, 48 deletions
diff --git a/main/app/sprinkles/core/assets/SiteAssets/css/main.css b/main/app/sprinkles/core/assets/SiteAssets/css/main.css index aa234a0..42e0af8 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/css/main.css +++ b/main/app/sprinkles/core/assets/SiteAssets/css/main.css @@ -193,6 +193,7 @@ hr.ChatHeaderDivider { .ChatMessages { overflow-y: scroll; + overflow-x: hidden; max-height: calc(100% - 215px); /* navbar + input + some margin*/ max-height: -moz-calc(100% - 215px); max-height: -webkit-calc(100% - 215px); diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js index d9de95f..91afc16 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js @@ -18,7 +18,11 @@ function InitializeChatServer() { // CONNECTION SUCCESSFUL! console.log("%c[CHATSOCKET LOGGER] Chat connection established!", "color: darkorange"); // START VERIFICATION - ChatSocket.send(JSON.stringify({ClientMessageType: "Verify", Cookie: document.cookie, UserID: current_user_id})); + ChatSocket.send(JSON.stringify({ + ClientMessageType: "Verify", + Cookie: document.cookie, + UserID: current_user_id + })); console.log("%c[CHATSOCKET LOGGER] Started chat verification process...", "color: grey"); // GOT MESSAGE ChatSocket.onmessage = function (e) { @@ -115,15 +119,17 @@ function InitializeChatServer() { } } } else if (ServerMessageType === "Verify") { // TYPE: SERVER CHECKED ACCESS -- MOSTLY HANDLED IN BACKEND - if (Granted === true) { - console.log("%c[CHATSOCKET LOGGER] Chat access granted!", "color: green"); - } else if (Granted === false) { - console.log("%c[CHATSOCKET LOGGER] Chat access denied!", "color: red"); - } + if (Granted === true) { + console.log("%c[CHATSOCKET LOGGER] Chat access granted!", "color: green"); + } else if (Granted === false) { + console.log("%c[CHATSOCKET LOGGER] Chat access denied!", "color: red"); + } } } // SCROLL TO BOTTOM ON NEW MESSAGE OF ANY KIND - ChatMessages.animate({scrollTop: document.querySelector("#ChatMessages").scrollHeight}, "slow"); + if ((ChatMessages.scrollTop() + ChatMessages.innerHeight() < ChatMessages[0].scrollHeight)) { + ChatMessages.animate({scrollTop: document.querySelector("#ChatMessages").scrollHeight}); + } }; @@ -186,7 +192,11 @@ function InitializeChatServer() { isTyping = false; clearTimeout(typingTimer); - ChatSocket.send(JSON.stringify({ClientMessageType: "ChatMessage", MessageType: "Private", Message: ChatTextInput.val()})); + ChatSocket.send(JSON.stringify({ + ClientMessageType: "ChatMessage", + MessageType: "Private", + Message: ChatTextInput.val() + })); ChatTextInput.val(""); ChatTextInput.val(""); } diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/main.js b/main/app/sprinkles/core/assets/SiteAssets/js/main.js index 9d1d697..28c7b7c 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/main.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/main.js @@ -32,29 +32,46 @@ function triggerErrorPopup() { /** * ENCRYPTION */ -//encrypt var openpgp = window.openpgp; +var hkp = new openpgp.HKP('https://pgp.mit.edu'); +var options, EncryptedText, DecryptedText, PublicKey, PrivateKey, PrivateKeyObj; openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'}); -var options, encrypted; -options = { - data: "LOL", - passwords: ['password'], - armor: false -}; -openpgp.encrypt(options).then(function (ciphertext) { - encrypted = ciphertext.message.packets.write(); -}); -// decrypt -function decrypt() { +function generateKeys(passphrase) { + options = { + userIds: [{user_id: current_user_id}], + curve: "curve25519", + passphrase: passphrase + }; + + openpgp.generateKey(options).then(function (key) { + PrivateKey = key.privateKeyArmored; + PublicKey = key.publicKeyArmored; + }); +} + +function EncryptMessage(Message, PublicKey) { options = { - message: openpgp.message.read(encrypted), - passwords: ['passwort'] - //format: 'binary' + data: Message, + publicKeys: openpgp.key.readArmored(PublicKey).keys }; - openpgp.decrypt(options).then(function (plaintext) { - console.log(plaintext.data) - }) + + openpgp.encrypt(options).then(function (EncryptedText) { + EncryptedText = EncryptedText.data; + }); +} + +function DecryptMessage(EncryptedText, PrivateKey, passphrase) { + PrivateKeyObj = openpgp.key.readArmored(PrivateKey).keys[0]; + PrivateKeyObj.decrypt(passphrase); + options = { + message: openpgp.message.readArmored(EncryptedText), + privateKeys: [PrivateKeyObj] + }; + + openpgp.decrypt(options).then(function (DecryptedText) { + DecryptedText = DecryptedText.data; + }); } /** @@ -134,24 +151,24 @@ UserSearchBar.keyup(function () { SearchResults.empty(); var RequestedUser = UserSearchBar.val(); if (RequestedUser !== " " && RequestedUser !== "") - $.ajax({ - url: site.uri.public + "/api/users/u/" + RequestedUser, - success: function (answer) { - console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was found!", "color: green"); - //var GifUrls = ["https://media.giphy.com/media/xUPGcg01dIAot4zyZG/giphy.gif", "https://media.giphy.com/media/IS9LfP9oSLdcY/giphy.gif", "https://media.giphy.com/media/5wWf7H0WTquIU1DFY4g/giphy.gif"]; - //var RandomGif = Math.floor((Math.random() * GifUrls.length)); - //var RandomGifUrl = GifUrls[RandomGif]; - //console.image(RandomGifUrl, 0.5); - - alerts.ufAlerts().ufAlerts('fetch'); - - SearchResults.append("<img class='Avatar' data-src='" + answer.avatar + "' data-caching-key='" + answer.user_name + "_avatar_cached'/><div class='UsersFullName'>" + answer.full_name + "</div>"); - //$(".SearchResults .Avatar").imageCaching(); // refresh - }, - error: function () { - console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was not found!", "color: red"); - - alerts.ufAlerts().ufAlerts('fetch'); - } - }); + $.ajax({ + url: site.uri.public + "/api/users/u/" + RequestedUser, + success: function (answer) { + console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was found!", "color: green"); + //var GifUrls = ["https://media.giphy.com/media/xUPGcg01dIAot4zyZG/giphy.gif", "https://media.giphy.com/media/IS9LfP9oSLdcY/giphy.gif", "https://media.giphy.com/media/5wWf7H0WTquIU1DFY4g/giphy.gif"]; + //var RandomGif = Math.floor((Math.random() * GifUrls.length)); + //var RandomGifUrl = GifUrls[RandomGif]; + //console.image(RandomGifUrl, 0.5); + + alerts.ufAlerts().ufAlerts('fetch'); + + SearchResults.append("<img class='Avatar' data-src='" + answer.avatar + "' data-caching-key='" + answer.user_name + "_avatar_cached'/><div class='UsersFullName'>" + answer.full_name + "</div>"); + //$(".SearchResults .Avatar").imageCaching(); // refresh + }, + error: function () { + console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was not found!", "color: red"); + + alerts.ufAlerts().ufAlerts('fetch'); + } + }); });
\ No newline at end of file diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/push.js b/main/app/sprinkles/core/assets/SiteAssets/js/push.js index fcb350a..49a4467 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/push.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/push.js @@ -709,5 +709,4 @@ e.exports = new i.default("undefined" != typeof window ? window : void 0) }, {"./classes/Push": 3}] }, {}, [11])(11) -}); -//# sourceMappingURL=push.min.js.map
\ No newline at end of file +});
\ No newline at end of file |