aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/app/sprinkles/core/assets
diff options
context:
space:
mode:
authorMarvin Borner2018-05-11 15:41:23 +0200
committerMarvin Borner2018-05-11 15:41:23 +0200
commit80b9827a0576ef36ff08f8b9c6e3ef647c965781 (patch)
tree0f4b8a806145949990dfe25bfcdb7e5aa644ee52 /main/app/sprinkles/core/assets
parenta8d37fab30ccbced5ec8819510ee84893460bb5e (diff)
More chat encryption...
Diffstat (limited to 'main/app/sprinkles/core/assets')
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/chat.js52
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/main.js53
2 files changed, 72 insertions, 33 deletions
diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js
index 91afc16..ac3f3f7 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js
+++ b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js
@@ -1,6 +1,25 @@
/**
* GENERAL CHAT
*/
+var ReceiversUsername = "marvinborner"; // HARD
+var openpgp = window.openpgp;
+var options, EncryptedText;
+var PublicKey = [];
+openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'});
+var privKeyObj = openpgp.key.readArmored(localStorage.getItem("PrivateKey")).keys[0];
+privKeyObj.decrypt(localStorage.getItem("🔒"));
+$.ajax({
+ type: 'GET',
+ url: site.uri.public + '/api/users/u/' + ReceiversUsername + '/publickey',
+ dataType: "json",
+ success: function (response) {
+ //if (response.user_id === ReceiversUsername->id) {
+ PublicKey[ReceiversUsername] = response.PublicKey;
+ console.log(PublicKey[ReceiversUsername])
+ //}
+ }
+});
+
function InitializeChatServer() {
var ChatTextInput = $("#ChatTextInput");
var SubscribeTextInput = $("#SubscribeTextInput");
@@ -187,18 +206,27 @@ function InitializeChatServer() {
// SEND MESSAGE FROM INPUT FIELD
ChatTextInput.keyup(function (e) {
if (e.keyCode === 13 && ChatTextInput.val().length > 0) {
- // USER USUALLY STOPS TYPING ON SENDING -> CHANGE STATE TO FALSE
- sendTypingState(false);
- isTyping = false;
- clearTimeout(typingTimer);
-
- ChatSocket.send(JSON.stringify({
- ClientMessageType: "ChatMessage",
- MessageType: "Private",
- Message: ChatTextInput.val()
- }));
- ChatTextInput.val("");
- ChatTextInput.val("");
+ options = {
+ data: ChatTextInput.val(),
+ publicKeys: openpgp.key.readArmored(PublicKey[ReceiversUsername]).keys,
+ privateKeys: [privKeyObj] // FOR SIGNING
+ };
+ openpgp.encrypt(options).then(function (Encrypted) {
+ EncryptedText = Encrypted.data;
+
+ // USER USUALLY STOPS TYPING ON SENDING -> CHANGE STATE TO FALSE
+ sendTypingState(false);
+ isTyping = false;
+ clearTimeout(typingTimer);
+
+ ChatSocket.send(JSON.stringify({
+ ClientMessageType: "ChatMessage",
+ MessageType: "Private",
+ Message: EncryptedText.substr(91).slice(0,-29)
+ }));
+ 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 28c7b7c..08d5888 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/js/main.js
+++ b/main/app/sprinkles/core/assets/SiteAssets/js/main.js
@@ -32,38 +32,49 @@ function triggerErrorPopup() {
/**
* ENCRYPTION
*/
-var openpgp = window.openpgp;
-var hkp = new openpgp.HKP('https://pgp.mit.edu');
-var options, EncryptedText, DecryptedText, PublicKey, PrivateKey, PrivateKeyObj;
+/*var openpgp = window.openpgp;
+var options, EncryptedText, DecryptedText, PrivateKey, PassPhrase, PrivateKeyObj;
+var PublicKey = [];
openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'});
-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;
- });
-}
+$.ajax({
+ type: 'GET',
+ url: site.uri.public + '/api/users/u/' + current_username + '/publickey',
+ dataType : "json",
+ success: function (response) {
+ if (response.user_id === current_user_id) {
+ PublicKey[current_username] = response.PublicKey;
+ PrivateKey = localStorage.getItem("PrivateKey");
+ PassPhrase = localStorage.getItem("🔒")
+ }
+ }
+});
-function EncryptMessage(Message, PublicKey) {
+function EncryptMessage(Message, Username) {
+ if (!Username in PublicKey) {
+ $.ajax({
+ type: 'GET',
+ url: site.uri.public + '/api/users/u/' + Username + '/publickey',
+ dataType : "json",
+ success: function (response) {
+ if (response.user_id === current_user_id) {
+ PublicKey[Username] = response.PublicKey;
+ }
+ }
+ });
+ }
options = {
data: Message,
- publicKeys: openpgp.key.readArmored(PublicKey).keys
+ publicKeys: openpgp.key.readArmored(PublicKey[Username]).keys
};
-
openpgp.encrypt(options).then(function (EncryptedText) {
EncryptedText = EncryptedText.data;
});
}
-function DecryptMessage(EncryptedText, PrivateKey, passphrase) {
+function DecryptMessage(EncryptedText) {
PrivateKeyObj = openpgp.key.readArmored(PrivateKey).keys[0];
- PrivateKeyObj.decrypt(passphrase);
+ PrivateKeyObj.decrypt(PassPhrase);
options = {
message: openpgp.message.readArmored(EncryptedText),
privateKeys: [PrivateKeyObj]
@@ -72,7 +83,7 @@ function DecryptMessage(EncryptedText, PrivateKey, passphrase) {
openpgp.decrypt(options).then(function (DecryptedText) {
DecryptedText = DecryptedText.data;
});
-}
+}*/
/**
* OLD BROWSER