tiabc / doubleratchet Goto Github PK
View Code? Open in Web Editor NEWThe Double Ratchet Algorithm implementation in Go
License: MIT License
The Double Ratchet Algorithm implementation in Go
License: MIT License
Hi!
Thanks for the library, I am integrating https://github.com/status-im/doubleratchet with the status application, I have a few questions and I was hoping you could confirm some doubts.
The application is a mobile app, so it will need persistence on disk. I have implemented keysstorage, but seems like to get it working correctly we need also to persist and reload state
when a new struct
is created, otherwise key re-use happens.
Essentially when the process is restarted, we have to create a new session, but we don't want N
and PN
to be set back to 0
, as we have already performed some steps in the ratchet.
I had a look at the signal implementation and seems like they are also persisting session state https://github.com/signalapp/libsignal-protocol-java/blob/master/java/src/main/java/org/whispersystems/libsignal/state/SessionRecord.java
.
Could you confirm if I am on the right track before I start coding away or I am missing something?
Thank you!
Hi,
I have a few questions:
I would like to return errors from the key store since I currently have to drop the errors in order to satisfy the interface. Would you accept such an PR if I change the interface?
Are message keys deleted at some point? I see that there is a DeletePk
function however, it's only used to delete skipped keys as far as I can see. Since we have to safe all messages encrypted - we can just persist the messages keys and will be able to decrypt all messages from those keys at any point in time (or am I wrong)?
cheers,
Florian
P.s. thanks for this great repo
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.