||4 weeks ago|
|example||2 months ago|
|lib||1 month ago|
|protobuf||4 months ago|
|test||1 month ago|
|.gitignore||3 months ago|
|.gitlint||4 months ago|
|.pubignore||2 months ago|
|.woodpecker.yml||2 months ago|
|CHANGELOG.md||2 months ago|
|LICENSE||4 months ago|
|README.md||2 months ago|
|analysis_options.yaml||4 months ago|
|flake.lock||4 months ago|
|flake.nix||4 months ago|
|pubspec.yaml||4 weeks ago|
omemo_dart is a Dart library to help developers of Dart/Flutter XMPP clients to implement
OMEMO in its newest version - currently 0.8.3.
The library provides an implementation of the X3DH
key exchange, the Double Ratchet with
the OMEMO 0.8.3 specific
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
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.
- 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.
omemo_dart in your
pubspec.yaml like this:
# [...] dependencies: omemo_dart: hosted: https://git.polynom.me/api/packages/PapaTutuWawa/pub version: ^0.3.1 # [...] # [...]
Due to issues with
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. In order to run tests, you need the Protbuf
compiler. After that, making sure that
the Dart Protobuf compiler addon and the
Protobuf compiler itself is in your PATH,
protoc -I=./protobuf/ --dart_out=lib/protobuf/ ./protobuf/schema.proto in the
repository's root to generate the real Protobuf bindings.
When submitting a PR, please run the linter using
dart analyze and make sure that all
tests still pass using
To ensure uniform commit message formatting, please also use
gitlint to lint your commit
Licensed under the MIT license.