{"action":"closed","issue":{"url":"https://api.github.com/repos/Featurion/LookUp/issues/10","repository_url":"https://api.github.com/repos/Featurion/LookUp","labels_url":"https://api.github.com/repos/Featurion/LookUp/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/Featurion/LookUp/issues/10/comments","events_url":"https://api.github.com/repos/Featurion/LookUp/issues/10/events","html_url":"https://github.com/Featurion/LookUp/issues/10","id":226059774,"number":10,"title":"Rewrite sessions to be more secure and efficient","user":{"login":"pythonengineer","id":16440418,"avatar_url":"https://avatars2.githubusercontent.com/u/16440418?v=3","gravatar_id":"","url":"https://api.github.com/users/pythonengineer","html_url":"https://github.com/pythonengineer","followers_url":"https://api.github.com/users/pythonengineer/followers","following_url":"https://api.github.com/users/pythonengineer/following{/other_user}","gists_url":"https://api.github.com/users/pythonengineer/gists{/gist_id}","starred_url":"https://api.github.com/users/pythonengineer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pythonengineer/subscriptions","organizations_url":"https://api.github.com/users/pythonengineer/orgs","repos_url":"https://api.github.com/users/pythonengineer/repos","events_url":"https://api.github.com/users/pythonengineer/events{/privacy}","received_events_url":"https://api.github.com/users/pythonengineer/received_events","type":"User","site_admin":false},"labels":[{"id":558701149,"url":"https://api.github.com/repos/Featurion/LookUp/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":578618006,"url":"https://api.github.com/repos/Featurion/LookUp/labels/priority","name":"priority","color":"0052cc","default":false}],"state":"closed","locked":false,"assignee":{"login":"zachgates7","id":7131992,"avatar_url":"https://avatars1.githubusercontent.com/u/7131992?v=3","gravatar_id":"","url":"https://api.github.com/users/zachgates7","html_url":"https://github.com/zachgates7","followers_url":"https://api.github.com/users/zachgates7/followers","following_url":"https://api.github.com/users/zachgates7/following{/other_user}","gists_url":"https://api.github.com/users/zachgates7/gists{/gist_id}","starred_url":"https://api.github.com/users/zachgates7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachgates7/subscriptions","organizations_url":"https://api.github.com/users/zachgates7/orgs","repos_url":"https://api.github.com/users/zachgates7/repos","events_url":"https://api.github.com/users/zachgates7/events{/privacy}","received_events_url":"https://api.github.com/users/zachgates7/received_events","type":"User","site_admin":false},"assignees":[{"login":"zachgates7","id":7131992,"avatar_url":"https://avatars1.githubusercontent.com/u/7131992?v=3","gravatar_id":"","url":"https://api.github.com/users/zachgates7","html_url":"https://github.com/zachgates7","followers_url":"https://api.github.com/users/zachgates7/followers","following_url":"https://api.github.com/users/zachgates7/following{/other_user}","gists_url":"https://api.github.com/users/zachgates7/gists{/gist_id}","starred_url":"https://api.github.com/users/zachgates7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachgates7/subscriptions","organizations_url":"https://api.github.com/users/zachgates7/orgs","repos_url":"https://api.github.com/users/zachgates7/repos","events_url":"https://api.github.com/users/zachgates7/events{/privacy}","received_events_url":"https://api.github.com/users/zachgates7/received_events","type":"User","site_admin":false},{"login":"pythonengineer","id":16440418,"avatar_url":"https://avatars2.githubusercontent.com/u/16440418?v=3","gravatar_id":"","url":"https://api.github.com/users/pythonengineer","html_url":"https://github.com/pythonengineer","followers_url":"https://api.github.com/users/pythonengineer/followers","following_url":"https://api.github.com/users/pythonengineer/following{/other_user}","gists_url":"https://api.github.com/users/pythonengineer/gists{/gist_id}","starred_url":"https://api.github.com/users/pythonengineer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pythonengineer/subscriptions","organizations_url":"https://api.github.com/users/pythonengineer/orgs","repos_url":"https://api.github.com/users/pythonengineer/repos","events_url":"https://api.github.com/users/pythonengineer/events{/privacy}","received_events_url":"https://api.github.com/users/pythonengineer/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/Featurion/LookUp/milestones/1","html_url":"https://github.com/Featurion/LookUp/milestone/1","labels_url":"https://api.github.com/repos/Featurion/LookUp/milestones/1/labels","id":2451537,"number":1,"title":"Prototype","description":"This will be the prototype of LookUp, which will include the basic features such as direct messaging, public/private group chats, chat authentication, security & encryption, and potentially even more such as emoticons or chat administrators.","creator":{"login":"pythonengineer","id":16440418,"avatar_url":"https://avatars2.githubusercontent.com/u/16440418?v=3","gravatar_id":"","url":"https://api.github.com/users/pythonengineer","html_url":"https://github.com/pythonengineer","followers_url":"https://api.github.com/users/pythonengineer/followers","following_url":"https://api.github.com/users/pythonengineer/following{/other_user}","gists_url":"https://api.github.com/users/pythonengineer/gists{/gist_id}","starred_url":"https://api.github.com/users/pythonengineer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pythonengineer/subscriptions","organizations_url":"https://api.github.com/users/pythonengineer/orgs","repos_url":"https://api.github.com/users/pythonengineer/repos","events_url":"https://api.github.com/users/pythonengineer/events{/privacy}","received_events_url":"https://api.github.com/users/pythonengineer/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":6,"state":"open","created_at":"2017-04-11T23:45:45Z","updated_at":"2017-06-27T05:23:29Z","due_on":"2017-07-04T07:00:00Z","closed_at":null},"comments":4,"created_at":"2017-05-03T17:32:33Z","updated_at":"2017-06-27T05:23:29Z","closed_at":"2017-06-27T05:23:29Z","body":"The way sessions work right now is all messed up (although it does work). Right now, there is a SessionAI (which, of course is the server, since it's an AI) that computes DH secrets and handles encrypting and decrypting for session members, meaning that the server is acting as a middle man and handling keys and encryption for the session members which is a man in the middle attack waiting to happen.\r\n\r\nThe way this worked previously is that the clients would compute the DH secrets and encrypt/decrypt messages *themselves*, meaning that the server would relay the messages to each client instead of handling the data itself. Why don't we do that, but make it work for group chats?\r\n\r\nAlso, the RequestManagerAI relay handling needs to be rewritten. Right now when a client receives a RELAY, both the from_id and to_ids are the SERVER_ID. The from_id should actually be the other client's ID, and the to_id should be the client's ID. The server should have no involvement in relays and simply relay it to the other client, because it's a relay (duh).\r\n\r\nOne last thing, the session system needs to be changed up. The menu where you can add people to a chat needs to be moved. Instead, there should be a button called \"Add group chat\" and when you press it, you are added to a blank 'room', and there is an add button for you to add people to that room (this brings up that menu). This would separate private chats from group chats, although private chats would still have this button, but adding someone to a private chat would just create a new group chat. Private chats would have the accept/deny feature, although group chats wouldn't. This will be a lot different when we have a contact list system."}}
{"actor":{"display_login":"pythonengineer"}}