libsignal-javascript-example icon indicating copy to clipboard operation
libsignal-javascript-example copied to clipboard

Simple Browser-Based Server-Client Implementation of libsignal-protocol-javascript

To build an open source signal protocol example application for developing a better understanding of the library and signal protocol itself.

Currently hosted on AWS

Getting Started

How to Run

  • Clone repository
  • Install dependencies
    pm install
    
  • Get libsignal-protocol-javascript from github page
  • Extract contents of zip in root (./) folder
  • Root folder should not also have ./libsignal-protocol-javascript-master folder
  • Navigate to root folder
  • Install emscripten
    it clone https://github.com/juj/emsdk.git
    d emsdk
    /emsdk install latest
    /emsdk activate latest
    ource ./emsdk_env.sh
    
  • Navigate to folder cd ./libsignal-protocol-javascript-master
  • Run the following commands
    pm install -g grunt-cli
    pm install
    runt compile
    
  • Run app
    ode server.js
    

How to Use

Receiver

  • Navigate to localhost:3000
  • Set a device ID manually (numeric)
  • Wait for registration ID and initial key packet generation
  • Send initial key packet to server
  • Wait for Sender to send a message
  • Enter Senders address (concat registration ID + device ID)
  • Get Message

Sender

  • Navigate to localhost:3000
  • Set a device ID manually (numeric)
  • Wait for registration ID and initial key packet generation
  • Send initial key packet to server
  • Enter Receiver's device ID and registration ID to retrieve key packet
  • Process keys
  • Copy Receiver's address from the contact list and paste in To field
  • Enter a message
  • Send