Session Desktop - Onion routing based messenger
Find a file
sachaaaaa 79532d7590
Merge pull request #643 from sachaaaaa/pairing_QR
Show pubkey QR code in primary pairing dialog
2019-11-25 10:49:30 +11:00
.github linting 2019-05-24 11:07:58 +10:00
.tx Transifex config specific to electron, updated translations (#1478) 2017-09-14 17:48:09 -07:00
.vscode Merge branch 'clearnet' into multi-device 2019-09-16 15:59:40 +10:00
_locales lint 2019-11-20 10:04:38 +11:00
app Merge branch 'clearnet' into prep-merge 2019-11-15 12:31:40 +11:00
build Update mac.plist 2019-10-23 17:25:30 +11:00
components Partial Merge commit 'bf904ddd129ceba8fa363ccf6d10ecd256c65f63' into signal-1.23 2019-04-17 13:47:17 +10:00
config Add yarn start-multi2 to allow for easier multi device testing (3 clients, 2 are linked) 2019-10-09 16:07:05 +11:00
fixtures Ensure that multi-video lightbox scrolling changes video 2018-11-28 12:34:29 -08:00
fonts Add fonts so we don't have to hit googlefonts 2015-02-11 17:37:57 -08:00
images Updated design 2019-09-11 14:02:56 +10:00
js Merge branch 'clearnet' into pairing_QR 2019-11-25 10:03:52 +11:00
libloki Sending and handling of special UNPAIRING_REQUEST message 2019-11-21 13:50:18 +11:00
libtextsecure Merge pull request #641 from sachaaaaa/pairing_revocation 2019-11-25 10:03:11 +11:00
mnemonic_languages languages json 2019-08-08 15:37:47 +10:00
mockup_servers Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
protos Sending and handling of special UNPAIRING_REQUEST message 2019-11-21 13:50:18 +11:00
stylesheets Merge pull request #610 from msgmaxim/profile-pictures 2019-11-21 12:53:16 +11:00
test Enable profile pictures 2019-11-18 17:34:41 +11:00
ts Merge pull request #635 from msgmaxim/context-menu-select 2019-11-22 13:52:53 +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 signal-1.24.0 2019-04-18 12:45:19 +10:00
.eslintrc.js Select multiple messages and bulk deletion 2019-11-06 10:26:21 +11:00
.gitattributes Stop git from defaulting to changing line endings 2019-02-14 12:20:37 +11:00
.gitignore Ignore ctags file 2019-08-05 17:23:26 +10:00
.gitlab-ci.yml Fix CI 2019-10-23 11:20:11 +11:00
.nvmrc Upgrade to node 10.13.0; update chokidar, its dep upath fails 2018-11-26 15:26:04 -08:00
.prettierignore Merge signal-1.24.0 2019-04-18 12:45:19 +10:00
.prettierrc.js Add .prettierrc.js 2018-04-30 16:53:34 -04:00
.travis.yml Remove travis windows. 2019-04-30 10:31:39 +10:00
.yarnclean node-sqlcipher update: always build, statically link openssl 2018-08-02 17:32:51 -07:00
about.html Show commit hash in About window for beta builds 2019-03-01 17:10:20 +11:00
about_preload.js Show commit hash in About window for beta builds 2019-03-01 17:10:20 +11:00
appveyor.yml Skip lint-deps on appveyor, which triggers a failed build 2019-05-14 14:36:11 +10:00
aptly.sh Remove unused aptly target 2019-03-28 17:23:09 -07:00
background.html Show pubkey QR code in pairing dialog (as primary) 2019-11-22 10:41:57 +11:00
bower.json Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10:00
CONTRIBUTING.md linting 2019-05-24 11:07:58 +10:00
debug_log.html Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10: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 Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10:00
Gruntfile.js Show commit hash in About window for beta builds 2019-03-01 17:10:20 +11:00
index.html Merge branch 'textsecure/master' into merge_1_21_0 2019-02-06 13:53:20 +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 Disable microphone button when you have disabled permissions 2019-11-12 09:53:31 +11:00
metrics.html add TTL variation in pow metrics 2019-01-15 09:52:24 +11:00
metrics_app.js Linted files 2019-01-16 16:18:08 +11:00
package.json Bump version to 1.0.0-beta8 2019-11-18 14:38:56 +11:00
password.html Added db resetting. 2019-01-29 12:57:24 +11:00
password_preload.js Fix password error 2019-07-05 13:21:32 +10: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 Sending and handling of special UNPAIRING_REQUEST message 2019-11-21 13:50:18 +11:00
prepare_beta_build.js Fix CI 2019-10-23 11:20:11 +11: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 Update README.md 2019-07-26 10:46:55 +10:00
settings.html Update link preview settings to be cleaner 2019-10-23 14:55:34 +11:00
settings_preload.js Add a toggle option for typing indicators; use short ttl for them 2019-08-06 11:57:45 +10:00
styleguide.config.js Move left pane entirely to React 2019-03-12 17:44:14 -07:00
travis.sh Simplify testing and linting 2018-04-11 16:36:42 -04:00
tsconfig.json Move left pane entirely to React 2019-03-12 17:44:14 -07:00
tslint.json Correctly handle server errors in multi-deletion 2019-11-06 13:22:21 +11:00
yarn.lock Upgrade electron-notarize 2019-11-14 11:28:47 +11:00

Loki Messenger

Build Status

Loki Messenger allows for truly decentralized, 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 onion routing 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.

Build instruction

Build instructions can be found in CONTRIBUTING.md.

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