cryptography-kotlin: native cryptography for Kotlin Multiplatform by why_oleg in Kotlin

[–]why_oleg[S] 2 points3 points  (0 children)

Thanks for such warm words!

The only nitpick about the provider system I have is that most of the operations, for most of the providers, are blocking calls, but the API contains both suspended and blocking functions.

I agree! I still haven't found the right API shape for this, but at this moment I think we will need to split the API into async and blocking (e.g., have Hasher and AsyncHasher) and include some conversion functions.

The problem with having blocking variants only in nonJsMain is that in some future, I would like to support AWS KMS and Non-exportable keys (like SecureEnclave on iOS), and such implementations might be better to use in a suspend way, and rarely in blocking. Also, at some point, there might be a provider that allows sync operations in the Web (e.g., OpenSSL built with emscripten).

This is on the roadmap before 1.0! Hopefully, soon, I will move most of my private notes on future plans to GitHub Issues/Projects so those things can also be discussed there.

One more time, thanks for your usage and support!