Session Desktop - Onion routing based messenger
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Beaudan 43d347d9f1 Stop git from defaulting to changing line endings 5 years ago
.github Merge commit signal/master into signal-1.20 5 years ago
.tx Transifex config specific to electron, updated translations (#1478) 7 years ago
_locales Fixed up settings view. 5 years ago
app Merge commit '5c8558e293989094693f918a63b672301f1aeb55' into merge_1_21_1 5 years ago
build Added loki icon. 5 years ago
components Rip the worker logic out of message_receiver and add the functionality for it to work with pow. Fix pow tests to work with those changes 6 years ago
config Removed online broadcast message type, changed ttl logic a little, add p2p address and port to the window object when recieve message 5 years ago
fixtures Ensure that multi-video lightbox scrolling changes video 6 years ago
fonts Add fonts so we don't have to hit googlefonts 9 years ago
images Merge commit signal/master into signal-1.20 5 years ago
js Merge commit '5c8558e293989094693f918a63b672301f1aeb55' into merge_1_21_1 5 years ago
libloki Ensure a session is always initiated using the prekey assigned to the contact 5 years ago
libtextsecure reset line endings in libsignal-protocol 5 years ago
mnemonic_languages Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 6 years ago
mockup_servers Linting and other housekeeping stuff 6 years ago
protos Ensure a session is always initiated using the prekey assigned to the contact 5 years ago
stylesheets revert background colour in main.js (+1 squashed commit) 5 years ago
test Merge pull request #177 from sachaaaaa/merge_1_21_0 5 years ago
ts Merge branch 'textsecure/master' into merge_1_21_0 5 years ago
.aptly.conf Setup publishing to s3 7 years ago
.editorconfig Use 2 spaces for indentation 6 years ago
.eslintignore Linted files 5 years ago
.eslintrc.js Line break rule fix for windows. 5 years ago
.gitattributes Stop git from defaulting to changing line endings 5 years ago
.gitignore Rip the worker logic out of message_receiver and add the functionality for it to work with pow. Fix pow tests to work with those changes 6 years ago
.gitlab-ci.yml set build dir to /release on win to align with other platforms 5 years ago
.nvmrc Upgrade to node 10.13.0; update chokidar, its dep upath fails 6 years ago
.prettierignore Added error catching. 5 years ago
.prettierrc.js Add `.prettierrc.js` 6 years ago
.travis.yml Line break rule fix for windows. 5 years ago
.yarnclean node-sqlcipher update: always build, statically link openssl 6 years ago
CONTRIBUTING.md Update CONTRIBUTING.md to reflect loki-messenger 6 years ago
Gruntfile.js Fixed tests and moved friend request status enum to new friends file 5 years ago
LICENSE Add GPLv3 LICENSE file (#1309) 7 years ago
LOKI-NOTES.md Linting and other housekeeping stuff 6 years ago
README.md Merge commit signal/master into signal-1.20 5 years ago
about.html Update about.html 5 years ago
about_preload.js Remove jshint - move everything over to eslint 6 years ago
appveyor.yml Remove nsp; its registry has now been taken offline 6 years ago
aptly.sh aptly.sh: Fix broken switch commands - distro and config fix 7 years ago
background.html Added local link preview 5 years ago
bower.json Rip the worker logic out of message_receiver and add the functionality for it to work with pow. Fix pow tests to work with those changes 6 years ago
debug_log.html New media permission, show dialog when not enabled for voice msg 6 years ago
debug_log_preload.js Update the user agent for debug log requests 6 years ago
dev-app-update.yml.sample Show dialog box when there's an update for download 7 years ago
find_broken_perms.sh Add two scripts to handle broken permissions in release dir 7 years ago
fix_broken_perms.sh Beta builds: A few updates required for successful release (#1739) 7 years ago
index.html Merge branch 'textsecure/master' into merge_1_21_0 5 years ago
main.js Merge commit '5c8558e293989094693f918a63b672301f1aeb55' into merge_1_21_1 5 years ago
metrics.html add TTL variation in pow metrics 5 years ago
metrics_app.js Linted files 5 years ago
package.json Merge commit '5c8558e293989094693f918a63b672301f1aeb55' into merge_1_21_1 5 years ago
password.html Added db resetting. 5 years ago
password_preload.js Added db resetting. 5 years ago
permissions_popup.html New media permission, show dialog when not enabled for voice msg 6 years ago
permissions_popup_preload.js Fix permissions popup; add needed function on window (#2554) 6 years ago
preload.js Renamed lokiSnodeAPI to start with lower case for consistency, refactor snode API to use conversation controller 5 years ago
prepare_beta_build.js win & osx builds on gitlab 6 years ago
prepare_import_build.js Use window.log in browser context, turn on console eslint rule 6 years ago
settings.html Fixed up settings view. 5 years ago
settings_preload.js Added link preview setting. 5 years ago
styleguide.config.js Finish new Message component, integrate into application 6 years ago
travis.sh Simplify testing and linting 6 years ago
tsconfig.json Adjust `tsconfig.json` formatting for Prettier 6 years ago
tslint.json Lint fixes 6 years ago
yarn.lock Merge branch 'textsecure/master' into merge_1_21_0 5 years ago

README.md

Loki Messenger

Build Status

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.

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