Session Desktop - Onion routing based messenger
Find a file
2018-12-04 08:47:09 +11:00
.github Pull request template: Fix link to Transifex project (#2534) 2018-07-15 13:09:17 -07:00
.tx Transifex config specific to electron, updated translations (#1478) 2017-09-14 17:48:09 -07:00
_locales Added localised strings. 2018-11-28 12:46:56 +11:00
app XAnother big refactor to tie conversation UI logic to the friendRequestStatus variable 2018-12-03 16:44:10 +11:00
build Bypass often-corrupt node_modules/.bin/grunt.cmd on windows (#1481) 2017-09-15 10:20:29 -07:00
components Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 2018-10-24 17:04:54 +11:00
config Clean up multi instance code. 2018-11-14 09:38:00 +11:00
fixtures Add style guide examples for portrait/landscape images 2018-04-20 15:23:46 -07:00
fonts Add fonts so we don't have to hit googlefonts 2015-02-11 17:37:57 -08:00
images Added a section below conversation list. 2018-11-29 16:02:02 +11:00
js More explicit function names, shifted friend request sent logic to more sensible place 2018-12-03 16:45:51 +11:00
libloki Big refactor, prekeybundle moved back to a content message 2018-11-28 12:10:44 +11:00
libtextsecure More explicit function names, shifted friend request sent logic to more sensible place 2018-12-03 16:45:51 +11:00
mnemonic_languages Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 2018-10-24 17:04:54 +11:00
mockup_servers Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
protos Merge pull request #61 from Mikunj/feature/profile-nickname 2018-11-29 15:59:53 +11:00
stylesheets Show contact name on main header. 2018-12-04 08:47:09 +11:00
test Added a section below conversation list. 2018-11-29 16:02:02 +11:00
ts Show contact name on main header. 2018-12-04 08:47:09 +11:00
.aptly.conf Setup publishing to s3 2017-09-14 16:53:36 -07:00
.editorconfig Use 2 spaces for indentation 2018-05-04 15:37:46 -04:00
.eslintignore Merge branch 'sig-development' into merge/signal 2018-11-12 10:06:34 +11:00
.eslintrc.js Use window.log in browser context, turn on console eslint rule 2018-07-21 14:52:43 -07:00
.gitignore Decrypt friend-request messages (the ones using fallback encryption). Moved logic into a new file libloki-protocol.js and concat loki code into js/libloki.js 2018-10-08 15:04:14 +11:00
.nvmrc Update to electron v2.0.1 (#2401) 2018-05-23 12:17:58 -07:00
.prettierignore Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
.prettierrc.js Add .prettierrc.js 2018-04-30 16:53:34 -04:00
.travis.yml Custom linter to check code quality (#2753) 2018-09-20 15:24:52 -07:00
.yarnclean node-sqlcipher update: always build, statically link openssl 2018-08-02 17:32:51 -07:00
about.html New media permission, show dialog when not enabled for voice msg 2018-07-03 16:04:21 -07:00
about_preload.js Remove jshint - move everything over to eslint 2018-07-17 15:54:32 -07:00
appveyor.yml Custom linter to check code quality (#2753) 2018-09-20 15:24:52 -07:00
aptly.sh aptly.sh: Fix broken switch commands - distro and config fix 2017-12-04 18:51:38 -08:00
background.html Allow user to set display name when registering. 2018-12-03 08:55:43 +11:00
bower.json bower.json and Gruntfile.js cleanup 2018-05-23 16:26:48 -07:00
CONTRIBUTING.md Migrate to SQLCipher for messages/cache 2018-07-31 17:08:45 -07:00
debug_log.html New media permission, show dialog when not enabled for voice msg 2018-07-03 16:04:21 -07:00
debug_log_preload.js Update the user agent for debug log requests 2018-07-18 20:00:10 -07:00
dev-app-update.yml.sample Show dialog box when there's an update for download 2017-09-14 16:53:50 -07:00
find_broken_perms.sh Add two scripts to handle broken permissions in release dir 2017-09-14 16:53:49 -07:00
fix_broken_perms.sh Beta builds: A few updates required for successful release (#1739) 2017-11-08 19:32:44 -08:00
Gruntfile.js Now reading messages and adding them to conversations. Some cleaning of unreachable code. Modified the message data to be encoded as base64 string before sending to server 2018-11-13 10:13:19 +11:00
index.html Added a section below conversation list. 2018-11-29 16:02:02 +11:00
LICENSE Add GPLv3 LICENSE file (#1309) 2017-10-20 09:36:49 -07:00
LOKI-NOTES.md Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
main.js Added read receipt checkbox to the settings window which enables or disables the sending and receiving of read receipts 2018-11-22 16:49:15 +11:00
package.json replaced jdenticon with identicon.js. 2018-12-03 16:09:12 +11:00
permissions_popup.html New media permission, show dialog when not enabled for voice msg 2018-07-03 16:04:21 -07:00
permissions_popup_preload.js Fix permissions popup; add needed function on window (#2554) 2018-07-20 14:01:06 -07:00
preload.js Auto-generate profile images on conversations. 2018-12-03 08:55:43 +11:00
prepare_beta_build.js Use window.log in browser context, turn on console eslint rule 2018-07-21 14:52:43 -07:00
prepare_import_build.js Use window.log in browser context, turn on console eslint rule 2018-07-21 14:52:43 -07:00
README.md Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
settings.html Added read receipt checkbox to the settings window which enables or disables the sending and receiving of read receipts 2018-11-22 16:49:15 +11:00
settings_preload.js Added read receipt checkbox to the settings window which enables or disables the sending and receiving of read receipts 2018-11-22 16:49:15 +11:00
styleguide.config.js Finish new Message component, integrate into application 2018-07-17 15:58:07 -07:00
travis.sh Simplify testing and linting 2018-04-11 16:36:42 -04:00
tsconfig.json Adjust tsconfig.json formatting for Prettier 2018-05-04 17:34:50 -04:00
tslint.json Lint fixes 2018-10-11 12:24:58 -07:00
yarn.lock replaced jdenticon with identicon.js. 2018-12-03 16:09:12 +11:00

Loki Messenger

Loki Messenger allows for truly decentralized and end to end and private encrypted chats, Loki Messenger is built to handle both online and fully Asynchronous offline messages , Loki messenger implements the Signal protocol for message encryption, Our Client interface is a fork of Signal Messenger. All communication that passes through Loki messenger is routed through Lokinet.

Summary

Loki messenger integrates directly with Loki Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as both federated servers which store messages offline, and a set of nodes which allow for mixnet functionality obfuscating users IP Addresses. For a full understanding of how Loki messenger works, read the Loki whitepaper

Online Messages

If Alice and Bob are both online they can simply resolve each others public keys, to introduction sets, this functionality is handled by interfacing with Lokinet. With the appropriate introduction sets Alice and Bob can create a path and using onion routing pass messages through the Loki network without giving away personally identifiable information like their IP address.

Offline messages

Offline messaging uses Swarms, given any users public key the user can resolve a public key to a specific grouping of Service Nodes (AKA Swarm) each user in Loki Messenger belongs to a Swarm. When routing a message offline the user selects a Service node in the destination users Swarm, when the user comes online they query any node in their Swarm, if the Swarm is holding any messages for the user they disseminate those messages to the user.

Swarm Messaging

Spam protections for Loki Messenger are based on a Proof of Work which is attached to any message that exceeds a default size or Time To Live, this process is discussed further in the Loki whitepaper.

Want to Contribute? Found a Bug or Have a feature request?

Please search for any existing issues that describe your bugs in order to avoid duplicate submissions. Submissions can be made by making a pull request to our development branch, if you don't know where to start contributing , try reading the Github issues page for ideas.

License

Copyright 2018- Current, Loki Foundation Copyright 2014-2018, Open Whisper Systems Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html