Skip to content

cpapazaf/scytale-desktop-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Christos Papazafeiropoulos
Jul 3, 2019
b6b0c07 · Jul 3, 2019

History

88 Commits
Oct 28, 2018
Nov 27, 2018
Nov 1, 2018
Jul 3, 2019
Jul 2, 2019
Dec 8, 2018
Dec 25, 2018
Nov 4, 2018
Jul 3, 2019
Oct 16, 2018
Oct 16, 2018
Dec 17, 2018
Dec 9, 2018
Jul 2, 2019
Jul 2, 2019

Repository files navigation

Scytale desktop clients

Scytale is a simple P2P chat application that focuses on security, simplicity and e2e user ownership. The intention of this app is not to replace the already existing and popular messaging applications. It is targeting the users who want a secure, dependency-free and fully owned application with a simple interface for exchanging snap messsages.

The client application requires a backend service for exchanging ICE information. It is advised to create your own server on heroku since the default one is for demo purposes (only) and is not maintained.

Status

Build Status

Security

  • Keys are generated using ECDH (prime256v1).
  • E2E encryption is performed by SHA256 (aes-256-cbc).
  • The shared secret is calculated like:
    const sharedSecret = ecdh.computeSecret(remoteUser.publicKey, 'hex', 'hex').substring(0,32)
  • A hash sha256 of the original message is sent together with the encrypted message.

Check safecurves

Dev

Clone the backend service and start it locally.

# Install dependencies
npm install
# Run the app in dev mode
npm run electron-dev

Open your browser and point two tabs to: http://localhost:3000. Pick a random string for chatroom and connect both clients. :)

Unit Test

npm test --watchAll

E2E Test

npm test:e2e

About

A secure chatting app built on electron, socket.io and heroku

Resources

License

Apache-2.0, CC0-1.0 licenses found

Licenses found

Apache-2.0
LICENSE
CC0-1.0
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages