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
Mikunj 8cc9b7b54b Added blocked number model and collection.
Added blocked number controller.
Hooked up BlockedNumberController loading.
6 years ago
.github
.tx
_locales Added function to help friend request notifications 6 years ago
app Remove any unsent messages when app is started. 6 years ago
build
components Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 7 years ago
config Clean up multi instance code. 7 years ago
fixtures
fonts
images Added PoW loading icon. 6 years ago
js Added blocked number model and collection. 6 years ago
libloki fix log.notice in libloki-protocol.js 6 years ago
libtextsecure Merge pull request #41 from Mikunj/fix/friend-notification 6 years ago
mnemonic_languages Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 7 years ago
mockup_servers Linting and other housekeeping stuff 7 years ago
protos change FRIEND_REQUEST value to prevent clash with upstream 7 years ago
stylesheets Added PoW loading icon. 6 years ago
test Added blocked number model and collection. 6 years ago
ts Merge branch 'sig-development' into merge/signal 7 years ago
.aptly.conf
.editorconfig
.eslintignore Merge branch 'sig-development' into merge/signal 7 years ago
.eslintrc.js
.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 7 years ago
.nvmrc
.prettierignore Linting and other housekeeping stuff 7 years ago
.prettierrc.js
.travis.yml Custom linter to check code quality (#2753) 7 years ago
.yarnclean
CONTRIBUTING.md
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 7 years ago
LICENSE
LOKI-NOTES.md Linting and other housekeeping stuff 7 years ago
README.md Linting and other housekeeping stuff 7 years ago
about.html
about_preload.js
appveyor.yml Custom linter to check code quality (#2753) 7 years ago
aptly.sh
background.html Added blocked number model and collection. 6 years ago
bower.json
debug_log.html
debug_log_preload.js
dev-app-update.yml.sample
find_broken_perms.sh
fix_broken_perms.sh
index.html
main.js Merge branch 'sig-development' into merge/signal 7 years ago
package.json Update to signal 1.18.0 6 years ago
permissions_popup.html
permissions_popup_preload.js
preload.js Merge branch 'sig-development' into merge/signal 7 years ago
prepare_beta_build.js
prepare_import_build.js
settings.html
settings_preload.js
styleguide.config.js
travis.sh
tsconfig.json
tslint.json Lint fixes 7 years ago
yarn.lock yarn.lock and fix missing variable in transmission error handling 7 years ago

README.md

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