All Projects → ForstaLabs → Libsignal Node

ForstaLabs / Libsignal Node

Licence: gpl-3.0
Signal protocol implementation for Node.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Libsignal Node

Scrypt Async Js
Fast "async" scrypt implementation in JavaScript
Stars: ✭ 134 (-14.65%)
Mutual labels:  crypto
Tink
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
Stars: ✭ 11,855 (+7450.96%)
Mutual labels:  crypto
Cryptocurrency Icons
A set of icons for all the main cryptocurrencies and altcoins, in a range of styles and sizes.
Stars: ✭ 2,116 (+1247.77%)
Mutual labels:  crypto
Tradingview Webhook Bot
⚙️ Send TradingView alerts to Telegram, Discord, Slack, Twitter and/or Email.
Stars: ✭ 135 (-14.01%)
Mutual labels:  crypto
Go Jose
An implementation of JOSE standards (JWE, JWS, JWT) in Go
Stars: ✭ 1,849 (+1077.71%)
Mutual labels:  crypto
Simon Speck
The SIMON and SPECK families of lightweight block ciphers. #nsacyber
Stars: ✭ 146 (-7.01%)
Mutual labels:  crypto
Octavo
Highly modular & configurable hash & crypto library
Stars: ✭ 131 (-16.56%)
Mutual labels:  crypto
Hang
Extremely simple Linux application that hangs until a signal is received.
Stars: ✭ 156 (-0.64%)
Mutual labels:  signal
Thaler
Thaler Experimental Network; For Crypto.org Chain: github.com/crypto-org-chain/chain-main
Stars: ✭ 142 (-9.55%)
Mutual labels:  crypto
Nwaves
.NET library for 1D signal processing focused specifically on audio processing
Stars: ✭ 151 (-3.82%)
Mutual labels:  signal
Signals
General purpose modern C++ Signal-Slot providing ease of use, flexibility and extremely high performance aiming to replace traditional interfaces in real-time applications
Stars: ✭ 137 (-12.74%)
Mutual labels:  signal
Peatiocryptoexchange
An open-source Crypto-Currency exchange. Peatio v3.0 Coming Soon !
Stars: ✭ 141 (-10.19%)
Mutual labels:  crypto
Branca
🔑 Secure alternative to JWT. Authenticated Encrypted API Tokens for Go.
Stars: ✭ 147 (-6.37%)
Mutual labels:  crypto
Padding Oracle Attacker
🔓 CLI tool and library to execute padding oracle attacks easily, with support for concurrent network requests and an elegant UI.
Stars: ✭ 136 (-13.38%)
Mutual labels:  crypto
Socktrader
🚀 Websocket based trading bot for 💰cryptocurrencies 📈
Stars: ✭ 152 (-3.18%)
Mutual labels:  crypto
Cryptocurrency Portfolio
Google Sheets automatic creation with Google Apps Script (GAS) for managing a cryptocurrency tracking spreadsheet with multi exchanges
Stars: ✭ 134 (-14.65%)
Mutual labels:  crypto
Gekko Datasets
Gekko Trading Bot dataset dumps. Ready to use and download history files in SQLite format.
Stars: ✭ 146 (-7.01%)
Mutual labels:  crypto
Crypto2
The fastest cryptographic library in the galaxy
Stars: ✭ 156 (-0.64%)
Mutual labels:  crypto
Stocks
Programs for stock prediction and evaluation
Stars: ✭ 155 (-1.27%)
Mutual labels:  signal
Coinlist
Comprehensive list of cryptocurrencies with metadata
Stars: ✭ 148 (-5.73%)
Mutual labels:  crypto

libsignal-node

Signal protocol implementation for Node.js based on libsignal-protocol-javascript.

npm npm

Overview

A ratcheting forward secrecy protocol that works in synchronous and asynchronous messaging environments.

PreKeys

This protocol uses a concept called 'PreKeys'. A PreKey is an ECPublicKey and an associated unique ID which are stored together by a server. PreKeys can also be signed.

At install time, clients generate a single signed PreKey, as well as a large list of unsigned PreKeys, and transmit all of them to the server.

Sessions

Signal Protocol is session-oriented. Clients establish a "session," which is then used for all subsequent encrypt/decrypt operations. There is no need to ever tear down a session once one has been established.

Sessions are established in one of two ways:

  1. PreKeyBundles. A client that wishes to send a message to a recipient can establish a session by retrieving a PreKeyBundle for that recipient from the server.
  2. PreKeySignalMessages. A client can receive a PreKeySignalMessage from a recipient and use it to establish a session.

State

An established session encapsulates a lot of state between two clients. That state is maintained in durable records which need to be kept for the life of the session.

State is kept in the following places:

  • Identity State. Clients will need to maintain the state of their own identity key pair, as well as identity keys received from other clients.
  • PreKey State. Clients will need to maintain the state of their generated PreKeys.
  • Signed PreKey States. Clients will need to maintain the state of their signed PreKeys.
  • Session State. Clients will need to maintain the state of the sessions they have established.

License

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

  • Copyright 2015-2016 Open Whisper Systems
  • Copyright 2017-2018 Forsta Inc
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].