Skip to content

skyasker/minimal-signal-protocol-go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minimal-signal-protocol-go

Something to read & watch:

https://deluxe-scabiosa-998.notion.site/CS434-Signal-Protocol-Reimplementation-76c713270368472b823eaa75c8620112

How to run

Requirements:

  • golang v1.22
  1. Run redis on Docker:
docker run -d -p 6379:6379 redis/redis-stack-server:latest
  1. Run the server:
go run cmd/server/main.go
  1. Run the client with a username (like alice):
go run cmd/client/main.go alice

If the username does not exist yet, new keys will be created for this user and stored in secrets/.env.<username> .

Note when reading source code

  • Alice is the message sender
  • Bob is the message receiver
  • crypto/ contains the cryptographic utilities
  • protocol/ contains the Signal protocol implementation

About

E2EE Signal protocol X3DH and Double Ratchet implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 100.0%