omemo_dart/README.md

38 lines
1.7 KiB
Markdown
Raw Normal View History

2022-08-01 21:20:31 +00:00
# omemo_dart
2022-06-30 12:00:18 +00:00
2022-08-05 16:26:20 +00:00
`omemo_dart` is a Dart library to help developers of Dart/Flutter XMPP clients to implement
[OMEMO](https://xmpp.org/extensions/xep-0384.html) in its newest version - currently 0.8.3.
2022-08-02 13:20:23 +00:00
2022-08-05 16:26:20 +00:00
The library provides an implementation of the [X3DH](https://signal.org/docs/specifications/x3dh/)
key exchange, the [Double Ratchet](https://signal.org/docs/specifications/doubleratchet/) with
the OMEMO 0.8.3 specific `ENCRYPT`, `DECRYPT` and `KDF_*` functions and a very high-level
`OmemoSessionManager` that manages all Double Ratchet sessions and provides a clean and simple
interface for encrypting a message for all known Ratchet sessions we have with a user.
This library also has no dependency on any XMPP library. `omemo_dart` instead defines an
2022-08-05 16:36:37 +00:00
intermediary format for the required data that you, the user, will need to transform to and from
the stanza format of your preferred XMPP library yourself.
2022-08-05 16:26:20 +00:00
## Important Notes
- **Please note that this library has not been audited for its security! Use at your own risk!**
- This library is not tested with other implementations of OMEMO 0.8.3 as I do not know of any client implementing spec compliant OMEMO 0.8.3. It does, however, work with itself.
2022-08-02 13:20:23 +00:00
## Contributing
2022-08-07 15:02:06 +00:00
Due to issues with `protobuf`, `omemo_dart` reimplements the Protobuf encoding for the required
OMEMO messages. As such, `protobuf` is only a dependency for testing that the serialisation and
deserialisation of the custom implementation.
2022-08-02 13:20:23 +00:00
When submitting a PR, please run the linter using `dart analyze` and make sure that all
tests still pass using `dart test`.
2022-08-06 09:26:47 +00:00
To ensure uniform commit message formatting, please also use `gitlint` to lint your commit
messages' formatting.
2022-08-02 13:20:23 +00:00
## License
Licensed under the MIT license.
See `LICENSE`.