This story would be about refactoring the code related to crypto and prepare the path for the crypto future of rama. Follow up stories can continue the work started here. There are two aspects to this:
rama-tls-boring
crate. As part of this task you can already create this crate (dummy-style, see rama-socks5 for an example) to already reserve the name next time we publish an alpha version.rama-crypto
crate where we would also house crypto primitives and expose crypto backends as well. Or perhaps we do not need such a crate and we could just expose jwt
in future directly from within rama master crate somewhere.rama-crypto
crate. E.g. do we also expose boring there? Or instead use rama-tls-boring
if the boring feature is enabled? or perhaps only have it in rama-crypto
and have rama-tls-backend
use that? All choices feel weird in their own way.(2) will have less focus in this story then (1) but I would like that the path regarding this all becomes a lot more clear after we resolve this issue. (1) is however where the focus should be. It will result in some code removal and simplifying certain bits. And all the advanced / low-level controls will move to boring instead of something generic.
Not sure how this will impact rama::net::tls
and rama::tls
... that will ahve to be figured out. In one hand I think it wil make it possible to keep things a lot easier and just use the crypto backend API's directly instead of abstracting it away. At the same time I do like how easy to use the abstraction layer in the middle is to setup a lot of common stuff... So there's some thought that need to be put here. E.g. there's something to be said with how simple stuff like
rama/examples/tls_boring_termination.rs
Line 77 in b9befd3
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too