aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/app/sprinkles/core
diff options
context:
space:
mode:
Diffstat (limited to 'main/app/sprinkles/core')
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/chat.js52
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/main.js53
-rw-r--r--main/app/sprinkles/core/config/default.php2
-rw-r--r--main/app/sprinkles/core/templates/pages/abstract/mainsite.html.twig15
-rw-r--r--main/app/sprinkles/core/templates/pages/test.html.twig28
5 files changed, 87 insertions, 63 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
diff --git a/main/app/sprinkles/core/config/default.php b/main/app/sprinkles/core/config/default.php
index 07fd2e6..60e3345 100644
--- a/main/app/sprinkles/core/config/default.php
+++ b/main/app/sprinkles/core/config/default.php
@@ -175,7 +175,7 @@
'php' => [
'timezone' => 'Europe/Berlin',
'error_reporting' => E_ALL, // Development - report all errors and suggestions
- 'display_errors' => 'false',
+ 'display_errors' => 'true',
'log_errors' => 'true',
// Let PHP itself render errors natively. Useful if a fatal error is raised in our custom shutdown handler.
'display_errors_native' => 'true'
diff --git a/main/app/sprinkles/core/templates/pages/abstract/mainsite.html.twig b/main/app/sprinkles/core/templates/pages/abstract/mainsite.html.twig
index 1821510..c27c071 100644
--- a/main/app/sprinkles/core/templates/pages/abstract/mainsite.html.twig
+++ b/main/app/sprinkles/core/templates/pages/abstract/mainsite.html.twig
@@ -8,7 +8,8 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
- <meta name="description" content="{% block page_description %}This page has not yet been configured.{% endblock %}">
+ <meta name="description"
+ content="{% block page_description %}This page has not yet been configured.{% endblock %}">
<meta name="author" content="{% block page_author %}{{ site.author }}{% endblock %}">
<title>{{ site.title }} | {% block page_title %}New Page{% endblock %}</title>
@@ -54,7 +55,7 @@
{# Canonical page link #}
{% if block('page_canonical') %}
- <link href="{{site.uri.base.scheme}}://{% block page_canonical %}{% endblock %}" rel="canonical" />
+ <link href="{{ site.uri.base.scheme }}://{% block page_canonical %}{% endblock %}" rel="canonical" />
{% endif %}
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
@@ -85,7 +86,10 @@
{% block content_header %}
<section class="content-header">
<h1>{% block header_title %}{{ block('page_title') }}{% endblock %}</h1>
- {% if block('page_description') is not empty %}<h1><small>{% block header_description %}{{ block('page_description') }}{% endblock %}</small></h1>{% endif %}
+ {% if block('page_description') is not empty %}
+ <h1>
+ <small>{% block header_description %}{{ block('page_description') }}{% endblock %}</small>
+ </h1>{% endif %}
{% block breadcrumb %}
{% include 'navigation/breadcrumb.html.twig' with {page_title: block('page_title')} %}
{% endblock %}
@@ -116,7 +120,10 @@
{% endblock %}
{% block scripts %}
- <script>var current_user_id = {{ current_user.id }};</script>
+ <script>
+ var current_user_id = {{ current_user.id }};
+ var current_username = "{{ current_user.user_name }}";
+ </script>
{# Override this block in a child layout template or page template to override site-level scripts. #}
{% block scripts_site %}
{{ assets.js('js/main') | raw }}
diff --git a/main/app/sprinkles/core/templates/pages/test.html.twig b/main/app/sprinkles/core/templates/pages/test.html.twig
index 972e734..6f64962 100644
--- a/main/app/sprinkles/core/templates/pages/test.html.twig
+++ b/main/app/sprinkles/core/templates/pages/test.html.twig
@@ -25,35 +25,13 @@
<script>
-
- // GENERATE KEYS
- var openpgp = window.openpgp;
- var options;
- var randomString = Math.random().toString(36).substr(2, 11); // PRIVKEY ENCRYPTION KEY
- openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'});
- options = {
- userIds: [{name: 'marvinborner', email: 'marvin@borners.de'}],
- curve: "curve25519",
- passphrase: randomString
- };
- openpgp.generateKey(options).then(function (key) {
- localStorage.setItem("PrivateKey", key.privateKeyArmored);
- localStorage.setItem("🔒", randomString);
- // SAVE PUBLIC KEY TO DATABASE
- var data = {
- csrf_name: site.csrf.name,
- csrf_value: site.csrf.value,
- PublicKey: key.publicKeyArmored
- };
$.ajax({
- type: 'POST',
- url: site.uri.public + '/api/users/u/' + 'tory.redstart' + '/publickey',
- data: data,
+ type: 'GET',
+ url: site.uri.public + '/api/users/u/' + 'marvinborner' + '/publickey',
+ dataType : "json",
success: function (response) {
console.log(response);
//window.location.reload();
}
});
-
- });
</script> \ No newline at end of file