cossacklabs / themis

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
https://www.cossacklabs.com/themis
Apache License 2.0
1.83k stars 142 forks source link

Flutter support #899

Open Filipe3xF opened 2 years ago

Filipe3xF commented 2 years ago

I noticed that the library supports Kotlin and Swift. I wanted to ask if it is possible to use it on a Flutter application? If not, are you thinking on supporting it in the future? In case that it is possible, could you elaborate on how one could do it?

vixentael commented 2 years ago

hi @Filipe3xF!

Honestly saying, last time we have reviewed the idea of packaging for Flutter a year ago or so. At that moment, we haven't dive deep and decided to postpone Flutter.

Right now we are working (almost done!) on React Native wrapper.

Flutter might be the next one. But there are challenges that we haven't researched yet: as Themis depends on OpenSSL / BoringSSL, we don't know how Flutter packets handle dependencies-of-dependencies (you have app, you add Themis-Flutter, which adds OpenSSL). Do people use static or dynamic linking for adding dependencies-of-dependencies, etc.

It would help us A LOT if you know examples of good Flutter libraries that you like. Especially if those libraries were ported from native (i.e. native iOS and native Android lib ported as one Flutter package).

minikin commented 2 years ago

@vixentael In essence, that's not about Flutter support but Dart support. Dart has boringssl_gen repo. However, I've never used it before. I'd be interested in helping you to add Dart support. Just let me know where to start.

SpongeManiac commented 1 year ago

@minikin Hello, I have a large deal of dart experience. I would like to collaborate to bring this library to Flutter/Dart, as I am working on a cross platform e2e messaging app. My largest problem is finding two separate libraries that operate on the same specifications. I currently have a Python Django server that uses Cryptography, which is based mainly on RFC 3447, whereas the library I am using with Flutter is PointyCastle, however their library is based on RFC 2437 making the two incompatible is some areas. It is quite the struggle to find a consistent, cross platform, and modern Cryptography library for Flutter/Dart. If someone would like to collaborate on this, please let me know.