@dnuzi/libsignal-node
v1.0.0
Published
Open Whisper Systems' libsignal for Node.js, modified and enhanced by DanuZz.
Readme
🔐 libsignal-node
Signal Protocol implementation for Node.js
Based on libsignal-protocol-javascript
✨ Modified & Enhanced by DanuZz
🚀 Mova - Nest™ | LK
📦 Overview
A secure ratcheting forward secrecy protocol designed for both synchronous and asynchronous messaging environments.
This ensures:
- 🔒 End-to-end encryption
- 🔁 Forward secrecy
- ⚡ Secure real-time & offline messaging
🔑 PreKeys
The protocol uses a concept called PreKeys.
A PreKey consists of:
- An
ECPublicKey - A unique ID stored on a server
How it works:
- At install time, clients generate:
- ✅ One signed PreKey
- ✅ Multiple unsigned PreKeys
- These keys are uploaded to the server for session initiation
🔗 Sessions
Signal Protocol is session-based.
Once a session is created:
- 🔐 All messages are encrypted/decrypted using that session
- ♾️ No need to manually terminate sessions
Session Establishment Methods:
PreKey Bundles
- Retrieve recipient’s PreKeyBundle from server
- Start a secure session
PreKey Signal Messages
- Receive a message that automatically initializes a session
💾 State Management
Each session maintains important cryptographic state.
Required Storage:
Identity State
- Your identity key pair
- Other users' identity keys
PreKey State
- Generated PreKeys
Signed PreKey State
- Signed PreKeys
Session State
- Active session data
⚠️ These must be stored securely and persistently
📜 License
Licensed under the MIT License
👨💻 Credits
- © 2015–2016 Open Whisper Systems
- © 2017–2018 Forsta Inc
- 🔧 Modified by DanuZz (Mova - Nest™ | LK)
💡 Notes
This project is a customized version of the original Signal protocol library, enhanced for better usability, performance, and integration in Node.js environments.
⭐ If you like this project, consider giving it a star!
