Session Desktop - Onion routing based messenger
Go to file
Jason Rhinelander 1ec637b551
Open group regex fixes (#2058)
* Open group URL regex fixes

- Capital letters in room tokens were not being accepted (it eventually
  gets lower-cased internally, which works fine, but that happens
  *after* the URL is tested for acceptability).
- `-` in room was not being allowed (it is and always has been on SOGS,
  session-android, and session-ios).
- single-letter room ids are valid, but only 2+ letter ids were being
  accepted.
- complete URL regex wasn't anchored so something like
  `garbagehttps://example.com/room?public_key=<64hex>moregarbage` was
  being accepted in the GUI input (it fails later when other code tries
  to parse it as a URL).
- removed `m` modifier from open group regex: without anchors it wasn't
  doing anything anyway, but *with* anchors it would still allow
  leading/trailing garbage if delineated by newlines.
- public key regex was accepting g-z letters, and not accepting A-F.
- various regex cleanups:
  - use non-capture groups (?:...) rather than capturing groups (...)
  - avoid repetition in host segment matching
- tightened up host pattern matching a bit:
  - DNS host segments have a max length of 63
  - Limit port max length to 5, and disallow starting with 0

* Show an error when the open group URL is invalid

It's quite disconcerting when you have a bad open group URL and try to
add it and the join button just "doesn't work" without any feedback at
all.  Fix it to show an error message.  (There is already an i18n entry
for this because this same message is thrown if the URL can't be parsed
later on).
2021-12-01 10:14:18 +11:00
.github build rpm and freebsd package 2021-08-11 13:59:03 +10:00
_locales Fetch translations (#2056) 2021-11-30 14:46:06 +11:00
app Merge branch 'clearnet' into message-requests 2021-11-24 16:25:07 +11:00
build cleanup afterpackhook useless logs 2021-10-20 14:18:15 +11:00
certificates pin certificate for seed nodes 2021-04-12 15:38:19 +10:00
config add a sample test with playwright 2021-11-12 16:07:41 +11:00
fixtures fix ringing sound for in release builds 2021-11-16 10:53:43 +11:00
fonts Fix fonts sans serif (#1619) 2021-05-12 10:35:05 +10:00
images include a 32x32 icon for tray icon for gnome 2021-08-12 10:54:02 +10:00
js Minor call tweaks (#2051) 2021-11-29 17:40:46 +11:00
libtextsecure do not display the reveal seed banner if user just used it 2021-11-03 09:38:12 +11:00
mnemonic_languages languages json 2019-08-08 15:37:47 +10:00
protos Merge branch 'clearnet' into message-requests 2021-11-24 16:25:07 +11:00
sound fix ringing sound for in release builds 2021-11-16 10:53:43 +11:00
stylesheets Minor call tweaks (#2051) 2021-11-29 17:40:46 +11:00
tools Fetch translations (#2056) 2021-11-30 14:46:06 +11:00
ts Open group regex fixes (#2058) 2021-12-01 10:14:18 +11:00
.editorconfig Use 2 spaces for indentation 2018-05-04 15:37:46 -04:00
.eslintignore fix lint and steal autofocus on registration to seed 2021-08-06 15:59:38 +10:00
.eslintrc.js increase prettier maxWidth to 100 2021-04-22 18:03:58 +10:00
.gitattributes Stop git from defaulting to changing line endings 2019-02-14 12:20:37 +11:00
.gitignore fix notification open the correct conversation 2021-08-09 11:52:00 +10:00
.nvmrc bump version of node-sass 2021-07-12 15:49:51 +10:00
.prettierignore more cleanup 2021-10-04 10:56:54 +11:00
.prettierrc.js increase prettier maxWidth to 100 2021-04-22 18:03:58 +10:00
.yarnclean remove coverage unused 2021-07-05 10:26:40 +10:00
BUILDING.md Add git-lfs to linux build instructions 2021-10-28 20:48:41 -03:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-06-01 17:18:46 +10:00
CONTRIBUTING.md remove spectron dependency 2021-08-13 14:47:00 +10:00
Gruntfile.js more cleanup 2021-10-04 10:56:54 +11:00
LICENSE Add GPLv3 LICENSE file (#1309) 2017-10-20 09:36:49 -07:00
README.md Update README.md 2021-08-17 11:59:59 +10:00
RELEASING.md Update RELEASING.md 2020-06-16 15:03:59 +10:00
about.html fix about window localized string 2021-07-02 11:58:43 +10:00
about_preload.js Fix missing bytebuffer in preloads 2020-06-25 11:39:17 +10:00
background.html more cleanup 2021-10-04 10:56:54 +11:00
background_test.html more cleanup 2021-10-04 10:56:54 +11:00
debug_log.html add csp for image load from blob so attachments are loaded correctly 2020-10-19 09:35:16 +11:00
debug_log_preload.js removed old log submit code. 2021-10-29 15:55:16 +11:00
dev-app-update.yml.sample Enable auto-updating using electron-updater 2020-03-05 15:39:43 +11: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
index.html more cleanup 2021-10-04 10:56:54 +11:00
main.js Adjusting logs 2021-10-29 16:05:53 +11:00
package.json Minor call tweaks (#2051) 2021-11-29 17:40:46 +11:00
password.html fix some tests 2020-11-25 09:14:22 +11:00
password_preload.js Ask confirm before delete account (#1910) 2021-09-16 14:42:13 +10:00
preload.js Minor call tweaks (#2051) 2021-11-29 17:40:46 +11:00
tsconfig.json removed old fileserver support 2021-10-20 14:18:57 +11:00
tslint.json Cleanup redux store (#1925) 2021-09-17 16:41:04 +10:00
yarn.lock fix archlinux pw unused issue 2021-11-17 10:21:19 +11:00

README.md

Session Desktop

Summary

Session integrates directly with Oxen Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as 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 Session works, read the Session Whitepaper.

DesktopSession

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 BUILDING.md.

Verifing signatures

Get Kee's key and import it:

wget https://raw.githubusercontent.com/oxen-io/oxen-core/master/utils/gpg_keys/KeeJef.asc
gpg --import KeeJef.asc

Get the signed hash for this release, the SESSION_VERSION needs to be updated for the release you want to verify

export SESSION_VERSION=1.6.1
wget https://github.com/oxen-io/session-desktop/releases/download/v$SESSION_VERSION/signatures.asc

Verify the signature of the hashes of the files

gpg --verify signatures.asc 2>&1 |grep "Good signature from"

The command above should print "Good signature from "Kee Jefferys..." If it does, the hashes are valid but we still have to make the sure the signed hashes matches the downloaded files.

Make sure the two commands below returns the same hash. If they do, files are valid

sha256sum session-desktop-linux-amd64-$SESSION_VERSION.deb
grep .deb signatures.asc

Debian repository

Please visit https://deb.oxen.io/

License

Copyright 2011 Whisper Systems
Copyright 2013-2017 Open Whisper Systems
Copyright 2019-2021 The Oxen Project
Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html